mirror of
https://github.com/kristoferssolo/tls-pq-bench.git
synced 2026-03-22 00:36:21 +00:00
refactor: rename crates
This commit is contained in:
66
Cargo.lock
generated
66
Cargo.lock
generated
@@ -164,39 +164,6 @@ version = "0.22.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bench-common"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"rcgen",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
"strum",
|
|
||||||
"tokio",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bench-runner"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bench-common",
|
|
||||||
"clap",
|
|
||||||
"miette",
|
|
||||||
"tokio",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bench-server"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bench-common",
|
|
||||||
"clap",
|
|
||||||
"miette",
|
|
||||||
"rustls",
|
|
||||||
"tokio",
|
|
||||||
"tokio-rustls",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "2.10.0"
|
version = "2.10.0"
|
||||||
@@ -282,6 +249,17 @@ version = "1.0.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
|
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "common"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"rcgen",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"strum",
|
||||||
|
"tokio",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "data-encoding"
|
name = "data-encoding"
|
||||||
version = "2.10.0"
|
version = "2.10.0"
|
||||||
@@ -688,6 +666,16 @@ dependencies = [
|
|||||||
"windows-sys 0.52.0",
|
"windows-sys 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "runner"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"clap",
|
||||||
|
"common",
|
||||||
|
"miette",
|
||||||
|
"tokio",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-demangle"
|
name = "rustc-demangle"
|
||||||
version = "0.1.27"
|
version = "0.1.27"
|
||||||
@@ -800,6 +788,18 @@ dependencies = [
|
|||||||
"zmij",
|
"zmij",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "server"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"clap",
|
||||||
|
"common",
|
||||||
|
"miette",
|
||||||
|
"rustls",
|
||||||
|
"tokio",
|
||||||
|
"tokio-rustls",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "shlex"
|
name = "shlex"
|
||||||
version = "1.3.0"
|
version = "1.3.0"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[workspace]
|
[workspace]
|
||||||
members = ["bench-common", "bench-runner", "bench-server"]
|
members = ["common", "runner", "server"]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
@@ -9,7 +9,7 @@ edition = "2024"
|
|||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
aws-lc-rs = "1"
|
aws-lc-rs = "1"
|
||||||
bench-common = { path = "bench-common" }
|
common = { path = "common" }
|
||||||
claims = "0.8"
|
claims = "0.8"
|
||||||
clap = { version = "4.5", features = ["derive"] }
|
clap = { version = "4.5", features = ["derive"] }
|
||||||
miette = { version = "7", features = ["fancy"] }
|
miette = { version = "7", features = ["fancy"] }
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "bench-common"
|
name = "common"
|
||||||
version.workspace = true
|
version.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
@@ -11,7 +11,7 @@ cargo build --release
|
|||||||
Example:
|
Example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./target/release/bench-server --mode x25519 --listen 0.0.0.0:4433
|
./target/release/server --mode x25519 --listen 0.0.0.0:4433
|
||||||
```
|
```
|
||||||
|
|
||||||
## 3) Run client benchmark
|
## 3) Run client benchmark
|
||||||
@@ -19,7 +19,7 @@ Example:
|
|||||||
Example:
|
Example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./target/release/bench-runner \
|
./target/release/runner \
|
||||||
--server 1.2.3.4:4433 \
|
--server 1.2.3.4:4433 \
|
||||||
--mode x25519mlkem768 \
|
--mode x25519mlkem768 \
|
||||||
--payload-bytes 1024 \
|
--payload-bytes 1024 \
|
||||||
@@ -35,7 +35,7 @@ Run on the client:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
perf stat -e cycles,instructions,cache-misses \
|
perf stat -e cycles,instructions,cache-misses \
|
||||||
./target/release/bench-runner ...
|
./target/release/runner ...
|
||||||
```
|
```
|
||||||
|
|
||||||
## 5) Summarize
|
## 5) Summarize
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "bench-runner"
|
name = "runner"
|
||||||
version.workspace = true
|
version.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bench-common.workspace = true
|
common.workspace = true
|
||||||
clap.workspace = true
|
clap.workspace = true
|
||||||
miette.workspace = true
|
miette.workspace = true
|
||||||
tokio.workspace = true
|
tokio.workspace = true
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
//!
|
//!
|
||||||
//! Outputs NDJSON records to stdout or a file.
|
//! Outputs NDJSON records to stdout or a file.
|
||||||
|
|
||||||
use bench_common::{
|
use common::{
|
||||||
BenchRecord, KeyExchangeMode,
|
BenchRecord, KeyExchangeMode,
|
||||||
protocol::{read_payload, write_request},
|
protocol::{read_payload, write_request},
|
||||||
};
|
};
|
||||||
@@ -23,7 +23,7 @@ use tokio::net::TcpStream;
|
|||||||
|
|
||||||
/// TLS benchmark runner.
|
/// TLS benchmark runner.
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
#[command(name = "bench-runner", version, about)]
|
#[command(name = "runner", version, about)]
|
||||||
struct Args {
|
struct Args {
|
||||||
/// Key exchange mode.
|
/// Key exchange mode.
|
||||||
#[arg(long, default_value = "x25519")]
|
#[arg(long, default_value = "x25519")]
|
||||||
@@ -144,7 +144,7 @@ async fn run_benchmark(args: Args) -> miette::Result<()> {
|
|||||||
async fn main() -> miette::Result<()> {
|
async fn main() -> miette::Result<()> {
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
|
|
||||||
eprintln!("bench-runner configuration:");
|
eprintln!("runner configuration:");
|
||||||
eprintln!(" mode: {}", args.mode);
|
eprintln!(" mode: {}", args.mode);
|
||||||
eprintln!(" server: {}", args.server);
|
eprintln!(" server: {}", args.server);
|
||||||
eprintln!(" payload_bytes: {}", args.payload_bytes);
|
eprintln!(" payload_bytes: {}", args.payload_bytes);
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "bench-server"
|
name = "server"
|
||||||
version.workspace = true
|
version.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bench-common.workspace = true
|
common.workspace = true
|
||||||
clap.workspace = true
|
clap.workspace = true
|
||||||
miette.workspace = true
|
miette.workspace = true
|
||||||
rustls.workspace = true
|
rustls.workspace = true
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
//! - Reads 8-byte little-endian u64 (requested payload size N)
|
//! - Reads 8-byte little-endian u64 (requested payload size N)
|
||||||
//! - Responds with exactly N bytes (deterministic pattern)
|
//! - Responds with exactly N bytes (deterministic pattern)
|
||||||
|
|
||||||
use bench_common::{
|
use common::{
|
||||||
KeyExchangeMode,
|
KeyExchangeMode,
|
||||||
cert::{CaCertificate, ServerCertificate},
|
cert::{CaCertificate, ServerCertificate},
|
||||||
protocol::{read_request, write_payload},
|
protocol::{read_request, write_payload},
|
||||||
@@ -27,7 +27,7 @@ use tokio_rustls::LazyConfigAcceptor;
|
|||||||
|
|
||||||
/// TLS benchmark server.
|
/// TLS benchmark server.
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
#[command(name = "bench-server", version, about)]
|
#[command(name = "server", version, about)]
|
||||||
struct Args {
|
struct Args {
|
||||||
/// Key exchange mode.
|
/// Key exchange mode.
|
||||||
#[arg(long, default_value = "x25519")]
|
#[arg(long, default_value = "x25519")]
|
||||||
@@ -48,8 +48,7 @@ fn build_tls_config(
|
|||||||
provider.kx_groups = match mode {
|
provider.kx_groups = match mode {
|
||||||
KeyExchangeMode::X25519 => vec![kx_group::X25519],
|
KeyExchangeMode::X25519 => vec![kx_group::X25519],
|
||||||
KeyExchangeMode::X25519Mlkem768 => {
|
KeyExchangeMode::X25519Mlkem768 => {
|
||||||
// TODO: Configure hybrid PQ key exchange
|
todo!("Configure hybrid PQ key exchange")
|
||||||
return Err(miette!("X25519Mlkem768 not yet implemented"));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -147,7 +146,7 @@ async fn run_server(args: Args, tls_config: Arc<ServerConfig>) -> miette::Result
|
|||||||
async fn main() -> miette::Result<()> {
|
async fn main() -> miette::Result<()> {
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
|
|
||||||
eprintln!("bench-server configuration:");
|
eprintln!("server configuration:");
|
||||||
eprintln!(" mode: {}", args.mode);
|
eprintln!(" mode: {}", args.mode);
|
||||||
eprintln!(" listen: {}", args.listen);
|
eprintln!(" listen: {}", args.listen);
|
||||||
eprintln!();
|
eprintln!();
|
||||||
Reference in New Issue
Block a user