@@ -120,20 +120,45 @@ pub fn sig_scheme_to_type_nid(scheme: SignatureScheme) -> Option<c_int> {
120120 }
121121}
122122
123+ pub fn named_group_to_tls_name ( id : NamedGroup ) -> Option < & ' static CStr > {
124+ Some ( match id {
125+ NamedGroup :: secp256r1 => c"secp256r1" ,
126+ NamedGroup :: secp384r1 => c"secp384r1" ,
127+ NamedGroup :: secp521r1 => c"secp521r1" ,
128+ NamedGroup :: X25519 => c"x25519" ,
129+ NamedGroup :: X448 => c"x448" ,
130+ NamedGroup :: FFDHE2048 => c"ffdhe2048" ,
131+ NamedGroup :: FFDHE3072 => c"ffdhe3072" ,
132+ NamedGroup :: FFDHE4096 => c"ffdhe4096" ,
133+ NamedGroup :: FFDHE6144 => c"ffdhe6144" ,
134+ NamedGroup :: FFDHE8192 => c"ffdhe8192" ,
135+ NamedGroup :: MLKEM512 => c"MLKEM512" ,
136+ NamedGroup :: MLKEM768 => c"MLKEM768" ,
137+ NamedGroup :: MLKEM1024 => c"MLKEM1024" ,
138+ NamedGroup :: X25519MLKEM768 => c"X25519MLKEM768" ,
139+ NamedGroup :: secp256r1MLKEM768 => c"SecP256r1MLKEM768" ,
140+ _ => return None ,
141+ } )
142+ }
143+
123144pub fn named_group_to_nid ( group : NamedGroup ) -> Option < c_int > {
124145 use NamedGroup :: * ;
125146
147+ // See TLSEXT_nid_unknown from tls1.h - openssl-sys does not
148+ // have a constant for this to import.
149+ const TLSEXT_NID_UNKNOWN : c_int = 0x1000000 ;
126150 // See NID_ffhdhe* from obj_mac.h - openssl-sys does not have
127151 // constants for these to import.
128152 const NID_FFDHE2048 : c_int = 1126 ;
129153 const NID_FFDHE3072 : c_int = 1127 ;
130154 const NID_FFDHE4096 : c_int = 1128 ;
131155 const NID_FFDHE6144 : c_int = 1129 ;
132156 const NID_FFDHE8192 : c_int = 1130 ;
133-
134- // See TLSEXT_nid_unknown from tls1.h - openssl-sys does not
135- // have a constant for this to import.
136- const TLSEXT_NID_UNKNOWN : c_int = 0x1000000 ;
157+ // See NID_ML_KEM_* from obj_mac.h - openssl-sys does not have
158+ // constants for these to import.
159+ const NID_ML_KEM_512 : c_int = 1454 ;
160+ const NID_ML_KEM_768 : c_int = 1455 ;
161+ const NID_ML_KEM_1024 : c_int = 1456 ;
137162
138163 match group {
139164 secp256r1 => Some ( NID_X9_62_prime256v1 ) ,
@@ -146,6 +171,9 @@ pub fn named_group_to_nid(group: NamedGroup) -> Option<c_int> {
146171 FFDHE4096 => Some ( NID_FFDHE4096 ) ,
147172 FFDHE6144 => Some ( NID_FFDHE6144 ) ,
148173 FFDHE8192 => Some ( NID_FFDHE8192 ) ,
174+ MLKEM512 => Some ( NID_ML_KEM_512 ) ,
175+ MLKEM768 => Some ( NID_ML_KEM_768 ) ,
176+ MLKEM1024 => Some ( NID_ML_KEM_1024 ) ,
149177 other => Some ( TLSEXT_NID_UNKNOWN | u16:: from ( other) as c_int ) ,
150178 }
151179}
0 commit comments