提交 57d0d048 编写于 作者: R Richard Levitte

Add a null UI method

There are cases when, if you pass a NULL UI_METHOD, the called
function will use an internal default.  This is well and good, but
there may be cases when this is undesirable and one would rather send
in a UI that does absolutely nothing (sort of a /dev/null).  UI_null()
is the UI_METHOD for this purpose.
Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2744)
上级 fd910ef9
LIBS=../../libcrypto LIBS=../../libcrypto
SOURCE[../../libcrypto]=\ SOURCE[../../libcrypto]=\
ui_err.c ui_lib.c ui_openssl.c ui_util.c ui_err.c ui_lib.c ui_openssl.c ui_null.c ui_util.c
/*
* Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include "ui_locl.h"
static const UI_METHOD ui_null = {
"OpenSSL NULL UI",
NULL, /* opener */
NULL, /* writer */
NULL, /* flusher */
NULL, /* reader */
NULL, /* closer */
NULL
};
/* The method with all the built-in thingies */
const UI_METHOD *UI_null(void)
{
return &ui_null;
}
...@@ -9,7 +9,7 @@ UI_dup_input_boolean, UI_add_info_string, UI_dup_info_string, ...@@ -9,7 +9,7 @@ UI_dup_input_boolean, UI_add_info_string, UI_dup_info_string,
UI_add_error_string, UI_dup_error_string, UI_construct_prompt, UI_add_error_string, UI_dup_error_string, UI_construct_prompt,
UI_add_user_data, UI_get0_user_data, UI_get0_result, UI_process, UI_add_user_data, UI_get0_user_data, UI_get0_result, UI_process,
UI_ctrl, UI_set_default_method, UI_get_default_method, UI_get_method, UI_ctrl, UI_set_default_method, UI_get_default_method, UI_get_method,
UI_set_method, UI_OpenSSL, - user interface UI_set_method, UI_OpenSSL, UI_null - user interface
=head1 SYNOPSIS =head1 SYNOPSIS
...@@ -59,6 +59,7 @@ UI_set_method, UI_OpenSSL, - user interface ...@@ -59,6 +59,7 @@ UI_set_method, UI_OpenSSL, - user interface
const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth);
UI_METHOD *UI_OpenSSL(void); UI_METHOD *UI_OpenSSL(void);
const UI_METHOD *UI_null(void);
=head1 DESCRIPTION =head1 DESCRIPTION
...@@ -177,6 +178,9 @@ UI_set_method() changes the UI method associated with a given UI. ...@@ -177,6 +178,9 @@ UI_set_method() changes the UI method associated with a given UI.
UI_OpenSSL() is the default OpenSSL UI method for prompting UI_OpenSSL() is the default OpenSSL UI method for prompting
passphrases on the command line. passphrases on the command line.
UI_null() is a UI method that does nothing. Its use is to avoid
getting internal defaults for passed UI_METHOD pointers.
=head1 COPYRIGHT =head1 COPYRIGHT
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
......
...@@ -206,6 +206,12 @@ const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); ...@@ -206,6 +206,12 @@ const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth);
/* The method with all the built-in thingies */ /* The method with all the built-in thingies */
UI_METHOD *UI_OpenSSL(void); UI_METHOD *UI_OpenSSL(void);
/*
* NULL method. Literarily does nothing, but may serve as a placeholder
* to avoid internal default.
*/
const UI_METHOD *UI_null(void);
/* ---------- For method writers ---------- */ /* ---------- For method writers ---------- */
/*- /*-
A method contains a number of functions that implement the low level A method contains a number of functions that implement the low level
......
...@@ -4252,3 +4252,4 @@ EVP_aria_256_ecb 4202 1_1_1 EXIST::FUNCTION:ARIA ...@@ -4252,3 +4252,4 @@ EVP_aria_256_ecb 4202 1_1_1 EXIST::FUNCTION:ARIA
EVP_aria_256_ctr 4203 1_1_1 EXIST::FUNCTION:ARIA EVP_aria_256_ctr 4203 1_1_1 EXIST::FUNCTION:ARIA
EVP_aria_128_ctr 4204 1_1_1 EXIST::FUNCTION:ARIA EVP_aria_128_ctr 4204 1_1_1 EXIST::FUNCTION:ARIA
EVP_aria_192_ctr 4205 1_1_1 EXIST::FUNCTION:ARIA EVP_aria_192_ctr 4205 1_1_1 EXIST::FUNCTION:ARIA
UI_null 4206 1_1_1 EXIST::FUNCTION:UI
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册