security: replace --passphrase PHRASE with --passphrase-fd and getpass
Remove --passphrase PHRASE from auth keygen/recover/rotate — it was visible in ps aux and /proc/pid/cmdline to any local user on the system.
Safe delivery channels in priority order: 1. --passphrase-fd N — pipe fd; never appears in process table 2. MUSE_BIP39_PASSPHRASE env var — visible to owner in /proc/pid/environ 3. Interactive getpass prompt — TTY only, no echo 4. Empty string — standard BIP-39 behaviour
Add module-level _isatty() / _getpass() hooks for test monkeypatching. Add 11 tests in test_passphrase_secure.py covering fd, getpass, flag rejection, and priority order. Update test_bip39_passphrase.py and test_auth_rotate.py to use the new interface.
sha256:e3216d3355ffd8fca6eabb7732ca88dc7024cb7f79a6592f0a67099307afcfa7
sha
+43
~16
−3
symbols
sha256:9837850fb8e1cec9e66ae38cd1d0d22f067eb5215e2a26e3018c354d777e6853
snapshot
+43
symbols added
~16
symbols modified
−3
symbols removed
0
dead code introduced
Semantic Changes
62 symbols
+
test_I1_passphrase_fd_keygen_changes_fingerprint
method
method test_I1_passphrase_fd_keygen_changes_fingerprint L116–128
+
test_I2_passphrase_fd_recover_matches_keygen
method
method test_I2_passphrase_fd_recover_matches_keygen L130–142
+
test_III1_passphrase_flag_rejected_keygen
method
method test_III1_passphrase_flag_rejected_keygen L232–237
+
test_III2_passphrase_flag_rejected_recover
method
method test_III2_passphrase_flag_rejected_recover L239–248
+
test_III3_passphrase_flag_rejected_rotate
method
method test_III3_passphrase_flag_rejected_rotate L250–259
+
test_II2_empty_getpass_gives_empty_passphrase
method
method test_II2_empty_getpass_gives_empty_passphrase L204–223
~
register
−
test_II2_passphrase_flag_changes_result
method
method test_II2_passphrase_flag_changes_result L191–206
+
test_II2_passphrase_fd_changes_result
method
method test_II2_passphrase_fd_changes_result L204–219
−
test_II1_env_var_used_when_flag_absent
method
method test_II1_env_var_used_when_flag_absent L141–159
−
test_II2_flag_takes_priority_over_env_var
method
method test_II2_flag_takes_priority_over_env_var L161–173
+
test_II2_fd_takes_priority_over_env_var
method
method test_II2_fd_takes_priority_over_env_var L178–190
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:e3216d3355ffd8fca6eabb7732ca88dc7024cb7f79a6592f0a67099307afcfa7 --body "your comment"
No comments yet. Be the first to start the discussion.