Skip to content

Releases: rustls/rustls

0.23.17

16 Nov 12:43
@ctz ctz
Compare
Choose a tag to compare
  • Performance improvement: by default rustls servers now send fewer TLS1.3 tickets to a client. The old default was 4 tickets, now it is 2. The number can be tuned if needed by setting ServerConfig::send_tls13_tickets.
  • Performance improvement: the default ticket rotator now has improved multithreaded performance.

What's Changed

  • Add note about ed25519 browser support by @ctz in #2186
  • doc(no_inline) rustls::pki_types re-export by @ctz in #2188
  • server: default send_tls13_tickets 4 -> 2 by @cpu in #2187
  • build: bump nightly for cargo-check-external-types by @ctz in #2191
  • Assorted "design" documentation, and record stance on custom TLS extension APIs by @ctz in #2189
  • cancel-in-progress github action runs keyed on PR/ref by @ctz in #2197
  • minor improvements to internal test imports by @brodycj in #2199
  • Introduce TicketRotator, a version of TicketSwitcher with improved thread scalability by @ctz in #2193
  • Support multithreaded benchmarks by @ctz in #2192
  • Static site for rustls.dev, including home for performance reports by @ctz in #2201
  • add arm performance results by @ctz in #2206
  • StoresServerSessions: guarantee keys are high entropy by @ctz in #2209
  • fix(deps): update rust crate zlib-rs to 0.4 by @renovate-bot in #2210
  • chore(deps): update codecov/codecov-action action to v5 by @renovate-bot in #2211
  • Prepare 0.23.17 by @ctz in #2214

Full Changelog: v/0.23.16...v/0.23.17

0.23.16

28 Oct 13:21
@djc djc
v/0.23.16
276eb74
Compare
Choose a tag to compare

Release notes

  • Add support for RFC 7250 raw public keys.

What's Changed

  • ci: update ECH daily-test configuration by @cpu in #2161
  • Support for Raw Public Keys (RFC 7250) by @holodorum in #2062
  • ci: restore defo.ie ECH daily test by @cpu in #2164
  • bench: avoid debug_assert by @ctz in #2163
  • client/tls12: remove stale ref to SCT verification by @cpu in #2166
  • Remove crossbuilds and coverage from merge_checks by @ctz in #2165
  • bench: match default BoringSSL/OpenSSL ticket count by @ctz in #2167
  • Faster TLS1.3 server resumption by @ctz in #2168
  • Markdown fixes in manual by @ctz in #2169
  • Change link to the NSS Key Log Format by @yedayak in #2170
  • consistent APIs for connection FIPS indicator by @cpu in #2174
  • Make ciphersuite enum smaller by @ctz in #2172
  • automate dead link checking of documentation by @cpu in #2173
  • Lychee linkcheck tweaks by @cpu in #2176
  • ci: loosen lychee-action version by @cpu in #2178
  • fix(deps): update rust crate asn1 to 0.18 by @renovate-bot in #2180
  • post-quantum: move from kyber768 to ML-KEM768 by @ctz in #2175
  • Expose ConfigBuilder::crypto_provider() by @djc in #2181
  • chore(deps): lock file maintenance by @renovate-bot in #2185
  • Don't warn on UserCanceled alerts by @djc in #2184
  • Bump version to 0.23.16 by @djc in #2183

0.23.15

16 Oct 13:21
@ctz ctz
Compare
Choose a tag to compare

