ROADMAP.md
Specific features, in rough order of priority:
Address asynchronous handshake interruption. Allow completion of user-provided operations to be deferred. rustls/rustls#850
Support Encrypted Client Hello (ECH) (Server Side). Encrypted Client Hello is an upcoming standard from the TLS WG providing better protection for some of the data sent by a client in the initial Client Hello message. Rustls already supports client side ECH, we will add server side support. rustls/rustls#1980
General priorities:
Additional Performance Optimization. Additional performance optimization including CPU usage, latency, and memory usage. The goal is to outperform OpenSSL across the board if we are not already.
Improve OpenSSL Compatibility. Continue to improve the OpenSSL compatibility layer.
Rustls API Refinements. Continue to improve the Rustls API. Aim for ease of use, clarity.
Delivered in 0.23.11:
Delivered in 0.23.10:
Delivered in 0.23.9:
Delivered in rustls-openssl-compat 0.1.0:
Delivered in 0.23.2:
X25519Kyber768Draft00 key exchange.
This should track the draft.
rustls/rustls#1687Delivered in 0.23:
FIPS Certification for Default Cryptographic Library. Change the default cryptographic library to something with FIPS certification. rustls/rustls#1540
Add No-Allocation / Write-Through API. Would make handshakes faster and give the caller more control over allocations. RFC: rustls/rustls#1420
Support no_std. Enables use of rustls in more memory-constrained environments. RFC: rustls/rustls#1399
Delivered in rustls-platform-verifier 0.1.0:
Delivered in 0.22:
Enable Pluggable Cryptographic Back-ends. Allow plugging in different cryptographic back-ends. rustls/rustls#1184
Comprehensive Performance Benchmarking. Performance should be a headline feature of Rustls. We need to develop a more comprehensive benchmarking system so that we can assess and improve performance from multiple angles, including CPU usage, latency, and memory usage.
Delivered in 0.21:
Support IP Address Certificates. There are some popular use cases where applications want TLS certificates for services that don’t have their own host name, relying on the IP address directly instead. This is common in Kubernetes deployments and service meshes. rustls/rustls#184
Implement RFC 8446 Appendix C.4 in session cache. TLS clients should use session tickets at most once for resumption. Without this, TLS clients may be tracked across connections through reuse of session tickets. Requires changes of the internal APIs to the session caching infrastructure. rustls/rustls#466
Improve Client Certificate Authentication Support. Rustls and webpki currently do not provide access to client information supplied as part of the certificate, and there’s no infrastructure to deal with revocation checks. rustls/rustls-ffi#87
Delivered in 0.20: