File Encryption with the 'age' Format
Overview
An idiomatic R interface to the 'age' file encryption format (https://age-encryption.org/v1), backed by a vendored copy of the 'agec' C implementation (https://git.sr.ht/~min/agec). Encrypt and decrypt raw vectors, files, and strings for one or more X25519 recipients or with a passphrase, with optional ASCII armor. Cryptography is vendored and randomness is drawn from the operating system, so the package has no external library dependencies.
Bug fixes
- Fixed silent data loss at the 8 KiB output-buffer boundary. Encrypting a payload of about 8 KB (7992 to 8192 bytes) produced a truncated ciphertext that could not be decrypted, and decrypting a file whose final chunk was exactly 8 KiB (for example, a 73728-byte plaintext) returned truncated plaintext. Both reported success. Ciphertexts of about 8 KB that were created with 0.1.0 may be unrecoverable; decrypt-and-compare any you rely on.
- Error messages now describe the failure that happened. Previously a failure could report the message of an earlier, unrelated operation.
Security
- Identity files are read, parsed, and scrubbed in native code. Previously the secret key lines passed through
readLines(), which kept them in R's global string cache for the rest of the session.
Show all changes in 0.1.1Hide the rest of the changes in 0.1.1
- The vendored 'agec' library is updated to version 1.0.0. Headers are now parsed more strictly, as the age specification requires: stanzas with malformed bodies are rejected, including those of unrecognized types.
- The payload nonce counter now spans all 11 bytes that the age specification defines, and a counter overflow is reported instead of reusing a nonce. No reachable payload size is affected.
- The native code no longer leaks internal buffers, or leaves a decoded secret on the stack, when an operation fails part way.
Other changes
- agecrypt now requires R 3.5.0 or later.
From NEWS.md in the release
Install
Health
- OK13 OK2026-09-08
- ERROR12 OK, 1 ERROR2026-09-07
- OK8 OK2026-08-06
Documentation
- Help pages
- 9 (1 internal)includes a package overview page
- Examples that run
- 100%8 run in a plain check
- Exported functions with examples
- 100%
- Documented parameters
- 96%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 93%
- Median days to close, 50 most recently updated closed issues
- 0
- Median days to close, 50 most recently updated closed PRs
- 0
Releases over time
Issues over time
PRs over time
Commits over time
Commit identities over time
8 development-tooling and community-health practices detected across 5 families in the upstream repository
Checks run against github.com/pedrobtz/agecrypt on 2026-10-22.
GitHub Pages site last deployed 2026-09-30 · The repository has a site deploy workflow
pkgdown site last built 2026-09-30, before release 0.1.1 (2026-10-21)
Show all practicesHide 1 practice
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-07-26Seen in the repository: CLAUDE.mdNamed in .Rbuildignore: CLAUDE.mdPull request it wrote: opened by a project memberCommits: 1 by its own account · at least 15 crediting it in the message
- Claude Opus 5.511 commits · Sep 2026
- Claude Fable 5.13 commits · Sep 2026
- Claude Opus 51 commit · Sep 2026
Dependencies
Installing agecrypt adds no packages beyond those that come with R.
Code & Tests
People & History
Pick two releases to compare their code metrics.
- 0.1.1Latest2026-10-21 · current release · diff ↗ ·
listed once in CRAN's queue
Seen in one reading of CRAN's incoming queue, at 2026-10-21 22:56 UTC, so it stayed less than the time between readings. - 0.1.0first seen 2026-08-05
- RR 4.6.0 released · 2026-04-24
Package metadata
- First seen
- 2026-08-05
- Total releases
- 2 / 1 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 3.5.0
- Download size
- 472 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("agecrypt")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-24, which the citation names so these numbers can be found later. More on citing and the projects behind them.