UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

43 lines • 1.8 kB
export type DigestAlgorithm = 'MD5' | 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512'; export type DigestEncoding = 'hex' | 'base64'; export interface DigestStringOptions { encoding?: DigestEncoding; } /** string input to the AES api is base64, as in expo-crypto */ export type BinaryInput = string | Uint8Array | ArrayBuffer; export type AESKeySize = 128 | 192 | 256; export type GCMNonceParam = { length?: number; } | { bytes: BinaryInput; }; export interface AESEncryptOptions { additionalData?: BinaryInput; nonce?: GCMNonceParam; /** * authentication tag length in bytes: 16, 15, 14, 13, 12, 8 or 4. on apple * platforms the tag is always 16 bytes, as in expo-crypto. */ tagLength?: number; } export interface AESDecryptOptions { additionalData?: BinaryInput; output?: 'base64' | 'bytes'; } export interface AESSealedDataConfig { ivLength?: number; tagLength?: number; } export interface Crypto { /** digest of bytes, as an ArrayBuffer */ digest(algorithm: DigestAlgorithm, data: BufferSource): Promise<ArrayBuffer>; /** digest of a utf-8 string, hex by default */ digestString(algorithm: DigestAlgorithm, data: string, options?: DigestStringOptions): Promise<string>; aesEncrypt(plaintext: BinaryInput, key: import('./aes').AESEncryptionKey, options?: AESEncryptOptions): Promise<import('./aes').AESSealedData>; aesDecrypt(sealedData: import('./aes').AESSealedData, key: import('./aes').AESEncryptionKey, options: AESDecryptOptions & { output: 'base64'; }): Promise<string>; aesDecrypt(sealedData: import('./aes').AESSealedData, key: import('./aes').AESEncryptionKey, options?: AESDecryptOptions): Promise<Uint8Array<ArrayBuffer>>; } export type CryptoApi = Crypto; //# sourceMappingURL=types.d.ts.map