mirror of
https://github.com/telemt/telemt.git
synced 2026-06-12 05:51:43 +03:00
Syntactic key shares for TLS-F
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -2938,7 +2938,7 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
|
||||
|
||||
[[package]]
|
||||
name = "telemt"
|
||||
version = "3.4.16"
|
||||
version = "3.4.17"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"anyhow",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "telemt"
|
||||
version = "3.4.16"
|
||||
version = "3.4.17"
|
||||
edition = "2024"
|
||||
|
||||
[features]
|
||||
|
||||
@@ -638,14 +638,19 @@ fn build_server_hello_key_share_for_group(
|
||||
group: u16,
|
||||
rng: &SecureRandom,
|
||||
) -> Option<ServerHelloKeyShare> {
|
||||
let expected_key_exchange_len = client_hello_key_share_group_len(group)?;
|
||||
client_hello_key_share_group_entry(handshake, group, expected_key_exchange_len)?;
|
||||
|
||||
// FakeTLS clients validate ServerHello shape and digest, not TLS traffic
|
||||
// secrets, so the response must mirror the offered group without binding to
|
||||
// the camouflage key bytes embedded in ClientHello.
|
||||
match group {
|
||||
TLS_NAMED_GROUP_X25519MLKEM768 => {
|
||||
let key_exchange = build_x25519mlkem768_server_key_share(handshake, rng)?;
|
||||
Some(ServerHelloKeyShare::new(group, key_exchange))
|
||||
}
|
||||
TLS_NAMED_GROUP_X25519MLKEM768 => Some(ServerHelloKeyShare::new(
|
||||
group,
|
||||
gen_fake_x25519mlkem768_server_key_share(rng),
|
||||
)),
|
||||
TLS_NAMED_GROUP_X25519 => {
|
||||
let key_exchange = build_x25519_server_key_share(handshake, rng)?;
|
||||
Some(ServerHelloKeyShare::new(group, key_exchange))
|
||||
Some(ServerHelloKeyShare::new(group, gen_fake_x25519_key(rng).to_vec()))
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user