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

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

Шаблон:Short description Шаблон:About Шаблон:Cleanup bare URLs The Transport Layer Security (TLS) protocol provides the ability to secure communications across or inside networks. This comparison of TLS implementations compares several of the most notable libraries. There are several TLS implementations which are free software and open source.

All comparison categories use the stable version of each implementation listed in the overview section. The comparison is limited to features that directly relate to the TLS protocol.

Overview

Implementation Developed by Open source Software license Copyright holder Written in Latest stable version, release date Origin
Botan Jack Lloyd Шаблон:Yes Шаблон:Free Jack Lloyd C++ Шаблон:Latest stable software release/Botan US (Vermont)
BoringSSL Google Шаблон:Yes Шаблон:Free Eric Young, Tim Hudson, Sun, OpenSSL project, Google, and others C, C++, Go, assembly ?? Australia/EU
Bouncy Castle The Legion of the Bouncy Castle Inc. Шаблон:Yes Шаблон:Free Legion of the Bouncy Castle Inc. Java, C# Шаблон:Latest stable software release/Bouncy Castle Australia
BSAFE Dell, formerly RSA Security Шаблон:No Шаблон:Proprietary Dell Java, C, assembly SSL-J Шаблон:Latest stable software release/BSAFE SSL-J

Micro Edition Suite Шаблон:Latest stable software release/BSAFE Micro Edition Suite

Australia
cryptlib Peter Gutmann Шаблон:Yes Шаблон:Free and commercial license Peter Gutmann C Шаблон:Latest stable software release/cryptlib NZ
GnuTLS GnuTLS project Шаблон:Yes Шаблон:Free Free Software Foundation C Шаблон:Wikidata Шаблон:Wikidata EU (Greece and Sweden)
Java Secure Socket Extension (JSSE) Oracle Шаблон:Yes Шаблон:Free and commercial license Oracle Java Шаблон:Latest stable software release/Java (software platform) US
LibreSSL OpenBSD Project Шаблон:Yes Шаблон:Free Eric Young, Tim Hudson, Sun, OpenSSL project, OpenBSD Project, and others C, assembly Шаблон:Wikidata Шаблон:Wikidata Canada
MatrixSSL[1] PeerSec Networks Шаблон:Yes Шаблон:Free and commercial license PeerSec Networks C Шаблон:Latest stable software release/MatrixSSL US
Mbed TLS (previously PolarSSL) Arm Шаблон:Yes Шаблон:Free and commercial license Arm Holdings C Шаблон:Latest stable software release/Mbed TLS EU (Netherlands)
Network Security Services (NSS) Mozilla, AOL, Red Hat, Sun, Oracle, Google and others Шаблон:Yes Шаблон:Free NSS contributors C, assembly Шаблон:Latest stable software release/Network Security Services US
OpenSSL OpenSSL project Шаблон:Yes Шаблон:Free[lower-alpha 1] Eric Young, Tim Hudson, Sun, OpenSSL project, and others C, assembly Шаблон:Wikidata Шаблон:Wikidata Australia/EU
s2n Amazon Шаблон:Yes Шаблон:Free and commercial license Amazon, Inc. C Continuous US
Schannel Microsoft Шаблон:No Шаблон:Proprietary Microsoft Inc. Windows 11, 2021-10-05 US
Secure Transport Apple Inc. Шаблон:Yes Шаблон:Free Apple Inc. 57337.20.44 (OS X 10.11.2), 2015-12-08 US
wolfSSL (previously CyaSSL) wolfSSL[2] Шаблон:Yes Шаблон:Free and commercial license wolfSSL Inc.[3] C, assembly Шаблон:Latest stable software release/wolfSSL US
Erlang/OTP SSL application Ericsson Шаблон:Yes Шаблон:Free Ericsson Erlang OTP-21, 2018-06-19 Sweden
Implementation Developed by Open source Software license Copyright owner Written in Latest stable version, release date Origin

Шаблон:Reflist

TLS/SSL protocol version support

Several versions of the TLS protocol exist. SSL 2.0 is a deprecated[4] protocol version with significant weaknesses. SSL 3.0 (1996) and TLS 1.0 (1999) are successors with two weaknesses in CBC-padding that were explained in 2001 by Serge Vaudenay.[5] TLS 1.1 (2006) fixed only one of the problems, by switching to random initialization vectors (IV) for CBC block ciphers, whereas the more problematic use of mac-pad-encrypt instead of the secure pad-mac-encrypt was addressed with RFC 7366.[6] A workaround for SSL 3.0 and TLS 1.0, roughly equivalent to random IVs from TLS 1.1, was widely adopted by many implementations in late 2011.[7] In 2014, the POODLE vulnerability of SSL 3.0 was discovered, which takes advantage of the known vulnerabilities in CBC, and an insecure fallback negotiation used in browsers.[8]

TLS 1.2 (2008) introduced a means to identify the hash used for digital signatures. While permitting the use of stronger hash functions for digital signatures in the future (rsa,sha256/sha384/sha512) over the SSL 3.0 conservative choice (rsa,sha1+md5), the TLS 1.2 protocol change inadvertently and substantially weakened the default digital signatures and provides (rsa,sha1) and even (rsa,md5).[9]

Datagram Transport Layer Security (DTLS or Datagram TLS) 1.0 is a modification of TLS 1.1 for a packet-oriented transport layer, where packet loss and packet reordering have to be tolerated. The revision DTLS 1.2 based on TLS 1.2 was published in January 2012.[10]

TLS 1.3 (2018) specified in RFC 8446 includes major optimizations and security improvements. QUIC (2021) specified in RFC 9000 and DTLS 1.3 (2022) specified in RFC 9147 builds on TLS 1.3. The publishing of TLS 1.3 and DTLS 1.3 obsoleted TLS 1.2 and DTLS 1.2.

Note that there are known vulnerabilities in SSL 2.0 and SSL 3.0. In 2021, IETF published RFC 8996 also forbidding negotiation of TLS 1.0, TLS 1.1, and DTLS 1.0 due to known vulnerabilities. NIST SP 800-52 requires support of TLS 1.3 by January 2024. Support of TLS 1.3 means that two compliant nodes will never negotiate TLS 1.2.

