import { RSAUtils } from './RSA'; import { AESUtils } from './AES'; import { ShamirClass } from './shamir'; import { HMACUtils } from './HMACUtils'; export interface CryptoPrimitives { readonly shamir: ShamirClass; readonly RSA: RSAUtils; readonly AES: AESUtils; readonly HMAC: HMACUtils; /** * Generates a UUID using a cryptographically secure random number generator. */ randomUuid(): string; /** * @param data some data * @return the sha256 hash of {@link data} */ sha256(data: ArrayBuffer | Uint8Array): Promise; sha512(data: ArrayBuffer | Uint8Array): Promise; /** * @param n how many bytes to generate * @return an array with n random bytes */ randomBytes(n: number): Uint8Array; } /** * Gives access to cryptographic primitives. */ export declare class WebCryptoPrimitives implements CryptoPrimitives { private readonly _rsa; private readonly _aes; private readonly _shamir; private readonly _crypto; private readonly _hmac; get crypto(): Crypto; get shamir(): ShamirClass; get RSA(): RSAUtils; get AES(): AESUtils; get HMAC(): HMACUtils; constructor(crypto?: Crypto); randomUuid(): string; sha256(data: ArrayBuffer | Uint8Array): Promise; sha512(data: ArrayBuffer | Uint8Array): Promise; randomBytes(n: number): Uint8Array; }