@@ -11,7 +11,7 @@ use hyper::{body::Incoming, service::service_fn};
1111use hyper_util:: rt:: { TokioExecutor , TokioIo } ;
1212use opentelemetry:: trace:: { FutureExt , SpanKind } ;
1313use opentelemetry_semantic_conventions as semconv;
14- use snafu:: { ResultExt , Snafu } ;
14+ use snafu:: { OptionExt , ResultExt , Snafu } ;
1515use stackable_shared:: time:: Duration ;
1616use 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