@@ -62,7 +62,7 @@ pub struct Application {
62
62
pub require_healthy : Option < bool > ,
63
63
pub config : ApplicationConfig ,
64
64
pub signals : SignalPair ,
65
- pub openssl_legacy_provider : Option < Provider > ,
65
+ pub openssl_providers : Option < Vec < Provider > > ,
66
66
}
67
67
68
68
impl ApplicationConfig {
@@ -196,11 +196,11 @@ impl Application {
196
196
debug ! ( message = "Disabled probing and configuration of root certificate locations on the system for OpenSSL." ) ;
197
197
}
198
198
199
- let openssl_legacy_provider = opts
199
+ let openssl_providers = opts
200
200
. root
201
201
. openssl_legacy_provider
202
- . then ( load_openssl_legacy_provider )
203
- . flatten ( ) ;
202
+ . then ( load_openssl_legacy_providers )
203
+ . transpose ( ) ? ;
204
204
205
205
let runtime = build_runtime ( opts. root . threads , "vector-worker" ) ?;
206
206
@@ -222,7 +222,7 @@ impl Application {
222
222
require_healthy : opts. root . require_healthy ,
223
223
config,
224
224
signals,
225
- openssl_legacy_provider ,
225
+ openssl_providers ,
226
226
} ,
227
227
) )
228
228
}
@@ -239,7 +239,7 @@ impl Application {
239
239
require_healthy,
240
240
config,
241
241
signals,
242
- openssl_legacy_provider ,
242
+ openssl_providers ,
243
243
} = self ;
244
244
245
245
let topology_controller = SharedTopologyController :: new ( TopologyController {
@@ -257,7 +257,7 @@ impl Application {
257
257
graceful_crash_receiver : config. graceful_crash_receiver ,
258
258
signals,
259
259
topology_controller,
260
- openssl_legacy_provider ,
260
+ openssl_providers ,
261
261
} )
262
262
}
263
263
}
@@ -267,7 +267,7 @@ pub struct StartedApplication {
267
267
pub graceful_crash_receiver : mpsc:: UnboundedReceiver < ShutdownError > ,
268
268
pub signals : SignalPair ,
269
269
pub topology_controller : SharedTopologyController ,
270
- pub openssl_legacy_provider : Option < Provider > ,
270
+ pub openssl_providers : Option < Vec < Provider > > ,
271
271
}
272
272
273
273
impl StartedApplication {
@@ -281,7 +281,7 @@ impl StartedApplication {
281
281
graceful_crash_receiver,
282
282
signals,
283
283
topology_controller,
284
- openssl_legacy_provider ,
284
+ openssl_providers ,
285
285
} = self ;
286
286
287
287
let mut graceful_crash = UnboundedReceiverStream :: new ( graceful_crash_receiver) ;
@@ -313,7 +313,7 @@ impl StartedApplication {
313
313
signal,
314
314
signal_rx,
315
315
topology_controller,
316
- openssl_legacy_provider ,
316
+ openssl_providers ,
317
317
}
318
318
}
319
319
}
@@ -368,7 +368,7 @@ pub struct FinishedApplication {
368
368
pub signal : SignalTo ,
369
369
pub signal_rx : SignalRx ,
370
370
pub topology_controller : SharedTopologyController ,
371
- pub openssl_legacy_provider : Option < Provider > ,
371
+ pub openssl_providers : Option < Vec < Provider > > ,
372
372
}
373
373
374
374
impl FinishedApplication {
@@ -377,7 +377,7 @@ impl FinishedApplication {
377
377
signal,
378
378
signal_rx,
379
379
topology_controller,
380
- openssl_legacy_provider ,
380
+ openssl_providers ,
381
381
} = self ;
382
382
383
383
// At this point, we'll have the only reference to the shared topology controller and can
@@ -392,7 +392,7 @@ impl FinishedApplication {
392
392
SignalTo :: Quit => Self :: quit ( ) ,
393
393
_ => unreachable ! ( ) ,
394
394
} ;
395
- drop ( openssl_legacy_provider ) ;
395
+ drop ( openssl_providers ) ;
396
396
status
397
397
}
398
398
@@ -571,13 +571,17 @@ pub fn init_logging(color: bool, format: LogFormat, log_level: &str, rate: u64)
571
571
///
572
572
/// The returned [Provider] must stay in scope for the entire lifetime of the application, as it
573
573
/// will be unloaded when it is dropped.
574
- pub fn load_openssl_legacy_provider ( ) -> Option < Provider > {
574
+ pub fn load_openssl_legacy_providers ( ) -> Result < Vec < Provider > , ExitCode > {
575
575
warn ! ( message = "DEPRECATED The openssl legacy provider provides algorithms and key sizes no longer recommended for use." ) ;
576
- Provider :: try_load ( None , "legacy" , true )
577
- . map ( |provider| {
578
- info ! ( message = "Loaded openssl legacy provider." ) ;
579
- provider
580
- } )
581
- . map_err ( |error| error ! ( message = "Failed to load openssl legacy provider." , %error) )
582
- . ok ( )
576
+ [ "legacy" , "default" ] . into_iter ( ) . map ( |provider_name| {
577
+ Provider :: try_load ( None , provider_name, true )
578
+ . map ( |provider| {
579
+ info ! ( message = "Loaded openssl provider." , provider = provider_name) ;
580
+ provider
581
+ } )
582
+ . map_err ( |error| {
583
+ error ! ( message = "Failed to load openssl provider." , provider = provider_name, %error) ;
584
+ exitcode:: UNAVAILABLE
585
+ } )
586
+ } ) . collect ( )
583
587
}
0 commit comments