UNPKG

@nfen/webcrypto-ts

Version:
112 lines 4.31 kB
/** * Code related to AES_CTR mode * @module */ import * as params from "../params.js"; import { AesCtrCryptoKey, AesCtrProxiedCryptoKey } from "./shared.js"; /** @hidden */ export declare const handler: ProxyHandler<AesCtrCryptoKey>; /** * Generates a counter, with the given length, starting from the count of 1. The nonce is randomized. * @see https://developer.mozilla.org/en-US/docs/Web/API/AesCtrParams * @example * ```ts * const counter = await AES_CTR.generateCounter(); * ``` */ export declare function generateCounter(counterLength?: number): Promise<Uint8Array>; /** * Generate a new AES_CTR key * @example * ```ts * const key = await AES_CTR.generateKey(); * ``` */ export declare function generateKey(algorithm?: Omit<params.EnforcedAesKeyGenParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesCtrProxiedCryptoKey>; /** * Import an AES_CTR key from the specified format * @example * ```ts * const key = await AES_CTR.importKey("jwk", jwk, { length: 256 }); * ``` */ export declare function importKey(format: KeyFormat, key: BufferSource | JsonWebKey, algorithm: Omit<params.AesCtrKeyAlgorithm, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesCtrProxiedCryptoKey>; /** * Export an AES_CTR key into the specified format * @example * ```ts * const key = await AES_CTR.generateKey(); * const jwk = await AES_CTR.exportKey("jwk", key.self); * ``` * @example * ```ts * const key = await AES_CTR.generateKey(); * const jwk = await key.exportKey("jwk"); * ``` */ export declare const exportKey: (format: KeyFormat, key: AesCtrCryptoKey) => Promise<ArrayBuffer | JsonWebKey>; /** * Encrypt with an AES_CTR key * @example * ```ts * const key = await AES_CTR.generateKey(); * const message = new TextEncoder().encode("a message"); * const length = 8; * const counter = await AES_CTR.generateCounter(length); * const data = await AES_CTR.encrypt({length, counter}, key.self, message); * ``` * @example * ```ts * const key = await AES_CTR.generateKey(); * const message = new TextEncoder().encode("a message"); * const length = 8; * const counter = await AES_CTR.generateCounter(length); * const data = await key.encrypt({length, counter}, message); * ``` */ export declare function encrypt(algorithm: Omit<params.EnforcedAesCtrParams, "name">, key: AesCtrCryptoKey, data: BufferSource): Promise<ArrayBuffer>; /** * Decrypt with an AES_CTR key * @example * ```ts * const data = await AES_CTR.decrypt({length, counter}, key.self, data); * ``` * @example * ```ts * const data = await key.decrypt({length, counter}, data); * ``` */ export declare function decrypt(algorithm: Omit<params.EnforcedAesCtrParams, "name">, key: AesCtrCryptoKey, data: BufferSource): Promise<ArrayBuffer>; /** * Wrap another key with an AES_CTR key * @example * ```ts * const kek = await AES_CTR.generateKey({length: 256}, true, ['wrapKey', 'unwrapKey']); * const dek = await AES_CTR.generateKey(); * const length = 8; * const counter = await AES_CTR.generateCounter(length); * const wrappedKey = await AES_CTR.wrapKey("raw", dek.self, kek.self, {length, counter}); * ``` * @example * ```ts * const kek = await AES_CTR.generateKey({length: 256}, true, ['wrapKey', 'unwrapKey']); * const dek = await AES_CTR.generateKey(); * const length = 8; * const counter = await AES_CTR.generateCounter(length); * const wrappedKey = await kek.wrapKey("raw", dek.self, {length, counter}); * ``` */ export declare function wrapKey(format: KeyFormat, key: CryptoKey, wrappingkey: AesCtrCryptoKey, wrapAlgorithm: Omit<params.EnforcedAesCtrParams, "name">): Promise<ArrayBuffer>; /** * Unwrap a wrapped key using the key encryption key * @example * ```ts * const dek = await AES_CTR.unwrapKey("raw", wrappedKey, {name: "AES_CTR"}, kek.self, {length, counter}); * ``` * @example * ```ts * const dek = await kek.unwrapKey("raw", wrappedKey, {name: "AES_CTR"}, {length, counter}); * ``` */ export declare function unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKey: AesCtrCryptoKey, unwrappingKeyAlgorithm: Omit<params.EnforcedAesCtrParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; //# sourceMappingURL=aes_ctr.d.ts.map