From f13def508cdec14c02817d5e52946758fd0289b7 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sat, 23 Jun 2001 16:46:14 +0000 Subject: [PATCH] Use the new UI features, among others the new boolean input. NOTE: Boolean input hasn't been very well tested yet, so this part may fail miserably. --- crypto/engine/hw_ncipher.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/crypto/engine/hw_ncipher.c b/crypto/engine/hw_ncipher.c index b6403aa666..8ae08de5b0 100644 --- a/crypto/engine/hw_ncipher.c +++ b/crypto/engine/hw_ncipher.c @@ -1152,13 +1152,20 @@ static int hwcrhk_get_pass(const char *prompt_info, UI_INPUT_FLAG_DEFAULT_PWD, buf,0,(*len_io) - 1); UI_add_user_data(ui, callback_data); - if (ok >= 0) - ok=UI_process(ui); + UI_ctrl(ui, UI_CTRL_PRINT_ERRORS, 1, 0, 0); + + if (ok >= 0) + do + { + ok=UI_process(ui); + } + while (ok < 0 && UI_ctrl(ui, UI_CTRL_IS_REDOABLE, 0, 0, 0)); + if (ok >= 0) *len_io = strlen(buf); - OPENSSL_free(prompt); UI_free(ui); + OPENSSL_free(prompt); } } else @@ -1204,7 +1211,7 @@ static int hwcrhk_insert_card(const char *prompt_info, if (ui) { - char answer[10]; + char answer; char buf[BUFSIZ]; if (wrong_info) @@ -1214,22 +1221,22 @@ static int hwcrhk_insert_card(const char *prompt_info, if (ok >= 0 && prompt_info) { BIO_snprintf(buf, sizeof(buf)-1, - "Insert card \"%s\"\n then hit or C to cancel\n", prompt_info); - ok = UI_dup_input_string(ui, buf, 1, - answer, 0, sizeof(answer)-1); + "Insert card \"%s\"", prompt_info); + ok = UI_dup_input_boolean(ui, buf, + "\n then hit or C to cancel\n", + "\r\n", "Cc", UI_INPUT_FLAG_ECHO, &answer); } UI_add_user_data(ui, callback_data); + if (ok >= 0) ok = UI_process(ui); UI_free(ui); - /* If canceled input treat as 'cancel' */ - if (ok == -2) - ok = 1; - else if(ok < 0) - ok = -1; - else if (answer[0] == 'c' || answer[0] == 'C') + + if (ok == -2 || (ok >= 0 && answer == 'C')) ok = 1; - else + else if (ok < 0) + ok = -1; + else ok = 0; } return ok; -- 2.25.1