
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
hsynchronous
Advanced tools
Hybrid synchronous encryption protocol using NIST approved post-quantum algorithms.
Hybrid synchronous encryption protocol using NIST approved post-quantum algorithms.
import { encrypt, decrypt, generateKeys } from "./src";
const key = generateKeys();
const message = "The quick brown fox jumps over the lazy dog";
const encrypted = await encrypt(message, key);
const decrypted = await decrypt(encrypted, key);
console.log(decrypted)
// {
// message: "The quick brown fox jumps over the lazy dog",
// createdAt: 2025-06-30T15:14:33.663Z,
// decryptedAt: 2025-06-30T15:14:33.719Z,
// nonce: "3e4bc82b144728126bb0145d678f7a3153..."
// }
| Component | Algorithm/Strength | Security Level | Notes |
|---|---|---|---|
| Key Encapsulation (KEM) | ML-KEM-1024 (Kyber) | NIST Level 3 (PQC Standard) | Post-quantum secure, IND-CCA2 |
| Digital Signature | Falcon-1024 | NIST Level 3 (PQC Standard) | Post-quantum secure, EUF-CMA |
| Symmetric Encryption | AES-256-GCM | 256-bit (NIST-approved) | Quantum-resistant key size, provides confidentiality + integrity |
| Key Derivation | HKDF-SHA256 | 256-bit (NIST SP 800-56C) | Proper key separation with context binding |
| Random Number Generation | crypto.randomBytes() | Cryptographically secure (CSPRNG) | Uses OS entropy source |
| Attack Type | Protection Mechanism | Additional Notes |
|---|---|---|
| Quantum computing | ML-KEM-1024 (IND-CCA2) + Falcon-1024 (EUF-CMA) | Full PQC resistance |
| MITM attacks | Falcon-1024 signatures + protocol binding | Non-repudiation |
| Key compromise | Ephemeral KEM keys (per message) + HKDF with unique salts | No long-term key reuse |
| Replay attacks | 64-byte random salts + 12-byte IVs (2¹²⁸ uniqueness) | Statistically negligible collision risk |
| CRIME/BREACH | No compression (removed in v2) + encryption before any encoding | Mitigates compression oracles |
| Key derivation attacks | HKDF-SHA256 with protocol-specific info binding | Prevents cross-context reuse |
| Timing attacks | timingSafeEqual + constant-time HMAC (padded inputs) | Resists timing leaks |
| Memory scraping | Explicit secureZero for sensitive buffers | Prevents cold-boot attacks |
| Error oracles | Unified error paths (generic "decryption failed" messages) | Hides cryptographic faults |
| Side-channel leaks | Minimum processing time (MIN_PROCESSING_TIME) | Obscures operation timing |
| Metadata leakage | Fixed block padding (1024-byte chunks) | Hides true message size |
clk: ~2.51 GHz
cpu: 13th Gen Intel(R) Core(TM) i5-13420H
runtime: node 22.13.1 (x64-win32)
benchmark avg (min … max) p75 / p99
------------------------------------------- ---------
GenKeys 47.33 ms/iter 53.51 ms
(35.52 ms … 64.85 ms) 58.01 ms
( 2.71 kb … 20.49 kb) 4.53 kb
Encrypt 13.08 ms/iter 14.28 ms
(9.73 ms … 25.82 ms) 24.94 ms
( 23.41 kb … 39.29 kb) 24.86 kb
Decrypt 622.42 µs/iter 878.20 µs
(259.30 µs … 2.62 ms) 1.87 ms
(472.00 b … 493.76 kb) 16.20 kb
await generateKeys(KEM_ALGORITHM*, SIG_ALGORITHM*)Asynchronously generates a pair of cryptographic keys for Key Encapsulation Mechanism (KEM) and digital signatures using post-quantum algorithms (default: ML-KEM-1024 and Falcon-1024).
param string [KEM_ALGORITHM='ml-kem-1024'] - KEM algorithm identifier (e.g., 'ml-kem-1024', 'kyber-768').
param string [SIG_ALGORITHM='falcon-1024'] - Digital signature algorithm identifier (e.g., 'falcon-1024', 'dilithium-3').
returns Promise<{ kemKeyPair: CryptoKeyPair; sigKeyPair: CryptoKeyPair }> Object containing KEM and signature key pairs.
throws Error If key generation fails (e.g., unsupported algorithm or cryptographic backend error).
await encrypt(message, keypair, options, nonce)Encrypts a message using a hybrid post-quantum encryption scheme combining: Key Encapsulation Mechanism (KEM) for key exchange, AES-GCM for symmetric encryption, Digital signatures for authentication
param string message - Plaintext message to encrypt
param Object keypair - Contains KEM and signature key pairs (from generateKeys())
param Object [options] - Encryption options (merged with defaults)
param string [nonce] - Optional nonce for replay protection (auto-generated if omitted)
returns Promise<string> Encrypted payload (hex string with metadata)
throws Error If inputs are invalid or cryptographic operations fail
await decrypt(payload, keypair, options)Decrypts a payload encrypted by the encrypt function using hybrid post-quantum cryptography.
Performs signature verification, key decapsulation, and AES-GCM decryption.
param string payload - Encrypted payload (hex string with metadata)
param Object keypair - Contains KEM and signature key pairs (from generateKeys())
param Object [options] - Decryption options (merged with defaults)
returns Promise<{message: string, createdAt: Date, decryptedAt: Date, nonce: string}> Decrypted data with metadata
throws {Error} If:
await exportKeys(keypair)Serializes cryptographic key pairs into a secure string format for storage/transmission. Format: "PROTOCOL:VERSION:METADATA_HEX:PAYLOAD_HEX"
param keypair - Contains KEM and signature key pairs (from generateKeys() or importKeys())
returns string Serialized keys in protocol-defined format
throws Error If key export fails (e.g., invalid key material)
await importKeys(key)Imports cryptographic keys from a serialized string format, verifying protocol compatibility and algorithm support before reconstructing key pairs.
param string key - Serialized keys in format "PROTOCOL:VERSION:METADATA_HEX:PAYLOAD_HEX"
returns Promise<{kemKeyPair: KeyPair, sigKeyPair: KeyPair}> Reconstructed key pairs
throws Error If:
FAQs
Hybrid synchronous encryption protocol using NIST approved post-quantum algorithms.
We found that hsynchronous demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.

Research
A malicious package uses a QR code as steganography in an innovative technique.

Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.