=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/openssl/apps.c,v retrieving revision 1.35 retrieving revision 1.36 diff -c -r1.35 -r1.36 *** src/usr.bin/openssl/apps.c 2015/09/11 14:30:23 1.35 --- src/usr.bin/openssl/apps.c 2015/09/13 12:41:01 1.36 *************** *** 1,4 **** ! /* $OpenBSD: apps.c,v 1.35 2015/09/11 14:30:23 bcook Exp $ */ /* * Copyright (c) 2014 Joel Sing * --- 1,4 ---- ! /* $OpenBSD: apps.c,v 1.36 2015/09/13 12:41:01 bcook Exp $ */ /* * Copyright (c) 2014 Joel Sing * *************** *** 142,148 **** #include #include #include - #include #include #include --- 142,147 ---- *************** *** 154,160 **** unsigned long mask; } NAME_EX_TBL; ! static UI_METHOD *ui_method = NULL; static int set_table_opts(unsigned long *flags, const char *arg, const NAME_EX_TBL *in_tbl); --- 153,159 ---- unsigned long mask; } NAME_EX_TBL; ! UI_METHOD *ui_method = NULL; static int set_table_opts(unsigned long *flags, const char *arg, const NAME_EX_TBL *in_tbl); *************** *** 297,378 **** return 0; } ! static int ui_open(UI *ui) { return UI_method_get_opener(UI_OpenSSL()) (ui); } ! static int ui_read(UI *ui, UI_STRING *uis) { if (UI_get_input_flags(uis) & UI_INPUT_FLAG_DEFAULT_PWD && UI_get0_user_data(ui)) { ! switch (UI_get_string_type(uis)) { ! case UIT_PROMPT: ! case UIT_VERIFY: ! { ! const char *password = ! ((PW_CB_DATA *)UI_get0_user_data(ui))->password; ! if (password && password[0] != '\0') { ! UI_set_result(ui, uis, password); ! return 1; ! } } - break; - default: - break; } } return UI_method_get_reader(UI_OpenSSL()) (ui, uis); } ! static int ui_write(UI *ui, UI_STRING *uis) { if (UI_get_input_flags(uis) & UI_INPUT_FLAG_DEFAULT_PWD && UI_get0_user_data(ui)) { ! switch (UI_get_string_type(uis)) { ! case UIT_PROMPT: ! case UIT_VERIFY: ! { ! const char *password = ! ((PW_CB_DATA *)UI_get0_user_data(ui))->password; ! if (password && password[0] != '\0') ! return 1; ! } ! break; ! default: ! break; } } return UI_method_get_writer(UI_OpenSSL()) (ui, uis); } ! static int ui_close(UI *ui) { return UI_method_get_closer(UI_OpenSSL()) (ui); - } - - int - setup_ui_method(void) - { - ui_method = UI_create_method("OpenSSL application user interface"); - UI_method_set_opener(ui_method, ui_open); - UI_method_set_reader(ui_method, ui_read); - UI_method_set_writer(ui_method, ui_write); - UI_method_set_closer(ui_method, ui_close); - return 0; - } - - void - destroy_ui_method(void) - { - if (ui_method) { - UI_destroy_method(ui_method); - ui_method = NULL; - } } int --- 296,351 ---- return 0; } ! int ui_open(UI *ui) { return UI_method_get_opener(UI_OpenSSL()) (ui); } ! int ui_read(UI *ui, UI_STRING *uis) { + const char *password; + int string_type; + if (UI_get_input_flags(uis) & UI_INPUT_FLAG_DEFAULT_PWD && UI_get0_user_data(ui)) { ! string_type = UI_get_string_type(uis); ! if (string_type == UIT_PROMPT || string_type == UIT_VERIFY) { ! password = ! ((PW_CB_DATA *)UI_get0_user_data(ui))->password; ! if (password && password[0] != '\0') { ! UI_set_result(ui, uis, password); ! return 1; } } } return UI_method_get_reader(UI_OpenSSL()) (ui, uis); } ! int ui_write(UI *ui, UI_STRING *uis) { + const char *password; + int string_type; + if (UI_get_input_flags(uis) & UI_INPUT_FLAG_DEFAULT_PWD && UI_get0_user_data(ui)) { ! string_type = UI_get_string_type(uis); ! if (string_type == UIT_PROMPT || string_type == UIT_VERIFY) { ! password = ! ((PW_CB_DATA *)UI_get0_user_data(ui))->password; ! if (password && password[0] != '\0') ! return 1; } } return UI_method_get_writer(UI_OpenSSL()) (ui, uis); } ! int ui_close(UI *ui) { return UI_method_get_closer(UI_OpenSSL()) (ui); } int