Английская Википедия:Comparison of cryptography libraries

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description

The tables below compare cryptography libraries that deal with cryptography algorithms and have API 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++ Шаблон:Yes Simplified BSD Шаблон:Latest stable software release/Botan
Bouncy Castle Legion of the Bouncy Castle Inc. Java, C# Шаблон:Yes MIT License Шаблон:Latest stable software release/Bouncy Castle
BSAFE Dell, formerly RSA Security Java, C, Assembly Шаблон:No Proprietary Crypto-C Micro Edition: Шаблон:Latest stable software release/BSAFE Crypto-C Micro Edition
Micro Edition Suite: Шаблон:Latest stable software release/BSAFE Micro Edition Suite
Crypto-J: Шаблон:Latest stable software release/RSA BSAFE Crypto-J
cryptlib Peter Gutmann C Шаблон:Yes Sleepycat License or commercial license Шаблон:Latest stable software release/cryptlib
Crypto++ The Crypto++ project C++ Шаблон:Yes Boost Software License (all individual files are public domain) Aug 7, 2022 (8.7.0)
GnuTLS Nikos Mavrogiannopoulos, Simon Josefsson C Шаблон:Yes LGPL-2.1-or-later Шаблон:Wikidata Шаблон:Wikidata
Java's default JCA/JCE providers Oracle Java Шаблон:Yes GNU GPL v2 and commercial license Шаблон:Latest stable software release/Java (software platform)
LibreSSL OpenBSD Foundation C Шаблон:Yes Apache-1.0 Шаблон:Wikidata Шаблон:Wikidata
Libgcrypt GnuPG community and g10code C Шаблон:Yes GNU LGPL v2.1+ Шаблон:Latest stable software release/Libgcrypt
libsodium Frank Denis C Шаблон:Yes ISC License May 30, 2019 (1.0.18)
Mbed TLS Arm Limited C Шаблон:Yes Apache License 2.0 Шаблон:Latest stable software release/mbed TLS
NaCl Daniel J. Bernstein, Tanja Lange, Peter Schwabe C Шаблон:Yes Public domain February 21, 2011[1]
Nettle C Шаблон:Yes GNU GPL v2+ or GNU LGPL v3 Шаблон:Latest stable software release/Nettle
Network Security Services (NSS) Mozilla C Шаблон:Yes MPL 2.0 Шаблон:Latest stable software release/Network Security Services
OpenSSL The OpenSSL Project C Шаблон:Yes Apache-2.0 Шаблон:Wikidata Шаблон:Wikidata
wolfCrypt wolfSSL, Inc. C Шаблон:Yes GNU GPL v2 or commercial license Шаблон:Latest stable software release/wolfSSL

FIPS 140

