UNPKG

@bryopsida/key-store

Version:

A extendable TypeScript Node.JS library that provides a basic key store for data encryption keys

37 lines (36 loc) 2.09 kB
/// <reference types="node" /> /// <reference types="node" /> import { BinaryLike } from 'crypto'; import { IKeyStore } from './dataEncryption.js'; export interface IKeyStoreValueProvider { (): Promise<Buffer>; } export interface IKeyStoreContextProvider { (id: string): Promise<Buffer>; } export declare abstract class BaseKeyStore implements IKeyStore { protected readonly keyStorePasswordProvider: IKeyStoreValueProvider; protected readonly keyStoreSaltProvider: IKeyStoreValueProvider; protected readonly keyStoreContextProvider: IKeyStoreContextProvider; constructor(keyStorePasswordProvider: IKeyStoreValueProvider, keyStoreSaltProvider: IKeyStoreValueProvider, keyStoreContextProvider: IKeyStoreContextProvider); hasSealedRootKey(rootKeyId: string): Promise<boolean>; saveSealedRootKey(rootKeyId: string, key: Buffer): Promise<void>; saveSealedDataEncKey(keyId: string, key: Buffer): Promise<void>; hasSealedDataEncKey(keyId: string): Promise<boolean>; fetchSealedRootKey(rootKeyId: string): Promise<Buffer>; fetchSealedDataEncKey(keyId: string): Promise<Buffer>; destroySealedRootKey(rootKeyId: string): Promise<void>; destroySealedDataEncKey(keyId: string): Promise<void>; destroyAllKeys(): Promise<void>; protected getScryptKey(password: BinaryLike, salt: BinaryLike, context: Buffer): Promise<Buffer>; protected getKeySlot(type: string, keyId: string, salt: Buffer): Promise<string>; protected saveSealedKey(type: string, keyId: string, key: Buffer): Promise<void>; protected fetchSealedKey(type: string, keyId: string): Promise<Buffer>; protected deleteSealedKey(type: string, keyId: string): Promise<void>; protected abstract putKeyInSlot(keySlot: string, key: Buffer): Promise<void>; protected abstract getKeyInSlot(keySlot: string): Promise<Buffer>; protected abstract hasKeyInSlot(keySlot: string): Promise<boolean>; protected abstract deleteKeySlot(keySlot: string): Promise<void>; protected abstract clearKeySlots(): Promise<void>; abstract close(): Promise<void>; }