[package] name = "rosenpass-ciphers" authors = ["Karolin Varner ", "wucke13 "] version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" description = "Rosenpass internal ciphers and other cryptographic primitives used by rosenpass." homepage = "https://rosenpass.eu/" repository = "https://github.com/rosenpass/rosenpass" readme = "readme.md" rust-version = "1.77.0" [features] # whether the types should be defined experiment_libcrux_define_blake2 = ["dep:libcrux-blake2", "dep:thiserror"] experiment_libcrux_define_kyber = ["dep:libcrux-ml-kem", "dep:rand"] experiment_libcrux_define_chachapoly = ["dep:libcrux-chacha20poly1305"] # whether the types should be used by default experiment_libcrux_blake2 = ["experiment_libcrux_define_blake2"] experiment_libcrux_kyber = ["experiment_libcrux_define_kyber"] experiment_libcrux_chachapoly = ["experiment_libcrux_define_chachapoly"] experiment_libcrux_chachapoly_test = [ "experiment_libcrux_define_chachapoly", "dep:libcrux", ] # shorthands experiment_libcrux_define_all = [ "experiment_libcrux_define_blake2", "experiment_libcrux_define_chachapoly", "experiment_libcrux_define_kyber", ] experiment_libcrux_all = [ "experiment_libcrux_blake2", "experiment_libcrux_chachapoly", "experiment_libcrux_chachapoly_test", "experiment_libcrux_kyber", ] bench = ["experiment_libcrux_define_all"] [[bench]] name = "primitives" harness = false required-features = ["bench"] [dependencies] anyhow = { workspace = true } rosenpass-to = { workspace = true } rosenpass-constant-time = { workspace = true } rosenpass-secret-memory = { workspace = true } rosenpass-oqs = { workspace = true } rosenpass-util = { workspace = true } rosenpass-cipher-traits = { workspace = true } static_assertions = { workspace = true } zeroize = { workspace = true } chacha20poly1305 = { workspace = true } blake2 = { workspace = true } sha3 = { workspace = true } rand = { workspace = true, optional = true } thiserror = { workspace = true, optional = true } libcrux-chacha20poly1305 = { workspace = true, optional = true } libcrux-blake2 = { workspace = true, optional = true } libcrux-ml-kem = { workspace = true, optional = true, features = ["kyber"] } # this one is only used in testing, so it requires the `experiment_libcrux_chachapoly_test` feature. libcrux = { workspace = true, optional = true } [dev-dependencies] rand = { workspace = true } criterion = { workspace = true }