Creating new volumes prompts
        Passphrase:
        Re-type passphrase:
which is sane for interative usage, but -s (which omits prompts) to read
from stdin also prompts twice.

I think that's neither intuitive nor ergonomical and as intended for
non-interactive scripts, -s should take a new passphase just once.

Until a month ago, the manual errorneously said -s could not be used during
initial creation anyway, so I worry little about existing scripts like

        printf '%s\n%s\n' "$pw" "$pw" | bioctl -s -cC -lsd0a softraid0

Diff below makes -s create new volumes with a single passphase:

        # echo secret |       bioctl -s -Cforce -cC -lvnd0a softraid0
        bioctl: Passphrases did not match
        # echo secret | ./obj/bioctl -s -Cforce -cC -lvnd0a softraid0
        softraid0: CRYPTO volume attached as sd3

Feedback? Objection? OK?

Index: bioctl.c
===================================================================
RCS file: /cvs/src/sbin/bioctl/bioctl.c,v
retrieving revision 1.151
diff -u -p -r1.151 bioctl.c
--- bioctl.c    18 Oct 2022 07:04:20 -0000      1.151
+++ bioctl.c    2 Aug 2023 10:30:39 -0000
@@ -989,7 +989,7 @@ bio_kdf_generate(struct sr_crypto_kdfinf
        derive_key(kdfinfo->pbkdf.generic.type, kdfinfo->pbkdf.rounds,
            kdfinfo->maskkey, sizeof(kdfinfo->maskkey),
            kdfinfo->pbkdf.salt, sizeof(kdfinfo->pbkdf.salt),
-           "New passphrase: ", 1);
+           "New passphrase: ", rpp_flag == RPP_STDIN ? 0 : 1);
 }
 
 int

Reply via email to