@nfen/webcrypto-ts
Version:
Enforced Webcrypto wrapper
65 lines • 2.3 kB
TypeScript
/**
* Code related to AES_KW mode
* @module
*/
import * as params from "../params.js";
import { AesKwCryptoKey, AesKwProxiedCryptoKey } from "./shared.js";
/** @hidden */
export declare const handler: ProxyHandler<AesKwCryptoKey>;
/**
* Generate a new AES_KW key
* @example
* ```ts
* const key = await AES_KW.generateKey();
* ```
*/
export declare function generateKey(algorithm?: Omit<params.EnforcedAesKeyGenParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesKwProxiedCryptoKey>;
/**
* Import an AES_KW key from the specified format
* @example
* ```ts
* const key = await AES_KW.importKey("jwk", jwk);
* ```
*/
export declare function importKey(format: KeyFormat, key: BufferSource | JsonWebKey, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesKwProxiedCryptoKey>;
/**
* Export an AES_KW key into the specified format
* @example
* ```ts
* const jwk = await AES_KW.exportKey("jwk", key.self);
* ```
* @example
* ```ts
* const jwk = await key.exportKey("jwk");
* ```
*/
export declare const exportKey: (format: KeyFormat, key: AesKwCryptoKey) => Promise<ArrayBuffer | JsonWebKey>;
/**
* Wrap another key with an AES_KW key
* @example
* ```ts
* const kek = await AES_KW.generateKey({length: 256}, true, ['wrapKey', 'unwrapKey']);
* const dek = await AES_GCM.generateKey();
* const wrappedKey = await AES_KW.wrapKey("raw", dek.self, kek.self);
* ```
* @example
* ```ts
* const kek = await AES_KW.generateKey({length: 256}, true, ['wrapKey', 'unwrapKey']);
* const dek = await AES_GCM.generateKey();
* const wrappedKey = await kek.wrapKey("raw", dek.self);
* ```
*/
export declare function wrapKey(format: KeyFormat, key: CryptoKey, wrappingkey: AesKwCryptoKey): Promise<ArrayBuffer>;
/**
* Unwrap a wrapped key using the key encryption key
* @example
* ```ts
* const dek = await AES_KW.unwrapKey("raw", wrappedKey, {name: "AES_GCM"}, kek.self);
* ```
* @example
* ```ts
* const dek = await kek.unwrapKey("raw", wrappedKey, {name: "AES_GCM"});
* ```
*/
export declare function unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKey: AesKwCryptoKey, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>;
//# sourceMappingURL=aes_kw.d.ts.map