export declare type Msg = ArrayBuffer | string | Uint8Array; export declare type CipherText = ArrayBuffer; export declare type SymmKey = CryptoKey; export declare type PublicKey = CryptoKey; export declare type PrivateKey = CryptoKey; export declare type Config = { type: CryptoSystem; curve: EccCurve; rsaSize: RsaSize; symmAlg: SymmAlg; symmLen: SymmKeyLength; hashAlg: HashAlg; charSize: CharSize; storeName: string; }; export declare type SymmKeyOpts = { alg: SymmAlg; length: SymmKeyLength; iv: ArrayBuffer; }; export declare enum CryptoSystem { ECC = "ecc", RSA = "rsa" } export declare enum EccCurve { P_256 = "P-256", P_384 = "P-384", P_521 = "P-521" } export declare enum RsaSize { B1024 = 1024, B2048 = 2048, B4096 = 4096 } export declare enum SymmAlg { AES_CTR = "AES-CTR", AES_CBC = "AES-CBC", AES_GCM = "AES-GCM" } export declare enum SymmKeyLength { B128 = 128, B192 = 192, B256 = 256 } export declare enum HashAlg { SHA_1 = "SHA-1", SHA_256 = "SHA-256", SHA_384 = "SHA-384", SHA_512 = "SHA-512" } export declare enum CharSize { B8 = 8, B16 = 16 } export declare enum KeyUse { Exchange = "exchange", Write = "write" } export interface KeyStore { cfg: Config; exchangeKey: (exchangeKeyName: string) => Promise; writeKey: (writeKeyName: string) => Promise; copyKeypair(fromKeyName: string, toKeyName: string): Promise; getSymmKey: (keyName: string, cfg?: Partial) => Promise; keyExists(keyName: string): Promise; keypairExists(keyName: string): Promise; deleteKey(keyName: string): Promise; destroy(): Promise; importSymmKey(keyStr: string, keyName: string, cfg?: Partial): Promise; exportSymmKey(keyName: string, cfg?: Partial): Promise; encryptWithSymmKey(msg: string, keyName: string, cfg?: Partial): Promise; decryptWithSymmKey(cipherBytes: string, keyName: string, cfg?: Partial): Promise; sign(msg: string, writeKeyName: string, cfg?: Partial): Promise; verify(msg: string, sig: string, publicKey: string, cfg?: Partial): Promise; encrypt(msg: string, publicKey: string, exchangeKeyName: string, cfg?: Partial): Promise; decrypt(cipherText: string, exchangeKeyName: string, publicKey: string, cfg?: Partial): Promise; publicExchangeKey(exchangeKeyName: string): Promise; publicWriteKey(writeKeyName: string): Promise; }