[package] name = "rosenpass" version = "0.3.0-dev" authors = ["Karolin Varner ", "wucke13 "] edition = "2021" license = "MIT OR Apache-2.0" description = "Build post-quantum-secure VPNs with WireGuard!" homepage = "https://rosenpass.eu/" repository = "https://github.com/rosenpass/rosenpass" readme = "readme.md" rust-version = "1.77.0" [[bin]] name = "rosenpass" path = "src/main.rs" [[bin]] name = "rosenpass-gen-ipc-msg-types" path = "src/bin/gen-ipc-msg-types.rs" required-features = ["experiment_api", "internal_bin_gen_ipc_msg_types"] [[test]] name = "api-integration-tests" required-features = ["experiment_api", "internal_testing"] [[test]] name = "api-integration-tests-api-setup" required-features = ["experiment_api", "internal_testing"] [[test]] name = "gen-ipc-msg-types" required-features = [ "experiment_api", "internal_testing", "internal_bin_gen_ipc_msg_types", ] [[bench]] name = "trace_handshake" harness = false required-features = ["trace_bench"] [[bench]] name = "handshake" harness = false [dependencies] rosenpass-util = { workspace = true } rosenpass-constant-time = { workspace = true } rosenpass-ciphers = { workspace = true } rosenpass-cipher-traits = { workspace = true } rosenpass-to = { workspace = true } rosenpass-secret-memory = { workspace = true } anyhow = { workspace = true } static_assertions = { workspace = true } memoffset = { workspace = true } thiserror = { workspace = true } paste = { workspace = true } log = { workspace = true } env_logger = { workspace = true } serde = { workspace = true } toml = { workspace = true } clap = { workspace = true } clap_complete = { workspace = true } clap_mangen = { workspace = true } mio = { workspace = true } rand = { workspace = true } zerocopy = { workspace = true } home = { workspace = true } derive_builder = { workspace = true } rosenpass-wireguard-broker = { workspace = true } zeroize = { workspace = true } hex-literal = { workspace = true, optional = true } hex = { workspace = true, optional = true } heck = { workspace = true, optional = true } command-fds = { workspace = true, optional = true } rustix = { workspace = true, optional = true } uds = { workspace = true, optional = true, features = ["mio_1xx"] } signal-hook = { workspace = true, optional = true } libcrux-test-utils = { workspace = true, optional = true } [build-dependencies] anyhow = { workspace = true } [dev-dependencies] criterion = { workspace = true } test_bin = { workspace = true } stacker = { workspace = true } serial_test = { workspace = true } procspawn = { workspace = true } tempfile = { workspace = true } rustix = { workspace = true } [features] #default = ["experiment_libcrux_all"] experiment_cookie_dos_mitigation = [] experiment_memfd_secret = ["rosenpass-wireguard-broker/experiment_memfd_secret"] experiment_libcrux_all = ["rosenpass-ciphers/experiment_libcrux_all"] experiment_libcrux_blake2 = ["rosenpass-ciphers/experiment_libcrux_blake2"] experiment_libcrux_chachapoly = [ "rosenpass-ciphers/experiment_libcrux_chachapoly", ] experiment_libcrux_kyber = ["rosenpass-ciphers/experiment_libcrux_kyber"] experiment_api = [ "hex-literal", "uds", "command-fds", "rustix", "rosenpass-util/experiment_file_descriptor_passing", "rosenpass-wireguard-broker/experiment_api", ] internal_signal_handling_for_coverage_reports = ["signal-hook"] internal_testing = [] internal_bin_gen_ipc_msg_types = ["hex", "heck"] trace_bench = ["rosenpass-util/trace_bench", "dep:libcrux-test-utils"] [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(coverage)'] }