Implementation SSL 2.0 (insecure)[11] SSL 3.0 (insecure)[12] TLS 1.0 (deprecated)[13] TLS 1.1 (deprecated)[14] TLS 1.2[15] TLS 1.3 DTLS 1.0 (deprecated)[16] DTLS 1.2[10]
Botan Шаблон:Yes Шаблон:Yes[17] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BoringSSL Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Partial
(draft version)
Шаблон:Okay Шаблон:Yes
BSAFE SSL-J[18] Шаблон:Yes Шаблон:Yes Шаблон:Yes[lower-alpha 2] Шаблон:Yes[lower-alpha 2] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No
GnuTLS Шаблон:Yes[lower-alpha 3] Шаблон:Yes[19] Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes[20] Шаблон:Okay Шаблон:Yes
JSSE Шаблон:Yes[lower-alpha 3] Шаблон:Yes[21] Шаблон:Yes[22] Шаблон:Yes[22] Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes
LibreSSL Шаблон:Yes[23] Шаблон:Yes[24] Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes[25]
MatrixSSL Шаблон:Yes Шаблон:Yes[26] Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes
Mbed TLS Шаблон:Yes Шаблон:Yes[27] Шаблон:Yes[27] Шаблон:Yes[27] Шаблон:Yes Шаблон:Partial
(experimental)
Шаблон:Okay[28] Шаблон:Yes[28]
NSS Шаблон:Yes[lower-alpha 4] Шаблон:Yes[29] Шаблон:Okay Шаблон:Okay[30] Шаблон:Yes[31] Шаблон:Yes[32] Шаблон:Okay[30] Шаблон:Yes[33]
OpenSSL Шаблон:Yes[34] Шаблон:Yes Шаблон:Okay Шаблон:Okay[35] Шаблон:Yes[35] Шаблон:Yes Шаблон:Okay Шаблон:Yes[36]
s2n[37] Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No
Schannel XP, 2003[38] Шаблон:Partial Шаблон:No Шаблон:Partial Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No
Schannel Vista[39] Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No
Schannel 2008[39] Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Partial Шаблон:Partial Шаблон:No Шаблон:Yes Шаблон:No
Schannel 7, 2008R2[40] Шаблон:Yes Шаблон:Partial Шаблон:Okay Шаблон:Partial Шаблон:Partial Шаблон:No Шаблон:Okay[41] Шаблон:No[41]
Schannel 8, 2012[40] Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Partial Шаблон:Partial Шаблон:No Шаблон:Okay Шаблон:No
Schannel 8.1, 2012R2, 10 v1507 & v1511[40] Шаблон:Yes Шаблон:Partial Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:No
Schannel 10 v1607 / 2016[42] Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Yes
Schannel 11 / 2022[43] Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes
Secure Transport

OS X 10.2-10.7, iOS 1-4

Шаблон:No Шаблон:No Шаблон:Okay Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No
Secure Transport OS X 10.8-10.10, iOS 5-8 Шаблон:Yes[lower-alpha 5] Шаблон:No Шаблон:Okay Шаблон:Okay[lower-alpha 5] Шаблон:Yes[lower-alpha 5] Шаблон:Okay[lower-alpha 5] Шаблон:No
Secure Transport OS X 10.11, iOS 9 Шаблон:Yes Шаблон:Yes[lower-alpha 5] Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Unknown
Secure Transport OS X 10.13, iOS 11 Шаблон:Yes Шаблон:Yes[lower-alpha 5] Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Partial
(draft version)[44]
Шаблон:Okay Шаблон:Unknown
wolfSSL Шаблон:Yes Шаблон:Yes[45] Шаблон:Yes[46] Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes
Erlang/OTP SSL application[47] Шаблон:Yes [lower-alpha 6] Шаблон:Yes [lower-alpha 7] Шаблон:Yes [lower-alpha 6] Шаблон:Yes [lower-alpha 6] Шаблон:Yes Шаблон:Okay [lower-alpha 8] Шаблон:Yes [lower-alpha 6] Шаблон:Yes
Implementation SSL 2.0 (insecure)[11] SSL 3.0 (insecure)[12] TLS 1.0 (deprecated)[13] TLS 1.1 (deprecated)[14] TLS 1.2[15] TLS 1.3 DTLS 1.0 (deprecated)[16] DTLS 1.2[10]

Шаблон:Reflist

NSA Suite B Cryptography

Required components for NSA Suite B Cryptography (RFC 6460) are:

Per CNSSP-15, the 256-bit elliptic curve (specified in FIPS 186-2), SHA-256, and AES with 128-bit keys are sufficient for protecting classified information up to the Secret level, while the 384-bit elliptic curve (specified in FIPS 186-2), SHA-384, and AES with 256-bit keys are necessary for the protection of Top Secret information.

Implementation TLS 1.2 Suite B
Botan Шаблон:Yes
Bouncy Castle Шаблон:Yes
BSAFE Шаблон:Yes[18]
cryptlib Шаблон:Yes
GnuTLS Шаблон:Yes
JSSE Шаблон:Yes[48]
LibreSSL Шаблон:Yes
MatrixSSL Шаблон:Yes
Mbed TLS Шаблон:Yes
NSS Шаблон:No[49]
OpenSSL Шаблон:Yes[36]
S2n
Schannel Шаблон:Yes[50]
Secure Transport Шаблон:No
wolfSSL Шаблон:Yes
Implementation TLS 1.2 Suite B

Certifications

Note that certain certifications have received serious negative criticism from people who are actually involved in them.[51]

Implementation FIPS 140-1, FIPS 140-2[52] Embedded FIPS Solution
Level 1 Level 2Шаблон:Disputed inline
Botan[53]
Bouncy Castle Шаблон:Yes
BSAFE SSL-J[54] Шаблон:Yes
cryptlib[55]
GnuTLS[56] Шаблон:Yes
JSSE
LibreSSL[23] no support
MatrixSSL[57] Шаблон:Yes
Mbed TLS[58]
NSS[59] Шаблон:Yes Шаблон:Yes
OpenSSL[60] Шаблон:Yes
Schannel[61] Шаблон:Yes
Secure Transport Шаблон:Yes
wolfSSL[62] Шаблон:Yes Шаблон:Yes
Implementation Level 1 Level 2 Embedded FIPS Solution
FIPS 140-1, FIPS 140-2

Шаблон:Reflist

Key exchange algorithms (certificate-only)

This section lists the certificate verification functionality available in the various implementations.

Implementation RSA[15] RSA-EXPORT (insecure)[15] DHE-RSA (forward secrecy)[15] DHE-DSS (forward secrecy)[15] ECDH-ECDSA[63] ECDHE-ECDSA (forward secrecy)[63] ECDH-RSA[63] ECDHE-RSA (forward secrecy)[63] GOST R 34.10-94, 34.10-2001[64]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
cryptlib Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
GnuTLS Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes[19] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
JSSE Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
LibreSSL Шаблон:Okay Шаблон:Yes[23] Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay[65]
MatrixSSL Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
NSS Шаблон:Okay Шаблон:Yes Шаблон:Yes[66] Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes[67][68]
OpenSSL Шаблон:Okay Шаблон:Yes[34] Шаблон:Yes Шаблон:Yes[34] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay[69]
Schannel XP/2003 Шаблон:Okay Шаблон:No Шаблон:Okay Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes[70]
Schannel Vista/2008 Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:No[71] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial Шаблон:Yes[70]
Schannel 8/2012 Шаблон:Okay Шаблон:Yes Шаблон:Partial[72][73][74] Шаблон:No[71] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial Шаблон:Yes[70]
Schannel 7/2008R2, 8.1/2012R2 Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay[71] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial Шаблон:Yes[70]
Schannel 10 Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay[71] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[70]
Secure Transport OS X 10.6 Шаблон:Okay Шаблон:No Шаблон:Partial Шаблон:Okay Шаблон:Okay Шаблон:Partial Шаблон:Okay Шаблон:Partial Шаблон:Yes
Secure Transport OS X 10.8-10.10 Шаблон:Okay Шаблон:Yes Шаблон:Partial Шаблон:Yes Шаблон:Okay Шаблон:Partial Шаблон:Okay Шаблон:Partial Шаблон:Yes
Secure Transport OS X 10.11 Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfSSL Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
Implementation RSA[15] RSA-EXPORT (insecure)[15] DHE-RSA (forward secrecy)[15] DHE-DSS (forward secrecy)[15] ECDH-ECDSA[63] ECDHE-ECDSA (forward secrecy)[63] ECDH-RSA[63] ECDHE-RSA (forward secrecy)[63] GOST R 34.10-94, 34.10-2001[64]

