tokio-rs / tls

A collection of Tokio based TLS libraries.
https://tokio.rs
MIT License
252 stars 86 forks source link

test fails without feature tls12 #107

Open jonassmedegaard opened 2 years ago

jonassmedegaard commented 2 years ago

One test requires feature tls12, or it fails like this:

error[E0425]: cannot find value `TLS12` in module `rustls::version`
  --> tests/badssl.rs:46:53
   |
46 |         .with_protocol_versions(&[&rustls::version::TLS12])
   |                                                     ^^^^^ help: a static with a similar name exists: `TLS13`
   |
  ::: /tmp/tmp.oYhCcK9rbh/registry/rustls-0.20.6/src/versions.rs:31:1
   |
31 | pub static TLS13: SupportedProtocolVersion = SupportedProtocolVersion {
   | --------------------------------------------------------------------- similarly named static `TLS13` defined he
re
LucioFranco commented 2 years ago

What test command are you running?

jonassmedegaard commented 2 years ago

Sorry, I forgot to copy that and no longer have that build log lying around - but it was likely cargo test --all-targets --no-default-features.

I am packaging this crate for Debian, and run tests in various feature combinations.

jonassmedegaard commented 2 years ago

This one-line fix solved the issue for me: https://salsa.debian.org/debian/rust-tokio-rustls/-/blob/debian/latest/debian/patches/1001_tls12.patch

--- a/tokio-rustls/tests/badssl.rs
+++ b/tokio-rustls/tests/badssl.rs
@@ -32,6 +32,7 @@
 }

 #[tokio::test]
+#[cfg(feature = "tls12")]
 async fn test_tls12() -> io::Result<()> {
     let mut root_store = rustls::RootCertStore::empty();
     root_store.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.0.iter().map(|ta| {
quininer commented 2 years ago

Good catch, would you like to open a PR?

jonassmedegaard commented 2 years ago

Thanks for the kind suggestion, but no - for political reasons: Github Terms of Service arguably contains a special licensing clause which is not problematic for liberally licensed code like this project but effectively weakens stronger copyleft licensed code. I therefore never push code to Github.

I already shared the code change as a patch. Please tell me if helpful to you that I provide it as a git branch that you can clone and merge. I fully understand if you have no interest in playing along with my policital game, though.

jonassmedegaard commented 1 year ago

Anyone else feel like fixing this?

I notice that a new release went out, without this getting fixed :-(