UNPKG

libsilver-nodejs

Version:

Cross-platform cryptography library for Node.js with post-quantum algorithms - built with RustCrypto

268 lines (265 loc) 11.4 kB
/* tslint:disable */ /* eslint-disable */ /* auto-generated by NAPI-RS */ /** RSA Key Pair for JavaScript */ export interface RsaKeyPairJs { publicKeyPem: string privateKeyPem: string } /** Ed25519 Key Pair for JavaScript */ export interface Ed25519KeyPairJs { signingKeyBytes: Buffer verifyingKeyBytes: Buffer } /** ECDSA Key Pair for JavaScript */ export interface EcdsaKeyPairJs { signingKeyBytes: Buffer verifyingKeyBytes: Buffer } /** ML-KEM-512 Key Pair for JavaScript */ export interface MlKem512KeyPairJs { publicKeyBytes: Buffer privateKeyBytes: Buffer } /** ML-KEM-768 Key Pair for JavaScript */ export interface MlKem768KeyPairJs { publicKeyBytes: Buffer privateKeyBytes: Buffer } /** ML-KEM-1024 Key Pair for JavaScript */ export interface MlKem1024KeyPairJs { publicKeyBytes: Buffer privateKeyBytes: Buffer } /** ML-DSA-44 Key Pair for JavaScript */ export interface MlDsa44KeyPairJs { publicKeyBytes: Buffer privateKeyBytes: Buffer } /** ML-DSA-65 Key Pair for JavaScript */ export interface MlDsa65KeyPairJs { publicKeyBytes: Buffer privateKeyBytes: Buffer } /** ML-DSA-87 Key Pair for JavaScript */ export interface MlDsa87KeyPairJs { publicKeyBytes: Buffer privateKeyBytes: Buffer } /** ML-KEM-512 Encapsulation result for JavaScript */ export interface MlKem512EncapsulationJs { ciphertext: Buffer sharedSecret: Buffer } /** ML-KEM-768 Encapsulation result for JavaScript */ export interface MlKem768EncapsulationJs { ciphertext: Buffer sharedSecret: Buffer } /** ML-KEM-1024 Encapsulation result for JavaScript */ export interface MlKem1024EncapsulationJs { ciphertext: Buffer sharedSecret: Buffer } /** ML-KEM Size Constants for JavaScript */ export interface MlKemSizesJs { publicKeySize: number privateKeySize: number ciphertextSize: number sharedSecretSize: number } /** ML-DSA Size Constants for JavaScript */ export interface MlDsaSizesJs { publicKeySize: number privateKeySize: number maxSignatureSize: number } /** Symmetric Encryption Module (Default: AWS-LC-RS AES-256-GCM) */ export declare class SymmetricCrypto { /** Generate AES-256 key (uses AWS-LC-RS by default) */ static generateAesKey(): Buffer /** Encrypt data using AES-256-GCM (uses AWS-LC-RS by default) */ static encryptAes(plaintext: Buffer, key: Buffer): Buffer /** Decrypt data using AES-256-GCM (uses AWS-LC-RS by default) */ static decryptAes(ciphertext: Buffer, key: Buffer): Buffer /** Encrypt data with Additional Authenticated Data (AAD) using AES-256-GCM (uses AWS-LC-RS by default) */ static encryptAesWithAad(plaintext: Buffer, key: Buffer, aad: Buffer): Buffer /** Decrypt data with Additional Authenticated Data (AAD) using AES-256-GCM (uses AWS-LC-RS by default) */ static decryptAesWithAad(ciphertext: Buffer, key: Buffer, aad: Buffer): Buffer /** Encrypt data with provided nonce using AES-256-GCM (uses AWS-LC-RS by default, for testing purposes) */ static encryptAesWithNonce(plaintext: Buffer, key: Buffer, nonce: Buffer): Buffer /** Generate ChaCha20-Poly1305 key */ static generateChacha20Key(): Buffer /** Encrypt data using ChaCha20-Poly1305 */ static encryptChacha20(plaintext: Buffer, key: Buffer): Buffer /** Decrypt data using ChaCha20-Poly1305 */ static decryptChacha20(ciphertext: Buffer, key: Buffer): Buffer } /** AWS-LC-RS AES Symmetric Encryption Module */ export declare class AwsLcAesCrypto { /** Generate AES-256 key using AWS-LC-RS */ static generateKey(): Buffer /** Encrypt data using AWS-LC-RS AES-256-GCM */ static encrypt(plaintext: Buffer, key: Buffer): Buffer /** Decrypt data using AWS-LC-RS AES-256-GCM */ static decrypt(ciphertext: Buffer, key: Buffer): Buffer /** Encrypt data with Additional Authenticated Data (AAD) using AWS-LC-RS AES-256-GCM */ static encryptWithAad(plaintext: Buffer, key: Buffer, aad: Buffer): Buffer /** Decrypt data with Additional Authenticated Data (AAD) using AWS-LC-RS AES-256-GCM */ static decryptWithAad(ciphertext: Buffer, key: Buffer, aad: Buffer): Buffer /** Encrypt data with provided nonce using AWS-LC-RS AES-256-GCM (for testing purposes) */ static encryptWithNonce(plaintext: Buffer, key: Buffer, nonce: Buffer): Buffer } /** RustCrypto AES Symmetric Encryption Module */ export declare class RustCryptoAesCrypto { /** Generate AES-256 key using RustCrypto */ static generateKey(): Buffer /** Encrypt data using RustCrypto AES-256-GCM */ static encrypt(plaintext: Buffer, key: Buffer): Buffer /** Decrypt data using RustCrypto AES-256-GCM */ static decrypt(ciphertext: Buffer, key: Buffer): Buffer /** Encrypt data with Additional Authenticated Data (AAD) using RustCrypto AES-256-GCM */ static encryptWithAad(plaintext: Buffer, key: Buffer, aad: Buffer): Buffer /** Decrypt data with Additional Authenticated Data (AAD) using RustCrypto AES-256-GCM */ static decryptWithAad(ciphertext: Buffer, key: Buffer, aad: Buffer): Buffer /** Encrypt data with provided nonce using RustCrypto AES-256-GCM (for testing purposes) */ static encryptWithNonce(plaintext: Buffer, key: Buffer, nonce: Buffer): Buffer } /** Asymmetric Encryption Module */ export declare class AsymmetricCrypto { /** Generate RSA-2048 key pair */ static generateRsaKeypair(): RsaKeyPairJs /** Generate RSA key pair with custom bit size */ static generateRsaKeypairWithSize(bits: number): RsaKeyPairJs /** Encrypt data using RSA-OAEP */ static encryptRsa(plaintext: Buffer, publicKeyPem: string): Buffer /** Decrypt data using RSA-OAEP */ static decryptRsa(ciphertext: Buffer, privateKeyPem: string): Buffer /** Generate Ed25519 key pair */ static generateEd25519Keypair(): Ed25519KeyPairJs /** Sign data using Ed25519 */ static signEd25519(message: Buffer, signingKeyBytes: Buffer): Buffer /** Verify Ed25519 signature */ static verifyEd25519(message: Buffer, signature: Buffer, verifyingKeyBytes: Buffer): boolean /** Generate ECDSA P-256 key pair */ static generateEcdsaKeypair(): EcdsaKeyPairJs /** Sign data using ECDSA P-256 */ static signEcdsa(message: Buffer, signingKeyBytes: Buffer): Buffer /** Verify ECDSA P-256 signature */ static verifyEcdsa(message: Buffer, signature: Buffer, verifyingKeyBytes: Buffer): boolean } /** Hash Functions Module */ export declare class HashFunctions { /** Compute SHA-256 hash */ static sha256(data: Buffer): Buffer /** Compute SHA-256 hash and return as hex string */ static sha256Hex(data: Buffer): string /** Compute SHA-512 hash */ static sha512(data: Buffer): Buffer /** Compute SHA-512 hash and return as hex string */ static sha512Hex(data: Buffer): string /** Compute BLAKE3 hash */ static blake3(data: Buffer): Buffer /** Compute BLAKE3 hash and return as hex string */ static blake3Hex(data: Buffer): string /** Compute BLAKE3 hash with custom length */ static blake3WithLength(data: Buffer, length: number): Buffer /** Compute HMAC-SHA256 */ static hmacSha256(key: Buffer, message: Buffer): Buffer /** Verify HMAC-SHA256 */ static verifyHmacSha256(key: Buffer, message: Buffer, expectedMac: Buffer): boolean /** Compute HMAC-SHA512 */ static hmacSha512(key: Buffer, message: Buffer): Buffer /** Verify HMAC-SHA512 */ static verifyHmacSha512(key: Buffer, message: Buffer, expectedMac: Buffer): boolean } /** Key Derivation Functions Module */ export declare class KeyDerivation { /** Derive key using Argon2 */ static argon2(password: Buffer, salt: Buffer, length: number): Buffer /** Derive key using PBKDF2-SHA256 */ static pbkdf2Sha256(password: Buffer, salt: Buffer, iterations: number, length: number): Buffer /** Derive key using PBKDF2-SHA512 */ static pbkdf2Sha512(password: Buffer, salt: Buffer, iterations: number, length: number): Buffer /** Derive key using HKDF-SHA256 */ static hkdfSha256(inputKey: Buffer, salt: Buffer | undefined | null, info: Buffer | undefined | null, length: number): Buffer /** Derive key using HKDF-SHA512 */ static hkdfSha512(inputKey: Buffer, salt: Buffer | undefined | null, info: Buffer | undefined | null, length: number): Buffer } /** Random Generation Module */ export declare class RandomGenerator { /** Generate secure random bytes */ static generateBytes(length: number): Buffer /** Generate secure random key */ static generateKey(length: number): Buffer /** Generate nonce */ static generateNonce(length: number): Buffer /** Generate salt */ static generateSalt(): Buffer } /** ML-KEM-512 Post-Quantum Cryptography Module */ export declare class MlKem512Crypto { /** Generate ML-KEM-512 key pair */ static generateKeypair(): MlKem512KeyPairJs /** Encapsulate shared secret using ML-KEM-512 */ static encapsulate(publicKeyBytes: Buffer): MlKem512EncapsulationJs /** Decapsulate shared secret using ML-KEM-512 */ static decapsulate(ciphertext: Buffer, privateKeyBytes: Buffer): Buffer /** Get ML-KEM-512 size constants */ static getSizes(): MlKemSizesJs } /** ML-KEM-768 Post-Quantum Cryptography Module */ export declare class MlKem768Crypto { /** Generate ML-KEM-768 key pair */ static generateKeypair(): MlKem768KeyPairJs /** Encapsulate shared secret using ML-KEM-768 */ static encapsulate(publicKeyBytes: Buffer): MlKem768EncapsulationJs /** Decapsulate shared secret using ML-KEM-768 */ static decapsulate(ciphertext: Buffer, privateKeyBytes: Buffer): Buffer /** Get ML-KEM-768 size constants */ static getSizes(): MlKemSizesJs } /** ML-KEM-1024 Post-Quantum Cryptography Module */ export declare class MlKem1024Crypto { /** Generate ML-KEM-1024 key pair */ static generateKeypair(): MlKem1024KeyPairJs /** Encapsulate shared secret using ML-KEM-1024 */ static encapsulate(publicKeyBytes: Buffer): MlKem1024EncapsulationJs /** Decapsulate shared secret using ML-KEM-1024 */ static decapsulate(ciphertext: Buffer, privateKeyBytes: Buffer): Buffer /** Get ML-KEM-1024 size constants */ static getSizes(): MlKemSizesJs } /** ML-DSA-44 Post-Quantum Digital Signature Module */ export declare class MlDsa44Crypto { /** Generate ML-DSA-44 key pair */ static generateKeypair(): MlDsa44KeyPairJs /** Sign message using ML-DSA-44 */ static sign(message: Buffer, privateKeyBytes: Buffer): Buffer /** Verify ML-DSA-44 signature */ static verify(message: Buffer, signature: Buffer, publicKeyBytes: Buffer): boolean /** Get ML-DSA-44 size constants */ static getSizes(): MlDsaSizesJs } /** ML-DSA-65 Post-Quantum Digital Signature Module */ export declare class MlDsa65Crypto { /** Generate ML-DSA-65 key pair */ static generateKeypair(): MlDsa65KeyPairJs /** Sign message using ML-DSA-65 */ static sign(message: Buffer, privateKeyBytes: Buffer): Buffer /** Verify ML-DSA-65 signature */ static verify(message: Buffer, signature: Buffer, publicKeyBytes: Buffer): boolean /** Get ML-DSA-65 size constants */ static getSizes(): MlDsaSizesJs } /** ML-DSA-87 Post-Quantum Digital Signature Module */ export declare class MlDsa87Crypto { /** Generate ML-DSA-87 key pair */ static generateKeypair(): MlDsa87KeyPairJs /** Sign message using ML-DSA-87 */ static sign(message: Buffer, privateKeyBytes: Buffer): Buffer /** Verify ML-DSA-87 signature */ static verify(message: Buffer, signature: Buffer, publicKeyBytes: Buffer): boolean /** Get ML-DSA-87 size constants */ static getSizes(): MlDsaSizesJs }