Skip to content

Commit 9aa8941

Browse files
committed
fix: Use default crypto provider for TLS server
1 parent 41f8649 commit 9aa8941

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

crates/stackable-webhook/src/servers/conversion.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,14 @@ impl ConversionWebhookServer {
101101
///
102102
/// ## Example
103103
///
104-
/// ```
105-
/// use stackable_webhook::{ConversionWebhookServer, ConversionWebhookOptions};
104+
/// ```no_run
105+
/// # use tokio_rustls::rustls::crypto::{CryptoProvider, ring::default_provider};
106+
/// use stackable_webhook::servers::{ConversionWebhookServer, ConversionWebhookOptions};
106107
/// use stackable_operator::crd::s3::{S3Connection, S3ConnectionVersion};
107108
///
108-
/// # #[tokio::test]
109+
/// # #[tokio::main]
109110
/// # async fn main() {
111+
/// # CryptoProvider::install_default(default_provider()).unwrap();
110112
/// let crds_and_handlers = vec![
111113
/// (
112114
/// S3Connection::merged_crd(S3ConnectionVersion::V1Alpha1)
@@ -179,7 +181,7 @@ impl ConversionWebhookServer {
179181

180182
/// Runs the [`ConversionWebhookServer`] asynchronously.
181183
pub async fn run(self) -> Result<(), ConversionWebhookError> {
182-
tracing::info!("starting conversion webhook server");
184+
tracing::info!("run conversion webhook server");
183185
self.0.run().await.context(RunWebhookServerSnafu)
184186
}
185187
}

crates/stackable-webhook/src/tls/cert_resolver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ pub enum CertificateResolverError {
4444
TokioSpawnBlocking { source: tokio::task::JoinError },
4545

4646
#[snafu(display("no default rustls CryptoProvider installed"))]
47-
NoDefaultCryptoProviderInstalled {},
47+
NoDefaultCryptoProviderInstalled,
4848
}
4949

5050
/// This struct serves as [`ResolvesServerCert`] to always hand out the current certificate for TLS

crates/stackable-webhook/src/tls/mod.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use hyper::{body::Incoming, service::service_fn};
1111
use hyper_util::rt::{TokioExecutor, TokioIo};
1212
use opentelemetry::trace::{FutureExt, SpanKind};
1313
use opentelemetry_semantic_conventions as semconv;
14-
use snafu::{ResultExt, Snafu};
14+
use snafu::{OptionExt, ResultExt, Snafu};
1515
use stackable_shared::time::Duration;
1616
use tokio::{
1717
net::{TcpListener, TcpStream},
@@ -21,7 +21,7 @@ use tokio_rustls::{
2121
TlsAcceptor,
2222
rustls::{
2323
ServerConfig,
24-
crypto::ring::default_provider,
24+
crypto::CryptoProvider,
2525
version::{TLS12, TLS13},
2626
},
2727
};
@@ -59,6 +59,9 @@ pub enum TlsServerError {
5959

6060
#[snafu(display("failed to set safe TLS protocol versions"))]
6161
SetSafeTlsProtocolVersions { source: tokio_rustls::rustls::Error },
62+
63+
#[snafu(display("no default rustls CryptoProvider installed"))]
64+
NoDefaultCryptoProviderInstalled,
6265
}
6366

6467
/// A server which terminates TLS connections and allows clients to communicate
@@ -97,8 +100,10 @@ impl TlsServer {
97100
.context(CreateCertificateResolverSnafu)?;
98101
let cert_resolver = Arc::new(cert_resolver);
99102

100-
let tls_provider = default_provider();
101-
let mut config = ServerConfig::builder_with_provider(tls_provider.into())
103+
let tls_provider =
104+
CryptoProvider::get_default().context(NoDefaultCryptoProviderInstalledSnafu)?;
105+
106+
let mut config = ServerConfig::builder_with_provider(tls_provider.clone())
102107
.with_protocol_versions(&[&TLS12, &TLS13])
103108
.context(SetSafeTlsProtocolVersionsSnafu)?
104109
.with_no_client_auth()

0 commit comments

Comments
 (0)