github str4d/rage v0.10.0
rage v0.10.0

latest release: v0.11.0
9 months ago

rage

Added

  • Russian translation!
  • rage-keygen -y IDENTITY_FILE to convert identity files to recipients.
  • Elvish completions to the Debian package. These are not automatically discovered; Elvish users will need to manually import them.
  • Localized manpages to the Debian package.

Changed

  • MSRV is now 1.65.0.
  • Migrated from gumdrop to clap for argument parsing.
  • -R/--recipients-file and -i/--identity now support "read-once" files, like those used by process substitution (-i <(other_binary get-age-identity)) and named pipes.
  • The filename - (hyphen) is now treated as an explicit request to read from standard input when used with -R/--recipients-file or -i/--identity. It must only occur once across the -R/--recipients-file and -i/--identity flags, and the input file. It cannot be used if the input file is omitted.

Fixed

  • OpenSSH private keys passed to -i/--identity that contain invalid public keys are no longer ignored when encrypting, and instead cause an error.
  • Weak ssh-rsa public keys that are smaller than 2048 bits are now rejected.
  • rage-keygen no longer overwrites existing key files with the -o/--output flag. This was its behaviour prior to 0.6.0, but was unintentionally changed when rage was modified to overwrite existing files. Key file overwriting can still be achieved by omitting -o/--output and instead piping stdout to the file.
  • rage-keygen now prints fatal errors directly instead of them being hidden behind the RUST_LOG=error environment variable. It also now sets its return code appropriately instead of always returning 0.
  • The Debian package now uses the correct installation paths for fish and Zsh completions.

age

Added

  • Russian translation!
  • age::cli_common:
    • file_io:
      • FileReader
      • impl Debug for {LazyFile, OutputFormat, OutputWriter, StdoutWriter}
    • StdinGuard
    • read_recipients
  • age::identity::IdentityFile::from_input_reader (behind cli-common feature flag).
  • impl Eq for age::ssh::{ParseRecipientKeyError, UnsupportedKey}
  • impl {Debug, PartialEq, Eq, Hash} for age::x25519::Recipient

Changed

  • MSRV is now 1.65.0.
  • Migrated to base64 0.21, rsa 0.9.
  • age::cli_common:
    • file_io:
      • InputReader::File enum variant now contains FileReader instead of std::fs::File.
      • OutputWriter::new now takes an allow_overwrite boolean argument. If OutputWriter will write to a file, this boolean enables the caller to control whether the file will be overwritten if it exists (instead of the implicit behaviour that was previously changed in 0.6.0).
    • read_identities now takes an &mut StdinGuard argument, and filenames may now contain at most one entry of "-", which will be interpreted as reading from standard input.
    • ReadError has new variants:
      • EncryptedIdentities
      • InvalidRecipient
      • InvalidRecipientsFile
      • MissingRecipientsFile
      • MultipleStdin
      • RsaModulusTooLarge
      • RsaModulusTooSmall
  • age::ssh:
    • ParseRecipientKeyError has new variants:
      • RsaModulusTooLarge
      • RsaModulusTooSmall
    • The following trait implementations now return Err(ParseRecipientKeyError::RsaModulusTooLarge) instead of Err(ParseRecipientKeyError::Unsupported(_)) when encountering an RSA public key with a modulus larger than 4096 bits:
      • impl FromStr for Recipient
      • impl TryFrom<Identity> for Recipient

Fixed

  • age::Encryptor::with_user_passphrase will now re-measure the scrypt work factor until it is measurable, instead of setting the work factor to maximum.
  • age::cli_common:
    • UiCallbacks::confirm no longer requires erasing the confirmation message before it will accept a response.
    • UiCallbacks::request_public_string no longer prepends the description to the response string.
  • Weak ssh-rsa public keys that are smaller than 2048 bits are now rejected from all string-parsing APIs. The Recipient::SshRsa enum variant can still be manually constructed with such keys; this will be fixed in a future crate refactor.

age-plugin 0.5.0

Changed

  • MSRV is now 1.65.0.
  • Migrated to age-core 0.10.
  • age_plugin::run_state_machine now takes optional arguments, to enable the creation of recipient-only or identity-only plugins.

age-core

Added

  • impl Eq for age_core::format::Stanza

Changed

  • MSRV is now 1.65.0.

New Contributors

Full Changelog: v0.9.2...v0.10.0

Don't miss a new rage release

NewReleases is sending notifications on new releases.