mirror of
https://github.com/kristoferssolo/tls-pq-bench.git
synced 2026-03-22 00:36:21 +00:00
feat: add hybrid PQ key exchange support (X25519MLKEM768)
- Update server and runner to use X25519MLKEM768 kx group from aws_lc_rs - Both --mode x25519 and --mode x25519mlkem768 now work - Integration tested end-to-end with both modes
This commit is contained in:
@@ -15,7 +15,10 @@ use miette::miette;
|
|||||||
use rustls::{
|
use rustls::{
|
||||||
ClientConfig, DigitallySignedStruct, SignatureScheme,
|
ClientConfig, DigitallySignedStruct, SignatureScheme,
|
||||||
client::danger::{HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier},
|
client::danger::{HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier},
|
||||||
crypto::aws_lc_rs::{self, kx_group::X25519},
|
crypto::aws_lc_rs::{
|
||||||
|
self,
|
||||||
|
kx_group::{X25519, X25519MLKEM768},
|
||||||
|
},
|
||||||
pki_types::{CertificateDer, ServerName, UnixTime},
|
pki_types::{CertificateDer, ServerName, UnixTime},
|
||||||
version::TLS13,
|
version::TLS13,
|
||||||
};
|
};
|
||||||
@@ -126,9 +129,7 @@ fn build_tls_config(mode: KeyExchangeMode) -> miette::Result<Arc<ClientConfig>>
|
|||||||
let mut provider = aws_lc_rs::default_provider();
|
let mut provider = aws_lc_rs::default_provider();
|
||||||
provider.kx_groups = match mode {
|
provider.kx_groups = match mode {
|
||||||
KeyExchangeMode::X25519 => vec![X25519],
|
KeyExchangeMode::X25519 => vec![X25519],
|
||||||
KeyExchangeMode::X25519Mlkem768 => {
|
KeyExchangeMode::X25519Mlkem768 => vec![X25519MLKEM768],
|
||||||
todo!("Configure hybrid PQ key exchange")
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let config = ClientConfig::builder_with_provider(Arc::new(provider))
|
let config = ClientConfig::builder_with_provider(Arc::new(provider))
|
||||||
|
|||||||
@@ -13,7 +13,10 @@ use common::{
|
|||||||
use miette::miette;
|
use miette::miette;
|
||||||
use rustls::{
|
use rustls::{
|
||||||
ServerConfig,
|
ServerConfig,
|
||||||
crypto::aws_lc_rs::{self, kx_group::X25519},
|
crypto::aws_lc_rs::{
|
||||||
|
self,
|
||||||
|
kx_group::{X25519, X25519MLKEM768},
|
||||||
|
},
|
||||||
pki_types::{CertificateDer, PrivateKeyDer},
|
pki_types::{CertificateDer, PrivateKeyDer},
|
||||||
server::Acceptor,
|
server::Acceptor,
|
||||||
version::TLS13,
|
version::TLS13,
|
||||||
@@ -47,9 +50,7 @@ fn build_tls_config(
|
|||||||
let mut provider = aws_lc_rs::default_provider();
|
let mut provider = aws_lc_rs::default_provider();
|
||||||
provider.kx_groups = match mode {
|
provider.kx_groups = match mode {
|
||||||
KeyExchangeMode::X25519 => vec![X25519],
|
KeyExchangeMode::X25519 => vec![X25519],
|
||||||
KeyExchangeMode::X25519Mlkem768 => {
|
KeyExchangeMode::X25519Mlkem768 => vec![X25519MLKEM768],
|
||||||
todo!("Configure hybrid PQ key exchange")
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Convert certificate chain
|
// Convert certificate chain
|
||||||
|
|||||||
Reference in New Issue
Block a user