Key exchange algorithms (alternative key-exchanges)

Implementation SRP[75] SRP-DSS[75] SRP-RSA[75] PSK-RSA[76] PSK[76] DHE-PSK (forward secrecy)[76] ECDHE-PSK (forward secrecy)[77] KRB5[78] DH-ANON[15] (insecure) ECDH-ANON[63] (insecure)
Botan Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
BSAFE SSL-J Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes[79] Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes
cryptlib Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Unknown Шаблон:Yes Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
JSSE Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes
LibreSSL Шаблон:No[80] Шаблон:No[80] Шаблон:No[80] Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
MatrixSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
NSS Шаблон:No[81] Шаблон:No[81] Шаблон:No[81] Шаблон:No[82] Шаблон:No[82] Шаблон:No[82] Шаблон:No[82] Шаблон:No Шаблон:Yes[83] Шаблон:Yes[84]
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[85] Шаблон:Yes[86] Шаблон:Yes[86]
Schannel Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Secure Transport Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Unknown Шаблон:No Шаблон:No
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[87] Шаблон:Yes Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes
Implementation SRP[75] SRP-DSS[75] SRP-RSA[75] PSK-RSA[76] PSK[76] DHE-PSK (forward secrecy)[76] ECDHE-PSK (forward secrecy)[77] KRB5[78] DH-ANON[15] (insecure) ECDH-ANON[63] (insecure)

Certificate verification methods

Implementation Application-defined PKIX path validation[88] CRL[89] OCSP[90] DANE (DNSSEC)[91] Trust on First Use (TOFU) CT[92]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
Bouncy Castle Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Unknown
BSAFE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Unknown
JSSE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
LibreSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[93] Шаблон:No Шаблон:No Шаблон:Unknown
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No[94] Шаблон:No Шаблон:No Шаблон:Unknown
NSS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No[95] Шаблон:No Шаблон:Unknown
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
s2n Шаблон:No [96] Шаблон:Unknown [97] Шаблон:Unknown [98]
Schannel Шаблон:Unknown Шаблон:Yes Шаблон:Yes[99] Шаблон:Yes[99] Шаблон:No Шаблон:No Шаблон:Unknown
Secure Transport Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
Erlang/OTP SSL application Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Unknown
Implementation Application-defined PKIX path validation CRL OCSP DANE (DNSSEC) Trust on First Use (TOFU) CT

Encryption algorithms

Implementation Block cipher with mode of operation Stream cipher None
AES GCM
[100]
AES CCM
[101]
AES CBC Camellia GCM
[102]
Camellia CBC
[103]
ARIA GCM
[104]
ARIA CBC
[104]
SEED CBC
[105]
Шаблон:Nowrap CBC
(insecure)[106]
Шаблон:Nowrap CNT
(proposed)
[64][n 1]
ChaCha20-Poly1305
[107]
Null
(insecure)
[n 2]
Botan Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[108] Шаблон:Yes
BoringSSL Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes
BSAFE SSL-J Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:Okay[19] Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes[109] Шаблон:Yes Шаблон:Yes[110] Шаблон:Yes
JSSE Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes[111] Шаблон:Yes Шаблон:Yes[112] Шаблон:Yes
LibreSSL Шаблон:Yes[23] Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay[65] Шаблон:Okay Шаблон:Yes Шаблон:Yes[23] Шаблон:No Шаблон:Okay[65] Шаблон:Yes[23] Шаблон:Yes
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes[113] Шаблон:Yes
Mbed TLS Шаблон:Yes Шаблон:Okay [114] Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes[115] Шаблон:Okay[115] Шаблон:Yes Шаблон:Yes[27] Шаблон:Yes Шаблон:Yes[116] Шаблон:Yes
NSS Шаблон:Yes[117] Шаблон:Yes Шаблон:Okay Шаблон:Okay[118][n 3] Шаблон:Okay[119] Шаблон:Okay Шаблон:Yes Шаблон:Okay[120] Шаблон:No Шаблон:Yes[67][68] Шаблон:Yes[121] Шаблон:Yes
OpenSSL Шаблон:Yes[122] Шаблон:Yes[34] Шаблон:Okay Шаблон:Okay Шаблон:Yes[34] Шаблон:Okay[123] Шаблон:Yes Шаблон:Yes[34] Шаблон:Yes[34] Шаблон:Okay[69] Шаблон:Yes[34] Шаблон:Yes
Schannel XP/2003 Шаблон:No Шаблон:Yes Шаблон:Partial[124] Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes[70] Шаблон:No Шаблон:Yes
Schannel Vista/2008, 2008R2, 2012 Шаблон:No Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes[70] Шаблон:No Шаблон:Yes
Schannel 7, 8, 8.1/2012R2 Шаблон:Partial
[72][73]
Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes[70] Шаблон:No Шаблон:Yes
Schannel 10[125] Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes[70] Шаблон:No Шаблон:Yes
Secure Transport OS X 10.6 - 10.10 Шаблон:No Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes
Secure Transport OS X 10.11 Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes
wolfSSL Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes
Implementation Block cipher with mode of operation Stream cipher None
AES GCM
[100]
AES CCM
[101]
AES CBC Camellia GCM
[102]
Camellia CBC
[103]
ARIA GCM
[104]
ARIA CBC
[104]
SEED CBC
[105]
Шаблон:Nowrap CBC
(insecure)[106]
Шаблон:Nowrap CNT
(proposed)
[64][n 1]
ChaCha20-Poly1305
[107]
Null
(insecure)
[n 2]
Notes

Шаблон:Reflist

Obsolete algorithms

