@@ -11,7 +11,7 @@ use hyper::{body::Incoming, service::service_fn};
11
11
use hyper_util:: rt:: { TokioExecutor , TokioIo } ;
12
12
use opentelemetry:: trace:: { FutureExt , SpanKind } ;
13
13
use opentelemetry_semantic_conventions as semconv;
14
- use snafu:: { ResultExt , Snafu } ;
14
+ use snafu:: { OptionExt , ResultExt , Snafu } ;
15
15
use stackable_shared:: time:: Duration ;
16
16
use tokio:: {
17
17
net:: { TcpListener , TcpStream } ,
@@ -21,7 +21,7 @@ use tokio_rustls::{
21
21
TlsAcceptor ,
22
22
rustls:: {
23
23
ServerConfig ,
24
- crypto:: ring :: default_provider ,
24
+ crypto:: CryptoProvider ,
25
25
version:: { TLS12 , TLS13 } ,
26
26
} ,
27
27
} ;
@@ -59,6 +59,9 @@ pub enum TlsServerError {
59
59
60
60
#[ snafu( display( "failed to set safe TLS protocol versions" ) ) ]
61
61
SetSafeTlsProtocolVersions { source : tokio_rustls:: rustls:: Error } ,
62
+
63
+ #[ snafu( display( "no default rustls CryptoProvider installed" ) ) ]
64
+ NoDefaultCryptoProviderInstalled ,
62
65
}
63
66
64
67
/// A server which terminates TLS connections and allows clients to communicate
@@ -97,8 +100,10 @@ impl TlsServer {
97
100
. context ( CreateCertificateResolverSnafu ) ?;
98
101
let cert_resolver = Arc :: new ( cert_resolver) ;
99
102
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 ( ) )
102
107
. with_protocol_versions ( & [ & TLS12 , & TLS13 ] )
103
108
. context ( SetSafeTlsProtocolVersionsSnafu ) ?
104
109
. with_no_client_auth ( )
0 commit comments