rage/age/Cargo.toml
2022-06-18 17:09:29 +00:00

139 lines
3.3 KiB
TOML

[package]
name = "age"
description = "[BETA] A simple, secure, and modern encryption library."
version = "0.8.0"
authors = ["Jack Grigg <thestr4d@gmail.com>"]
repository = "https://github.com/str4d/rage"
readme = "README.md"
keywords = ["rage", "encryption"]
categories = ["cryptography"]
license = "MIT OR Apache-2.0"
edition = "2021"
[badges]
maintenance = { status = "experimental" }
[dependencies]
age-core = { version = "0.8.0", path = "../age-core" }
# Dependencies required by the age specification:
# - Base64 from RFC 4648
base64 = "0.13"
# - ChaCha20-Poly1305 from RFC 7539
chacha20poly1305 = { version = "0.9", default-features = false, features = ["alloc"] }
# - X25519 from RFC 7748
x25519-dalek = "1"
# - HKDF from RFC 5869 with SHA-256
# - HMAC from RFC 2104 with SHA-256
hkdf = "0.12"
hmac = "0.12"
sha2 = "0.10"
# - scrypt from RFC 7914
scrypt = { version = "0.9", default-features = false }
# - CSPRNG
rand = "0.8"
rand_7 = { package = "rand", version = "0.7" }
# - Key encoding
bech32 = "0.8"
# OpenSSH-specific dependencies:
# - RSAES-OAEP from RFC 8017 with SHA-256 and MGF1
num-traits = { version = "0.2", optional = true }
rsa = { version = "0.5", optional = true }
sha2_09 = { package = "sha2", version = "0.9" }
# - Conversion of public keys from Ed25519 to X25519
curve25519-dalek = { version = "3", optional = true }
# - Encrypted keys
aes = { version = "0.8", optional = true }
bcrypt-pbkdf = { version = "0.8", optional = true }
cbc = { version = "0.1", optional = true }
cipher = { version = "0.4.3", features = ["alloc"]}
ctr = { version = "0.9", optional = true }
# Parsing
cookie-factory = "0.3.1"
nom = { version = "7", default-features = false, features = ["alloc"] }
# Secret management
subtle = "2"
zeroize = "1"
# Async I/O
futures = { version = "0.3", optional = true }
pin-project = "1"
# Localization
i18n-embed = { version = "0.13", features = ["fluent-system"] }
i18n-embed-fl = "0.6"
lazy_static = "1"
rust-embed = "6"
# Common CLI dependencies
atty = { version = "0.2", optional = true }
console = { version = "0.15", optional = true, default-features = false }
pinentry = { version = "0.5", optional = true }
rpassword = { version = "6", optional = true }
web-sys = { version = "0.3", optional = true, features = ["Window", "Performance"]}
[target.'cfg(any(unix, windows))'.dependencies]
# Plugin management
which = { version = "4", optional = true }
wsl = { version = "0.1", optional = true }
[dev-dependencies]
criterion = "0.3"
criterion-cycles-per-byte = "0.1"
futures-test = "0.3"
hex = "0.4"
i18n-embed = { version = "0.13", features = ["desktop-requester", "fluent-system"] }
quickcheck = "1"
quickcheck_macros = "1"
test-case = "2"
[target.'cfg(unix)'.dev-dependencies]
pprof = { version = "0.8", features = ["criterion", "flamegraph"] }
[features]
default = []
armor = []
async = ["futures"]
cli-common = ["atty", "console", "pinentry", "rpassword"]
plugin = ["age-core/plugin", "which", "wsl"]
ssh = [
"aes",
"bcrypt-pbkdf",
"cbc",
"ctr",
"curve25519-dalek",
"num-traits",
"rsa",
]
unstable = ["age-core/unstable"]
[lib]
bench = false
[[test]]
name = "test_vectors"
required-features = ["ssh"]
[[bench]]
name = "parser"
harness = false
[[bench]]
name = "throughput"
harness = false
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]