export type Key = unknown; export type AuthenticatedSymmetricCryptoAlgorithm = 'AES-256-GCM' | 'AES-128-GCM' | 'CHACHA20-POLY1305'; export type SymmetricCryptoAlgorithm = 'AES-128-CBC'; export type AsymmetricCryptoAlgorithm = 'X25519' | 'P-256' | 'P-384'; export type AsymmetricEncDecAlgorithm = 'RSA-PCKS1_5'; export type SignatureAlgorithm = 'RSA-PSS-SHA256' | 'ECDSA-SECP384R1-SHA256' | 'ECDSA-SECP384R1-SHA384' | 'ECDSA-SECP256R1-SHA256' | 'ECDSA-SECP256R1-SHA384' | 'RSA-PKCS1-SHA512' | 'RSA-PKCS1-SHA384' | 'RSA-PKCS1-SHA256' | 'RSA-PKCS1-SHA1'; export type HashAlgorithm = 'SHA-256' | 'SHA-384' | 'SHA-1'; type Awaitable = T | Promise; type CryptOptions = { key: K; iv: Uint8Array; data: Uint8Array; }; type AuthenticatedCryptOptions = { key: K; iv: Uint8Array; data: Uint8Array; aead: Uint8Array; }; type VerifyOptions = { data: Uint8Array; signature: Uint8Array; publicKey: K; }; export type KeyPair = { pubKey: K; privKey: K; }; export type Crypto = { importKey(alg: AuthenticatedSymmetricCryptoAlgorithm | SymmetricCryptoAlgorithm, raw: Uint8Array, empty?: unknown): Awaitable; importKey(alg: HashAlgorithm, raw: Uint8Array, empty?: unknown): Awaitable; importKey(alg: SignatureAlgorithm | AsymmetricEncDecAlgorithm, raw: Uint8Array, type: 'public'): Awaitable; importKey(alg: AsymmetricCryptoAlgorithm, raw: Uint8Array, type: 'private' | 'public'): Awaitable; exportKey(key: K): Awaitable; generateKeyPair(alg: AsymmetricCryptoAlgorithm): Awaitable>; calculateSharedSecret(alg: AsymmetricCryptoAlgorithm, privateKey: K, publicKey: K): Awaitable; randomBytes(length: number): Uint8Array; asymmetricEncrypt(cipherSuite: AsymmetricEncDecAlgorithm, opts: { publicKey: K; data: Uint8Array; }): Awaitable; /** * Encrypts data with the given cipher suite and options. * Expects padding has already been applied to the data. */ encrypt(cipherSuite: SymmetricCryptoAlgorithm, opts: CryptOptions): Awaitable; decrypt(cipherSuite: SymmetricCryptoAlgorithm, opts: CryptOptions): Awaitable; authenticatedEncrypt(cipherSuite: AuthenticatedSymmetricCryptoAlgorithm, opts: AuthenticatedCryptOptions): Awaitable<{ ciphertext: Uint8Array; authTag: Uint8Array; }>; authenticatedDecrypt(cipherSuite: AuthenticatedSymmetricCryptoAlgorithm, opts: AuthenticatedCryptOptions & { authTag: Uint8Array; }): Awaitable<{ plaintext: Uint8Array; }>; verify(alg: SignatureAlgorithm, opts: VerifyOptions): Awaitable; hash(alg: HashAlgorithm, data: Uint8Array): Awaitable; hmac(alg: HashAlgorithm, key: K, data: Uint8Array): Awaitable; extract(alg: HashAlgorithm, hashLength: number, ikm: Uint8Array, salt: Uint8Array | string): Awaitable; }; export {};