Skip to content

Commit

Permalink
deps: update rustls-native-certs to 0.8 (#440)
Browse files Browse the repository at this point in the history
The `load_native_certs()` function now returns all errors instead of
raising only the first error.

Not finding any native root CA certificates is not fatal if the
"rustls-tls-webpki-roots" feature is enabled.
  • Loading branch information
nickelc authored Sep 4, 2024
1 parent 00c00d4 commit fb1f73b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ version = "1.0"

[dependencies.rustls-native-certs]
optional = true
version = "0.7.0"
version = "0.8.0"

[dependencies.webpki-roots]
optional = true
Expand Down
22 changes: 19 additions & 3 deletions src/tls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,26 @@ mod encryption {

#[cfg(feature = "rustls-tls-native-roots")]
{
let native_certs = rustls_native_certs::load_native_certs()?;
let total_number = native_certs.len();
let rustls_native_certs::CertificateResult {
certs, errors, ..
} = rustls_native_certs::load_native_certs();

if !errors.is_empty() {
log::warn!(
"native root CA certificate loading errors: {errors:?}"
);
}

// Not finding any native root CA certificates is not fatal if the
// "rustls-tls-webpki-roots" feature is enabled.
#[cfg(not(feature = "rustls-tls-webpki-roots"))]
if certs.is_empty() {
return Err(std::io::Error::new(std::io::ErrorKind::NotFound, format!("no native root CA certificates found (errors: {errors:?})")).into());
}

let total_number = certs.len();
let (number_added, number_ignored) =
root_store.add_parsable_certificates(native_certs);
root_store.add_parsable_certificates(certs);
log::debug!("Added {number_added}/{total_number} native root certificates (ignored {number_ignored})");
}
#[cfg(feature = "rustls-tls-webpki-roots")]
Expand Down

0 comments on commit fb1f73b

Please sign in to comment.