Create Main
Browse files
Main
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# TLS 1.3 Implementations
|
| 2 |
+
|
| 3 |
+
name | language | role(s) | [version](Implementations#version-negotiation) | features/limitations
|
| 4 |
+
--- | --- | --- | --- | ---
|
| 5 |
+
[fizz](https://github.com/facebookincubator/fizz/) | C++ | C/S | RFC 8446 | Based on libsodium, includes secure design abstractions. Zero-copy for advanced performance.
|
| 6 |
+
[NSS](https://hg.mozilla.org/projects/nss) | C | C/S | RFC 8446 | Almost everything, except some crypto primitives
|
| 7 |
+
[Mint](https://github.com/bifurcation/mint) | Go | C/S | -18 | PSK resumption, 0-RTT, HRR
|
| 8 |
+
[nqsb](https://github.com/mirleft/ocaml-tls/tree/tls13) | OCaml | C/S | -11 | PSK/DHE-PSK, no EC*, no client auth, no 0RTT -- live server at tls13test.nqsb.io port 4433, records traces, ping [@hannesm](https://github.com/hannesm), contains a static PSK/DHE_PSK token: id: 0x0000 <details><summary>secret:</summary> 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f</details>
|
| 9 |
+
ProtoTLS | JavaScript | C/S | -13 | EC/DHE/PSK, no HelloRetryRequest
|
| 10 |
+
miTLS | F* | C/S | RFC 8446 | EC/DHE/PSK/0-RTT, no RSA-PSS, no post-HS-auth, no ESNI
|
| 11 |
+
[Tris](https://github.com/cloudflare/tls-tris) | Go | C/S | RFC 8446 | ECDHE/PSK/0-RTT, no HelloRetryRequest
|
| 12 |
+
[BoringSSL](https://boringssl.googlesource.com/boringssl/) | C | C/S | -23, -28, RFC 8446 | P-256, X25519, HelloRetryRequest, resumption, 0-RTT, KeyUpdate
|
| 13 |
+
[Wireshark](https://www.wireshark.org) | C | other | -18 to -28, RFC 8446 | Full decryption and dissection support for drafts 19-21 since 2.4.0 ([keylog format](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format)). Supports 18-21 since 2.4.2, -22 since 2.4.3, -23 since 2.4.5, -24 to -28 (+0RTT trial decryption) since 2.6.0. [Tracking bug](https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=12779).
|
| 14 |
+
[picotls](https://github.com/h2o/picotls)| C | C/S | -18,-21,-23,-26 | P-256, X25519, HelloRetryRequest, resumption, 0-RTT
|
| 15 |
+
[rustls](https://github.com/ctz/rustls) | Rust | C/S | -28 (final on branch) | P-256/P-384/curve25519, HRR, resumption, 0-RTT client |
|
| 16 |
+
[Haskell tls](https://github.com/kazu-yamamoto/hs-tls/tree/tls13) | Haskell | C/S | -28 | ECDHE w/ P* and X*, full, HRR, PSK, 0RTT
|
| 17 |
+
[Leto](https://github.com/Drawaes/Leto/tree/master) | C# | S | -18 | DHE, X25519, AES, no PSK no 0RTT. Tested against NSS
|
| 18 |
+
[OpenSSL](https://www.openssl.org) | C | C/S | RFC 8446 | P-256, P-384, P-521, FFDHE, X25519, X448, Ed25519, Ed448, HelloRetryRequest, resumption, PSK, 0-RTT, CCS, cookies, stateless server, Post-handshake auth, KeyUpdate, RSA-PSS certs
|
| 19 |
+
[wolfSSL](https://www.wolfssl.com) | C | C/S | RFC 8446 -18/-22/-23/-26/-28 | P-256, P-384, X25519, Ed25519, HelloRetryRequest, resumption, PSK, 0-RTT, CCS, cookies, stateless server, Post-Handshake Auth, KeyUpdate
|
| 20 |
+
[GnuTLS](https://www.gnutls.org) | C | C/S | RFC 8446 | P-256, P-384, X25519, FFDHE, RSA-PSS (keys and certs), HelloRetryRequest, KeyUpdate, Post-Handshake Auth, PSK
|
| 21 |
+
[tlslite-ng](https://github.com/tomato42/tlslite-ng) | Python | C/S | RFC 8446 | ECDHE (all), EdDHE (X25519, X448), FFDHE (all), AES-GCM, Chacha20, HelloRetryRequest, RSA, RSA-PSS keys and certificate signatures, cookie extension, CCS, PSK, resumption, in-handshake client auth, no ECDSA certificates, no post-handshake client auth, no 0-RTT, no KeyUpdate
|
| 22 |
+
[tlsfuzzer](https://github.com/tomato42/tlsfuzzer) | Python | C (other) | RFC 8446 | ECDHE (all), EdDHE (x25519, X448), FFDHE (all), AES-GCM, Chacha20, RSA, HelloRetryRequest, CCS, cookie extension, PSK, resumption, in-handshake auth, no KeyUpdate
|
| 23 |
+
[SwiftTLS](https://github.com/nsc/SwiftTLS) | Swift | C/S | -26,-28, RFC 8446 | ECDHE, P-256, 0-RTT, HelloRetryRequest
|
| 24 |
+
[JSSE/JDK](http://java.oracle.com) | Java | C/S | RFC 8446 | **JDK 11+:** All required extensions and algorithms, ChaCha20/Poly1305 ciphersuites (JDK 12+), all listed named groups (e.g. secp256r1, x25519/x448 (JDK 13+), FFDHE, etc.), RSA-PSS certs/signatures, PSK resumption, HelloRetryRequest, cookie extension, post handshake messages (NewSessionTicket/KeyUpdate), OCSP Stapling, Middlebox compatibility mode. **No support for:** previous drafts, 0-RTT, CCM, SCT, post_handshake_auth.
|
| 25 |
+
[CycloneSSL](https://www.oryx-embedded.com/cyclone_ssl.html) | C | C/S | RFC 8446 | P-256, P-384, X25519, X448, FFDHE, AES-GCM, AES-CCM, ChaCha20Poly1305, HelloRetryRequest, PSK, 0-RTT (client only), CCS, cookies, KeyUpdate, RSA-PSS certificates, ECDSA certificates, EdDSA certificates (Ed25519 and Ed448)
|
| 26 |
+
[tttls1.3](https://github.com/thekuwayama/tttls1.3) | Ruby | C/S | RFC 8446 | P-256/P-384/P-521, AES-GCM/ChaCha20Poly1305, HRR, PSK resumption(NewSessionTicket), 0-RTT(client only)
|
| 27 |
+
[Rebex TLS 1.3](https://www.rebex.net/tls/) | C# | C/S | RFC 8446 | All required extensions and algorithms, RSA-PSS certificates/signatures, HelloRetryRequest, PSK resumption, in-handshake auth, post-handshake auth (experimental), post handshake messages (NewSessionTicket, KeyUpdate (experimental)), Middlebox compatibility mode, P-256/P-384/P-521, AES-GCM, Chacha20/Poly1305, Cookie extension.
|
| 28 |
+
|
| 29 |
+
# Browsers
|
| 30 |
+
|
| 31 |
+
Default support in Firefox, Chrome, and Safari.
|
| 32 |
+
|
| 33 |
+
# Test servers
|
| 34 |
+
|
| 35 |
+
Implementation | URL
|
| 36 |
+
--- | ---
|
| 37 |
+
BoringSSL | https://tls.ctf.network/
|
| 38 |
+
rustls+nginx | https://rustls.jbp.io/
|
| 39 |
+
OpenSSL+nginx | https://tls13.pinterjann.is/
|
| 40 |
+
SwiftTLS | https://swifttls.org/
|
| 41 |
+
Tris+Caddy | https://www.henrock.net/
|
| 42 |
+
OpenSSL | https://tls13.akamai.io/
|
| 43 |
+
Rebex | https://test.rebex.net/
|