Skip to content

Commit 64aa7d1

Browse files
add webpki roots option for rustls no provider setup (#2447)
1 parent 598f857 commit 64aa7d1

File tree

4 files changed

+24
-21
lines changed

4 files changed

+24
-21
lines changed

Cargo.toml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,13 @@ native-tls-vendored = ["native-tls", "native-tls-crate?/vendored"]
4343
rustls-tls = ["rustls-tls-webpki-roots"]
4444
rustls-tls-no-provider = ["rustls-tls-manual-roots-no-provider"]
4545

46-
rustls-tls-manual-roots = ["__rustls", "__rustls-ring"]
47-
rustls-tls-webpki-roots = ["dep:webpki-roots", "hyper-rustls?/webpki-tokio", "__rustls", "__rustls-ring"]
48-
rustls-tls-native-roots = ["dep:rustls-native-certs", "hyper-rustls?/native-tokio", "__rustls", "__rustls-ring"]
4946
rustls-tls-manual-roots-no-provider = ["__rustls"]
47+
rustls-tls-webpki-roots-no-provider = ["dep:webpki-roots", "hyper-rustls?/webpki-tokio", "__rustls"]
48+
rustls-tls-native-roots-no-provider = ["dep:rustls-native-certs", "hyper-rustls?/native-tokio", "__rustls"]
49+
50+
rustls-tls-manual-roots = ["rustls-tls-manual-roots-no-provider", "__rustls-ring"]
51+
rustls-tls-webpki-roots = ["rustls-tls-webpki-roots-no-provider", "__rustls-ring"]
52+
rustls-tls-native-roots = ["rustls-tls-native-roots-no-provider", "__rustls-ring"]
5053

5154
blocking = ["dep:futures-channel", "futures-channel?/sink", "futures-util/io", "futures-util/sink", "tokio/sync"]
5255

src/async_impl/client.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ struct Config {
116116
root_certs: Vec<Certificate>,
117117
#[cfg(feature = "__tls")]
118118
tls_built_in_root_certs: bool,
119-
#[cfg(feature = "rustls-tls-webpki-roots")]
119+
#[cfg(feature = "rustls-tls-webpki-roots-no-provider")]
120120
tls_built_in_certs_webpki: bool,
121-
#[cfg(feature = "rustls-tls-native-roots")]
121+
#[cfg(feature = "rustls-tls-native-roots-no-provider")]
122122
tls_built_in_certs_native: bool,
123123
#[cfg(feature = "__rustls")]
124124
crls: Vec<CertificateRevocationList>,
@@ -215,9 +215,9 @@ impl ClientBuilder {
215215
root_certs: Vec::new(),
216216
#[cfg(feature = "__tls")]
217217
tls_built_in_root_certs: true,
218-
#[cfg(feature = "rustls-tls-webpki-roots")]
218+
#[cfg(feature = "rustls-tls-webpki-roots-no-provider")]
219219
tls_built_in_certs_webpki: true,
220-
#[cfg(feature = "rustls-tls-native-roots")]
220+
#[cfg(feature = "rustls-tls-native-roots-no-provider")]
221221
tls_built_in_certs_native: true,
222222
#[cfg(any(feature = "native-tls", feature = "__rustls"))]
223223
identity: None,
@@ -511,12 +511,12 @@ impl ClientBuilder {
511511
cert.add_to_rustls(&mut root_cert_store)?;
512512
}
513513

514-
#[cfg(feature = "rustls-tls-webpki-roots")]
514+
#[cfg(feature = "rustls-tls-webpki-roots-no-provider")]
515515
if config.tls_built_in_certs_webpki {
516516
root_cert_store.extend(webpki_roots::TLS_SERVER_ROOTS.iter().cloned());
517517
}
518518

519-
#[cfg(feature = "rustls-tls-native-roots")]
519+
#[cfg(feature = "rustls-tls-native-roots-no-provider")]
520520
if config.tls_built_in_certs_native {
521521
let mut valid_count = 0;
522522
let mut invalid_count = 0;
@@ -1490,12 +1490,12 @@ impl ClientBuilder {
14901490
pub fn tls_built_in_root_certs(mut self, tls_built_in_root_certs: bool) -> ClientBuilder {
14911491
self.config.tls_built_in_root_certs = tls_built_in_root_certs;
14921492

1493-
#[cfg(feature = "rustls-tls-webpki-roots")]
1493+
#[cfg(feature = "rustls-tls-webpki-roots-no-provider")]
14941494
{
14951495
self.config.tls_built_in_certs_webpki = tls_built_in_root_certs;
14961496
}
14971497

1498-
#[cfg(feature = "rustls-tls-native-roots")]
1498+
#[cfg(feature = "rustls-tls-native-roots-no-provider")]
14991499
{
15001500
self.config.tls_built_in_certs_native = tls_built_in_root_certs;
15011501
}
@@ -1506,8 +1506,8 @@ impl ClientBuilder {
15061506
/// Sets whether to load webpki root certs with rustls.
15071507
///
15081508
/// If the feature is enabled, this value is `true` by default.
1509-
#[cfg(feature = "rustls-tls-webpki-roots")]
1510-
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-webpki-roots")))]
1509+
#[cfg(feature = "rustls-tls-webpki-roots-no-provider")]
1510+
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-webpki-roots-no-provider")))]
15111511
pub fn tls_built_in_webpki_certs(mut self, enabled: bool) -> ClientBuilder {
15121512
self.config.tls_built_in_certs_webpki = enabled;
15131513
self
@@ -1516,8 +1516,8 @@ impl ClientBuilder {
15161516
/// Sets whether to load native root certs with rustls.
15171517
///
15181518
/// If the feature is enabled, this value is `true` by default.
1519-
#[cfg(feature = "rustls-tls-native-roots")]
1520-
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-native-roots")))]
1519+
#[cfg(feature = "rustls-tls-native-roots-no-provider")]
1520+
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-native-roots-no-provider")))]
15211521
pub fn tls_built_in_native_certs(mut self, enabled: bool) -> ClientBuilder {
15221522
self.config.tls_built_in_certs_native = enabled;
15231523
self

src/blocking/client.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -659,17 +659,17 @@ impl ClientBuilder {
659659
/// Sets whether to load webpki root certs with rustls.
660660
///
661661
/// If the feature is enabled, this value is `true` by default.
662-
#[cfg(feature = "rustls-tls-webpki-roots")]
663-
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-webpki-roots")))]
662+
#[cfg(feature = "rustls-tls-webpki-roots-no-provider")]
663+
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-webpki-roots-no-provider")))]
664664
pub fn tls_built_in_webpki_certs(self, enabled: bool) -> ClientBuilder {
665665
self.with_inner(move |inner| inner.tls_built_in_webpki_certs(enabled))
666666
}
667667

668668
/// Sets whether to load native root certs with rustls.
669669
///
670670
/// If the feature is enabled, this value is `true` by default.
671-
#[cfg(feature = "rustls-tls-native-roots")]
672-
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-native-roots")))]
671+
#[cfg(feature = "rustls-tls-native-roots-no-provider")]
672+
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-tls-native-roots-no-provider")))]
673673
pub fn tls_built_in_native_certs(self, enabled: bool) -> ClientBuilder {
674674
self.with_inner(move |inner| inner.tls_built_in_native_certs(enabled))
675675
}

tests/badssl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ async fn test_badssl_modern() {
2020
}
2121

2222
#[cfg(any(
23-
feature = "rustls-tls-webpki-roots",
24-
feature = "rustls-tls-native-roots"
23+
feature = "rustls-tls-webpki-roots-no-provider",
24+
feature = "rustls-tls-native-roots-no-provider"
2525
))]
2626
#[tokio::test]
2727
async fn test_rustls_badssl_modern() {

0 commit comments

Comments
 (0)