snapview / tungstenite-rs

Lightweight stream-based WebSocket implementation for Rust.
Apache License 2.0
1.79k stars 208 forks source link

Update rustls requirement from 0.21.6 to 0.22.0 #395

Closed dependabot[bot] closed 7 months ago

dependabot[bot] commented 7 months ago

Updates the requirements on rustls to permit the latest version.

Release notes

Sourced from rustls's releases.

0.22.0

New features

  • Configurable cryptography providers. The cryptography used by rustls is represented by the CryptoProvider trait. ring is now optional, but remains the default provider.
  • Certificate revocation list (CRL) support. The default certificate verifier used in rustls can now be configured with CRLs to control revocation of client and server certificates.
  • Optional support for cryptography from aws-lc-rs. Once the certification process completes , we will support FIPS mode using aws-lc-rs.
  • Separate configuration of root hints in client certificate verifier. To deal with cross-signed client certificate topologies, the list of hints sent to a client can now be configured. The default behaviour remains to send the names of the configured root certificates.

Related libraries

There are some related libraries in the rustls ecosystem. If you depend on these libraries, you'll need at least these versions to be compatible with rustls 0.22:

rustls-pki-types = { version = "1" }
webpki-roots = { version = "0.26" }
rustls-webpki = { version = "0.102" }
rustls-pemfile = { version = "2" }
rustls-native-certs = { version = "0.7.0"}

Breaking changes

  • Remove support for SCTs provided via TLS extension. Ecosystem support for this is rare compared to inclusion of SCTs in certificates.
  • Rename WebPkiVerifier to WebPkiServerVerifier and add WebPkiClientVerifier.
  • Remove default trait implementations in ServerCertVerifier/ClientCertVerifier so the trait doesn't depend on webpki. Instead the previous implementations are exposed as rustls::crypto::verify_tls12_signature, rustls::crypto::verify_tls13_signature and $PROVIDER.signature_verification_algorithms.supported_schemes(), using the crypto provider of your choice.
  • Rework certificate auth verifiers construction into a builder. This covers both server and client certificate verifiers: call WebPkiServerVerifier::builder() and WebPkiClientVerifier::builder().
  • Removed the crate features dangerous_configuration, secret_extraction and quic. The API features those previously gated are now available without a crate feature. Types previously gated on the dangerous_configuration feature now appear in danger modules in the same place.
  • New types for keys and certificates. rustls::Certificate has been replaced with CertificateDer from the new rustls-pki-types crate. Likewise, rustls::PrivateKey has been replaced with rustls_pki_types::PrivateKeyDer. These types come in both owned and borrowed variants, like std::borrow::Cow, but some uses, like rustls::RootCertStore, required the owned (<'static>) variant.
  • RootCertStore is now passed around wrapped in an Arc, to improve efficiency when creating a different verifier for different servers/clients but with the same roots.
  • RootCertStore::add_parsable_certificates now takes a impl IntoIterator<Item = impl AsRef<[u8]>>.
  • RootCertStore::add_server_trust_anchors became RootCertStore::extend.
  • Traits exposed by rustls now require a Debug bound. Please exercise caution in using #[derive(Debug)] on types that contain secret data.
  • The deprecated ConfigBuilder<ClientConfig, WantsClientCert>::with_single_cert fn was removed in favour of with_client_auth_cert (https://github.com/rustls/rustls/commit/42cda4658f3f5c865a9248803a8a083633525998)
  • Some types and values have moved to accommodate cryptography provider work:
Old New
rustls::CipherSuiteCommon rustls::crypto::CipherSuiteCommon
rustls::SupportedKxGroup rustls::crypto::SupportedKxGroup
rustls::cipher_suite::* rustls::crypto::ring::cipher_suite::*
rustls::Ticketer rustls::crypto::ring::Ticketer
rustls::ALL_KX_GROUPS rustls::crypto::ring::ALL_KX_GROUPS
rustls::ALL_CIPHER_SUITES rustls::crypto::ring::ALL_CIPHER_SUITES
rustls::DEFAULT_CIPHER_SUITES rustls::crypto::ring::DEFAULT_CIPHER_SUITES
rustls::kx_group::* rustls::crypto::ring::kx_group::*
rustls::sign::any_ecdsa_type rustls::crypto::ring::sign::any_ecdsa_type
rustls::sign::any_eddsa_type rustls::crypto::ring::sign::any_eddsa_type
rustls::sign::any_supported_type rustls::crypto::ring::sign::any_supported_type

Moved/renamed/new items

Moved

... (truncated)

Commits
  • 4d1b762 Bump version to 0.22.0
  • 381dcf9 Update dependencies
  • 553f400 docs: link to SignatureSchemes from WebPkiSupportedAlgorithms
  • 822f86e docs: link to ActiveKeyExchange::complete from SharedSecret
  • e34d46d docs: link to SupportedKxGroup for ActiveKeyExchange doc
  • a572b30 msgs: docstrings for KeyExchangeAlgorithms
  • e7cb24f docs: re-order feature descriptions
  • 50e43ce docs: consistently describe default features
  • 4f5e24d docs: clarify tlsserver-mio/tlsclient-mio links
  • 5ec414c docs: describe webpki-roots as simplest, not recommended
  • Additional commits viewable in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 7 months ago

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.