[package]
name = "ferrocrypt"
version = "0.3.0"
edition = "2021"
rust-version = "1.87"
description = "Recipient-oriented file and directory encryption: passphrase (Argon2id) and X25519 public-key recipients, XChaCha20-Poly1305 STREAM payloads, HKDF-SHA3-256 / HMAC-SHA3-256 key derivation and authentication."
authors = ["Alexander Alexandrov"]
license = "GPL-3.0-only"
readme = "../README.md"
repository = "https://github.com/alexylon/ferrocrypt"
homepage = "https://www.ferrocrypt.app"
documentation = "https://docs.rs/ferrocrypt"
keywords = ["cryptography", "encryption", "chacha20poly1305", "argon2", "X25519"]
categories = ["cryptography"]
publish = true
exclude = ["tests/fixtures/", "testvectors/wire/"]
[features]
unstable-fuzzing = []
[dependencies]
x25519-dalek = { version = "2", features = ["static_secrets"] }
zeroize = "1"
thiserror = "2"
chacha20poly1305 = { version = "0.10", features = ["std", "stream"] }
argon2 = { version = "0.5", features = ["std", "zeroize"] }
sha3 = { version = "0.11", features = ["zeroize"] }
hmac = { version = "0.13", features = ["zeroize"] }
hkdf = "0.13"
constant_time_eq = ">=0.4.2, <0.5"
bech32 = "0.11"
tempfile = "3"
cap-std = "4"
cap-fs-ext = "4"
unicode-normalization = "0.1"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
rustix = { version = "1", features = ["fs"] }
[dev-dependencies]
ferrocrypt-test-support = { path = "../ferrocrypt-test-support" }
ctor = "0.9"
stats_alloc = "0.1.10"
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies]
rustix = { version = "1", features = ["process"] }