diff options
| author | Felix Fietkau | 2024-12-16 12:41:41 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2024-12-16 12:41:41 +0000 |
| commit | 3e5766783d5d6b2a48ba95774e2af64e097371a6 (patch) | |
| tree | 3a4ab675d269d60502a02c28da58220e1792f48b | |
| parent | 93461ca4c8270e33238e7f4b3108a5377d63cf75 (diff) | |
unet-tool: add support for confirming password
Signed-off-by: Felix Fietkau <nbd@nbd.name>
| -rw-r--r-- | cli.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -38,7 +38,7 @@ static FILE *out_file; static bool quiet; static bool sync_done; static bool has_key; -static bool password_prompt; +static int password_prompt; static enum { CMD_UNKNOWN, CMD_GENERATE, @@ -539,9 +539,20 @@ static bool parse_seed(uint8_t *dest, const char *salt) } if (password_prompt) { + char *pw2; + pw = getpass("Password: "); if (pw) len = strlen(pw); + + if (pw && password_prompt > 1) { + pw = strcpy(buf, pw); + pw2 = getpass("Retype password: "); + if (!pw2 || strcmp(pw, pw2) != 0) { + INFO("Passwords do not match\n"); + return false; + } + } } else { len = fread(buf, 1, sizeof(buf), stdin); if (!feof(stdin)) { @@ -685,7 +696,7 @@ int main(int argc, char **argv) has_pubkey = true; break; case 'p': - password_prompt = true; + password_prompt++; break; case 'b': if (load_network_data(optarg)) |