react-native-quick-crypto
Version:
A fast implementation of Node's `crypto` module written in C/C++ JSI
40 lines • 1.8 kB
TypeScript
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;
};
export {};
//# sourceMappingURL=webcrypto.d.ts.map