UNPKG

@nfen/webcrypto-ts

Version:
38 lines 2.41 kB
/** * Shared code for KDF * @module */ import type { AesCryptoKeys } from "../aes/index.js"; import { AesProxiedCryptoKeys } from "../aes/shared.js"; import { HmacCryptoKey, HmacProxiedCryptoKey } from "../hmac/index.js"; import * as params from "../params.js"; import * as proxy from "../proxy.js"; export interface Pbkdf2KeyMaterial extends CryptoKey { _pbkdf2KeyMaterialBrand: any; } export interface HkdfKeyMaterial extends CryptoKey { _kkdfKeyMaterialBrand: any; } export declare namespace Alg { enum Variant { PBKDF2 = "PBKDF2", HKDF = "HKDF" } type Variants = `${Variant}`; } export declare namespace KdfShared { function generateKeyMaterial<K extends CryptoKey>(format: KeyFormat, key: BufferSource, algorithm: Alg.Variants, extractable?: boolean): Promise<K>; function deriveKey(algorithm: params.EnforcedPbkdf2Params | params.EnforcedHkdfParams, baseKey: Pbkdf2KeyMaterial | HkdfKeyMaterial, derivedKeyType: params.EnforcedAesKeyGenParams | params.EnforcedHmacKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesCryptoKeys | HmacCryptoKey>; function deriveBits(algorithm: params.EnforcedPbkdf2Params | params.EnforcedHkdfParams, baseKey: Pbkdf2KeyMaterial | HkdfKeyMaterial, length: number): Promise<ArrayBuffer>; } export interface HkdfProxiedKeyMaterial extends proxy.ProxiedCryptoKey<HkdfKeyMaterial> { deriveKey(algorithm: Omit<params.EnforcedHkdfParams, "name">, derivedKeyType: params.EnforcedAesKeyGenParams | params.EnforcedHmacKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesProxiedCryptoKeys | HmacProxiedCryptoKey>; deriveBits(algorithm: Omit<params.EnforcedHkdfParams, "name">, length: number): Promise<ArrayBuffer>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface Pbkdf2ProxiedKeyMaterial extends proxy.ProxiedCryptoKey<Pbkdf2KeyMaterial> { deriveKey(algorithm: Omit<params.EnforcedPbkdf2Params, "name" | "iterations">, derivedKeyType: params.EnforcedAesKeyGenParams | params.EnforcedHmacKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<AesProxiedCryptoKeys | HmacProxiedCryptoKey>; deriveBits(algorithm: Omit<params.EnforcedPbkdf2Params, "name" | "iterations">, length: number): Promise<ArrayBuffer>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } //# sourceMappingURL=shared.d.ts.map