Changes for version 0.005 - 2026-10-01
- Reading a header no longer overwrites the caller's $_. The header parser read its lines with a bare while (<$fh>), which assigns to the global $_, so decrypt, decrypt_file, decrypt_filehandle, Crypt::Age::Header->parse and ->parse_from_fh all left a header line (or undef) in it. A caller decrypting inside for (@files) had the array element itself rewritten, and one looping over literals died with "Modification of a read-only value attempted". The loops now read into lexicals; t/08-topic-preserved.t checks every one of those entry points, on success and on a rejected header. Found through File::SOPS.
Modules
Perl implementation of age encryption (age-encryption.org)
age file header parsing and generation
Key generation and Bech32 encoding for age encryption
Low-level cryptographic primitives for age encryption
Base class for age recipient stanzas
X25519 recipient stanza for age encryption