Implementation Block cipher with mode of operation Stream cipher
IDEA CBC
Шаблон:Refn(insecure)[126]
DES CBC
(insecure)
[n 4]
DES-40 CBC
(EXPORT, insecure)
[n 5]
RC2-40 CBC
(EXPORT, insecure)
[n 5]
RC4-128
(insecure)
[n 6]
RC4-40
(EXPORT, insecure)
[n 7][n 5]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[127] Шаблон:Yes
BoringSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE SSL-J Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[19] Шаблон:Yes
JSSE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes [128]
LibreSSL Шаблон:No Шаблон:No Шаблон:Yes[23] Шаблон:Yes[23] Шаблон:No Шаблон:Yes[23]
MatrixSSL Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[28] Шаблон:Yes
NSS Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial[129][130] Шаблон:Yes
OpenSSL Шаблон:Yes[34] Шаблон:Yes Шаблон:Yes[34] Шаблон:Yes[34] Шаблон:Yes Шаблон:Yes[34]
Schannel XP/2003 Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Schannel Vista/2008 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
Schannel 7/2008R2 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial[131] Шаблон:Yes
Schannel 8/2012 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial Шаблон:Yes
Schannel 8.1/2012R2 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[131] Шаблон:Yes
Schannel 10[125] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[131] Шаблон:Yes
Secure Transport OS X 10.6 Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Secure Transport OS X 10.7 Шаблон:No Шаблон:Unknown Шаблон:Unknown Шаблон:Unknown Шаблон:No Шаблон:Unknown
Secure Transport OS X 10.8-10.9 Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes
Secure Transport OS X 10.10-10.11 Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial Шаблон:Yes
Secure Transport macOS 10.12 Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfSSL Шаблон:Yes[132] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Implementation Block cipher with mode of operation Stream cipher
IDEA CBC
[n 4](insecure)[126]
DES CBC
(insecure)
[n 4]
DES-40 CBC
(EXPORT, insecure)
[n 5]
RC2-40 CBC
(EXPORT, insecure)
[n 5]
RC4-128
(insecure)
[n 6]
RC4-40
(EXPORT, insecure)
[n 7][n 5]
Notes

Шаблон:Reflist

Supported elliptic curves

This section lists the supported elliptic curves by each implementation.

Defined curves in RFC 8446 (for TLS 1.3) and RFC 8422, 7027 (for TLS 1.2 and earlier)

applicable TLS version TLS 1.3 and earlier TLS 1.2 and earlier
Implementation secp256r1
prime256v1
Шаблон:Nowrap
(0x0017,[133] 23[134])
secp384r1
Шаблон:Nowrap
(0x0018,[133] 24[134])
secp521r1
Шаблон:Nowrap
(0x0019,[133] 25[134])
X25519
(0x001D,[133] 29[134])
X448
(0x001E,[133] 30[134])
brainpoolP256r1
(26)[135]
brainpoolP384r1
(27)[135]
brainpoolP512r1
(28)[135]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[108] Шаблон:No Шаблон:Yes[136] Шаблон:Yes[136] Шаблон:Yes[136]
BoringSSL Шаблон:Yes Шаблон:Yes Шаблон:Okay (disabled by default) Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Okay
BSAFE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Okay
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[137] Шаблон:Yes[138] Шаблон:Okay Шаблон:Okay Шаблон:Okay
JSSE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
x25519: JDK 13+[139]
Ed25519:JDK 15+[140]
Шаблон:Yes
x448: JDK 13+[139]
Ed448: JDK 15+[140]
Шаблон:Okay Шаблон:Okay Шаблон:Okay
LibreSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[141] Шаблон:No Шаблон:Yes[23] Шаблон:Yes[23] Шаблон:Yes[23]
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial[142] Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Partial[143] Шаблон:Partial[144] Шаблон:Yes[145] Шаблон:Yes[145] Шаблон:Yes[145]
NSS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[146] Шаблон:No[147][148] Шаблон:Okay[149] Шаблон:Okay[149] Шаблон:Okay[149]
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[150][151] Шаблон:Yes[152][153] Шаблон:Yes[36] Шаблон:Yes[36] Шаблон:Yes[36]
Schannel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Okay
Secure Transport Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Okay
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[154] Шаблон:Yes[155] Шаблон:Yes Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Implementation secp256r1
prime256v1
Шаблон:Nowrap
(0x0017, 23)
secp384r1
Шаблон:Nowrap
(0x0018, 24)
secp521r1
Шаблон:Nowrap
(0x0019, 25)
X25519
(0x001D, 29)
X448
(0x001E, 30)
brainpoolP256r1
(26)
brainpoolP384r1
(27)
brainpoolP512r1
(28)

Proposed curves

Implementation M221
Curve2213
[156]
E222
[156]
Curve1174
[156]
E382
[156]
M383
[156]
Curve383187
[156]
Curve41417
Curve3617
[156]
M511
Curve511187
[156]
E521
[156]
Botan Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
BoringSSL Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
BSAFE Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
GnuTLS Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
JSSE Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
LibreSSL Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
MatrixSSL Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Mbed TLS Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
NSS Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
OpenSSL Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Schannel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Secure Transport Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
wolfSSL Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Erlang/OTP SSL application Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Implementation M221
Curve2213
E222 Curve1174 E382 M383 Curve383187 Curve41417
Curve3617
M511
Curve511187
E521

Deprecated curves in RFC 8422

Implementation sect163k1
Шаблон:Nowrap
(1)[63]
sect163r1
(2)[63]
sect163r2
Шаблон:Nowrap
(3)[63]
sect193r1
(4)[63]
sect193r2
(5)[63]
sect233k1
Шаблон:Nowrap
(6)[63]
sect233r1
Шаблон:Nowrap
(7)[63]
sect239k1
(8)[63]
sect283k1
Шаблон:Nowrap
(9)[63]
sect283r1
Шаблон:Nowrap
(10)[63]
sect409k1
Шаблон:Nowrap
(11)[63]
sect409r1
Шаблон:Nowrap
(12)[63]
sect571k1
Шаблон:Nowrap
(13)[63]
sect571r1
Шаблон:Nowrap
(14)[63]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
BoringSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
BSAFE Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
JSSE Шаблон:YesШаблон:RefnШаблон:Refn Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10]
LibreSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
NSS Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
OpenSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Schannel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Secure Transport Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay Шаблон:Okay
Erlang/OTP SSL application Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes
Implementation sect163k1
Шаблон:Nowrap
(1)
sect163r1
(2)
sect163r2
Шаблон:Nowrap
(3)
sect193r1
(4)
sect193r2
(5)
sect233k1
Шаблон:Nowrap
(6)
sect233r1
Шаблон:Nowrap
(7)
sect239k1
(8)
sect283k1
Шаблон:Nowrap
(9)
sect283r1
Шаблон:Nowrap
(10)
sect409k1
Шаблон:Nowrap
(11)
sect409r1
Шаблон:Nowrap
(12)
sect571k1
Шаблон:Nowrap
(13)
sect571r1
Шаблон:Nowrap
(14)
Implementation secp160k1
(15)[63]
secp160r1
(16)[63]
secp160r2
(17)[63]
secp192k1
(18)[63]
secp192r1
prime192v1
Шаблон:Nowrap
(19)[63]
secp224k1
(20)[63]
secp224r1
Шаблон:Nowrap
(21)[63]
secp256k1
(22)[63]
arbitrary prime curves
(0xFF01)[63][157]
arbitrary char2 curves
(0xFF02)[63][157]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
BoringSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Yes Шаблон:Yes
BSAFE Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Yes Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Yes Шаблон:Yes
JSSE Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes[lower-alpha 9][lower-alpha 10] Шаблон:Yes Шаблон:Yes
LibreSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
NSS Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
OpenSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Schannel Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
Secure Transport Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes
wolfSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes
Implementation secp160k1
(15)
secp160r1
(16)
secp160r2
(17)
secp192k1
(18)
secp192r1
prime192v1
Шаблон:Nowrap
(19)
secp224k1
(20)
secp224r1
Шаблон:Nowrap
(21)
secp256k1
(22)
arbitrary prime curves
(0xFF01)
arbitrary char2 curves
(0xFF02)
Notes

