Skip to content

Commit d85f44b

Browse files
authored
Bump rustls-native-certs (#2427)
1 parent c8665be commit d85f44b

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ rustls = { version = "0.23.4", optional = true, default-features = false, featur
143143
rustls-pki-types = { version = "1.1.0", features = ["alloc"] ,optional = true }
144144
tokio-rustls = { version = "0.26", optional = true, default-features = false, features = ["tls12"] }
145145
webpki-roots = { version = "0.26.0", optional = true }
146-
rustls-native-certs = { version = "0.7", optional = true }
146+
rustls-native-certs = { version = "0.8.0", optional = true }
147147

148148
## cookies
149149
cookie_crate = { version = "0.18.0", package = "cookie", optional = true }

src/async_impl/client.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -514,9 +514,9 @@ impl ClientBuilder {
514514
if config.tls_built_in_certs_native {
515515
let mut valid_count = 0;
516516
let mut invalid_count = 0;
517-
for cert in rustls_native_certs::load_native_certs()
518-
.map_err(crate::error::builder)?
519-
{
517+
518+
let load_results = rustls_native_certs::load_native_certs();
519+
for cert in load_results.certs {
520520
// Continue on parsing errors, as native stores often include ancient or syntactically
521521
// invalid certificates, like root certificates without any X509 extensions.
522522
// Inspiration: https://github.com/rustls/rustls/blob/633bf4ba9d9521a95f68766d04c22e2b01e68318/rustls/src/anchors.rs#L105-L112
@@ -529,9 +529,21 @@ impl ClientBuilder {
529529
}
530530
}
531531
if valid_count == 0 && invalid_count > 0 {
532-
return Err(crate::error::builder(
533-
"zero valid certificates found in native root store",
534-
));
532+
let err = if load_results.errors.is_empty() {
533+
crate::error::builder(
534+
"zero valid certificates found in native root store",
535+
)
536+
} else {
537+
use std::fmt::Write as _;
538+
let mut acc = String::new();
539+
for err in load_results.errors {
540+
let _ = writeln!(&mut acc, "{err}");
541+
}
542+
543+
crate::error::builder(acc)
544+
};
545+
546+
return Err(err);
535547
}
536548
}
537549

0 commit comments

Comments
 (0)