← Back to crypto::compare

Implementation Map

Candidate libraries for recommended algorithms across 6 ecosystems, with explicit version context, audit-evidence, and catalog-freshness status.

⚠ DisclaimerA library listing is not a security endorsement. "Audit not evidenced" means this catalog does not link a scoped audit report. Version context is the package release or platform baseline verified when the entry was reviewed—not proof that version was audited. Re-check maintenance, platform support, and published security reviews before production use.
58 results

AES-256-GCM

🦀ringaudit not evidenced
ring
Version context: crate 0.17.14 ↗ · checked 2026-09-18

aead::AES_256_GCM. Hardware-accelerated. Minimal unsafe surface.

View library →Checked 2026-09-17
🦀RustCrypto aes-gcmaudit not evidenced
aes-gcm
Version context: crate 0.11.1 ↗ · checked 2026-09-18

Pure Rust with optional AES-NI. Part of the RustCrypto ecosystem.

View library →Checked 2026-09-17
🐍cryptography (PyCA)audit not evidenced
cryptography
Version context: PyPI 50.0.1 ↗ · checked 2026-09-18

cryptography.hazmat.primitives.ciphers.aead.AESGCM. Built on OpenSSL.

View library →Checked 2026-09-17
📘@noble/ciphersaudit not evidenced
@noble/ciphers
Version context: npm 2.4.0 ↗ · checked 2026-09-18

Pure JS/TS AES-GCM. No native dependencies.

View library →Checked 2026-09-17
📘Web Crypto APIaudit not evidenced
built-in
Version context: Web Crypto API ↗ · checked 2026-09-18

crypto.subtle.encrypt({name:'AES-GCM',...}). Native browser implementation.

View library →Checked 2026-09-17
🐹crypto/aes + crypto/cipheraudit not evidenced
stdlib
Version context: Go 1.27.1 stdlib ↗ · checked 2026-09-18

cipher.NewGCM(block). Standard library. Hardware-accelerated.

View library →Checked 2026-09-17
🟣System.Security.Cryptographyaudit not evidenced
built-in
Version context: .NET 10 ↗ · checked 2026-09-18

AesGcm class. .NET 6+. Uses OS-level crypto provider.

View library →Checked 2026-09-17
☕JCA/JCEaudit not evidenced
built-in
Version context: JDK 25 ↗ · checked 2026-09-18

Cipher.getInstance("AES/GCM/NoPadding"). Built into the JDK.

View library →Checked 2026-09-17

XChaCha20-Poly1305

🦀RustCrypto chacha20poly1305audit not evidenced
chacha20poly1305
Version context: crate 0.11.0 ↗ · checked 2026-09-18

XChaCha20Poly1305 type. Pure Rust, constant-time.

View library →Checked 2026-09-17
🐍PyNaClaudit not evidenced
PyNaCl
Version context: PyPI 1.6.2 ↗ · checked 2026-09-18

nacl.secret.Aead uses XChaCha20-Poly1305-IETF and wraps libsodium.

View library →Checked 2026-09-17
📘libsodium-wrappersaudit not evidenced
libsodium-wrappers
Version context: npm 0.8.4 ↗ · checked 2026-09-18

crypto_aead_xchacha20poly1305_ietf_encrypt. WebAssembly and JavaScript builds of libsodium.

⚠ Use the -sumo package only when the standard wrapper does not expose the API you need.
View library →Checked 2026-09-17
🐹golang.org/x/crypto/chacha20poly1305audit not evidenced
golang.org/x/crypto
Version context: module v0.57.0 ↗ · checked 2026-09-18

chacha20poly1305.NewX() for XChaCha20. Official Go extended crypto.

View library →Checked 2026-09-17
🟣Sodium.Coreaudit not evidenced
Sodium.Core
Version context: NuGet 1.4.1 ↗ · checked 2026-09-18

.NET bindings to libsodium. SecretAead.Encrypt uses XChaCha20-Poly1305.

⚠ Native libsodium deployment is platform-specific; verify the package's runtime assets for every target.
View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

XChaCha20Poly1305 via BC lightweight API.

View library →Checked 2026-09-17

Argon2id

🦀argon2 (RustCrypto)audit not evidenced
argon2
Version context: crate 0.6.0 ↗ · checked 2026-09-18

Pure Rust Argon2id. Implements RFC 9106.

View library →Checked 2026-09-17
🐍argon2-cffiaudit not evidenced
argon2-cffi
Version context: PyPI 25.1.0 ↗ · checked 2026-09-18

Wraps the C reference implementation. OWASP-recommended defaults.

View library →Checked 2026-09-17
📘argon2audit not evidenced
argon2
Version context: npm 0.45.1 ↗ · checked 2026-09-18

Node.js native binding to the C reference. Server-side only.

⚠ Browser-side Argon2 is impractical due to memory constraints; use server-side.
View library →Checked 2026-09-17
🐹golang.org/x/crypto/argon2audit not evidenced
golang.org/x/crypto
Version context: module v0.57.0 ↗ · checked 2026-09-18