Шаблон:Reflist

Data integrity

Implementation HMAC-MD5 HMAC-SHA1 HMAC-SHA256/384 AEAD GOST 28147-89 IMIT[64] GOST R 34.11-94[64]
Botan Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
BSAFE Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
cryptlib Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
GnuTLS Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
JSSE Шаблон:Yes Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
LibreSSL Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay[65] Шаблон:Okay[65]
MatrixSSL Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
NSS Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes[67][68] Шаблон:Yes[67][68]
OpenSSL Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Okay[69] Шаблон:Okay[69]
Schannel XP/2003, Vista/2008 Шаблон:No Шаблон:Okay Шаблон:Partial[158] Шаблон:No Шаблон:Yes[70] Шаблон:Yes[70]
Schannel 7/2008R2, 8/2012, 8.1/2012R2 Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Partial[72][73][74] Шаблон:Yes[70] Шаблон:Yes[70]
Schannel 10 Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes[125] Шаблон:Yes[70] Шаблон:Yes[70]
Secure Transport Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
wolfSSL Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
Erlang/OTP SSL application Шаблон:No Шаблон:Okay Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes
Implementation HMAC-MD5 HMAC-SHA1 HMAC-SHA256/384 AEAD GOST 28147-89 IMIT GOST R 34.11-94

Compression

Note the CRIME security exploit takes advantage of TLS compression, so conservative implementations do not enable compression at the TLS level. HTTP compression is unrelated and unaffected by this exploit, but is exploited by the related BREACH attack.

Implementation DEFLATE[159]
(insecure)
Botan Шаблон:Yes
BSAFE[18] Шаблон:Yes
cryptlib Шаблон:Yes
GnuTLS Шаблон:Yes
JSSE Шаблон:Yes
LibreSSL Шаблон:Yes[23]
MatrixSSL Шаблон:Yes
Mbed TLS Шаблон:Yes
NSS Шаблон:Yes
OpenSSL Шаблон:Yes
Schannel Шаблон:Yes
Secure Transport Шаблон:Yes
wolfSSL Шаблон:Yes
Erlang/OTP SSL application Шаблон:Yes
Implementation DEFLATE

Extensions

In this section the extensions each implementation supports are listed. Note that the Secure Renegotiation extension is critical for HTTPS client security Шаблон:Citation needed. TLS clients not implementing it are vulnerable to attacks, irrespective of whether the client implements TLS renegotiation.

Implementation Secure Renegotiation
[160]
Server Name Indication
[161]
ALPN
[162]
Certificate Status Request
[161]
OpenPGP
[163]
Supplemental Data
[164]
Session Ticket
[165]
Keying Material Exporter
[166]
Maximum Fragment Length
[161]
Truncated HMAC
[161]
Encrypt-then-MAC
[167]
TLS Fallback SCSV
[168]
Extended Master Secret
[169]
ClientHello Padding
[170]
Raw Public Keys
[171]
Botan Шаблон:Yes Шаблон:Yes Шаблон:Yes[172] Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes[173] Шаблон:Yes[174] Шаблон:No Шаблон:Unknown
BSAFE SSL-J Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No[175] Шаблон:Okay Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Unknown
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes[176] Шаблон:Yes Шаблон:No[177] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes[19] Шаблон:Yes[178] Шаблон:Yes[19] Шаблон:Yes[179] Шаблон:Yes[180]
JSSE Шаблон:Yes Шаблон:Yes[48] Шаблон:Yes[48] Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
LibreSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes[181] Шаблон:Yes Шаблон:No Шаблон:No? Шаблон:Yes Шаблон:Yes? Шаблон:No Шаблон:Okay Шаблон:No Шаблон:Partial[182] Шаблон:No Шаблон:Yes Шаблон:No
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes[183] Шаблон:Yes[113] Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Okay Шаблон:No Шаблон:Yes[113] Шаблон:Yes[113] Шаблон:No Шаблон:Unknown
Mbed TLS Шаблон:Yes Шаблон:Yes Шаблон:Yes[184] Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Okay[28] Шаблон:Yes[185] Шаблон:Yes[185] Шаблон:Yes[185] Шаблон:No Шаблон:No
NSS Шаблон:Yes Шаблон:Yes Шаблон:Yes[186] Шаблон:Yes Шаблон:No[187] Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Okay Шаблон:No[188] Шаблон:Yes[189] Шаблон:Yes[190] Шаблон:Yes[186] Шаблон:Unknown
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes[36] Шаблон:Yes Шаблон:No Шаблон:No? Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Okay Шаблон:Yes Шаблон:Yes[191] Шаблон:Yes[34] Шаблон:Yes[192] Шаблон:Yes[193]
Schannel XP/2003 Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Unknown
Schannel Vista/2008 Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Yes[194] Шаблон:No Шаблон:Unknown
Schannel 7/2008R2 Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Yes[194] Шаблон:No Шаблон:Unknown
Schannel 8/2012 Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Partial[195] Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Yes[194] Шаблон:No Шаблон:Unknown
Schannel 8.1/2012R2, 10 Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes[195] Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Yes[194] Шаблон:No Шаблон:Unknown
Secure Transport Шаблон:Yes Шаблон:Yes Шаблон:Unknown Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Unknown
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:Yes[132] Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Okay Шаблон:Yes[196] Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Unknown
Erlang/OTP SSL application Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Unknown
Implementation Secure Renegotiation Server Name Indication ALPN Certificate Status Request OpenPGP Supplemental Data Session Ticket Keying Material Exporter Maximum Fragment Length Truncated HMAC Encrypt-then-MAC TLS Fallback SCSV Extended Master Secret ClientHello Padding Raw Public Keys

Assisted cryptography

This section lists the known ability of an implementation to take advantage of CPU instruction sets that optimize encryption, or utilize system specific devices that allow access to underlying cryptographic hardware for acceleration or for data separation.

Implementation PKCS #11 device Intel AES-NI VIA PadLock ARMv8-A Intel SGX Intel QAT Intel SHA NXP CAAM
Botan Шаблон:Yes[197] Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
BSAFE SSL-J Шаблон:RefnШаблон:Refn Шаблон:Okay Шаблон:Okay Шаблон:No Шаблон:Okay Шаблон:No Шаблон:No Шаблон:Okay Шаблон:No
cryptlib Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
Crypto++ Шаблон:Yes Шаблон:No Шаблон:Yes
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes[198] Шаблон:No Шаблон:No Шаблон:Yes
JSSE Шаблон:Yes Шаблон:Yes[199] Шаблон:No Шаблон:No Шаблон:No Шаблон:No
LibreSSL Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No
MatrixSSL Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
Mbed TLS Шаблон:Yes Шаблон:Yes[200] Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
NSS Шаблон:Yes[201] Шаблон:Yes[202] Шаблон:No[203] Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes[204] Шаблон:Yes Шаблон:Yes Шаблон:Yes[205] Шаблон:No Шаблон:Yes Шаблон:Partial
Schannel Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No Шаблон:No
Secure Transport Шаблон:No Шаблон:Yes[206][207] Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:Yes[208] Шаблон:Yes[209]
Implementation PKCS #11 device Intel AES-NI VIA PadLock ARMv8-A Intel SGX Intel QAT Intel SHA NXP CAAM

