UNPKG

@nfen/webcrypto-ts

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