libmodulor
Version:
A TypeScript library to create platform-agnostic applications
21 lines (20 loc) • 1.52 kB
TypeScript
import type { Password, UIntQuantity, UUID } from '../dt/index.js';
import type { Clearable } from '../utils/index.js';
import type { BufferManagerBase64String } from './BufferManager.js';
export type CryptoManagerBinaryToTextEncoding = 'base64' | 'base64url' | 'hex';
export type CryptoManagerHash = string;
export type CryptoManagerHashAlgorithm = 'sha1' | 'sha256' | 'sha512';
export type CryptoManagerHMACKey = string;
export type CryptoManagerHMACKeyEncoding = 'hex' | 'utf-8';
export type CryptoManagerRandomString = string;
export type CryptoManagerSalt = string;
export type CryptoManagerSaltedScrypt = string;
export interface CryptoManager extends Clearable {
hash(algorithm: CryptoManagerHashAlgorithm, base: string, binaryToTextEncoding: CryptoManagerBinaryToTextEncoding): CryptoManagerHash;
hmacToBase64(algorithm: CryptoManagerHashAlgorithm, base: string, key: CryptoManagerHMACKey, keyEncoding: CryptoManagerHMACKeyEncoding): BufferManagerBase64String;
hmacToHex(algorithm: CryptoManagerHashAlgorithm, base: string, key: CryptoManagerHash, keyEncoding: CryptoManagerHMACKeyEncoding): CryptoManagerHash;
pbkdf2(password: Password, salt: CryptoManagerSalt, iterationsCount: UIntQuantity, keyLength: UIntQuantity, digest: CryptoManagerHashAlgorithm): Promise<Uint8Array>;
randomString(length: UIntQuantity): Promise<CryptoManagerRandomString>;
randomUUID(): UUID;
scrypt(password: Password, salt: CryptoManagerSalt, keyLength: UIntQuantity): Promise<CryptoManagerSaltedScrypt>;
}