mirror of
https://github.com/rosenpass/rosenpass.git
synced 2025-12-05 20:40:02 -08:00
This commit resolves multiple issues with the PSK broker integration. - The manual testing procedure never actually utilized the brokers due to the use of the outfile option, this led to issues with the broker being hidden. - The manual testing procedure omitted checking whether a PSK was actually sent to WireGuard entirely. This was fixed by writing an entirely new manual integration testing shell-script that can serve as a blueprint for future integration tests. - Many parts of the PSK broker code did not report (log) errors accurately; added error logging - BrokerServer set message.payload.return_code to the msg_type value, this led to crashes - The PSK broker commands all omitted to set the memfd policy, this led to immediate crashes once secrets where actually allocated - The MioBrokerClient IO state machine was broken and the design was too obtuse to debug. The state machine returned the length prefix as a message instead of actually interpreting it as a state machine. Seems the code was integrated but never actually tested. This was fixed by rewriting the entire state machine code using the new LengthPrefixEncoder/Decoder facilities. A write-buffer that was not being flushed is now handled by flushing the buffer in blocking-io mode.
88 lines
2.6 KiB
TOML
88 lines
2.6 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
|
|
members = [
|
|
"rosenpass",
|
|
"cipher-traits",
|
|
"ciphers",
|
|
"util",
|
|
"constant-time",
|
|
"oqs",
|
|
"to",
|
|
"fuzz",
|
|
"secret-memory",
|
|
"rp",
|
|
"wireguard-broker",
|
|
]
|
|
|
|
default-members = ["rosenpass", "rp", "wireguard-broker"]
|
|
|
|
[workspace.metadata.release]
|
|
# ensure that adding `--package` as argument to `cargo release` still creates version tags in the form of `vx.y.z`
|
|
tag-prefix = ""
|
|
|
|
[workspace.dependencies]
|
|
rosenpass = { path = "rosenpass" }
|
|
rosenpass-util = { path = "util" }
|
|
rosenpass-constant-time = { path = "constant-time" }
|
|
rosenpass-cipher-traits = { path = "cipher-traits" }
|
|
rosenpass-ciphers = { path = "ciphers" }
|
|
rosenpass-to = { path = "to" }
|
|
rosenpass-secret-memory = { path = "secret-memory" }
|
|
rosenpass-oqs = { path = "oqs" }
|
|
rosenpass-wireguard-broker = { path = "wireguard-broker" }
|
|
doc-comment = "0.3.3"
|
|
base64ct = {version = "1.6.0", default-features=false}
|
|
zeroize = "1.8.1"
|
|
memoffset = "0.9.1"
|
|
thiserror = "1.0.63"
|
|
paste = "1.0.15"
|
|
env_logger = "0.10.2"
|
|
toml = "0.7.8"
|
|
static_assertions = "1.1.0"
|
|
allocator-api2 = "0.2.14"
|
|
memsec = { git="https://github.com/rosenpass/memsec.git" ,rev="aceb9baee8aec6844125bd6612f92e9a281373df", features = [ "alloc_ext", ] }
|
|
rand = "0.8.5"
|
|
typenum = "1.17.0"
|
|
log = { version = "0.4.22" }
|
|
clap = { version = "4.5.15", features = ["derive"] }
|
|
serde = { version = "1.0.207", features = ["derive"] }
|
|
arbitrary = { version = "1.3.2", features = ["derive"] }
|
|
anyhow = { version = "1.0.86", features = ["backtrace", "std"] }
|
|
mio = { version = "1.0.2", features = ["net", "os-poll"] }
|
|
oqs-sys = { version = "0.9.1", default-features = false, features = [
|
|
'classic_mceliece',
|
|
'kyber',
|
|
] }
|
|
blake2 = "0.10.6"
|
|
chacha20poly1305 = { version = "0.10.1", default-features = false, features = [
|
|
"std",
|
|
"heapless",
|
|
] }
|
|
zerocopy = { version = "0.7.35", features = ["derive"] }
|
|
home = "0.5.9"
|
|
derive_builder = "0.20.0"
|
|
tokio = { version = "1.39", features = ["macros", "rt-multi-thread"] }
|
|
postcard= {version = "1.0.8", features = ["alloc"]}
|
|
libcrux = { version = "0.0.2-pre.2" }
|
|
hex-literal = { version = "0.4.1" }
|
|
hex = { version = "0.4.3" }
|
|
heck = { version = "0.5.0" }
|
|
libc = { version = "0.2" }
|
|
|
|
#Dev dependencies
|
|
serial_test = "3.1.1"
|
|
tempfile = "3"
|
|
stacker = "0.1.15"
|
|
libfuzzer-sys = "0.4"
|
|
test_bin = "0.4.0"
|
|
criterion = "0.4.0"
|
|
allocator-api2-tests = "0.2.15"
|
|
procspawn = {version = "1.0.1", features= ["test-support"]}
|
|
|
|
|
|
#Broker dependencies (might need cleanup or changes)
|
|
wireguard-uapi = { version = "3.0.0", features = ["xplatform"] }
|
|
command-fds = "0.2.3"
|
|
rustix = { version = "0.38.27", features = ["net", "fs"] }
|