This table denotes, if a cryptography library provides the technical requisites for FIPS 140, and the status of their FIPS 140 certification (according to NIST's CMVP search, modules in process list and implementation under test list).

Implementation FIPS 140-2 mode FIPS 140-2 validated FIPS 140-3 validated
Botan Шаблон:No Шаблон:No Шаблон:No
Bouncy Castle Шаблон:Yes Шаблон:Yes[2] Шаблон:Maybe[3]
BSAFE Шаблон:Yes Шаблон:Yes[4][5] Шаблон:Maybe[3]
cryptlib Шаблон:Yes Шаблон:No Шаблон:No
Crypto++ Шаблон:No Шаблон:No[lower-alpha 1] Шаблон:No
GnuTLS Шаблон:No Шаблон:Yes[6][lower-alpha 2] Шаблон:Maybe[7]
Java's default JCA/JCE providers Шаблон:No Шаблон:No[8][lower-alpha 3] Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:Yes[9][lower-alpha 4] Шаблон:Maybe[7]
libsodium Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:No Шаблон:No Шаблон:No
NaCl Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:No Шаблон:No Шаблон:No
Network Security Services (NSS) Шаблон:Yes Шаблон:Yes[10][lower-alpha 5] Шаблон:Maybe[7]
OpenSSL Шаблон:Yes Шаблон:Yes[11][lower-alpha 6] Шаблон:Maybe[7]
wolfCrypt Шаблон:Yes Шаблон:Yes[12] Шаблон:Maybe[3]

Шаблон:Reflist

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
(IEEE P1363.1)
DSS
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes
Libgcrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[lower-alpha 7] Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes
libsodium Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes

Шаблон:Reflist

Elliptic-curve cryptography (ECC) support

Implementation NIST SECG ECC Brainpool Curve25519 Curve448 GOST R 34.10[13] SM2
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No
BSAFE Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
GnuTLS Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
libsodium Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:Partial Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No

Public key cryptography standards

Implementation PKCS #1 PKCS #5[14] / PBKDF2 PKCS #8 PKCS #12 IEEE P1363 ASN.1
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Crypto-J Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes[lower-alpha 8] Шаблон:No Шаблон:Yes Шаблон:Yes
GnuTLS
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Libgcrypt Шаблон:Yes Шаблон:Yes[lower-alpha 9] Шаблон:Yes[lower-alpha 9] Шаблон:Yes[lower-alpha 9] Шаблон:Yes[lower-alpha 9] Шаблон:Yes[lower-alpha 9]
libsodium Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
Nettle Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes

Шаблон:Reflist

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[15]
(aka GOST 34.311-95)
GOST R 34.11-2012
(Stribog)
[16]
SM3
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Crypto-J Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
GnuTLS
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
libsodium Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No

MAC algorithms

Comparison of implementations of message authentication code (MAC) algorithms. A MAC is a short piece of information used to authenticate a message—in other words, to confirm that the message came from the stated sender (its authenticity) and has not been changed in transit (its integrity).

Implementation HMAC-MD5 HMAC-SHA1 HMAC-SHA2 Poly1305 BLAKE2-MAC
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Crypto-J Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
GnuTLS
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
libsodium Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes

Block ciphers

Table compares implementations of block ciphers. Block ciphers are defined as being deterministic and operating on a set number of bits (termed a block) using a symmetric key. Each block cipher can be broken up into the possible key sizes and block cipher modes it can be run with.

Block cipher algorithms

Implementation AES 3DES Camellia Blowfish Twofish IDEA CAST5 ARIA GOST 28147-89[17]
/ GOST R 34.12-2015
(Magma[18] & Kuznyechik[19])
SM4
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Bouncy Castle[20] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Crypto-J Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
cryptlib[21] Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial[lower-alpha 10] Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
libsodium Шаблон:Partial[lower-alpha 11] Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No

Шаблон:Reflist

Cipher modes

Implementation ECB CBC OFB CFB CTR CCM GCM OCB XTS AES-Wrap Stream EAX
Botan Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
GnuTLS
Java's default JCA/JCE providers Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
libsodium Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No

Stream ciphers

The table below shows the support of various stream ciphers. Stream ciphers are defined as using plain text digits that are combined with a pseudorandom cipher digit stream. Stream ciphers are typically faster than block ciphers and may have lower hardware complexity, but may be more susceptible to attacks.

Implementation RC4 HC-256 Rabbit Salsa20 ChaCha SEAL Panama WAKE Grain VMPC ISAAC
Botan Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Crypto-J Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
GnuTLS
Java's default JCA/JCE providers Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Libgcrypt Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
libsodium Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Nettle Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No

Hardware-assisted support

These tables compare the ability to utilize hardware enhanced cryptography. By using the assistance of specific hardware the library can achieve greater speeds and / or improved security than otherwise.

Smart card, SIM and HSM protocol support

Implementation PKCS #11 PC/SC CCID
Botan Шаблон:Yes Шаблон:No Шаблон:No
Bouncy Castle Шаблон:Yes[lower-alpha 12] Шаблон:No Шаблон:No
BSAFE Шаблон:Yes[lower-alpha 13] Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:No Шаблон:No
Crypto++ Шаблон:No Шаблон:No Шаблон:No
GnuTLS Шаблон:Yes Шаблон:No Шаблон:No
Java's default JCA/JCE providers Шаблон:Yes Шаблон:No[lower-alpha 14] Шаблон:No[lower-alpha 14]
Libgcrypt Шаблон:Yes[22] Шаблон:Yes[23] Шаблон:Yes[23]
libsodium Шаблон:No Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes[24] Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes[24] Шаблон:No Шаблон:No
wolfCrypt Шаблон:Yes Шаблон:No Шаблон:No

Шаблон:Reflist

General purpose CPU / platform acceleration support

Implementation AES-NI SSSE3 / SSE4.1 AVX / AVX2 AVX-512 RDRAND VIA PadLock Intel QuickAssist ARMv7-A NEON ARMv8-A cryptography instructions Power ISA v2.03 (AltiVec[lower-alpha 15]) Power ISA v2.07 (e.g., POWER8 and later[lower-alpha 15])
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Шаблон:Yes[lower-alpha 16] Шаблон:Yes[lower-alpha 16] Шаблон:Yes[lower-alpha 16] Шаблон:No Шаблон:Yes[lower-alpha 16] Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes[lower-alpha 16] Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes[lower-alpha 17] Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Java's default JCA/JCE providers Шаблон:Yes[lower-alpha 18] Шаблон:Yes[lower-alpha 18] Шаблон:Yes[lower-alpha 18] Шаблон:Yes[lower-alpha 18] Шаблон:Yes[lower-alpha 18] Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes[lower-alpha 18] Шаблон:No Шаблон:Yes[lower-alpha 18]
Libgcrypt[25] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
libsodium Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[lower-alpha 19] Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfCrypt Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes[26] Шаблон:Yes Шаблон:Yes[27] Шаблон:No Шаблон:No

Шаблон:Reflist

Code size and code to comment ratio

Implementation Source Code Size

(kSLOC = 1000 lines of source code)

Code Lines to Comment Lines Ratio
Botan 133[28] 4.55[28]
Bouncy Castle 1359[29] 5.26[29]
BSAFE Crypto-J 271[lower-alpha 20] 1.3[lower-alpha 20]
cryptlib 241 2.66
Crypto++ 115[30] 5.74[30]
GnuTLS 363[31] 7.30[31]
Java's default JCA/JCE providers Шаблон:- Шаблон:-
Libgcrypt 216[32] 6.27[32]
libsodium 44[33] 21.92[33]
Mbed TLS 105[34] 33.9[34]
Nettle 111[35] 4.08[35]
OpenSSL 472[36] 4.41[36]
wolfCrypt 39 5.69

Шаблон:Reflist

Portability

Implementation Supported Operating System Thread safe
Botan Linux, Windows, macOS, Android, iOS, FreeBSD, NetBSD, OpenBSD, DragonflyBSD, Solaris, AIX, QNX, Haiku Шаблон:Yes
Bouncy Castle General Java API: J2ME, Java Runtime Environment 1.1+, Android. Java FIPS API: Java Runtime 1.5+, Android. C# API (General & FIPS): CLR 4.
BSAFE Crypto-J Solaris, Linux, Android, FreeBSD, AIX, 32 and 64-bit Windows, macOS (Darwin) Шаблон:Yes
cryptlib AMX, ARINC 653, BeOS, ChorusOS, CMSIS-RTOS/mbed-rtos, DOS, DOS32, eCOS, embOS, FreeRTOS/OpenRTOS, uItron, MQX, MVS, Nucleus, OS/2, Palm OS, QNX Neutrino, RTEMS, SMX, Tandem NonStop, Telit, ThreadX, uC/OS II, Unix (AIX, FreeBSD, HP-UX, Linux, macOS, Solaris, etc.), VDK, VM/CMS, VxWorks, Win16, Win32, Win64, WinCE/PocketPC/etc, XMK Шаблон:Yes
Crypto++ Unix (AIX, OpenBSD, Linux, MacOS, Solaris, etc.), Win32, Win64, Android, iOS, ARM Шаблон:Yes[lower-alpha 21]
GnuTLS Runs on most Unix platforms and Windows[37] ?
Libgcrypt All 32 and 64 bit Unix Systems (Linux, FreeBSD, NetBSD, macOS etc.), Win32, Win64, WinCE and more Шаблон:Yes[38]
libsodium macOS, Linux, OpenBSD, NetBSD, FreeBSD, DragonflyBSD, Android, iOS, 32 and 64-bit Windows (Visual Studio, MinGW, C++ Builder), NativeClient, QNX, JavaScript, AIX, MINIX, Solaris Шаблон:Yes
Mbed TLS Win32/64, Unix Systems, embedded Linux, Micrium's µC/OS, FreeRTOS ?
OpenSSL Solaris, IRIX, HP-UX, MPE/iX, Tru64, Linux, Android, BSD (OpenBSD, NetBSD, FreeBSD, DragonflyBSD), NextSTEP, QNX, UnixWare, SCO, AIX, 32 and 64-bit Windows (Visual Studio, MinGW, UWIN, CygWin), UEFI, macOS (Darwin), iOS, HURD, VxWorks, uClinux, VMS, DJGPP (DOS), Haiku Шаблон:Yes
wolfCrypt Win32/64, Linux, macOS, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii and Gamecube through DevKitPro, QNX, MontaVista, NonStop, TRON/ITRON/µITRON, Micrium's µC/OS, FreeRTOS, SafeRTOS, Freescale MQX, Nucleus, TinyOS, HP-UX Шаблон:Yes

Шаблон:Reflist

References

Шаблон:Reflist

  1. Downloading and installing NaCl, Bernstein, Lange, Schwabe, retrieved 2017-05-22
  2. Шаблон:Cite web
  3. 3,0 3,1 3,2 Шаблон:Cite web
  4. Шаблон:Cite web
  5. Шаблон:Cite web
  6. Шаблон:Cite web
  7. 7,0 7,1 7,2 7,3 Шаблон:Cite web
  8. Шаблон:Cite web
  9. https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search?SearchMode=Basic&ModuleName=libgcrypt&CertificateStatus=Active&ValidationYear=0 Шаблон:Dead link
  10. Шаблон:Cite web
  11. Шаблон:Cite web
  12. https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/3389
  13. Шаблон:IETF RFC
  14. Шаблон:IETF RFC
  15. Шаблон:IETF RFC
  16. Шаблон:IETF RFC
  17. Шаблон:IETF RFC
  18. Шаблон:IETF RFC
  19. Шаблон:IETF RFC
  20. Bouncy Castle Specifications, bouncycastle.org, retrieved 2018-04-10
  21. cryptlib Encryption Toolkit, Peter Gutmann, retrieved 2015-11-28
  22. With Scute, scute.org
  23. 23,0 23,1 With GnuPG's SCdaemon & gpg-agent, gnupg.org
  24. 24,0 24,1 With an libp11 engine
  25. hwfeatures.c, dev.gnupg.org
  26. Шаблон:Cite web
  27. Шаблон:Cite web
  28. 28,0 28,1 Language Analysis of Botan, OpenHub.net, retrieved 2018-07-18
  29. 29,0 29,1 Language Analysis of Bouncy Castle, OpenHub.net, retrieved 2015-12-23
  30. 30,0 30,1 Language Analysis of Crypto++, OpenHub.net, retrieved 2018-07-18
  31. 31,0 31,1 Language Analysis of GnuTLS, OpenHub.net, retrieved 2020-09-15
  32. 32,0 32,1 Language Analysis of Libgcrypt, OpenHub.net, retrieved 2015-12-23
  33. 33,0 33,1 Language Analysis of libsodium, OpenHub.net, retrieved 2017-05-07
  34. 34,0 34,1 Language Analysis of mbed-tls, OpenHub.net, retrieved 2019-09-15
  35. 35,0 35,1 Language Analysis of Nettle, OpenHub.net, retrieved 2015-12-23
  36. 36,0 36,1 Language Analysis of OpenSSL, OpenHub.net, retrieved 2017-05-07
  37. GnuTLS - features, GnuTLS.org, retrieved 2022-09-15
  38. GnuPG documentation: Libgcrypt overview - thread safety, GnuPG.org, retrieved 2016-04-16


Ошибка цитирования Для существующих тегов <ref> группы «lower-alpha» не найдено соответствующего тега <references group="lower-alpha"/>