@@ -18,7 +18,7 @@ use rustls::pki_types::{CertificateDer, ServerName};
1818use rustls:: server:: { Accepted , Acceptor , ProducesTickets } ;
1919use rustls:: {
2020 AlertDescription , CipherSuite , ClientConfig , ClientConnection , Connection , HandshakeKind ,
21- NamedGroup , ProtocolVersion , ServerConfig , SignatureScheme , SupportedProtocolVersion ,
21+ ProtocolVersion , ServerConfig , SignatureScheme , SupportedProtocolVersion ,
2222} ;
2323
2424use not_thread_safe:: NotThreadSafe ;
@@ -240,158 +240,6 @@ static TLS13_CHACHA20_POLY1305_SHA256: SslCipher = SslCipher {
240240 description : c"TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD\n " ,
241241} ;
242242
243- #[ allow( dead_code) ]
244- struct TlsGroupInfo {
245- pub tls_name : & ' static CStr ,
246- pub standard_name : & ' static CStr ,
247- pub algorithm : & ' static CStr ,
248- pub secbits : usize ,
249- pub group_id : NamedGroup ,
250- }
251-
252- impl TlsGroupInfo {
253- pub fn find_by_id ( id : NamedGroup ) -> Option < & ' static Self > {
254- match id {
255- NamedGroup :: secp256r1 => Some ( & SECP256R1 ) ,
256- NamedGroup :: secp384r1 => Some ( & SECP384R1 ) ,
257- NamedGroup :: secp521r1 => Some ( & SECP521R1 ) ,
258- NamedGroup :: X25519 => Some ( & X25519 ) ,
259- NamedGroup :: X448 => Some ( & X448 ) ,
260- NamedGroup :: FFDHE2048 => Some ( & FFDHE2048 ) ,
261- NamedGroup :: FFDHE3072 => Some ( & FFDHE3072 ) ,
262- NamedGroup :: FFDHE4096 => Some ( & FFDHE4096 ) ,
263- NamedGroup :: FFDHE6144 => Some ( & FFDHE6144 ) ,
264- NamedGroup :: FFDHE8192 => Some ( & FFDHE8192 ) ,
265- NamedGroup :: MLKEM512 => Some ( & MLKEM512 ) ,
266- NamedGroup :: MLKEM768 => Some ( & MLKEM768 ) ,
267- NamedGroup :: MLKEM1024 => Some ( & MLKEM1024 ) ,
268- NamedGroup :: X25519MLKEM768 => Some ( & X25519MLKEM768 ) ,
269- NamedGroup :: secp256r1MLKEM768 => Some ( & SECP256R1_MLKEM768 ) ,
270- _ => None ,
271- }
272- }
273- }
274-
275- static SECP256R1 : TlsGroupInfo = TlsGroupInfo {
276- tls_name : c"secp256r1" ,
277- standard_name : c"prime256v1" ,
278- algorithm : c"EC" ,
279- secbits : 128 ,
280- group_id : NamedGroup :: secp256r1,
281- } ;
282-
283- static SECP384R1 : TlsGroupInfo = TlsGroupInfo {
284- tls_name : c"secp384r1" ,
285- standard_name : c"secp384r1" ,
286- algorithm : c"EC" ,
287- secbits : 192 ,
288- group_id : NamedGroup :: secp384r1,
289- } ;
290-
291- static SECP521R1 : TlsGroupInfo = TlsGroupInfo {
292- tls_name : c"secp521r1" ,
293- standard_name : c"secp521r1" ,
294- algorithm : c"EC" ,
295- secbits : 256 ,
296- group_id : NamedGroup :: secp521r1,
297- } ;
298-
299- static X25519 : TlsGroupInfo = TlsGroupInfo {
300- tls_name : c"x25519" ,
301- standard_name : c"X25519" ,
302- algorithm : c"X25519" ,
303- secbits : 128 ,
304- group_id : NamedGroup :: X25519 ,
305- } ;
306-
307- static X448 : TlsGroupInfo = TlsGroupInfo {
308- tls_name : c"x448" ,
309- standard_name : c"X448" ,
310- algorithm : c"X448" ,
311- secbits : 224 ,
312- group_id : NamedGroup :: X448 ,
313- } ;
314-
315- static FFDHE2048 : TlsGroupInfo = TlsGroupInfo {
316- tls_name : c"ffdhe2048" ,
317- standard_name : c"ffdhe2048" ,
318- algorithm : c"DH" ,
319- secbits : 112 ,
320- group_id : NamedGroup :: FFDHE2048 ,
321- } ;
322-
323- static FFDHE3072 : TlsGroupInfo = TlsGroupInfo {
324- tls_name : c"ffdhe3072" ,
325- standard_name : c"ffdhe3072" ,
326- algorithm : c"DH" ,
327- secbits : 128 ,
328- group_id : NamedGroup :: FFDHE3072 ,
329- } ;
330-
331- static FFDHE4096 : TlsGroupInfo = TlsGroupInfo {
332- tls_name : c"ffdhe4096" ,
333- standard_name : c"ffdhe4096" ,
334- algorithm : c"DH" ,
335- secbits : 128 ,
336- group_id : NamedGroup :: FFDHE4096 ,
337- } ;
338-
339- static FFDHE6144 : TlsGroupInfo = TlsGroupInfo {
340- tls_name : c"ffdhe6144" ,
341- standard_name : c"ffdhe6144" ,
342- algorithm : c"DH" ,
343- secbits : 128 ,
344- group_id : NamedGroup :: FFDHE6144 ,
345- } ;
346-
347- static FFDHE8192 : TlsGroupInfo = TlsGroupInfo {
348- tls_name : c"ffdhe8192" ,
349- standard_name : c"ffdhe8192" ,
350- algorithm : c"DH" ,
351- secbits : 192 ,
352- group_id : NamedGroup :: FFDHE8192 ,
353- } ;
354-
355- static MLKEM512 : TlsGroupInfo = TlsGroupInfo {
356- tls_name : c"MLKEM512" ,
357- standard_name : c"" ,
358- algorithm : c"ML-KEM-512" ,
359- secbits : 128 ,
360- group_id : NamedGroup :: MLKEM512 ,
361- } ;
362-
363- static MLKEM768 : TlsGroupInfo = TlsGroupInfo {
364- tls_name : c"MLKEM768" ,
365- standard_name : c"" ,
366- algorithm : c"ML-KEM-768" ,
367- secbits : 192 ,
368- group_id : NamedGroup :: MLKEM768 ,
369- } ;
370-
371- static MLKEM1024 : TlsGroupInfo = TlsGroupInfo {
372- tls_name : c"MLKEM1024" ,
373- standard_name : c"" ,
374- algorithm : c"ML-KEM-1024" ,
375- secbits : 256 ,
376- group_id : NamedGroup :: MLKEM1024 ,
377- } ;
378-
379- static X25519MLKEM768 : TlsGroupInfo = TlsGroupInfo {
380- tls_name : c"X25519MLKEM768" ,
381- standard_name : c"" ,
382- algorithm : c"X25519MLKEM768" ,
383- secbits : 192 ,
384- group_id : NamedGroup :: X25519MLKEM768 ,
385- } ;
386-
387- static SECP256R1_MLKEM768 : TlsGroupInfo = TlsGroupInfo {
388- tls_name : c"SecP256r1MLKEM768" ,
389- standard_name : c"" ,
390- algorithm : c"SecP256r1MLKEM768" ,
391- secbits : 192 ,
392- group_id : NamedGroup :: secp256r1MLKEM768,
393- } ;
394-
395243/// Backs a server-side SSL_SESSION object
396244///
397245/// Note that this has equality and ordering entirely based on the `id` field.
@@ -1261,6 +1109,7 @@ impl Ssl {
12611109 if let ConnMode :: Unknown = self . mode {
12621110 self . set_client_mode ( ) ;
12631111 }
1112+
12641113 if matches ! ( self . conn, ConnState :: Nothing ) {
12651114 self . init_client_conn ( ) ?;
12661115 }
0 commit comments