diff options
author | Daniel McCarney <daniel@binaryparadox.net> | 2023-11-29 17:47:32 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-29 14:47:32 -0800 |
commit | 49adcee96b42a16107adf706c754d9741aa7a291 (patch) | |
tree | eeeb27d8e6a0ec9921eb32afee49b2bcce0d947c | |
parent | a26a3d4ad6cbc13670b6ddbe924db075540c92ac (diff) |
deps: track rustls alpha.6, pki-types 0.2.3 (#368)
Brings in the change to use `pki-types` for `ServerName`.
Takes a temporary quality-of-life patch for pki-types.
-rw-r--r-- | Cargo.lock | 16 | ||||
-rw-r--r-- | Cargo.toml | 8 | ||||
-rw-r--r-- | build.rs | 2 | ||||
-rw-r--r-- | src/client.rs | 13 |
4 files changed, 17 insertions, 22 deletions
@@ -106,9 +106,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.0-alpha.4" +version = "0.22.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c23376606de66c7b9249d091b59ee55b52df72063e1cae7bb44e0691c9e5150" +checksum = "72d42991943cf48034955ba6d9a28f30e6b1e5fd73e46737ce52e8461bcc28e3" dependencies = [ "log", "ring", @@ -135,9 +135,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.0.0-alpha.1" +version = "2.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aaa4fe93b39faddb6a8f99568c3e5880680156da0d46818e884a071381f67fe" +checksum = "4e9975e1f0807681e097d288d545dc40c98a4d3a6ef95a40b18d00e5e4daa9a4" dependencies = [ "base64", "rustls-pki-types", @@ -145,15 +145,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47003264dea418db67060fa420ad16d0d2f8f0a0360d825c00e177ac52cb5d8" +checksum = "f0d3edd6cdcdf26eda538757038343986e666d0b8ba4b5ac1de663b78475550d" [[package]] name = "rustls-webpki" -version = "0.102.0-alpha.6" +version = "0.102.0-alpha.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d9ed3a8267782ba32d257ff5b197b63eef19a467dbd1be011caaae35ee416e" +checksum = "139cdfd1d8b96f927fbe0a0c98785afe94b63e95a7ef815ebae9263d20e10a0d" dependencies = [ "ring", "rustls-pki-types", @@ -23,12 +23,12 @@ read_buf = ["rustls/read_buf"] [dependencies] # Keep in sync with RUSTLS_CRATE_VERSION in build.rs -rustls = { version = "=0.22.0-alpha.4", features = [ "ring" ]} -rustls-webpki = "0.102.0-alpha.6" -pki-types = { package = "rustls-pki-types", version = "0.2.1", features = ["std"] } +rustls = { version = "=0.22.0-alpha.6", features = [ "ring" ]} +pki-types = { package = "rustls-pki-types", version = "0.2.3", features = ["std"] } +webpki = { package = "rustls-webpki", version = "=0.102.0-alpha.8", features = ["std"] } libc = "0.2" sct = "0.7" -rustls-pemfile = { version = "2.0.0-alpha.1" } +rustls-pemfile = "=2.0.0-alpha.2" log = "0.4.17" [lib] @@ -3,7 +3,7 @@ use std::io::Write; use std::{env, fs, path::PathBuf}; // Keep in sync with Cargo.toml. -const RUSTLS_CRATE_VERSION: &str = "0.22.0-alpha.4"; +const RUSTLS_CRATE_VERSION: &str = "0.22.0-alpha.6"; fn main() { let out_dir = PathBuf::from(env::var_os("OUT_DIR").unwrap()); diff --git a/src/client.rs b/src/client.rs index 2807534..a226c07 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,4 +1,3 @@ -use std::borrow::Cow; use std::convert::TryInto; use std::ffi::CStr; use std::fmt::{Debug, Formatter}; @@ -79,7 +78,7 @@ impl ServerCertVerifier for NoneVerifier { &self, _end_entity: &CertificateDer, _intermediates: &[CertificateDer], - _server_name: &rustls::ServerName, + _server_name: &pki_types::ServerName<'_>, _ocsp_response: &[u8], _now: UnixTime, ) -> Result<ServerCertVerified, rustls::Error> { @@ -255,16 +254,12 @@ impl ServerCertVerifier for Verifier { &self, end_entity: &CertificateDer, intermediates: &[CertificateDer], - server_name: &rustls::ServerName, + server_name: &pki_types::ServerName<'_>, ocsp_response: &[u8], _now: UnixTime, ) -> Result<ServerCertVerified, rustls::Error> { let cb = self.callback; - let server_name: Cow<'_, str> = match server_name { - rustls::ServerName::DnsName(n) => n.as_ref().into(), - rustls::ServerName::IpAddress(ip) => ip.to_string().into(), - _ => return Err(rustls::Error::General("unknown name type".to_string())), - }; + let server_name = server_name.to_str(); let server_name: rustls_str = match server_name.as_ref().try_into() { Ok(r) => r, Err(NulByte {}) => return Err(rustls::Error::General("NUL byte in SNI".to_string())), @@ -555,7 +550,7 @@ impl rustls_client_config { Ok(s) => s, Err(std::str::Utf8Error { .. }) => return rustls_result::InvalidDnsNameError, }; - let server_name: rustls::ServerName = match server_name.try_into() { + let server_name: pki_types::ServerName = match server_name.try_into() { Ok(sn) => sn, Err(_) => return rustls_result::InvalidDnsNameError, }; |