rustls/crypto/aws_lc_rs/pq/
mod.rs1use crate::crypto::SupportedKxGroup;
2use crate::crypto::aws_lc_rs::kx_group;
3use crate::{Error, NamedGroup, PeerMisbehaved};
4
5mod hybrid;
6mod mlkem;
7
8pub static X25519MLKEM768: &dyn SupportedKxGroup = &hybrid::Hybrid {
12 classical: kx_group::X25519,
13 post_quantum: MLKEM768,
14 name: NamedGroup::X25519MLKEM768,
15 layout: hybrid::Layout {
16 classical_share_len: X25519_LEN,
17 post_quantum_client_share_len: MLKEM768_ENCAP_LEN,
18 post_quantum_server_share_len: MLKEM768_CIPHERTEXT_LEN,
19 post_quantum_first: true,
20 },
21};
22
23pub static MLKEM768: &dyn SupportedKxGroup = &mlkem::MlKem768;
27
28const INVALID_KEY_SHARE: Error = Error::PeerMisbehaved(PeerMisbehaved::InvalidKeyShare);
29
30const X25519_LEN: usize = 32;
31const MLKEM768_CIPHERTEXT_LEN: usize = 1088;
32const MLKEM768_ENCAP_LEN: usize = 1184;