Skip to content

Commit aa454b6

Browse files
Move to mTLS
1 parent c9bdc77 commit aa454b6

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

quic/s2n-quic-bench/src/bin/overload-server.rs

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,37 @@ impl Metrics {
6262
}
6363
}
6464

65+
#[cfg(not(target_os = "windows"))]
66+
mod mtls {
67+
use super::*;
68+
use s2n_quic::provider::tls;
69+
70+
type Error = Box<dyn std::error::Error + Send + Sync>;
71+
72+
pub fn build_client_mtls_provider(ca_cert: &str) -> Result<tls::default::Client, Error> {
73+
let tls = tls::default::Client::builder()
74+
.with_certificate(ca_cert)?
75+
.with_client_identity(
76+
certificates::MTLS_CLIENT_CERT,
77+
certificates::MTLS_CLIENT_KEY,
78+
)?
79+
.build()?;
80+
Ok(tls)
81+
}
82+
83+
pub fn build_server_mtls_provider(ca_cert: &str) -> Result<tls::default::Server, Error> {
84+
let tls = tls::default::Server::builder()
85+
.with_certificate(
86+
certificates::MTLS_SERVER_CERT,
87+
certificates::MTLS_SERVER_KEY,
88+
)?
89+
.with_client_authentication()?
90+
.with_trusted_certificate(ca_cert)?
91+
.build()?;
92+
Ok(tls)
93+
}
94+
}
95+
6596
fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
6697
tracing_subscriber::registry()
6798
.with(tracing_subscriber::EnvFilter::from_env("S2N_LOG"))
@@ -72,12 +103,15 @@ fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
72103
let Args { concurrency } = Args::parse();
73104
println!("Starting benchmark with {concurrency} clients");
74105

75-
// Use (&str, &str) which implements s2n_quic::provider::tls::Provider
76-
let tls = (certificates::CERT_PEM, certificates::KEY_PEM);
77106
let sub = s2n_quic::provider::event::disabled::Subscriber;
78107

79108
let server = server::Provider::builder()
80-
.start_blocking("127.0.0.1:0".parse().unwrap(), tls, sub, new_map(500))
109+
.start_blocking(
110+
"127.0.0.1:0".parse().unwrap(),
111+
mtls::build_server_mtls_provider(certificates::MTLS_CA_CERT)?,
112+
sub,
113+
new_map(500),
114+
)
81115
.unwrap();
82116

83117
let registry = Registry::new();
@@ -111,7 +145,6 @@ fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
111145
// spin up gets a set of 5 redirect sockets which we read/write from to get to the actual
112146
// server.
113147
for _ in 0..num_groups {
114-
let tls = (certificates::CERT_PEM, certificates::KEY_PEM);
115148
let sub = s2n_quic::provider::event::disabled::Subscriber;
116149

117150
let client = client::Provider::builder()
@@ -121,7 +154,7 @@ fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
121154
.start(
122155
"127.0.0.1:0".parse().unwrap(),
123156
new_map(10),
124-
tls,
157+
mtls::build_client_mtls_provider(certificates::MTLS_CA_CERT).unwrap(),
125158
sub,
126159
server_name.clone(),
127160
)?;

0 commit comments

Comments
 (0)