Шаблон:Reflist

System-specific backends

This section lists the ability of an implementation to take advantage of the available operating system specific backends, or even the backends provided by another implementation.

Implementation /dev/crypto af_alg Windows CSP CommonCrypto OpenSSL engine
Botan Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Partial
BSAFE Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
cryptlib Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
GnuTLS Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:No
JSSE Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
LibreSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No[210]
MatrixSSL Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:Yes
Mbed TLS Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
NSS Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:No
OpenSSL Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:No Шаблон:Yes
Schannel Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No Шаблон:No
Secure Transport Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes Шаблон:No
wolfSSL Шаблон:Yes Шаблон:Yes Шаблон:Partial Шаблон:No Шаблон:Yes[211]
Erlang/OTP SSL application Шаблон:No Шаблон:No Шаблон:No Шаблон:No Шаблон:Yes
Implementation /dev/crypto af_alg Windows CSP CommonCrypto OpenSSL engine

Cryptographic module/token support

Implementation TPM support Hardware token support Objects identified via
Botan Шаблон:Partial[174] Шаблон:Yes
BSAFE SSL-J Шаблон:No Шаблон:No
cryptlib Шаблон:No Шаблон:Yes User-defined label
GnuTLS Шаблон:Yes Шаблон:Yes RFC 7512 PKCS #11 URLs[212]
JSSE Шаблон:No Шаблон:Yes
LibreSSL Шаблон:Yes Шаблон:Partial Custom method
MatrixSSL Шаблон:No Шаблон:Yes
Mbed TLS Шаблон:No Шаблон:Yes Custom method
NSS Шаблон:No Шаблон:Yes
OpenSSL Шаблон:Yes Шаблон:Partial[213] RFC 7512 PKCS #11 URLs[212]
Schannel Шаблон:No Шаблон:Yes UUID, User-defined label
Secure Transport
wolfSSL Шаблон:Yes Шаблон:Yes
Implementation TPM support Hardware token support Objects identified via

Code dependencies

