11use crypto:: SupportedKxGroup ;
22use graviola:: key_agreement:: { p256, p384, x25519} ;
3+ use rustls:: crypto;
34use rustls:: ffdhe_groups:: FfdheGroup ;
4- use rustls:: { NamedGroup , crypto} ;
55
6+ #[ cfg( feature = "libcrux-ml-kem" ) ]
67mod hybrid;
8+ #[ cfg( feature = "libcrux-ml-kem" ) ]
79mod mlkem;
810
911/// All key exchange algorithms, in order of preference.
1012pub static ALL_KX_GROUPS : & [ & dyn SupportedKxGroup ] = & [
13+ #[ cfg( feature = "libcrux-ml-kem" ) ]
1114 X25519MLKEM768 ,
1215 & X25519 as & dyn SupportedKxGroup ,
1316 & P256 as & dyn SupportedKxGroup ,
@@ -177,6 +180,7 @@ impl crypto::ActiveKeyExchange for ActiveP384 {
177180 }
178181}
179182
183+ #[ cfg( feature = "libcrux-ml-kem" ) ]
180184pub static X25519MLKEM768 : & dyn SupportedKxGroup = & hybrid:: Hybrid {
181185 classical : & X25519 ,
182186 post_quantum : & mlkem:: MlKem768 ,
@@ -186,11 +190,12 @@ pub static X25519MLKEM768: &dyn SupportedKxGroup = &hybrid::Hybrid {
186190 post_quantum_client_share_len : mlkem:: MlKem768 :: ENCAPS_LEN ,
187191 post_quantum_server_share_len : mlkem:: MlKem768 :: CIPHERTEXT_LEN ,
188192 } ,
189- name : NamedGroup :: X25519MLKEM768 ,
193+ name : rustls :: NamedGroup :: X25519MLKEM768 ,
190194} ;
191195
192196#[ cfg( test) ]
193197mod tests {
198+ use rustls:: NamedGroup ;
194199 use rustls:: ProtocolVersion ;
195200
196201 use super :: * ;
0 commit comments