age Rust library
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.
Usage
Add this line to your Cargo.toml:
age = "0.11"
See the documentation for examples.
Feature flags
-
armorenables theage::armormodule, which provides support for ASCII-armored age files. -
asyncenables asynchronous APIs for encryption and decryption. -
cli-commonenables common helper functions for building age CLI tools. -
sshenables theage::sshmodule, which allows for reusing existing SSH key files for age encryption. -
web-sysenables calculating the work factor for passphrase encryption with the Performance timer via theweb-syscrate, when compiling for a WebAssembly target such aswasm32-unknown-unknown. This feature is ignored for thewasm32-wasitarget, which supportsstd::time::SystemTime. -
unstableenables in-development functionality. Anything behind this feature flag has no stability or interoperability guarantees.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.