argon2.IDKey(). Official Go extended crypto library.

View library →Checked 2026-09-17
🟣Konscious.Security.Cryptographyaudit not evidenced
Konscious.Security.Cryptography.Argon2
Version context: NuGet 1.3.1 ↗ · checked 2026-09-18

Pure .NET Argon2id implementation.

View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

Argon2BytesGenerator class in BC lightweight API.

View library →Checked 2026-09-17

Ed25519

🦀ed25519-dalekaudit not evidenced
ed25519-dalek
Version context: crate 3.0.0 ↗ · checked 2026-09-18

Part of the dalek ecosystem. Widely used in Rust crypto.

View library →Checked 2026-09-17
🐍PyNaClaudit not evidenced
PyNaCl
Version context: PyPI 1.6.2 ↗ · checked 2026-09-18

nacl.signing.SigningKey. Wraps libsodium Ed25519.

View library →Checked 2026-09-17
🐍cryptography (PyCA)audit not evidenced
cryptography
Version context: PyPI 50.0.1 ↗ · checked 2026-09-18

Ed25519PrivateKey.generate(). Built on OpenSSL 3.x.

View library →Checked 2026-09-17
📘@noble/curvesaudit not evidenced
@noble/curves
Version context: npm 2.4.0 ↗ · checked 2026-09-18

ed25519.sign/verify. Pure JS with zero dependencies.

View library →Checked 2026-09-17
🐹crypto/ed25519audit not evidenced
stdlib
Version context: Go 1.27.1 stdlib ↗ · checked 2026-09-18

Standard library Ed25519. Used throughout Go ecosystem.

View library →Checked 2026-09-17
🟣NSecaudit not evidenced
NSec.Cryptography
Version context: NuGet 26.4.0 ↗ · checked 2026-09-18

SignatureAlgorithm.Ed25519. Managed API backed by the platform-supported NSec native runtime.

⚠ This is a third-party package, not a System.Security.Cryptography primitive.
View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

Ed25519Signer class. Also available in JDK 15+ via EdDSA provider.

View library →Checked 2026-09-17

X25519

🦀x25519-dalekaudit not evidenced
x25519-dalek
Version context: crate 3.0.0 ↗ · checked 2026-09-18

EphemeralSecret + PublicKey. Part of the dalek ecosystem.

View library →Checked 2026-09-17
🐍PyNaClaudit not evidenced
PyNaCl
Version context: PyPI 1.6.2 ↗ · checked 2026-09-18

nacl.public.Box for X25519 key agreement. Wraps libsodium.

View library →Checked 2026-09-17
📘@noble/curvesaudit not evidenced
@noble/curves
Version context: npm 2.4.0 ↗ · checked 2026-09-18

x25519.getSharedSecret(). Pure JS.

View library →Checked 2026-09-17
🐹crypto/ecdhaudit not evidenced
stdlib
Version context: Go 1.27.1 stdlib ↗ · checked 2026-09-18

ecdh.X25519(). Standard-library X25519 key agreement.

View library →Checked 2026-09-17
🟣NSecaudit not evidenced
NSec.Cryptography
Version context: NuGet 26.4.0 ↗ · checked 2026-09-18

X25519 key agreement. Modern .NET crypto library.

View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

X25519Agreement class. Also in JDK 11+ via XDH.

View library →Checked 2026-09-17

HKDF

🦀hkdf (RustCrypto)audit not evidenced
hkdf
Version context: crate 0.13.0 ↗ · checked 2026-09-18

Hkdf::<Sha256>::new_from_prk(). Pure Rust.

View library →Checked 2026-09-17
🐍cryptography (PyCA)audit not evidenced
cryptography
Version context: PyPI 50.0.1 ↗ · checked 2026-09-18

cryptography.hazmat.primitives.kdf.hkdf.HKDF. Built on OpenSSL.

View library →Checked 2026-09-17
📘@noble/hashesaudit not evidenced
@noble/hashes
Version context: npm 2.4.0 ↗ · checked 2026-09-18

hkdf(sha256, inputKey, salt, info, length). Pure JS.

View library →Checked 2026-09-17
🐹crypto/hkdfaudit not evidenced
stdlib
Version context: Go 1.27.1 stdlib ↗ · checked 2026-09-18

hkdf.Key and hkdf.Extract/Expand. Standard-library RFC 5869 implementation.

View library →Checked 2026-09-17
🟣System.Security.Cryptographyaudit not evidenced
built-in
Version context: .NET 10 ↗ · checked 2026-09-18

HKDF.DeriveKey/Extract/Expand implement RFC 5869.

View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

HKDFBytesGenerator class.

View library →Checked 2026-09-17

HMAC-SHA-256

🦀ringaudit not evidenced
ring
Version context: crate 0.17.14 ↗ · checked 2026-09-18

hmac::sign/verify. Hardware-accelerated SHA-256.

View library →Checked 2026-09-17
🐍hmac (stdlib)audit not evidenced
built-in
Version context: Python 3.14.7 stdlib ↗ · checked 2026-09-18

hmac.new(key, msg, hashlib.sha256). Python standard library.

View library →Checked 2026-09-17
📘@noble/hashesaudit not evidenced
@noble/hashes
Version context: npm 2.4.0 ↗ · checked 2026-09-18

hmac(sha256, key, message). Pure JS.

View library →Checked 2026-09-17
📘Web Crypto APIaudit not evidenced
built-in
Version context: Web Crypto API ↗ · checked 2026-09-18

crypto.subtle.sign('HMAC', key, data). Native browser.

View library →Checked 2026-09-17
🐹crypto/hmac + crypto/sha256audit not evidenced
stdlib
Version context: Go 1.27.1 stdlib ↗ · checked 2026-09-18

hmac.New(sha256.New, key). Standard library.

View library →Checked 2026-09-17
🟣System.Security.Cryptographyaudit not evidenced
built-in
Version context: .NET 10 ↗ · checked 2026-09-18

HMACSHA256 class. Built into .NET.

View library →Checked 2026-09-17
☕JCA/JCEaudit not evidenced
built-in
Version context: JDK 25 ↗ · checked 2026-09-18

Mac.getInstance("HmacSHA256"). Built into the JDK.

View library →Checked 2026-09-17

ML-KEM-768

🦀ml-kem (RustCrypto)audit not evidenced
ml-kem
Version context: crate 0.3.2 ↗ · checked 2026-09-18

Pure Rust implementation of final FIPS 203 ML-KEM.

⚠ The maintainer states that this crate has not been independently audited.
View library →Checked 2026-09-17
🐍kyber-pyaudit not evidenced
kyber-py
Version context: PyPI 1.2.0 ↗ · checked 2026-09-18

Pure Python implementation of final FIPS 203 ML-KEM.

⚠ The project is for education and prototyping, not production cryptography.
View library →Checked 2026-09-17
📘@noble/post-quantumaudit not evidenced
@noble/post-quantum
Version context: npm 0.7.1 ↗ · checked 2026-09-18

ml_kem768 implementation of final FIPS 203 with ACVP and Wycheproof correctness tests.

⚠ The project reports no independent audit and cannot guarantee constant-time execution in JavaScript.
View library →Checked 2026-09-17
🐹crypto/mlkemaudit not evidenced
stdlib
Version context: Go 1.27.1 stdlib ↗ · checked 2026-09-18

Standard-library implementation of final FIPS 203 ML-KEM, including ML-KEM-768.

View library →Checked 2026-09-17
🟣System.Security.Cryptographyaudit not evidenced
built-in
Version context: .NET 10 ↗ · checked 2026-09-18

MLKem class for FIPS 203, including the ML-KEM-768 parameter set.

⚠ Support is platform-dependent; check MLKem.IsSupported before use.
View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

MLKEMKeyPairGenerator and MLKEMExtractor implement final FIPS 203 ML-KEM.

View library →Checked 2026-09-17

ML-DSA-65

🦀ml-dsa (RustCrypto)audit not evidenced
ml-dsa
Version context: crate 0.1.1 ↗ · checked 2026-09-18

Pure Rust implementation of final FIPS 204 ML-DSA.

⚠ The maintainer states that this crate has not been independently audited.
View library →Checked 2026-09-17
🐍dilithium-pyaudit not evidenced
dilithium-py
Version context: PyPI 1.4.0 ↗ · checked 2026-09-18

Pure Python implementation of final FIPS 204 ML-DSA.

⚠ The project is for education and prototyping, not production cryptography.
View library →Checked 2026-09-17
📘@noble/post-quantumaudit not evidenced
@noble/post-quantum
Version context: npm 0.7.1 ↗ · checked 2026-09-18

ml_dsa65 implementation of final FIPS 204 with ACVP and Wycheproof correctness tests.

⚠ The project reports no independent audit and cannot guarantee constant-time execution in JavaScript.
View library →Checked 2026-09-17
🐹CIRCLaudit not evidenced
github.com/cloudflare/circl/sign/mldsa
Version context: CIRCL v1.6.5 ↗ · checked 2026-09-18

Cloudflare CIRCL implementation of final FIPS 204 ML-DSA, including ML-DSA-65.

View library →Checked 2026-09-17
🟣System.Security.Cryptographyaudit not evidenced
built-in
Version context: .NET 10 ↗ · checked 2026-09-18

MLDsa class for FIPS 204, including the ML-DSA-65 parameter set.

⚠ Support is platform-dependent; check MLDsa.IsSupported before use.
View library →Checked 2026-09-17
☕Bouncy Castleaudit not evidenced
org.bouncycastle:bcprov-jdk18on
Version context: Bouncy Castle 1.86 ↗ · checked 2026-09-18

MLDSAKeyPairGenerator and MLDSASigner implement final FIPS 204 ML-DSA.

View library →Checked 2026-09-17