UNPKG

react-native-quick-crypto

Version:

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

83 lines (77 loc) 2.44 kB
import type { HybridObject } from 'react-native-nitro-modules'; import type { KeyObjectHandle } from './keyObjectHandle.nitro'; export interface RsaCipher extends HybridObject<{ ios: 'c++'; android: 'c++' }> { /** * Encrypt data using RSA with specified padding * @param keyHandle The public key handle * @param data The data to encrypt * @param padding RSA padding mode (1=PKCS1, 4=OAEP) * @param hashAlgorithm The hash algorithm for OAEP (e.g., 'SHA-256') * @param label Optional label for OAEP * @returns Encrypted data */ encrypt( keyHandle: KeyObjectHandle, data: ArrayBuffer, padding: number, hashAlgorithm: string, label?: ArrayBuffer, ): ArrayBuffer; /** * Decrypt data using RSA with specified padding * @param keyHandle The private key handle * @param data The data to decrypt * @param padding RSA padding mode (1=PKCS1, 4=OAEP) * @param hashAlgorithm The hash algorithm for OAEP (e.g., 'SHA-256') * @param label Optional label for OAEP * @returns Decrypted data */ decrypt( keyHandle: KeyObjectHandle, data: ArrayBuffer, padding: number, hashAlgorithm: string, label?: ArrayBuffer, ): ArrayBuffer; /** * Decrypt data using public key (inverse of privateEncrypt, for signature verification) * @param keyHandle The public key handle * @param data The data to decrypt * @param padding RSA padding mode (1=PKCS1) * @returns Decrypted data */ publicDecrypt( keyHandle: KeyObjectHandle, data: ArrayBuffer, padding: number, ): ArrayBuffer; /** * Encrypt data using private key (for signatures) * @param keyHandle The private key handle * @param data The data to encrypt * @param padding RSA padding mode (1=PKCS1) * @returns Encrypted data */ privateEncrypt( keyHandle: KeyObjectHandle, data: ArrayBuffer, padding: number, ): ArrayBuffer; /** * Decrypt data using private key (inverse of publicEncrypt) * @param keyHandle The private key handle * @param data The data to decrypt * @param padding RSA padding mode (1=PKCS1, 4=OAEP) * @param hashAlgorithm The hash algorithm for OAEP (e.g., 'SHA-256') * @param label Optional label for OAEP * @returns Decrypted data */ privateDecrypt( keyHandle: KeyObjectHandle, data: ArrayBuffer, padding: number, hashAlgorithm: string, label?: ArrayBuffer, ): ArrayBuffer; }