UNPKG

react-native-quick-crypto

Version:

A fast implementation of Node's `crypto` module written in C/C++ JSI

74 lines (67 loc) 1.79 kB
import type { AESCipher } from './aes'; import type { AsymmetricKeyType, JWK, KeyEncoding, KeyType, KFormatType, KWebCryptoKeyFormat, NamedCurve, } from '../keys'; import type { SignVerify } from './sig'; import type { GenerateSecretKeyMethod, GenerateSecretKeySyncMethod, } from './keygen'; import type { KeyVariant } from './Cipher'; import type { RSACipher } from './rsa'; import type { BinaryLike } from '../Utils'; type KeyDetail = { length?: number; publicExponent?: number; modulusLength?: number; hashAlgorithm?: string; mgf1HashAlgorithm?: string; saltLength?: number; namedCurve?: string; }; type ECExportKey = ( format: KWebCryptoKeyFormat, handle: KeyObjectHandle, ) => ArrayBuffer; type RSAExportKey = ( format: KWebCryptoKeyFormat, handle: KeyObjectHandle, variant: KeyVariant, ) => ArrayBuffer; export type KeyObjectHandle = { export( format?: KFormatType, type?: KeyEncoding, cipher?: string, passphrase?: BinaryLike, ): ArrayBuffer; exportJwk(key: JWK, handleRsaPss: boolean): JWK; getAsymmetricKeyType(): AsymmetricKeyType; init( keyType: KeyType, key: string | ArrayBuffer, format?: KFormatType, type?: KeyEncoding, passphrase?: BinaryLike, ): boolean; initECRaw(curveName: string, keyData: ArrayBuffer): boolean; initJwk(keyData: JWK, namedCurve?: NamedCurve): KeyType | undefined; keyDetail(): KeyDetail; }; type CreateKeyObjectHandle = () => KeyObjectHandle; export type webcrypto = { aesCipher: AESCipher; createKeyObjectHandle: CreateKeyObjectHandle; ecExportKey: ECExportKey; generateSecretKey: GenerateSecretKeyMethod; generateSecretKeySync: GenerateSecretKeySyncMethod; rsaCipher: RSACipher; rsaExportKey: RSAExportKey; signVerify: SignVerify; };