Skip to content

Commit 9a3f3ee

Browse files
committed
test(tls): fix accept-openssl test
1 parent e427911 commit 9a3f3ee

File tree

5 files changed

+30
-31
lines changed

5 files changed

+30
-31
lines changed

.cargo/config.toml

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ ci-check-linux = "hack --workspace --feature-powerset --depth=2 check --tests --
1515

1616
# tests avoiding io-uring feature
1717
ci-test = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture"
18-
ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture"
19-
ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture"
18+
ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_21,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture"
19+
ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture"
20+
ci-test-rustls-022 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture"
2021

2122
# tests avoiding io-uring feature on Windows
2223
ci-test-win = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture"

actix-tls/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ bytes = "1"
117117
env_logger = "0.10"
118118
futures-util = { version = "0.3.17", default-features = false, features = ["sink"] }
119119
itertools = "0.12"
120-
rcgen = "0.11"
120+
rcgen = "0.12"
121121
rustls-pemfile = "2"
122122
tokio-rustls-025 = { package = "tokio-rustls", version = "0.25" }
123123
trust-dns-resolver = "0.23"
124124

125125
[[example]]
126126
name = "accept-rustls"
127-
required-features = ["accept", "rustls-0_22-webpki-roots"]
127+
required-features = ["accept", "rustls-0_22"]

actix-tls/src/connect/mod.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ pub use rustls_0_20 as rustls;
4646
))]
4747
pub mod rustls_0_21;
4848

49-
#[cfg(any(
50-
feature = "rustls-0_22-webpki-roots",
51-
feature = "rustls-0_22-native-roots",
52-
))]
49+
#[cfg(feature = "rustls-0_22")]
5350
pub mod rustls_0_22;
5451

5552
#[cfg(feature = "native-tls")]

actix-tls/tests/accept-openssl.rs

+20-17
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ use std::{io::Write as _, sync::Arc};
1212
use actix_rt::net::TcpStream;
1313
use actix_server::TestServer;
1414
use actix_service::ServiceFactoryExt as _;
15-
use actix_tls::accept::openssl::{Acceptor, TlsStream};
15+
use actix_tls::{
16+
accept::openssl::{Acceptor, TlsStream},
17+
connect::rustls_0_22::reexports::ClientConfig,
18+
};
1619
use actix_utils::future::ok;
1720
use rustls_pki_types_1::ServerName;
18-
use tokio_rustls::rustls::{ClientConfig, RootCertStore};
19-
use tokio_rustls_025 as tokio_rustls;
21+
use tokio_rustls_025::rustls::RootCertStore;
2022

2123
fn new_cert_and_key() -> (String, String) {
2224
let cert =
@@ -47,39 +49,40 @@ fn openssl_acceptor(cert: String, key: String) -> tls_openssl::ssl::SslAcceptor
4749
builder.build()
4850
}
4951

