rage v0.5.0
Pre-release
Pre-release
rage
Added
- Italian, Spanish, and Chinese translations!
ssh
feature flag, enabled by default. It can be disabled to remove support
forssh-rsa
andssh-ed25519
recipients and identities.ssh-rsa
keys are
now supported without theunstable
feature flag.
Changed
- MSRV is now 1.45.0.
Removed
- Default identity path (identities should instead be set per-use).
- Default alias path (for unstable aliases feature).
age
Added
- Italian, Spanish, and Chinese translations!
- New core traits, implemented by all relevant
age
types:age::Identity
, representing an identity that can decrypt an age file.age::Recipient
, representing a potential recipient of an age file.
- Separate modules and structs for different recipient types:
age::x25519
age::ssh
(behind thessh
feature flag).
age::EncryptError
, representing errors that can occur during encryption.age::IdentityFile
struct, for parsing a list of native age identities
(currently onlyage::x25519::Identity
) from a file.- Asynchronous APIs for encryption and decryption, enabled by the
async
feature flag:age::Encryptor::wrap_async_output()
age::Decryptor::new_async()
age::decryptor::RecipientsDecryptor::decrypt_async()
age::decryptor::PassphraseDecryptor::decrypt_async()
- Explicit armoring support, enabled by the
armor
feature flag:age::armor::ArmoredReader
, which can be wrapped around an input to handle
a potentially-armored age file.age::armor::ArmoredWriter
, which can be wrapped around an output to
optionally apply the armored age format.
Changed
- MSRV is now 1.45.0.
- Changes due to the new core traits:
age::Encryptor::with_recipients
now takesVec<Box<dyn Recipient>>
.age::decryptor::RecipientsDecryptor
now takes
impl Iterator<Item = Box<dyn Identity>>
in its decryption methods.age::cli_common::read_identities
now returnsVec<Box<dyn Identity>>
, as
it abstracts overage::IdentityFile
andage::ssh::Identity
. When the
ssh
feature flag is enabled, it also takes anunsupported_ssh
argument
for handling unsupported SSH identities.age::Error
has been renamed toage::DecryptError
.
- Changes due to explicit armoring support:
age::Encryptor::wrap_output
now only generates the non-malleable binary
age format. To optionally generate armored age files, use
encryptor.wrap_output(ArmoredWriter::wrap_output(output, format))
.age::Decryptor
now only decrypts the non-malleable binary age format. To
handle age files that are potentially armored, use
Decryptor::new(ArmoredReader::new(input))
.age::Format
has been moved toage::armor::Format
.
- SSH support is now disabled by default, behind the
ssh
feature flag.
ssh-rsa
keys are now supported without theunstable
feature flag. age::Callbacks
has been moved toage::decryptor::Callbacks
.
Removed
age::SecretKey
(replaced byage::x25519::Identity
and
age::ssh::Identity
).age::keys::RecipientKey
(replaced byage::x25519::Recipient
and
age::ssh::Recipient
).age::keys::{Identity, IdentityKey}
(replaced byage::Identity
trait on
individual identities, andage::IdentityFile
for parsing identities).age::decryptor::RecipientsDecryptor::decrypt_with_callbacks()
(identities
are now expected to handle their own callbacks, and
age::cli_common::read_identities
now adds callbacks to SSH identities).- Default identity path:
age::cli_common::get_config_dir
.- The
no_default
parameter forage::cli_common::read_identities
.
age-core
Added
- Several structs used when implementing the
age::Identity
and
age::Recipient
traits:age_core::format::FileKey
age_core::format::Stanza
age_core::format::grease_the_joint
, for generating a random valid recipient
stanza. No other guarantees are made about the stanza's fields.age_core::primitives::{aead_decrypt, aead_encrypt, hkdf}
, to enable these
common primitives to be reused in plugins.
Changed
- MSRV is now 1.41.0.
age_core::format::write::age_stanza
now takesargs: &[impl AsRef<str>]
.