Implementation Dependencies Optional dependencies
Botan C++20 SQLite
zlib (compression)
bzip2 (compression)
liblzma (compression)
boost
trousers (TPM)
GnuTLS libc
nettle
gmp
zlib (compression)
p11-kit (PKCS #11)
trousers (TPM)
libunbound (DANE)
JSSE Java
MatrixSSL none zlib (compression)
MatrixSSL-open libc or newlib
Mbed TLS libc libpkcs11-helper (PKCS #11)
zlib (compression)
NSS libc
libnspr4
libsoftokn3
libplc4
libplds4
zlib (compression)
OpenSSL libc zlib (compression)
wolfSSL None libc
zlib (compression)
Erlang/OTP SSL application libcrypto (from OpenSSL), Erlang/OTP and its public_key, crypto and asn1 applications Erlang/OTP -inets (http fetching of CRLs)
Implementation Dependencies Optional dependencies

Development environment

Implementation Namespace Build tools API manual Crypto back-end Шаблон:Clarify span
Botan Botan::TLS Makefile Sphinx Included (pluggable) Шаблон:No
Bouncy Castle org.bouncycastle Java Development Environment Programmers reference manual (PDF) Included (pluggable) Шаблон:No
BSAFE SSL-J com.rsa.asn1Шаблон:Cref2

com.rsa.certjШаблон:Cref2
com.rsa.jcpШаблон:Cref2
com.rsa.jsafeШаблон:Cref2
com.rsa.sslШаблон:Cref2
com.rsa.jsseШаблон:Cref2

Java classloader Javadoc, Developer's guide (HTML) Included Шаблон:No
cryptlib crypt* makefile, MSVC project workspaces Programmers reference manual (PDF), architecture design manual (PDF) Included (monolithic) Шаблон:No
GnuTLS gnutls_* Autoconf, automake, libtool Manual and API reference (HTML, PDF) External, libnettle Шаблон:Yes (limited)
JSSE javax.net.ssl

sun.security.ssl

Makefile API Reference (HTML) +

Шаблон:Javadoc:SE-guide

Java Cryptography Architecture,
Java Cryptography Extension
Шаблон:No
MatrixSSL matrixSsl_*

ps*

Makefile, MSVC project workspaces, Xcode projects for OS X and iOS API Reference (PDF), Integration Guide Included (pluggable) Шаблон:Yes (Subset: SSL_read, SSL_write, etc.)
Mbed TLS mbedtls_ssl_*

mbedtls_sha1_*
mbedtls_md5_*
mbedtls_x509*
...

Makefile, CMake, MSVC project workspaces, yotta API Reference + High Level and Module Level Documentation (HTML) Included (monolithic) Шаблон:No
NSS CERT_*

SEC_*
SECKEY_*
NSS_*
PK11_*
SSL_*
...

Makefile Manual (HTML) Included, PKCS#11 based[214] Шаблон:Yes (separate package called nss_compat_ossl[215])
OpenSSL SSL_*

SHA1_*
MD5_*
EVP_*
...

Makefile Man pages Included (monolithic) Шаблон:N/a
wolfSSL wolfSSL_*

CyaSSL_*
SSL_*

Autoconf, automake, libtool, MSVC project workspaces, XCode projects, CodeWarrior projects, MPLAB X projects, Keil, IAR, Clang, GCC, e2Studio Manual and API Reference (HTML, PDF) Included (monolithic) Шаблон:Yes (about 60% of API)
Implementation Namespace Build tools API manual Crypto back-end OpenSSL compatibility layer

Шаблон:Cnote2 begin Шаблон:Cnote2 Шаблон:Cnote2 Шаблон:Cnote2 Шаблон:Cnote2 API Шаблон:Cnote2 Шаблон:Cnote2 Шаблон:Cnote2 end

Portability concerns

Implementation Platform requirements Network requirements Thread safety Random seed Able to cross-compile No OS (bare metal) Supported operating systems
Botan C++11 None Шаблон:Yes Platform-dependent Шаблон:Yes Windows, Linux, macOS, Android, iOS, FreeBSD, OpenBSD, Solaris, AIX, HP-UX, QNX, BeOS, IncludeOS
BSAFE SSL-J Java Java SE network components Шаблон:Yes Depends on java.security.SecureRandom Шаблон:Yes Шаблон:No FreeBSD, Linux, macOS, Microsoft Windows, Android, AIX, Solaris
cryptlib C89 POSIX send() and recv(). API to supply your own replacement Шаблон:Yes Platform-dependent, including hardware sources Шаблон:Yes Шаблон:Yes AMX, BeOS, ChorusOS, DOS, eCos, FreeRTOS/OpenRTOS, uItron, MVS, OS/2, Palm OS, QNX Neutrino, RTEMS, Tandem NonStop, ThreadX, uC/OS II, Unix (AIX, FreeBSD, HPUX, Linux, macOS, Solaris, etc.), VDK, VM/CMS, VxWorks, Win16, Win32, Win64, WinCE/PocketPC/etc, XMK
GnuTLS C89 POSIX send() and recv(). API to supply your own replacement. Шаблон:Partial Platform dependent Шаблон:Yes Шаблон:No Generally any POSIX platforms or Windows, commonly tested platforms include Linux, Win32/64, macOS, Solaris, OpenWRT, FreeBSD, NetBSD, OpenBSD.
JSSE Java Java SE network components Шаблон:Yes Depends on java.security.SecureRandom Шаблон:Yes Java based, platform-independent
MatrixSSL C89 None Шаблон:Yes Platform dependent Шаблон:Yes Шаблон:Yes All
Mbed TLS C89 POSIX read() and write(). API to supply your own replacement. Шаблон:Partial Random seed set through entropy pool Шаблон:Yes Шаблон:Yes Known to work on: Win32/64, Linux, macOS, Solaris, FreeBSD, NetBSD, OpenBSD, OpenWRT, iPhone (iOS), Xbox, Android, eCos, SeggerOS, RISC OS
NSS C89, NSPR[216] NSPR[216] PR_Send() and PR_Recv(). API to supply your own replacement. Шаблон:Yes Platform dependent[217] Шаблон:Yes (but cumbersome) Шаблон:No AIX, Android, FreeBSD, NetBSD, OpenBSD, BeOS, HP-UX, IRIX, Linux, macOS, OS/2, Solaris, OpenVMS, Amiga DE, Windows, WinCE, Sony PlayStation
OpenSSL C89 None Шаблон:Yes Platform dependent Шаблон:Yes Шаблон:No Unix-like, DOS (with djgpp), Windows, OpenVMS, NetWare, eCos
wolfSSL C89 POSIX send() and recv(). API to supply your own replacement. Шаблон:Yes Random seed set through wolfCrypt Шаблон:Yes Шаблон:Yes Win32/64, Linux, macOS, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, Yocto Project, OpenEmbedded, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii and Gamecube through DevKitPro, QNX, MontaVista, NonStop, TRON/ITRON/µITRON, eCos, Micrium µC/OS-III, FreeRTOS, SafeRTOS, NXP/Freescale MQX, Nucleus, TinyOS, HP/UX, AIX, ARC MQX, Keil RTX, TI-RTOS, uTasker, embOS, INtime, Mbed, uT-Kernel, RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY, TOPPERS, PetaLinux, Apache mynewt
Implementation Platform requirements Network requirements Thread safety Random seed Able to cross-compile No OS (bare metal) Supported operating systems

See also

  • SCTP — with DTLS support
  • DCCP — with DTLS support
  • SRTP — with DTLS support (DTLS-SRTP) and Secure Real-Time Transport Control Protocol (SRTCP)

References

Шаблон:Reflist

Шаблон:SSL/TLS

  1. The features listed are for the closed source version
  2. Шаблон:Cite web
  3. Шаблон:Cite web
  4. Шаблон:Cite IETF
  5. Шаблон:Cite web
  6. Шаблон:Cite IETF
  7. Шаблон:Cite web
  8. Шаблон:Cite web
  9. Шаблон:Cite IETF
  10. 10,0 10,1 10,2 RFC 6347
  11. 11,0 11,1 Шаблон:Cite IETF
  12. 12,0 12,1 RFC 6101
  13. 13,0 13,1 RFC 2246
  14. 14,0 14,1 RFC 4346
  15. 15,00 15,01 15,02 15,03 15,04 15,05 15,06 15,07 15,08 15,09 15,10 15,11 RFC 5246
  16. 16,0 16,1 RFC 4347
  17. Шаблон:Cite web
  18. 18,0 18,1 18,2 Шаблон:Cite web
  19. 19,0 19,1 19,2 19,3 19,4 19,5 Шаблон:Cite web
  20. Шаблон:Cite web
  21. Шаблон:Cite web
  22. 22,0 22,1 Шаблон:Cite web
  23. 23,00 23,01 23,02 23,03 23,04 23,05 23,06 23,07 23,08 23,09 23,10 23,11 23,12 Шаблон:Cite web
  24. Шаблон:Cite web
  25. Шаблон:Cite web
  26. Шаблон:Cite web
  27. 27,0 27,1 27,2 27,3 Шаблон:Cite web
  28. 28,0 28,1 28,2 28,3 Шаблон:Cite web
  29. Шаблон:Cite web
  30. 30,0 30,1 Шаблон:Cite web
  31. Шаблон:Cite web
  32. Шаблон:Cite web
  33. Шаблон:Cite web
  34. 34,00 34,01 34,02 34,03 34,04 34,05 34,06 34,07 34,08 34,09 34,10 34,11 34,12 Шаблон:Cite web
  35. 35,0 35,1 Шаблон:Cite web
  36. 36,0 36,1 36,2 36,3 36,4 36,5 Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. 39,0 39,1 Шаблон:Cite web
  40. 40,0 40,1 40,2 Шаблон:Cite web
  41. 41,0 41,1 Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. Шаблон:Cite web
  47. Шаблон:Cite web
  48. 48,0 48,1 48,2 Шаблон:Cite web
  49. Шаблон:Cite web
  50. Шаблон:Cite web
  51. Шаблон:Cite web
  52. Шаблон:Cite web
  53. Шаблон:Cite web
  54. Шаблон:Cite web
  55. Шаблон:Cite web
  56. Шаблон:Cite web
  57. Шаблон:Cite web
  58. Шаблон:Cite web
  59. Шаблон:Cite web
  60. Шаблон:Cite web
  61. Шаблон:Cite web
  62. Шаблон:Cite web
  63. 63,00 63,01 63,02 63,03 63,04 63,05 63,06 63,07 63,08 63,09 63,10 63,11 63,12 63,13 63,14 63,15 63,16 63,17 63,18 63,19 63,20 63,21 63,22 63,23 63,24 63,25 63,26 63,27 63,28 63,29 63,30 63,31 63,32 63,33 RFC 4492
  64. 65,0 65,1 65,2 65,3 65,4 Шаблон:Cite web
  65. Шаблон:Cite web
  66. 67,0 67,1 67,2 67,3 Шаблон:Cite web
  67. 68,0 68,1 68,2 68,3 Шаблон:Cite web
  68. 69,0 69,1 69,2 69,3 Шаблон:Cite web
  69. 70,00 70,01 70,02 70,03 70,04 70,05 70,06 70,07 70,08 70,09 70,10 70,11 70,12 70,13 70,14 Extensions to support GOST in Schannel might be available.Шаблон:Citation needed
  70. 71,0 71,1 71,2 71,3 Шаблон:Cite web
  71. 72,0 72,1 72,2 Шаблон:Cite web
  72. 73,0 73,1 73,2 Шаблон:Cite web
  73. 74,0 74,1 Шаблон:Cite web
  74. 75,0 75,1 75,2 75,3 75,4 75,5 RFC 5054
  75. 76,0 76,1 76,2 76,3 76,4 76,5 RFC 4279
  76. 77,0 77,1 RFC 5489
  77. 78,0 78,1 RFC 2712
  78. Шаблон:Cite web
  79. 80,0 80,1 80,2 Шаблон:Cite web
  80. 81,0 81,1 81,2 Шаблон:Cite web
  81. 82,0 82,1 82,2 82,3 Шаблон:Cite web
  82. Шаблон:Cite web
  83. Шаблон:Cite web
  84. Шаблон:Cite web
  85. 86,0 86,1 Шаблон:Cite web
  86. Шаблон:Cite web
  87. RFC 5280
  88. RFC 3280
  89. RFC 2560
  90. RFC 6698, RFC 7218
  91. Шаблон:Cite IETF
  92. Шаблон:Cite web
  93. Шаблон:Cite web
  94. Шаблон:Cite web
  95. Шаблон:Cite web
  96. Шаблон:Cite web
  97. Шаблон:Cite web
  98. 99,0 99,1 Шаблон:Cite web
  99. 100,0 100,1 RFC 5288, RFC 5289
  100. 101,0 101,1 RFC 6655, RFC 7251
  101. 102,0 102,1 RFC 6367
  102. 103,0 103,1 RFC 5932, RFC 6367
  103. 104,0 104,1 104,2 104,3 RFC 6209
  104. 105,0 105,1 RFC 4162
  105. 106,0 106,1 Шаблон:Cite web
  106. 107,0 107,1 RFC 7905
  107. 108,0 108,1 Шаблон:Cite web
  108. Шаблон:Cite web
  109. Шаблон:Cite web
  110. Шаблон:Cite web
  111. Шаблон:Cite web
  112. 113,0 113,1 113,2 113,3 Шаблон:Cite webШаблон:Dead link
  113. Шаблон:Cite web
  114. 115,0 115,1 Шаблон:Cite web
  115. Шаблон:Cite web
  116. Шаблон:Cite web
  117. Шаблон:Cite web
  118. Шаблон:Cite web
  119. Шаблон:Cite web
  120. Шаблон:Cite web
  121. Шаблон:Cite web
  122. Шаблон:Cite web
  123. Шаблон:Cite web
  124. 125,0 125,1 125,2 Шаблон:Cite web
  125. 126,0 126,1 Шаблон:Cite web
  126. Шаблон:Cite web
  127. Шаблон:Cite web
  128. Шаблон:Cite web
  129. Шаблон:Cite web
  130. 131,0 131,1 131,2 Шаблон:Cite web
  131. 132,0 132,1 Шаблон:Cite web
  132. 133,0 133,1 133,2 133,3 133,4 RFC 8446
  133. 134,0 134,1 134,2 134,3 134,4 RFC 8422
  134. 135,0 135,1 135,2 RFC 7027
  135. 136,0 136,1 136,2 Шаблон:Cite web
  136. Шаблон:Cite web
  137. Шаблон:Cite web
  138. 139,0 139,1 Шаблон:Cite web
  139. 140,0 140,1 Шаблон:Cite web
  140. Шаблон:Cite web
  141. Шаблон:Cite web
  142. Шаблон:Cite web
  143. Шаблон:Cite web
  144. 145,0 145,1 145,2 Шаблон:Cite web
  145. Шаблон:Cite web
  146. Шаблон:Cite web
  147. Шаблон:Cite web
  148. 149,0 149,1 149,2 Шаблон:Cite web
  149. Шаблон:Cite web
  150. Шаблон:Cite web
  151. Шаблон:Cite web
  152. Шаблон:Cite web
  153. Шаблон:Cite web
  154. Шаблон:Cite web
  155. 156,0 156,1 156,2 156,3 156,4 156,5 156,6 156,7 156,8 Шаблон:Cite IETF
  156. 157,0 157,1 Negotiation of arbitrary curves has been shown to be insecure for certain curve sizes Шаблон:Cite conference
  157. Шаблон:Cite web
  158. RFC 3749
  159. RFC 5746
  160. 161,0 161,1 161,2 161,3 RFC 6066
  161. RFC 7301
  162. RFC 6091
  163. RFC 4680
  164. RFC 5077
  165. RFC 5705
  166. RFC 7366
  167. RFC 7507
  168. RFC 7627
  169. RFC 7685
  170. RFC 7250
  171. Шаблон:Cite web
  172. Шаблон:Cite web
  173. 174,0 174,1 Шаблон:Cite web
  174. Present, but disabled by default due to lack of use by any implementation.
  175. Шаблон:Cite web
  176. Шаблон:Cite web
  177. Шаблон:Cite web
  178. Шаблон:Cite web
  179. Шаблон:Cite web
  180. Шаблон:Cite web
  181. Шаблон:Cite web
  182. Шаблон:Cite web
  183. Шаблон:Cite web
  184. 185,0 185,1 185,2 Шаблон:Cite web
  185. 186,0 186,1 Шаблон:Cite web
  186. Шаблон:Cite web
  187. Шаблон:Cite web
  188. Шаблон:Cite web
  189. Шаблон:Cite web
  190. Шаблон:Cite web
  191. Шаблон:Cite web
  192. Шаблон:Cite web
  193. 194,0 194,1 194,2 194,3 Шаблон:Cite web
  194. 195,0 195,1 Шаблон:Cite web
  195. Шаблон:Cite web
  196. Шаблон:Cite web
  197. Шаблон:Cite web
  198. Шаблон:Cite web
  199. Шаблон:Cite web
  200. Normally NSS's libssl performs all operations via the PKCS#11 interface, either to hardware or software tokens
  201. Шаблон:Cite web
  202. Шаблон:Cite web
  203. https://habrahabr.ru/post/134725/, http://forum.rutoken.ru/topic/1639/, https://dev.rutoken.ru/pages/viewpage.action?pageId=18055184 Шаблон:In lang
  204. Шаблон:Cite web
  205. https://opensource.apple.com/source/Security/Security-55179.13/sec/Security/SecECKey.c
  206. Шаблон:Cite web
  207. Шаблон:Cite web
  208. Шаблон:Cite web
  209. Шаблон:Cite web
  210. Шаблон:Cite web
  211. 212,0 212,1 Шаблон:Cite IETF
  212. Шаблон:Cite web
  213. On the fly replaceable/augmentable.
  214. Шаблон:Cite web
  215. 216,0 216,1 Шаблон:Cite web
  216. For Unix/Linux it uses /dev/urandom if available, for Windows it uses CAPI. For other platforms it gets data from clock, and tries to open system files. NSS has a set of platform dependent functions it uses to determine randomness.


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