1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
Index: dockworker/Cargo.toml
===================================================================
--- dockworker.orig/Cargo.toml
+++ dockworker/Cargo.toml
@@ -91,7 +91,7 @@ version = "0.21"
optional = true
[dependencies.rustls-pemfile]
-version = "1.0.0"
+version = "2.0.0"
optional = true
[dependencies.serde]
Index: dockworker/src/hyper_client.rs
===================================================================
--- dockworker.orig/src/hyper_client.rs
+++ dockworker/src/hyper_client.rs
@@ -201,25 +201,26 @@ impl HyperClient {
let mut cert_buf = BufReader::new(File::open(cert)?);
let mut ca_buf = BufReader::new(File::open(ca)?);
- let private_key = match rustls_pemfile::rsa_private_keys(&mut key_buf)? {
+ let private_key = match rustls_pemfile::rsa_private_keys(&mut key_buf).collect::<Result<Vec<_>,_>>()? {
keys if keys.is_empty() => return Err(rustls::Error::NoCertificatesPresented.into()),
- mut keys if keys.len() == 1 => PrivateKey(keys.remove(0)),
+ mut keys if keys.len() == 1 => PrivateKey(keys.remove(0).secret_pkcs1_der().to_vec()),
mut keys => {
// if keys.len() > 1
warn!("Private key file contains multiple keys. Using only first one.");
- PrivateKey(keys.remove(0))
+ PrivateKey(keys.remove(0).secret_pkcs1_der().to_vec())
}
};
- let certs = rustls_pemfile::read_all(&mut cert_buf)?
+ let certs = rustls_pemfile::read_all(&mut cert_buf)
.into_iter()
.filter_map(|item| match item {
- Item::X509Certificate(c) => Some(Certificate(c)),
+ Ok(Item::X509Certificate(c)) => Some(Ok(Certificate(c.to_vec()))),
+ Err(e) => Some(Err(e)),
_ => None,
})
- .collect();
+ .collect::<Result<_,_>>()?;
let mut root_certs = rustls::RootCertStore::empty();
- for c in rustls_pemfile::certs(&mut ca_buf)? {
- root_certs.add(&Certificate(c))?;
+ for c in rustls_pemfile::certs(&mut ca_buf) {
+ root_certs.add(&Certificate(c?.to_vec()))?;
}
let config = rustls::ClientConfig::builder()
|