[package] name = "age" description = "[BETA] A simple, secure, and modern encryption library." version = "0.11.0" authors.workspace = true repository.workspace = true readme = "README.md" keywords = ["rage", "encryption"] categories = ["cryptography"] license.workspace = true edition.workspace = true rust-version.workspace = true [badges] maintenance = { status = "experimental" } [dependencies] age-core.workspace = true # Dependencies exposed in a public API: # (Breaking upgrades to these require a breaking upgrade to this crate.) base64.workspace = true chacha20poly1305.workspace = true hmac.workspace = true i18n-embed.workspace = true rand.workspace = true # OpenSSH-specific dependencies: # - RSAES-OAEP from RFC 8017 with SHA-256 and MGF1 rsa = { version = "0.9", default-features = false, optional = true } # - Conversion of public keys from Ed25519 to X25519 curve25519-dalek = { version = "4", optional = true } # Async I/O futures = { version = "0.3", optional = true } pin-project = "1" # Common CLI dependencies pinentry = { workspace = true, optional = true } # Dependencies used internally: # (Breaking upgrades to these are usually backwards-compatible, but check MSRVs.) bech32.workspace = true cookie-factory.workspace = true i18n-embed-fl.workspace = true lazy_static.workspace = true nom.workspace = true rust-embed.workspace = true scrypt.workspace = true sha2.workspace = true subtle.workspace = true x25519-dalek.workspace = true zeroize.workspace = true # OpenSSH-specific dependencies: # - RSAES-OAEP from RFC 8017 with SHA-256 and MGF1 num-traits = { version = "0.2", optional = true } # - Encrypted keys aes = { version = "0.8", optional = true } aes-gcm = { version = "0.10", optional = true } bcrypt-pbkdf = { version = "0.10", optional = true } cbc = { version = "0.1", optional = true } cipher = { version = "0.4.3", features = ["alloc"], optional = true } ctr = { version = "0.9", optional = true } # scrypt Performance timer web-sys = { version = "0.3", optional = true, features = ["Window", "Performance"]} # Async I/O memchr = { version = "2.5", optional = true } # Common CLI dependencies console = { version = "0.15", optional = true, default-features = false } is-terminal = { version = "0.4", optional = true } rpassword = { version = "7", optional = true } [target.'cfg(any(unix, windows))'.dependencies] # Plugin management which = { version = "4", optional = true } wsl = { version = "0.1", optional = true } [dev-dependencies] criterion = "0.5" futures-test = "0.3" hex = "0.4" i18n-embed = { workspace = true, features = ["desktop-requester"] } proptest = "1" test-case = "3" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } [target.'cfg(unix)'.dev-dependencies] pprof = { version = "0.13", features = ["criterion", "flamegraph"] } [target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dev-dependencies] criterion-cycles-per-byte = "0.6" [features] default = [] armor = [] async = ["futures", "memchr"] cli-common = ["console", "is-terminal", "pinentry", "rpassword"] plugin = ["age-core/plugin", "which", "wsl"] ssh = [ "aes", "aes-gcm", "bcrypt-pbkdf", "cbc", "cipher", "ctr", "curve25519-dalek", "num-traits", "rsa", ] unstable = ["age-core/unstable"] [lib] bench = false [[test]] name = "test_vectors" required-features = ["ssh"] [[test]] name = "testkit" required-features = ["armor", "async"] [[bench]] name = "parser" harness = false [[bench]] name = "throughput" harness = false [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]