github str4d/rage v0.5.0
rage v0.5.0

latest releases: v0.10.0, v0.9.2, v0.9.1...
pre-release3 years ago

rage

Added

  • Italian, Spanish, and Chinese translations!
  • ssh feature flag, enabled by default. It can be disabled to remove support
    for ssh-rsa and ssh-ed25519 recipients and identities. ssh-rsa keys are
    now supported without the unstable 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 the ssh feature flag).
  • age::EncryptError, representing errors that can occur during encryption.
  • age::IdentityFile struct, for parsing a list of native age identities
    (currently only age::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 takes Vec<Box<dyn Recipient>>.
    • age::decryptor::RecipientsDecryptor now takes
      impl Iterator<Item = Box<dyn Identity>> in its decryption methods.
    • age::cli_common::read_identities now returns Vec<Box<dyn Identity>>, as
      it abstracts over age::IdentityFile and age::ssh::Identity. When the
      ssh feature flag is enabled, it also takes an unsupported_ssh argument
      for handling unsupported SSH identities.
    • age::Error has been renamed to age::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 to age::armor::Format.
  • SSH support is now disabled by default, behind the ssh feature flag.
    ssh-rsa keys are now supported without the unstable feature flag.
  • age::Callbacks has been moved to age::decryptor::Callbacks.

Removed

  • age::SecretKey (replaced by age::x25519::Identity and
    age::ssh::Identity).
  • age::keys::RecipientKey (replaced by age::x25519::Recipient and
    age::ssh::Recipient).
  • age::keys::{Identity, IdentityKey} (replaced by age::Identity trait on
    individual identities, and age::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 for age::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 takes args: &[impl AsRef<str>].

Don't miss a new rage release

NewReleases is sending notifications on new releases.