Skip to content

Commit 4b68c24

Browse files
committed
deps: take pki-types patch, use ServerName::to_str
This commit takes a patch on an unreleased pki-types commit that adds `ServerName::to_str`. This lets us drop some awkward type massaging in `src/client.rs`.
1 parent 89e291f commit 4b68c24

File tree

3 files changed

+5
-17
lines changed

3 files changed

+5
-17
lines changed

Cargo.lock

+1-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,5 @@ regex = "1.9.6"
4141
[patch.crates-io]
4242
# TODO(@cpu): remove once alpha.5 is published.
4343
rustls = { git = "https://github.com/rustls/rustls", rev = "a6233dcc46e7cf8df6887b18ae2918b65298160a" }
44+
# TODO(@cpu): remove once pki-types#14 lands.
45+
pki-types = { package = "rustls-pki-types", git = "https://github.com/cpu/pki-types", rev = "11fec0730ff18d9658300f6d9b14d2d4a0c14bb7" }

src/client.rs

+2-15
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
use std::borrow::Cow;
21
use std::convert::TryInto;
32
use std::ffi::CStr;
43
use std::fmt::{Debug, Formatter};
54
use std::slice;
65
use std::sync::Arc;
76

87
use libc::{c_char, size_t};
9-
use pki_types::{CertificateDer, IpAddr, UnixTime};
8+
use pki_types::{CertificateDer, UnixTime};
109
use rustls::client::danger::{HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier};
1110
use rustls::client::{ResolvesClientCert, WebPkiServerVerifier};
1211
use rustls::crypto::ring::ALL_CIPHER_SUITES;
@@ -260,19 +259,7 @@ impl ServerCertVerifier for Verifier {
260259
_now: UnixTime,
261260
) -> Result<ServerCertVerified, rustls::Error> {
262261
let cb = self.callback;
263-
let server_name: Cow<'_, str> = match server_name {
264-
pki_types::ServerName::DnsName(n) => n.as_ref().into(),
265-
// TODO(@cpu): HACK
266-
pki_types::ServerName::IpAddress(ip) => match ip {
267-
IpAddr::V4(v4_addr) => std::net::Ipv4Addr::from(*v4_addr.as_ref())
268-
.to_string()
269-
.into(),
270-
IpAddr::V6(v6_addr) => std::net::Ipv6Addr::from(*v6_addr.as_ref())
271-
.to_string()
272-
.into(),
273-
},
274-
_ => return Err(rustls::Error::General("unknown name type".to_string())),
275-
};
262+
let server_name = server_name.to_str();
276263
let server_name: rustls_str = match server_name.as_ref().try_into() {
277264
Ok(r) => r,
278265
Err(NulByte {}) => return Err(rustls::Error::General("NUL byte in SNI".to_string())),

0 commit comments

Comments
 (0)