mirror of https://github.com/openssl/openssl.git
				
				
				
			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.
This commit is contained in:
		
							parent
							
								
									1ae6ddac91
								
							
						
					
					
						commit
						f13def508c
					
				|  | @ -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,21 +1221,21 @@ 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 <enter> or C<enter> 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 <enter> or C<enter> 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 if (ok < 0) | ||||
| 			ok = -1; | ||||
| 		else | ||||
| 			ok = 0; | ||||
|                 } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue