Comparison of cryptography libraries
The tables below compare cryptography libraries that deal with cryptography algorithms and have application programming interface function calls to each of the supported features.
Cryptography libraries
| Name of implementation | Initiative | Main implementation language | Open-source software | Software license | Latest release |
| Botan | Jack Lloyd | C++ | Simplified BSD | ||
| Bouncy Castle | Legion of the Bouncy Castle Inc. | Java, C# | MIT License | ||
| BSAFE | Dell, formerly RSA Security | Java, C, Assembly | Crypto-C Micro Edition: Micro Edition Suite: Crypto Module for C: Crypto-J: | ||
| cryptlib | Peter Gutmann | C | Sleepycat License or commercial license | ||
| Crypto++ | The Crypto++ project | C++ | Boost | Jan 10, 2023 | |
| GnuTLS | Nikos Mavrogiannopoulos, Simon Josefsson | C | LGPL-2.1-or-later | ||
| Intel Cryptography Primitives Library | Intel | C, ASM | Apache 2.0 | March 2025 | |
| Java's default JCA/JCE providers | Oracle | Java | GNU GPL v2 and commercial license | ||
| LibreSSL | OpenBSD Foundation | C | Apache 1.0 | ||
| Libgcrypt | GnuPG community and g10code | C | GNU LGPL v2.1+ | ||
| libsodium | Frank Denis | C | ISC | Sep 13, 2023 | |
| Mbed TLS | Arm Limited | C | Apache 2.0 | ||
| NaCl | Daniel J. Bernstein, Tanja Lange, Peter Schwabe | C | Public domain | February 21, 2011 | |
| Nettle | C | GNU GPL v2+ or GNU LGPL v3 | |||
| Network Security Services | Mozilla | C | MPL 2.0 | ||
| OpenSSL | The OpenSSL Project | C | Apache 2.0 | ||
| wolfCrypt | wolfSSL, Inc. | C | GNU GPL v3 or commercial license |
FIPS 140
This table denotes, if a cryptography library provides the technical requisites for FIPS 140, and the status of their FIPS 140 certification.| Implementation | FIPS 140-2 mode | FIPS 140-2 validated | FIPS 140-3 validated |
| Botan | |||
| Bouncy Castle | |||
| BSAFE | |||
| cryptlib | |||
| Crypto++ | |||
| GnuTLS | |||
| Intel Cryptography Primitives Library | |||
| Java's default JCA/JCE providers | |||
| Libgcrypt | |||
| libsodium | |||
| Mbed TLS | |||
| NaCl | |||
| Nettle | |||
| Network Security Services | |||
| OpenSSL | |||
| wolfCrypt |
Key operations
Key operations include key generation algorithms, key exchange agreements, and public key cryptography standards.Public key algorithms
| Implementation | RSA | DSA | ECDSA | EdDSA | Ed448 | DH | ECDH | ECIES | ElGamal | NTRU | DSS | ML-DSA | ML-KEM |
| Botan | |||||||||||||
| Bouncy Castle | |||||||||||||
| BSAFE | |||||||||||||
| cryptlib | |||||||||||||
| Crypto++ | |||||||||||||
| GnuTLS | |||||||||||||
| Intel Cryptography Primitives Library | |||||||||||||
| Java's default JCA/JCE providers | |||||||||||||
| Libgcrypt | |||||||||||||
| libsodium | |||||||||||||
| Mbed TLS | |||||||||||||
| Nettle | |||||||||||||
| OpenSSL | |||||||||||||
| wolfCrypt |
Elliptic-curve cryptography (ECC) support
| Implementation | NIST | SECG | ECC Brainpool | Curve25519 | Curve448 | GOST R 34.10 | |
| Botan | |||||||
| Bouncy Castle | |||||||
| BSAFE | |||||||
| cryptlib | |||||||
| Crypto++ | |||||||
| GnuTLS | |||||||
| Intel Cryptography Primitives Library | |||||||
| Java's default JCA/JCE providers | |||||||
| Libgcrypt | |||||||
| libsodium | |||||||
| Mbed TLS | |||||||
| Nettle | |||||||
| OpenSSL | |||||||
| wolfCrypt |
Public key cryptography standards
| Implementation | PKCS #1 | PKCS #5, PBKDF2 | PKCS #8 | PKCS #12 | IEEE P1363 | ASN.1 |
| Botan | ||||||
| Bouncy Castle | ||||||
| BSAFE | ||||||
| cryptlib | ||||||
| Crypto++ | ||||||
| GnuTLS | ||||||
| Intel Cryptography Primitives Library | ||||||
| Java's default JCA/JCE providers | ||||||
| Libgcrypt | ||||||
| libsodium | ||||||
| Mbed TLS | ||||||
| Nettle | ||||||
| OpenSSL | ||||||
| wolfCrypt |
Hash functions
Comparison of supported cryptographic hash functions. Here hash functions are defined as taking an arbitrary length message and producing a fixed size output that is virtually impossible to use for recreating the original message.| Implementation | MD5 | SHA-1 | SHA-2 | SHA-3 | RIPEMD-160 | Tiger | Whirlpool | BLAKE2 | GOST R 34.11-94 | GOST R 34.11-2012 | SM3 |
| Botan | |||||||||||
| Bouncy Castle | |||||||||||
| BSAFE | |||||||||||
| cryptlib | |||||||||||
| Crypto++ | |||||||||||
| GnuTLS | |||||||||||
| Intel Cryptography Primitives Library | |||||||||||
| Java's default JCA/JCE providers | |||||||||||
| Libgcrypt | |||||||||||
| libsodium | |||||||||||
| Mbed TLS | |||||||||||
| Nettle | |||||||||||
| OpenSSL | |||||||||||
| wolfCrypt |