secrets/test
Brian Majewski 28f44f043c test: recipients.txt security regression fixtures + dangling-symlink fix (EGB-283)
Swap _load_recipients check order so [ -L ] (symlink) runs before [ ! -e ]
(missing), closing the gap where a dangling symlink bypassed the refusal
and silently fell back to legacy single-key mode.

Add 6 SECURITY-tagged fixtures to test/recipients.bats: dangling-symlink
refused (the ordering gap), shell-metachar injection (no execution), extra-
age-flag-looking line, control/ANSI chars, embedded whitespace via add, and
symlinked file refused on add. All 6 pass immediately after the ordering fix;
the existing rails (_validate_age_recipient, -L checks) were already tight
enough that only the production swap was needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 13:17:28 -07:00
..
manifest.bats feat: secrets which prints the manifest version (EGB-700) 2026-06-08 06:02:11 -07:00
migrate.bats feat: secrets migrate --status surveys per-project v2 readiness (EGB-710) 2026-06-08 07:50:32 -07:00
recipients.bats test: recipients.txt security regression fixtures + dangling-symlink fix (EGB-283) 2026-06-24 13:17:28 -07:00
run-security.sh chore: security review policy + operator runner, doc updates (EGB-677 stage 1) 2026-06-07 13:12:39 -07:00
secrets.bats feat: store-format-v2 self-describing migration (EGB-703, folds in EGB-700) 2026-06-07 16:07:31 -07:00
test_helper.bash feat: multi-recipient encrypt core + recipients.txt (EGB-283) 2026-06-24 12:33:05 -07:00