Release notes

  • Improve performance when reading plaintext data in small increments (#2154)

What's Changed

  • chore(deps): lock file maintenance by @renovate-bot in #2150
  • chore(deps): lock file maintenance by @renovate-bot in #2153
  • fix: renamed structs to correct naming inconsistency by @hex1c in #2152
  • Improve receive performance by @ctz in #2155
  • list ECH as a feature, fix some low-hanging nightly clippy findings. by @cpu in #2157
  • Use re-exported pki-types everywhere by @djc in #2158
  • bench: decrease bench allocator traffic by @ctz in #2160
  • Prepare 0.23.15 by @ctz in #2156

New Contributors

Full Changelog: v/0.23.14...v/0.23.15

0.23.14

04 Oct 13:24
@ctz ctz
Compare
Choose a tag to compare

Release notes

  • Breaking change for no_std users: The return type of CryptoProvider::install_default() would change depending on the std crate feature. This was unintended and is corrected in this release. But that does mean this semver-compatible release contains a breaking API change, albeit only for users who omit the std crate feature. Our apologies in advance.
  • Performance improvements especially for servers doing a full TLS1.3 handshake, and clients doing a resumed TLS1.2 handshake.
  • Improvements to example code: demonstrate usage of TLS1.3 early data (thanks to @tahmid-23) & using clap for CLI.

What's Changed

New Contributors

Full Changelog: v/0.23.13...v/0.23.14

0.23.13

10 Sep 10:53
@ctz ctz
Compare
Choose a tag to compare
  • Add new custom-provider crate feature to disable installation of built-in provider. This may be useful in situations where your application wishes to ensure consistent use of a custom crypto provider throughout the dependency tree. Thanks to @stormshield-gt
  • Ensure only max_early_data_size bytes of early data will be accepted, if it is read while it is being received. Thanks to @tahmid-23 for the report and fix.
  • Use the ticket construction recommended by RFC5077 for the default aws-lc-rs ticketer.
  • Take aws-lc-rs 1.9 -- this removes the build-time requirement for NASM on Windows. There is an environment variable which reenables the old behaviour of building these artifacts from source.

What's Changed

  • Spell checker pass by @ctz in #2053
  • Fix clippy lints stabilised in 1.80 by @ctz in #2055
  • Update CLI of example tlsserver-mio to support early data and disabling resumption (closes #2058) by @Leonie-Theobald in #2059
  • Take upstream bogo changes, and expand testing using it by @ctz in #2057
  • Enable one more bogo ECH test, update skip reason for another by @cpu in #2061
  • Rewrite message deframer by @ctz in #2049
  • Remove default_fips_provider() item without aws_lc_rs by @ctz in #2064
  • Fix daily-tests failures by @ctz in #2065
  • Avoid hanging if the client disconnects while self.wants_write() by @lasiotus in #2060
  • fix(deps): update rust crate asn1 to 0.17 by @renovate-bot in #2067
  • chore(deps): lock file maintenance by @renovate-bot in #2069
  • Remove unused code in ServerConnection::new by @DragonDev1906 in #2073
  • aws_lc_rs: implement RFC 5077 recommended ticketer by @cpu in #2066
  • Optimise crate size by @ctz in #2077
  • chore(deps): lock file maintenance by @renovate-bot in #2080
  • Add end entity and client public keys in PEM format for testing by @holodorum in #2078
  • Crypto: add feature to disable installation of built-in provider by @stormshield-gt in #2082
  • Reinstate coverage of CryptoProvider provider fns by @ctz in #2083
  • remove Send + Sync not needed from client session storage field by @brodycj in #2087
  • chore: remove trailing spaces by @brodycj in #2090
  • polyfill: allow dead code w/o built-in providers, no-std by @cpu in #2091
  • nit(ci): remove extra blank line from .github/workflows/build.yml by @brodycj in #2094
  • ci: trim daily-tests powerset by @cpu in #2093
  • Ensure only max_early_data_size will be read after reading from ReadEarlyData by @tahmid-23 in #2097
  • nit(ci): remove a trailing space from daily-tests.yml by @brodycj in #2098
  • ci: cross-target build & test updates by @brodycj in #2095
  • chore(deps): lock file maintenance by @renovate-bot in #2105
  • Tidy logging macros by @ctz in #2106
  • nit: move rustls::crypto::CryptoProvider documentation item by @brodycj in #2107
  • Fix excessively long first rustdoc paragraphs by @ctz in #2109
  • Remove FFDHE constants from programs that don't use FFDHE by @ctz in #2092
  • Mention rustls-wolfcrypt-provider in providers docs by @gasbytes in #2110
  • fix(deps): update rust crate zlib-rs to 0.3 by @renovate-bot in #2111
  • Take aws-lc-rs 1.9 by @ctz in #2118

New Contributors

Full Changelog: v/0.23.12...v/0.23.13

0.23.12

23 Jul 15:32
@djc djc
v/0.23.12
Compare
Choose a tag to compare

Added support for P521 SHA-256/SHA-384 signature verification with aws-lc-rs.

What's Changed

0.23.11

08 Jul 16:24
@ctz ctz
Compare
Choose a tag to compare
  • New feature: API for determining whether a CertifiedKey's certificate and private key matches: keys_match(). This is called from existing fallible functions that accept a private key and certificate (for example, with_single_cert()) so these functions now detect this misconfiguration.

    This relies on a new -- optional -- member of the SigningKey trait: public_key() -- downstream implementers of this trait can opt-in to this behavior by implementing this method.

  • New feature: API for determining which key exchange group a connection used: negotiated_key_exchange_group()

  • New feature: Automatic sending of TLS1.3 key_update messages to avoid exceeding AEAD confidentiality limits. This is complemented with a new API for manual use, refresh_traffic_keys()

  • Expose common connection items in unbuffered API (docs)

What's Changed

  • docs: cross off client-side ECH from roadmap by @cpu in #2006
  • fix(deps): update rust crate zlib-rs to 0.2 by @renovate-bot in #2005
  • deps: use hickory-resolver 0.25 alpha release by @cpu in #2007
  • chore(deps): update seanmiddleditch/gha-setup-ninja action to v5 by @renovate-bot in #2008
  • (Examples) Bugfix: Use normal brackets to avoid docopt literal default by @ckcr4lyf in #2009
  • docs: add ech-client.rs to examples/README.md by @cpu in #2011
  • build(deps): bump curve25519-dalek from 4.1.2 to 4.1.3 by @dependabot in #2012
  • Refactor integration tests to let rustfmt work by @ctz in #2014
  • (Examples) Feature: Use port-prefix naming to lookup correct ECHConfig by @ckcr4lyf in #2013
  • docs: word iff => if and only if by @Borber in #2015
  • key_update API and automatic key refreshing by @ctz in #2003
  • chore(deps): lock file maintenance by @renovate-bot in #2020
  • Fix flickery unbuffered examples by @ctz in #2017
  • key_update review follow-up by @ctz in #2016
  • add warn for elided_lifetimes_in_paths by @cpu in #2025
  • chore: fix some comments by @haouvw in #2026
  • Tighten up ticketer decryption by @ctz in #2022
  • examples Fix minor typo (ciper -> cipher) by @bheesham in #2027
  • chore(deps): lock file maintenance by @renovate-bot in #2029
  • unbuffered: add missing deref for CommonState by @ctz in #2032
  • common_state: expose key exchange group by @cpu in #2028
  • Add function to verify CertifiedKey consistency by @lvkv in #1954
  • Avoid markdown footnotes by @ctz in #2033
  • Benchmark unbuffered API by @ctz in #2024
  • chore(deps): lock file maintenance by @renovate-bot in #2035
  • chore(deps): lock file maintenance by @renovate-bot in #2036
  • Verify CertifiedKey consistency in ConfigBuilder with_single_cert methods by @lvkv in #2034
  • Implement public_key() for all built-in SigningKey impls by @ctz in #2039
  • Prepare 0.23.11 by @ctz in #2037

New Contributors

Full Changelog: v/0.23.10...v/0.23.11

0.23.10

13 Jun 15:26
@cpu cpu
Compare
Choose a tag to compare
  • draft-ietf-tls-esni-18 encrypted client hello (ECH) is now supported for client applications. See the ech-client.rs example for a complete end-to-end demonstration using DNS-over-HTTPS to retrieve a server's ECH configuration for building a Rustls ClientConfig using with_ech().
  • Additional safety limits guarding against fruitless processing of small messages have been added. Rustls will now limit excessive warning-level alerts, post-handshake renegotiation attempts, key update requests, and empty plaintext fragments.
  • FIPS mode has been updated to exclude X25519 key exchange.

What's Changed

  • docs: add OpenSSF best practices badge by @cpu in #1985
  • ROADMAP: check off cert compression by @ctz in #1987
  • chore: Configure Renovate by @renovate-bot in #1984
  • chore(deps): lock file maintenance by @renovate-bot in #1991
  • Disable x25519 key exchange in fips mode by @ctz in #1993
  • aws_lc_rs: fix unused import w/ no-std by @cpu in #1994
  • Limit fruitless processing of small messages by @ctz in #1988
  • fix lib.rs examples link by @bmw in #1995
  • chore(deps): lock file maintenance by @renovate-bot in #1996
  • Revert "ci: temp. pin nightly to 2024-05-22" by @cpu in #1998
  • Encrypted Client Hello support (client only) by @cpu in #1718
  • apply nightly formatting by @cpu in #2002
  • ech: implement inner hello extension compression by @cpu in #2001
  • v0.23.10 release preparation by @cpu in #2004

New Contributors

Full Changelog: v/0.23.9...v/0.23.10

0.23.9

03 Jun 15:07
@ctz ctz
Compare
Choose a tag to compare
  • RFC8879 certificate compression is now supported. Get started by enabling the brotli and/or zlib crate features, which depend on the brotli or zlib-rs crates. We recommend brotli as it has the widest deployment so far.

What's Changed

  • ci: temp. pin nightly to 2024-05-22 by @cpu in #1971
  • deps: update semver compatible dependencies by @cpu in #1972
  • Fix LTO setting and a clippy::use_self finding by @cpu in #1973
  • ci: update cargo-check-external-types toolchain by @cpu in #1974
  • fix rustc-check-cfg by @cpu in #1975
  • Support RFC8879 certificate compression by @ctz in #1966
  • Update roadmap to reflect initial release of the OpenSSL compat layer by @bdaehlie in #1977
  • Implement RFC 9180 HPKE provider backed by aws-lc-rs by @cpu in #1963
  • Tidy handshake_tests file by @ctz in #1978
  • General roadmap updates. by @bdaehlie in #1979
  • Minor #[allow()] cleanups by @ctz in #1982
  • Prepare 0.23.9 by @ctz in #1986

Full Changelog: v/0.23.8...v/0.23.9

0.23.8

23 May 13:43
@ctz ctz
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v/0.23.7...v/0.23.8