UNPKG

@nfen/webcrypto-ts

Version:
65 lines 4.86 kB
/** * Shared code for AES * @module */ import * as params from "../params.js"; import * as proxy from "../proxy.js"; export interface AesGcmCryptoKey extends CryptoKey { _aesGcmKeyBrand: any; } export interface AesKwCryptoKey extends CryptoKey { _aesKwKeyBrand: any; } export interface AesCtrCryptoKey extends CryptoKey { _aesCtrKeyBrand: any; } export interface AesCbcCryptoKey extends CryptoKey { _aesCbcKeyBrand: any; } export declare type AesCryptoKeys = AesCbcCryptoKey | AesKwCryptoKey | AesGcmCryptoKey | AesCtrCryptoKey; export declare namespace Alg { enum Mode { AES_CBC = "AES-CBC", AES_CTR = "AES-CTR", AES_GCM = "AES-GCM", AES_KW = "AES-KW" } type Modes = `${Mode}`; } export declare namespace AesShared { function generateKey<T extends CryptoKey>(algorithm: params.EnforcedAesKeyGenParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<T>; function importKey<T extends CryptoKey>(format: KeyFormat, key: BufferSource | JsonWebKey, algorithm: params.EnforcedAesKeyAlgorithms, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<T>; function exportKey<T extends CryptoKey>(format: KeyFormat, key: T): Promise<JsonWebKey | ArrayBuffer>; function encrypt<T extends CryptoKey>(algorithm: Exclude<params.EnforcedAesParams, params.EnforcedAesKwParams>, key: T, data: BufferSource): Promise<ArrayBuffer>; function decrypt<T extends CryptoKey>(algorithm: Exclude<params.EnforcedAesParams, params.EnforcedAesKwParams>, key: T, data: BufferSource): Promise<ArrayBuffer>; function wrapKey<T extends CryptoKey>(format: KeyFormat, key: CryptoKey, wrappingkey: T, wrapAlgorithm: params.EnforcedAesParams): Promise<ArrayBuffer>; function unwrapKey<T extends CryptoKey>(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKey: T, unwrappingKeyAlgorithm: params.EnforcedAesParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; } export interface AesCbcProxiedCryptoKey extends proxy.ProxiedCryptoKey<AesCbcCryptoKey> { encrypt(algorithm: Omit<params.EnforcedAesCbcParams, "name">, data: BufferSource): Promise<ArrayBuffer>; decrypt(algorithm: Omit<params.EnforcedAesCbcParams, "name">, data: BufferSource): Promise<ArrayBuffer>; wrapKey(format: KeyFormat, key: CryptoKey, wrapAlgorithm: Omit<params.EnforcedAesCbcParams, "name">): Promise<ArrayBuffer>; unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKeyAlgorithm: Omit<params.EnforcedAesCbcParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface AesCtrProxiedCryptoKey extends proxy.ProxiedCryptoKey<AesCtrCryptoKey> { encrypt(algorithm: Omit<params.EnforcedAesCtrParams, "name">, data: BufferSource): Promise<ArrayBuffer>; decrypt(algorithm: Omit<params.EnforcedAesCtrParams, "name">, data: BufferSource): Promise<ArrayBuffer>; wrapKey(format: KeyFormat, key: CryptoKey, wrapAlgorithm: Omit<params.EnforcedAesCtrParams, "name">): Promise<ArrayBuffer>; unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKeyAlgorithm: Omit<params.EnforcedAesCtrParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface AesGcmProxiedCryptoKey extends proxy.ProxiedCryptoKey<AesGcmCryptoKey> { encrypt(algorithm: Omit<params.EnforcedAesGcmParams, "name">, data: BufferSource): Promise<ArrayBuffer>; decrypt(algorithm: Omit<params.EnforcedAesGcmParams, "name">, data: BufferSource): Promise<ArrayBuffer>; wrapKey(format: KeyFormat, key: CryptoKey, wrapAlgorithm: Omit<params.EnforcedAesGcmParams, "name">): Promise<ArrayBuffer>; unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, unwrappingKeyAlgorithm: Omit<params.EnforcedAesGcmParams, "name">, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export interface AesKwProxiedCryptoKey extends proxy.ProxiedCryptoKey<AesKwCryptoKey> { wrapKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer>; unwrapKey(format: KeyFormat, wrappedKey: BufferSource, wrappedKeyAlgorithm: params.EnforcedImportParams, extractable?: boolean, keyUsages?: KeyUsage[]): Promise<CryptoKey>; exportKey: (format: KeyFormat) => Promise<JsonWebKey | ArrayBuffer>; } export declare type AesProxiedCryptoKeys = AesCbcProxiedCryptoKey | AesKwProxiedCryptoKey | AesGcmProxiedCryptoKey | AesCtrProxiedCryptoKey; //# sourceMappingURL=shared.d.ts.map