From 7d2b825d4e59872ec4839f8a8c773d146a0b28e0 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 7 Nov 2002 18:12:08 +0000 Subject: [PATCH] Confirm private key passphrase. --- CHANGES | 4 ++++ lib/silcutil/silcapputil.c | 30 +++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index 0f05c532..d265e7f8 100644 --- a/CHANGES +++ b/CHANGES @@ -10,6 +10,10 @@ Thu Nov 7 19:21:10 EET 2002 Pekka Riikonen client. Affected file irssi/src/silc/core/silc-servers.c. Renamed FILE RECEIVE to FILE ACCEPT. + * Confirm passphrase for private key encryption in + silc_create_key_pair and silc_change_private_key_passphrase. + Affected files are lib/silcutil/silcapputil.c. + Thu Nov 7 10:05:28 CET 2002 Pekka Riikonen * Move silc_client_packet_send back to internal, added diff --git a/lib/silcutil/silcapputil.c b/lib/silcutil/silcapputil.c index 1210b0a9..723ca37f 100644 --- a/lib/silcutil/silcapputil.c +++ b/lib/silcutil/silcapputil.c @@ -175,11 +175,20 @@ New pair of keys will be created. Please, answer to following questions.\n\ } if (!pass) { - memset(line, 0, sizeof(line)); - snprintf(line, sizeof(line), "Private key passphrase: "); - pass = silc_get_input(line, TRUE); - if (!pass) + char *pass2 = NULL; + pass = silc_get_input("Private key passphrase: ", TRUE); + if (!pass) { pass = strdup(""); + } else { + while (TRUE) { + printf("\n"); + pass2 = silc_get_input("Retype private key passphrase: ", TRUE); + if (!strcmp(pass, pass2)) + break; + fprintf(stderr, "\nPassphrases do not match"); + } + silc_free(pass2); + } } /* Generate keys */ @@ -383,10 +392,21 @@ bool silc_change_private_key_passphrase(const char *prv_filename, pass = new_passphrase ? strdup(new_passphrase) : NULL; if (!pass) { + char *pass2 = NULL; fprintf(stdout, "\n"); pass = silc_get_input("New passphrase: ", TRUE); - if (!pass) + if (!pass) { pass = strdup(""); + } else { + while (TRUE) { + printf("\n"); + pass2 = silc_get_input("Retype new passphrase: ", TRUE); + if (!strcmp(pass, pass2)) + break; + fprintf(stderr, "\nPassphrases do not match"); + } + silc_free(pass2); + } } silc_pkcs_save_private_key((char *)prv_filename, private_key, -- 2.43.0