mirror of
https://github.com/kristoferssolo/tls-pq-bench.git
synced 2026-03-22 00:36:21 +00:00
feat(server): log negotiated cipher suite after handshake
This commit is contained in:
@@ -52,12 +52,7 @@ pub async fn write_request<W: AsyncWriteExt + Unpin>(writer: &mut W, size: u64)
|
|||||||
/// The pattern is a repeating sequence: 0x00, 0x01, ..., 0xFF, 0x00, ...
|
/// The pattern is a repeating sequence: 0x00, 0x01, ..., 0xFF, 0x00, ...
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn generate_payload(size: u64) -> Vec<u8> {
|
pub fn generate_payload(size: u64) -> Vec<u8> {
|
||||||
let size = size as usize;
|
(0..size).map(|i| (i & 0xFF) as u8).collect()
|
||||||
let mut payload = Vec::with_capacity(size);
|
|
||||||
for i in 0..size {
|
|
||||||
payload.push((i & 0xFF) as u8);
|
|
||||||
}
|
|
||||||
payload
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Write deterministic payload to a stream.
|
/// Write deterministic payload to a stream.
|
||||||
@@ -69,13 +64,13 @@ pub fn generate_payload(size: u64) -> Vec<u8> {
|
|||||||
pub async fn write_payload<W: AsyncWriteExt + Unpin>(writer: &mut W, size: u64) -> io::Result<()> {
|
pub async fn write_payload<W: AsyncWriteExt + Unpin>(writer: &mut W, size: u64) -> io::Result<()> {
|
||||||
const CHUNK_SIZE: usize = 64 * 1024;
|
const CHUNK_SIZE: usize = 64 * 1024;
|
||||||
let mut remaining = size as usize;
|
let mut remaining = size as usize;
|
||||||
let mut offset = 0usize;
|
let mut offset = 0;
|
||||||
|
|
||||||
while remaining > 0 {
|
while remaining > 0 {
|
||||||
let chunk_len = remaining.min(CHUNK_SIZE);
|
let chunk_len = remaining.min(CHUNK_SIZE);
|
||||||
let chunk: Vec<u8> = (0..chunk_len)
|
let chunk = (0..chunk_len)
|
||||||
.map(|i| ((offset + i) & 0xFF) as u8)
|
.map(|i| ((offset + i) & 0xFF) as u8)
|
||||||
.collect();
|
.collect::<Vec<_>>();
|
||||||
writer.write_all(&chunk).await?;
|
writer.write_all(&chunk).await?;
|
||||||
remaining -= chunk_len;
|
remaining -= chunk_len;
|
||||||
offset += chunk_len;
|
offset += chunk_len;
|
||||||
@@ -93,8 +88,8 @@ pub async fn read_payload<R: AsyncReadExt + Unpin>(
|
|||||||
expected_size: u64,
|
expected_size: u64,
|
||||||
) -> io::Result<u64> {
|
) -> io::Result<u64> {
|
||||||
const CHUNK_SIZE: usize = 64 * 1024;
|
const CHUNK_SIZE: usize = 64 * 1024;
|
||||||
let mut buf = vec![0u8; CHUNK_SIZE];
|
let mut buf = vec![0; CHUNK_SIZE];
|
||||||
let mut total_read = 0u64;
|
let mut total_read = 0;
|
||||||
|
|
||||||
while total_read < expected_size {
|
while total_read < expected_size {
|
||||||
let to_read = ((expected_size - total_read) as usize).min(CHUNK_SIZE);
|
let to_read = ((expected_size - total_read) as usize).min(CHUNK_SIZE);
|
||||||
|
|||||||
@@ -165,6 +165,9 @@ async fn run_iteration(
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| miette!("TLS handshake failed: {e}"))?;
|
.map_err(|e| miette!("TLS handshake failed: {e}"))?;
|
||||||
|
|
||||||
|
let (_, conn) = tls_stream.get_ref();
|
||||||
|
info!(cipher = ?conn.negotiated_cipher_suite(), "connection established");
|
||||||
|
|
||||||
let handshake_ns = start.elapsed().as_nanos() as u64;
|
let handshake_ns = start.elapsed().as_nanos() as u64;
|
||||||
|
|
||||||
write_request(&mut tls_stream, u64::from(payload_bytes))
|
write_request(&mut tls_stream, u64::from(payload_bytes))
|
||||||
|
|||||||
@@ -78,19 +78,24 @@ async fn handle_connection(stream: TcpStream, peer: SocketAddr, tls_config: Arc<
|
|||||||
let start_handshake = match acceptor.await {
|
let start_handshake = match acceptor.await {
|
||||||
Ok(sh) => sh,
|
Ok(sh) => sh,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
warn!(peer = %peer, error = %e, "TLS accept error");
|
return warn!(peer = %peer, error = %e, "TLS accept error");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut tls_stream = match start_handshake.into_stream(tls_config).await {
|
let mut tls_stream = match start_handshake.into_stream(tls_config).await {
|
||||||
Ok(s) => s,
|
Ok(s) => s,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
warn!(peer = %peer, error = %e, "TLS handshake error");
|
return warn!(peer = %peer, error = %e, "TLS handshake error");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let (_, conn) = tls_stream.get_ref();
|
||||||
|
info!(
|
||||||
|
cipher = ?conn.negotiated_cipher_suite(),
|
||||||
|
version = ?conn.protocol_version(),
|
||||||
|
"connection established"
|
||||||
|
);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let payload_size = match read_request(&mut tls_stream).await {
|
let payload_size = match read_request(&mut tls_stream).await {
|
||||||
Ok(size) => size,
|
Ok(size) => size,
|
||||||
|
|||||||
Reference in New Issue
Block a user