[package]
edition = "2021"
name = "b4ae"
version = "2.0.0"
authors = ["B4AE Team"]
build = false
exclude = [
"elara/",
".github/",
"docs/",
"research/",
"specs/",
"specs/**",
"bindings/",
"bindings/**",
"b4ae-android/",
"b4ae-ffi/",
"b4ae-wasm/",
"wasm-demo/",
"b4ae-android-app/",
"b4ae-android-app/**",
"fuzz/",
"scripts/",
"Dockerfile",
"docker-compose.yml",
".dockerignore",
".gitignore",
".gitmodules",
".gitlab-ci.yml",
"Cargo.toml.orig",
"cbindgen.toml",
"RELEASE_NOTES_*.md",
"TESTING_GUIDE.md",
"CONTRIBUTING.md",
"CHANGELOG.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "B4AE (Beyond For All Encryption) - Quantum-resistant secure communication protocol"
homepage = "https://github.com/rafaelsistems/B4AE-Beyond-For-All-Encryption-"
documentation = "https://docs.rs/b4ae"
readme = "README.md"
keywords = [
"cryptography",
"post-quantum",
"encryption",
"security",
"messaging",
]
categories = [
"cryptography",
"network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rafaelsistems/B4AE-Beyond-For-All-Encryption-"
[features]
async = ["tokio"]
default = [
"pqcrypto-alt",
"full-crypto",
]
elara = [
"elara-transport",
"tokio",
]
full-crypto = [
"pqcrypto-kyber",
"pqcrypto-dilithium",
]
hsm = []
hsm-pkcs11 = [
"hsm",
"cryptoki",
]
networking = [
"quinn",
"tokio",
]
pqcrypto-alt = [
"pqcrypto-kyber",
"pqcrypto-dilithium",
]
proxy = ["socks"]
v2_protocol = []
[lib]
name = "b4ae"
path = "src/lib.rs"
[[example]]
name = "b4ae_chat_demo"
path = "examples/b4ae_chat_demo.rs"
required-features = ["elara"]
[[example]]
name = "b4ae_elara_demo"
path = "examples/b4ae_elara_demo.rs"
required-features = ["elara"]
[[example]]
name = "b4ae_file_transfer_demo"
path = "examples/b4ae_file_transfer_demo.rs"
required-features = ["elara"]
[[example]]
name = "b4ae_gateway_demo"
path = "examples/b4ae_gateway_demo.rs"
required-features = ["elara"]
[[test]]
name = "cookie_challenge_integration_test"
path = "tests/cookie_challenge_integration_test.rs"
[[test]]
name = "dos_metrics_test"
path = "tests/dos_metrics_test.rs"
[[test]]
name = "double_ratchet_integration_test"
path = "tests/double_ratchet_integration_test.rs"
[[test]]
name = "elara_integration_test"
path = "tests/elara_integration_test.rs"
required-features = ["elara"]
[[test]]
name = "fuzzing_test"
path = "tests/fuzzing_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "mode_binding_integration_test"
path = "tests/mode_binding_integration_test.rs"
[[test]]
name = "penetration_test"
path = "tests/penetration_test.rs"
[[test]]
name = "performance_test"
path = "tests/performance_test.rs"
[[test]]
name = "pq_integration_test"
path = "tests/pq_integration_test.rs"
[[test]]
name = "proptest_invariants"
path = "tests/proptest_invariants.rs"
[[test]]
name = "security_audit_tests"
path = "tests/security_audit_tests.rs"
[[test]]
name = "security_test"
path = "tests/security_test.rs"
[[test]]
name = "timestamp_validation_bugfix_test"
path = "tests/timestamp_validation_bugfix_test.rs"
[[test]]
name = "timestamp_validation_preservation_test"
path = "tests/timestamp_validation_preservation_test.rs"
[[bench]]
name = "crypto_bench"
path = "benches/crypto_bench.rs"
harness = false
[[bench]]
name = "performance_bench"
path = "benches/performance_bench.rs"
[[bench]]
name = "protocol_bench"
path = "benches/protocol_bench.rs"
harness = false
[dependencies.aes-gcm]
version = "0.10"
[dependencies.async-trait]
version = "0.1"
[dependencies.bincode]
version = "1.3"
[dependencies.bloomfilter]
version = "1.0"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.cryptoki]
version = "0.11"
optional = true
[dependencies.curve25519-dalek]
version = "4.0"
[dependencies.elara-transport]
version = "0.1"
optional = true
[dependencies.hex]
version = "0.4"
[dependencies.hkdf]
version = "0.12"
[dependencies.pqcrypto-dilithium]
version = "0.5"
optional = true
[dependencies.pqcrypto-kyber]
version = "0.8"
optional = true
[dependencies.pqcrypto-traits]
version = "0.3"
[dependencies.quinn]
version = "0.10"
optional = true
[dependencies.rand]
version = "=0.8.5"
[dependencies.ring]
version = "0.17"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.sha3]
version = "0.10"
[dependencies.socks]
version = "0.3"
optional = true
[dependencies.subtle]
version = "2.5"
[dependencies.thiserror]
version = "1.0"
[dependencies.tokio]
version = "1.35"
features = ["full"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
[dependencies.x25519-dalek]
version = "2.0"
features = ["static_secrets"]
[dependencies.zeroize]
version = "1.7"
features = ["derive"]
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.tokio-test]
version = "0.4"
[profile.bench]
inherits = "release"
[profile.ci]
lto = false
codegen-units = 16
inherits = "release"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true