50-
#[allow(dead_code)]
5152
mod danger {
53+
use rustls_pki_types_1::{CertificateDer, ServerName, UnixTime};
5254
use tokio_rustls_025::rustls;
5355

56+
/// Disables certificate verification to allow self-signed certs from rcgen.
5457
#[derive(Debug)]
5558
pub struct NoCertificateVerification;
5659

5760
impl rustls::client::danger::ServerCertVerifier for NoCertificateVerification {
5861
fn verify_server_cert(
5962
&self,
60-
end_entity: &rustls_pki_types_1::CertificateDer::CertificateDer<'_>,
61-
intermediates: &[rustls_pki_types_1::CertificateDer::CertificateDer<'_>],
62-
server_name: &rustls_pki_types_1::CertificateDer::ServerName<'_>,
63-
ocsp_response: &[u8],
64-
now: rustls_pki_types_1::CertificateDer::UnixTime,
63+
_end_entity: &CertificateDer<'_>,
64+
_intermediates: &[CertificateDer<'_>],
65+
_server_name: &ServerName<'_>,
66+
_ocsp_response: &[u8],
67+
_now: UnixTime,
6568
) -> Result<rustls::client::danger::ServerCertVerified, rustls::Error> {
6669
Ok(rustls::client::danger::ServerCertVerified::assertion())
6770
}
6871

6972
fn verify_tls12_signature(
7073
&self,
71-
message: &[u8],
72-
cert: &rustls_pki_types_1::CertificateDer<'_>,
73-
dss: &rustls::DigitallySignedStruct,
74+
_message: &[u8],
75+
_cert: &rustls_pki_types_1::CertificateDer<'_>,
76+
_dss: &rustls::DigitallySignedStruct,
7477
) -> Result<rustls::client::danger::HandshakeSignatureValid, rustls::Error> {
7578
Ok(rustls::client::danger::HandshakeSignatureValid::assertion())
7679
}
7780

7881
fn verify_tls13_signature(
7982
&self,
80-
message: &[u8],
81-
cert: &rustls_pki_types_1::CertificateDer<'_>,
82-
dss: &rustls::DigitallySignedStruct,
83+
_message: &[u8],
84+
_cert: &rustls_pki_types_1::CertificateDer<'_>,
85+
_dss: &rustls::DigitallySignedStruct,
8386
) -> Result<rustls::client::danger::HandshakeSignatureValid, rustls::Error> {
8487
Ok(rustls::client::danger::HandshakeSignatureValid::assertion())
8588
}
@@ -134,13 +137,13 @@ async fn accepts_connections() {
134137
let config = rustls_connector(cert, key);
135138
let config = Arc::new(config);
136139

137-
let mut conn = tokio_rustls::rustls::ClientConnection::new(
140+
let mut conn = tokio_rustls_025::rustls::ClientConnection::new(
138141
config,
139142
ServerName::try_from("localhost").unwrap(),
140143
)
141144
.unwrap();
142145

143-
let mut stream = tokio_rustls::rustls::Stream::new(&mut conn, &mut sock);
146+
let mut stream = tokio_rustls_025::rustls::Stream::new(&mut conn, &mut sock);
144147

145148
stream.flush().expect("TLS handshake failed");
146149
}

actix-tls/tests/accept-rustls.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@ use actix_rt::net::TcpStream;
1515
use actix_server::TestServer;
1616
use actix_service::ServiceFactoryExt as _;
1717
use actix_tls::{
18-
accept::rustls_0_21::{Acceptor, TlsStream},
18+
accept::rustls_0_22::{reexports::ServerConfig, Acceptor, TlsStream},
1919
connect::openssl::reexports::SslConnector,
2020
};
2121
use actix_utils::future::ok;
2222
use rustls_pemfile::{certs, pkcs8_private_keys};
23+
use rustls_pki_types_1::PrivateKeyDer;
2324
use tls_openssl::ssl::SslVerifyMode;
24-
use tokio_rustls::rustls::{self, Certificate, PrivateKey, ServerConfig};
25-
use tokio_rustls_024 as tokio_rustls;
2625

2726
fn new_cert_and_key() -> (String, String) {
2827
let cert =
@@ -35,7 +34,7 @@ fn new_cert_and_key() -> (String, String) {
3534
(cert, key)
3635
}
3736

38-
fn rustls_server_config(cert: String, key: String) -> rustls::ServerConfig {
37+
fn rustls_server_config(cert: String, key: String) -> ServerConfig {
3938
// Load TLS key and cert files
4039

4140
let cert = &mut BufReader::new(cert.as_bytes());
@@ -47,9 +46,8 @@ fn rustls_server_config(cert: String, key: String) -> rustls::ServerConfig {
4746
.unwrap();
4847

4948
let mut config = ServerConfig::builder()
50-
.with_safe_defaults()
5149
.with_no_client_auth()
52-
.with_single_cert(cert_chain, PrivateKey(keys.remove(0)))
50+
.with_single_cert(cert_chain, PrivateKeyDer::Pkcs8(keys.remove(0)))
5351
.unwrap();
5452

5553
config.alpn_protocols = vec![b"http/1.1".to_vec()];

0 commit comments

Comments
 (0)