libsilver-nodejs
Version:
Cross-platform cryptography library for Node.js with post-quantum algorithms - built with RustCrypto
268 lines (265 loc) • 11.4 kB
TypeScript
/* 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
}