@nfen/webcrypto-ts
Version:
Enforced Webcrypto wrapper
38 lines • 2.41 kB
TypeScript
/**
* 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