age is a simple, modern, and secure file encryption library. It features small explicit keys, no config options, and UNIX-style composability.
This crate provides a set of Rust APIs that can be used to build more complex
tools based on the age format. The primary consumers of these APIs are the
rage
CLI tools, which provide straightforward
encryption and decryption of files or streams (e.g. in shell scripts), as well
as additional features such as mounting an encrypted archive.
The format specification is at age-encryption.org/v1. The age format was designed by @Benjojo and @FiloSottile.
The reference interoperable Go implementation is available at filippo.io/age.
Add this line to your Cargo.toml
:
age = "0.11"
See the documentation for examples.
-
armor
enables theage::armor
module, which provides support for ASCII-armored age files. -
async
enables asynchronous APIs for encryption and decryption. -
cli-common
enables common helper functions for building age CLI tools. -
ssh
enables theage::ssh
module, which allows for reusing existing SSH key files for age encryption. -
web-sys
enables calculating the work factor for passphrase encryption with the Performance timer via theweb-sys
crate, when compiling for a WebAssembly target such aswasm32-unknown-unknown
. This feature is ignored for thewasm32-wasi
target, which supportsstd::time::SystemTime
. -
unstable
enables in-development functionality. Anything behind this feature flag has no stability or interoperability guarantees.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.