import { DecryptParameters } from "../models/domain/decrypt-parameters"; import { SymmetricCryptoKey } from "../models/domain/symmetric-crypto-key"; export abstract class CryptoFunctionService { pbkdf2: ( password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: "sha256" | "sha512", iterations: number ) => Promise; argon2: ( password: string | ArrayBuffer, salt: string | ArrayBuffer, iterations: number, memory: number, parallelism: number ) => Promise; hkdf: ( ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number, algorithm: "sha256" | "sha512" ) => Promise; hkdfExpand: ( prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number, algorithm: "sha256" | "sha512" ) => Promise; hash: ( value: string | ArrayBuffer, algorithm: "sha1" | "sha256" | "sha512" | "md5" ) => Promise; hmac: ( value: ArrayBuffer, key: ArrayBuffer, algorithm: "sha1" | "sha256" | "sha512" ) => Promise; compare: (a: ArrayBuffer, b: ArrayBuffer) => Promise; hmacFast: ( value: ArrayBuffer | string, key: ArrayBuffer | string, algorithm: "sha1" | "sha256" | "sha512" ) => Promise; compareFast: (a: ArrayBuffer | string, b: ArrayBuffer | string) => Promise; aesEncrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise; aesDecryptFastParameters: ( data: string, iv: string, mac: string, key: SymmetricCryptoKey ) => DecryptParameters; aesDecryptFast: (parameters: DecryptParameters) => Promise; aesDecrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise; rsaEncrypt: ( data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: "sha1" | "sha256" ) => Promise; rsaDecrypt: ( data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: "sha1" | "sha256" ) => Promise; rsaExtractPublicKey: (privateKey: ArrayBuffer) => Promise; rsaGenerateKeyPair: (length: 1024 | 2048 | 4096) => Promise<[ArrayBuffer, ArrayBuffer]>; randomBytes: (length: number) => Promise; }