UNPKG

@nfen/webcrypto-ts

Version:
101 lines 3.79 kB
/** * Code related to AES_GCM mode * @module */ import * as params from "../params.js"; import { AesGcmCryptoKey, AesGcmProxiedCryptoKey } from "./shared.js"; /** @hidden */ export declare const handler: ProxyHandler<AesGcmCryptoKey>; /** * Generate a new AES_GCM key * @example * ```ts * const key = await AES_GCM.generateKey(); * ``` */ export declare function generateKey(algorithm?: Omit<params.EnforcedAesKeyGenParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesGcmProxiedCryptoKey>; /** * Import an AES_GCM key from the specified format * @example * ```ts * const key = await AES_GCM.importKey("jwk", jwk, { length: 256 }); * ``` */ export declare function importKey(format: KeyFormat, key: BufferSource | JsonWebKey, algorithm: Omit<params.AesGcmKeyAlgorithm, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesGcmProxiedCryptoKey>; /** * Export an AES_GCM key into the specified format * @example * ```ts * const key = await AES_GCM.generateKey(); * const jwk = await AES_GCM.exportKey("jwk", key.self); * ``` * @example * ```ts * const key = await AES_GCM.generateKey(); * const jwk = await key.exportKey("jwk"); * ``` */ export declare const exportKey: (format: KeyFormat, key: AesGcmCryptoKey) => Promise<ArrayBuffer | JsonWebKey>; /** * Encrypt with an AES_GCM key * @example * ```ts * const iv = await Random.IV.generate(); * const key = await AES_GCM.generateKey(); * const message = new TextEncoder().encode("a message"); * const data = await AES_GCM.encrypt({iv}, key.self, message); * ``` * @example * ```ts * const iv = await Random.IV.generate(); * const key = await AES_GCM.generateKey(); * const message = new TextEncoder().encode("a message"); * const data = await key.encrypt({iv}, message); * ``` */ export declare function encrypt(algorithm: Omit<params.EnforcedAesGcmParams, "name">, key: AesGcmCryptoKey, data: BufferSource): Promise<ArrayBuffer>; /** * Decrypt with an AES_GCM key * @example * ```ts * const key = await AES_GCM.generateKey(); * const data = await AES_GCM.decrypt({iv}, key.self, data); * ``` * @example * ```ts * const key = await AES_GCM.generateKey(); * const data = await key.decrypt({iv}, data); * ``` */ export declare function decrypt(algorithm: Omit<params.EnforcedAesGcmParams, "name">, key: AesGcmCryptoKey, data: BufferSource): Promise<ArrayBuffer>; /** * Wrap another key with an AES_GCM key * @example * ```ts * const iv = await Random.IV.generate(); * const kek = await AES_GCM.generateKey({length: 256}, true, ['wrapKey', 'unwrapKey']); * const dek = await AES_GCM.generateKey(); * const wrappedKey = await AES_GCM.wrapKey("raw", dek.self, kek.self, {iv}); * ``` * @example * ```ts * const iv = await Random.IV.generate(); * const kek = await AES_GCM.generateKey({length: 256}, true, ['wrapKey', 'unwrapKey']); * const dek = await AES_GCM.generateKey(); * const wrappedKey = await kek.wrapKey("raw", dek.self, {iv}); * ``` */ export declare function wrapKey(format: KeyFormat, key: CryptoKey, wrappingkey: AesGcmCryptoKey, wrapAlgorithm: Omit<params.EnforcedAesGcmParams, "name">): Promise<ArrayBuffer>; /** * Unwrap a wrapped key using the key encryption key * @example * ```ts * const dek = await AES_GCM.unwrapKey("raw", wrappedKey, {name: "AES_GCM"}, kek, {iv}); * ``` * @example * ```ts * const dek = await kek.unwrapKey("raw", wrappedKey, {name: "AES_GCM"}, {iv}); * ``` */ export declare function unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKey: AesGcmCryptoKey, unwrappingKeyAlgorithm: Omit<params.EnforcedAesGcmParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; //# sourceMappingURL=aes_gcm.d.ts.map