From 48feaceb53fa6ae924e298b8eba0e247019313e4 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sat, 1 Jul 2017 12:14:37 +0200 Subject: [PATCH] Remove the possibility to disable the UI module entirely Instead, make it possible to disable the console reader that's part of the UI module. This makes it possible to use the UI API and other UI methods in environments where the console reader isn't useful. To disable the console reader, configure with 'no-ui-console' / 'disable-ui-console'. 'no-ui' / 'disable-ui' is now an alias for 'no-ui-console' / 'disable-ui-console'. Fixes #3806 Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/3820) --- CHANGES | 11 ++ Configure | 5 +- apps/apps.c | 48 +++-- apps/enc.c | 2 +- apps/openssl.c | 4 - apps/passwd.c | 6 +- apps/pkcs12.c | 6 +- apps/pkcs8.c | 6 +- crypto/err/err_all.c | 2 - crypto/evp/evp_key.c | 2 - crypto/pem/pem_lib.c | 9 - crypto/ui/ui_lib.c | 7 +- crypto/ui/ui_openssl.c | 420 +++++++++++++++++++++-------------------- include/openssl/evp.h | 2 - include/openssl/ui.h | 40 ++-- test/uitest.c | 7 +- util/libcrypto.num | 128 ++++++------- util/mkdef.pl | 2 +- 18 files changed, 361 insertions(+), 346 deletions(-) diff --git a/CHANGES b/CHANGES index 4500fbdd9b..33ced1e3e8 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,17 @@ Changes between 1.1.0f and 1.1.1 [xx XXX xxxx] + *) The UI API becomes a permanent and integral part of libcrypto, i.e. + not possible to disable entirely. However, it's still possible to + disable the console reading UI method, UI_OpenSSL() (use UI_null() + as a fallback). + + To disable, configure with 'no-ui-console'. 'no-ui' is still + possible to use as an alias. Check at compile time with the + macro OPENSSL_NO_UI_CONSOLE. The macro OPENSSL_NO_UI is still + possible to check and is an alias for OPENSSL_NO_UI_CONSOLE. + [Richard Levitte] + *) Add a STORE module, which implements a uniform and URI based reader of stores that can contain keys, certificates, CRLs and numerous other objects. The main API is loosely based on a few stdio functions, diff --git a/Configure b/Configure index ce3d6dac1b..9612976cfa 100755 --- a/Configure +++ b/Configure @@ -406,7 +406,7 @@ my @disablables = ( "tls13downgrade", "ts", "ubsan", - "ui", + "ui-console", "unit-test", "whirlpool", "weak-ssl-ciphers", @@ -422,7 +422,8 @@ foreach my $proto ((@tls, @dtls)) my %deprecated_disablables = ( "ssl2" => undef, "buf-freelists" => undef, - "ripemd" => "rmd160" + "ripemd" => "rmd160", + "ui" => "ui-console", ); # All of the following is disabled by default (RC5 was enabled before 0.9.8): diff --git a/apps/apps.c b/apps/apps.c index a89d4eb5e6..8b1aab4c4d 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -56,9 +56,8 @@ typedef struct { unsigned long mask; } NAME_EX_TBL; -#if !defined(OPENSSL_NO_UI) || !defined(OPENSSL_NO_ENGINE) static UI_METHOD *ui_method = NULL; -#endif +static const UI_METHOD *ui_fallback_method = NULL; static int set_table_opts(unsigned long *flags, const char *arg, const NAME_EX_TBL * in_tbl); @@ -176,14 +175,19 @@ int dump_cert_text(BIO *out, X509 *x) return 0; } -#ifndef OPENSSL_NO_UI static int ui_open(UI *ui) { - return UI_method_get_opener(UI_OpenSSL())(ui); + int (*opener)(UI *ui) = UI_method_get_opener(ui_fallback_method); + + if (opener) + return opener(ui); + return 1; } static int ui_read(UI *ui, UI_STRING *uis) { + int (*reader)(UI *ui, UI_STRING *uis) = NULL; + if (UI_get_input_flags(uis) & UI_INPUT_FLAG_DEFAULT_PWD && UI_get0_user_data(ui)) { switch (UI_get_string_type(uis)) { @@ -205,11 +209,17 @@ static int ui_read(UI *ui, UI_STRING *uis) break; } } - return UI_method_get_reader(UI_OpenSSL())(ui, uis); + + reader = UI_method_get_reader(ui_fallback_method); + if (reader) + return reader(ui, uis); + return 1; } static int ui_write(UI *ui, UI_STRING *uis) { + int (*writer)(UI *ui, UI_STRING *uis) = NULL; + if (UI_get_input_flags(uis) & UI_INPUT_FLAG_DEFAULT_PWD && UI_get0_user_data(ui)) { switch (UI_get_string_type(uis)) { @@ -229,16 +239,28 @@ static int ui_write(UI *ui, UI_STRING *uis) break; } } - return UI_method_get_writer(UI_OpenSSL())(ui, uis); + + writer = UI_method_get_reader(ui_fallback_method); + if (writer) + return writer(ui, uis); + return 1; } static int ui_close(UI *ui) { - return UI_method_get_closer(UI_OpenSSL())(ui); + int (*closer)(UI *ui) = UI_method_get_closer(ui_fallback_method); + + if (closer) + return closer(ui); + return 1; } int setup_ui_method(void) { + ui_fallback_method = UI_null(); +#ifndef OPENSSL_NO_UI_CONSOLE + ui_fallback_method = UI_OpenSSL(); +#endif 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); @@ -259,24 +281,13 @@ const UI_METHOD *get_ui_method(void) { return ui_method; } -#endif int password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_tmp) { int res = 0; -#ifndef OPENSSL_NO_UI UI *ui = NULL; -#endif PW_CB_DATA *cb_data = (PW_CB_DATA *)cb_tmp; -#ifdef OPENSSL_NO_UI - if (cb_data != NULL && cb_data->password != NULL) { - res = strlen(cb_data->password); - if (res > bufsiz) - res = bufsiz; - memcpy(buf, cb_data->password, res); - } -#else ui = UI_new_method(ui_method); if (ui) { int ok = 0; @@ -331,7 +342,6 @@ int password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_tmp) UI_free(ui); OPENSSL_free(prompt); } -#endif return res; } diff --git a/apps/enc.c b/apps/enc.c index 49568eaa50..d2000752f8 100644 --- a/apps/enc.c +++ b/apps/enc.c @@ -308,7 +308,7 @@ int enc_main(int argc, char **argv) if ((str == NULL) && (cipher != NULL) && (hkey == NULL)) { if (1) { -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE for (;;) { char prompt[200]; diff --git a/apps/openssl.c b/apps/openssl.c index 2a140718ab..e23c390a4c 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -70,18 +70,14 @@ static int apps_startup() | OPENSSL_INIT_LOAD_CONFIG, NULL)) return 0; -#ifndef OPENSSL_NO_UI setup_ui_method(); -#endif return 1; } static void apps_shutdown() { -#ifndef OPENSSL_NO_UI destroy_ui_method(); -#endif } static char *make_config_name() diff --git a/apps/passwd.c b/apps/passwd.c index c87369760c..7ce40e058c 100644 --- a/apps/passwd.c +++ b/apps/passwd.c @@ -100,7 +100,7 @@ int passwd_main(int argc, char **argv) char *salt_malloc = NULL, *passwd_malloc = NULL, *prog; OPTION_CHOICE o; int in_stdin = 0, pw_source_defined = 0; -# ifndef OPENSSL_NO_UI +# ifndef OPENSSL_NO_UI_CONSOLE int in_noverify = 0; # endif int passed_salt = 0, quiet = 0, table = 0, reverse = 0; @@ -129,7 +129,7 @@ int passwd_main(int argc, char **argv) pw_source_defined = 1; break; case OPT_NOVERIFY: -# ifndef OPENSSL_NO_UI +# ifndef OPENSSL_NO_UI_CONSOLE in_noverify = 1; # endif break; @@ -246,7 +246,7 @@ int passwd_main(int argc, char **argv) * avoid rot of not-frequently-used code. */ if (1) { -# ifndef OPENSSL_NO_UI +# ifndef OPENSSL_NO_UI_CONSOLE /* build a null-terminated list */ static char *passwds_static[2] = { NULL, NULL }; diff --git a/apps/pkcs12.c b/apps/pkcs12.c index 439622ad91..9449679cea 100644 --- a/apps/pkcs12.c +++ b/apps/pkcs12.c @@ -322,7 +322,7 @@ int pkcs12_main(int argc, char **argv) if (twopass) { /* To avoid bit rot */ if (1) { -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE if (EVP_read_pw_string (macpass, sizeof macpass, "Enter MAC Password:", export_cert)) { BIO_printf(bio_err, "Can't read Password\n"); @@ -441,7 +441,7 @@ int pkcs12_main(int argc, char **argv) if (!noprompt) { /* To avoid bit rot */ if (1) { -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE if (EVP_read_pw_string(pass, sizeof pass, "Enter Export Password:", 1)) { BIO_printf(bio_err, "Can't read Password\n"); @@ -507,7 +507,7 @@ int pkcs12_main(int argc, char **argv) if (!noprompt) { if (1) { -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE if (EVP_read_pw_string(pass, sizeof pass, "Enter Import Password:", 0)) { BIO_printf(bio_err, "Can't read Password\n"); diff --git a/apps/pkcs8.c b/apps/pkcs8.c index e964a3b619..ad41f7b711 100644 --- a/apps/pkcs8.c +++ b/apps/pkcs8.c @@ -65,7 +65,7 @@ int pkcs8_main(int argc, char **argv) const EVP_CIPHER *cipher = NULL; char *infile = NULL, *outfile = NULL; char *passinarg = NULL, *passoutarg = NULL, *prog; -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE char pass[APP_PASS_LEN]; #endif char *passin = NULL, *passout = NULL, *p8pass = NULL; @@ -236,7 +236,7 @@ int pkcs8_main(int argc, char **argv) p8pass = passout; } else if (1) { /* To avoid bit rot */ -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE p8pass = pass; if (EVP_read_pw_string (pass, sizeof pass, "Enter Encryption Password:", 1)) { @@ -299,7 +299,7 @@ int pkcs8_main(int argc, char **argv) if (passin != NULL) { p8pass = passin; } else if (1) { -#ifndef OPENSSL_NO_UI +#ifndef OPENSSL_NO_UI_CONSOLE p8pass = pass; if (EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0)) { BIO_printf(bio_err, "Can't read Password\n"); diff --git a/crypto/err/err_all.c b/crypto/err/err_all.c index 3fff594747..a2759f4647 100644 --- a/crypto/err/err_all.c +++ b/crypto/err/err_all.c @@ -83,9 +83,7 @@ int err_load_crypto_strings_int(void) # ifndef OPENSSL_NO_OCSP ERR_load_OCSP_strings() == 0 || # endif -#ifndef OPENSSL_NO_UI ERR_load_UI_strings() == 0 || -#endif # ifndef OPENSSL_NO_CMS ERR_load_CMS_strings() == 0 || # endif diff --git a/crypto/evp/evp_key.c b/crypto/evp/evp_key.c index 8a4297cf6e..0d63e4f5bf 100644 --- a/crypto/evp/evp_key.c +++ b/crypto/evp/evp_key.c @@ -14,7 +14,6 @@ #include #include -#ifndef OPENSSL_NO_UI /* should be init to zeros. */ static char prompt_string[80]; @@ -69,7 +68,6 @@ int EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt, OPENSSL_cleanse(buff, BUFSIZ); return ret; } -#endif /* OPENSSL_NO_UI */ int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const unsigned char *salt, const unsigned char *data, diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c index 75b022e224..e937b0e014 100644 --- a/crypto/pem/pem_lib.c +++ b/crypto/pem/pem_lib.c @@ -30,12 +30,8 @@ int pem_check_suffix(const char *pem_str, const char *suffix); int PEM_def_callback(char *buf, int num, int w, void *key) { -#if defined(OPENSSL_NO_STDIO) || defined(OPENSSL_NO_UI) - int i; -#else int i, j; const char *prompt; -#endif if (key) { i = strlen(key); @@ -44,10 +40,6 @@ int PEM_def_callback(char *buf, int num, int w, void *key) return i; } -#if defined(OPENSSL_NO_STDIO) || defined(OPENSSL_NO_UI) - PEMerr(PEM_F_PEM_DEF_CALLBACK, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); - return -1; -#else prompt = EVP_get_pw_prompt(); if (prompt == NULL) prompt = "Enter PEM pass phrase:"; @@ -74,7 +66,6 @@ int PEM_def_callback(char *buf, int num, int w, void *key) break; } return j; -#endif } void PEM_proc_type(char *buf, int type) diff --git a/crypto/ui/ui_lib.c b/crypto/ui/ui_lib.c index f4e01bcf38..4469a436c2 100644 --- a/crypto/ui/ui_lib.c +++ b/crypto/ui/ui_lib.c @@ -37,9 +37,10 @@ UI *UI_new_method(const UI_METHOD *method) } if (method == NULL) - ret->meth = UI_get_default_method(); - else - ret->meth = method; + method = UI_get_default_method(); + if (method == NULL) + method = UI_null(); + ret->meth = method; if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data)) { OPENSSL_free(ret); diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index 42c932656c..977c7ad2b9 100644 --- a/crypto/ui/ui_openssl.c +++ b/crypto/ui/ui_openssl.c @@ -9,64 +9,66 @@ #include #include +#include +#ifndef OPENSSL_NO_UI_CONSOLE /* * need for #define _POSIX_C_SOURCE arises whenever you pass -ansi to gcc * [maybe others?], because it masks interfaces not discussed in standard, * sigaction and fileno included. -pedantic would be more appropriate for the * intended purposes, but we can't prevent users from adding -ansi. */ -#if defined(OPENSSL_SYS_VXWORKS) -# include -#endif - -#if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS) -# ifndef _POSIX_C_SOURCE -# define _POSIX_C_SOURCE 2 +# if defined(OPENSSL_SYS_VXWORKS) +# include # endif -#endif -#include -#include -#include -#include - -#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) -# ifdef OPENSSL_UNISTD -# include OPENSSL_UNISTD -# else -# include + +# if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS) +# ifndef _POSIX_C_SOURCE +# define _POSIX_C_SOURCE 2 +# endif # endif +# include +# include +# include +# include + +# if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) +# ifdef OPENSSL_UNISTD +# include OPENSSL_UNISTD +# else +# include +# endif /* * If unistd.h defines _POSIX_VERSION, we conclude that we are on a POSIX * system and have sigaction and termios. */ -# if defined(_POSIX_VERSION) +# if defined(_POSIX_VERSION) -# define SIGACTION -# if !defined(TERMIOS) && !defined(TERMIO) && !defined(SGTTY) -# define TERMIOS -# endif +# define SIGACTION +# if !defined(TERMIOS) && !defined(TERMIO) && !defined(SGTTY) +# define TERMIOS +# endif +# endif # endif -#endif /* 06-Apr-92 Luke Brennan Support for VMS */ -#include "ui_locl.h" -#include "internal/cryptlib.h" +# include "ui_locl.h" +# include "internal/cryptlib.h" -#ifdef OPENSSL_SYS_VMS /* prototypes for sys$whatever */ -# include -# ifdef __DECC -# pragma message disable DOLLARID +# ifdef OPENSSL_SYS_VMS /* prototypes for sys$whatever */ +# include +# ifdef __DECC +# pragma message disable DOLLARID +# endif # endif -#endif -#ifdef WIN_CONSOLE_BUG -# include -# ifndef OPENSSL_SYS_WINCE -# include +# ifdef WIN_CONSOLE_BUG +# include +# ifndef OPENSSL_SYS_WINCE +# include +# endif # endif -#endif /* * There are 6 types of terminal interface supported, TERMIO, TERMIOS, VMS, @@ -80,81 +82,81 @@ * may eventually opt to remove it's use entirely. */ -#if !defined(TERMIOS) && !defined(TERMIO) && !defined(SGTTY) +# if !defined(TERMIOS) && !defined(TERMIO) && !defined(SGTTY) -# if defined(_LIBC) -# undef TERMIOS -# define TERMIO -# undef SGTTY +# if defined(_LIBC) +# undef TERMIOS +# define TERMIO +# undef SGTTY /* * We know that VMS, MSDOS, VXWORKS, use entirely other mechanisms. */ -# elif !defined(OPENSSL_SYS_VMS) \ +# elif !defined(OPENSSL_SYS_VMS) \ && !defined(OPENSSL_SYS_MSDOS) \ && !defined(OPENSSL_SYS_VXWORKS) -# define TERMIOS -# undef TERMIO -# undef SGTTY -# endif +# define TERMIOS +# undef TERMIO +# undef SGTTY +# endif -#endif +# endif -#ifdef TERMIOS -# include -# define TTY_STRUCT struct termios -# define TTY_FLAGS c_lflag -# define TTY_get(tty,data) tcgetattr(tty,data) -# define TTY_set(tty,data) tcsetattr(tty,TCSANOW,data) -#endif +# ifdef TERMIOS +# include +# define TTY_STRUCT struct termios +# define TTY_FLAGS c_lflag +# define TTY_get(tty,data) tcgetattr(tty,data) +# define TTY_set(tty,data) tcsetattr(tty,TCSANOW,data) +# endif -#ifdef TERMIO -# include -# define TTY_STRUCT struct termio -# define TTY_FLAGS c_lflag -# define TTY_get(tty,data) ioctl(tty,TCGETA,data) -# define TTY_set(tty,data) ioctl(tty,TCSETA,data) -#endif +# ifdef TERMIO +# include +# define TTY_STRUCT struct termio +# define TTY_FLAGS c_lflag +# define TTY_get(tty,data) ioctl(tty,TCGETA,data) +# define TTY_set(tty,data) ioctl(tty,TCSETA,data) +# endif -#ifdef SGTTY -# include -# define TTY_STRUCT struct sgttyb -# define TTY_FLAGS sg_flags -# define TTY_get(tty,data) ioctl(tty,TIOCGETP,data) -# define TTY_set(tty,data) ioctl(tty,TIOCSETP,data) -#endif +# ifdef SGTTY +# include +# define TTY_STRUCT struct sgttyb +# define TTY_FLAGS sg_flags +# define TTY_get(tty,data) ioctl(tty,TIOCGETP,data) +# define TTY_set(tty,data) ioctl(tty,TIOCSETP,data) +# endif -#if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) -# include -#endif +# if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) +# include +# endif -#ifdef OPENSSL_SYS_MSDOS -# include -#endif +# ifdef OPENSSL_SYS_MSDOS +# include +# endif -#ifdef OPENSSL_SYS_VMS -# include -# include -# include -# include +# ifdef OPENSSL_SYS_VMS +# include +# include +# include +# include struct IOSB { short iosb$w_value; short iosb$w_count; long iosb$l_info; }; -#endif +# endif -#ifndef NX509_SIG -# define NX509_SIG 32 -#endif +# ifndef NX509_SIG +# define NX509_SIG 32 +# endif /* Define globals. They are protected by a lock */ -#ifdef SIGACTION +# ifdef SIGACTION static struct sigaction savsig[NX509_SIG]; -#else +# else static void (*savsig[NX509_SIG]) (int); -#endif +# endif -#ifdef OPENSSL_SYS_VMS +# ifdef OPENSSL_SYS_VMS static struct IOSB iosb; static $DESCRIPTOR(terminal, "TT"); static long tty_orig[3], tty_new[3]; /* XXX Is there any guarantee that this @@ -162,26 +164,26 @@ static long tty_orig[3], tty_new[3]; /* XXX Is there any guarantee that this * structures? */ static long status; static unsigned short channel = 0; -#elif defined(_WIN32) && !defined(_WIN32_WCE) +# elif defined(_WIN32) && !defined(_WIN32_WCE) static DWORD tty_orig, tty_new; -#else -# if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__) +# else +# if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__) static TTY_STRUCT tty_orig, tty_new; +# endif # endif -#endif static FILE *tty_in, *tty_out; static int is_a_tty; /* Declare static functions */ -#if !defined(OPENSSL_SYS_WINCE) +# if !defined(OPENSSL_SYS_WINCE) static int read_till_nl(FILE *); static void recsig(int); static void pushsig(void); static void popsig(void); -#endif -#if defined(OPENSSL_SYS_MSDOS) && !defined(_WIN32) +# endif +# if defined(OPENSSL_SYS_MSDOS) && !defined(_WIN32) static int noecho_fgets(char *buf, int size, FILE *tty); -#endif +# endif static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl); static int read_string(UI *ui, UI_STRING *uis); @@ -192,34 +194,6 @@ static int echo_console(UI *ui); static int noecho_console(UI *ui); static int close_console(UI *ui); -static UI_METHOD ui_openssl = { - "OpenSSL default user interface", - open_console, - write_string, - NULL, /* No flusher is needed for command lines */ - read_string, - close_console, - NULL -}; - -static const UI_METHOD *default_UI_meth = &ui_openssl; - -void UI_set_default_method(const UI_METHOD *meth) -{ - default_UI_meth = meth; -} - -const UI_METHOD *UI_get_default_method(void) -{ - return default_UI_meth; -} - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(void) -{ - return &ui_openssl; -} - /* * The following function makes sure that info and error strings are printed * before any prompt. @@ -280,11 +254,11 @@ static int read_string(UI *ui, UI_STRING *uis) return 1; } -#if !defined(OPENSSL_SYS_WINCE) +# if !defined(OPENSSL_SYS_WINCE) /* Internal functions to read a string without echoing */ static int read_till_nl(FILE *in) { -# define SIZE 4 +# define SIZE 4 char buf[SIZE + 1]; do { @@ -295,7 +269,7 @@ static int read_till_nl(FILE *in) } static volatile sig_atomic_t intr_signal; -#endif +# endif static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl) { @@ -303,7 +277,7 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl) int ok; char result[BUFSIZ]; int maxsize = BUFSIZ - 1; -#if !defined(OPENSSL_SYS_WINCE) +# if !defined(OPENSSL_SYS_WINCE) char *p = NULL; int echo_eol = !echo; @@ -319,10 +293,10 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl) ps = 2; result[0] = '\0'; -# if defined(_WIN32) +# if defined(_WIN32) if (is_a_tty) { DWORD numread; -# if defined(CP_UTF8) +# if defined(CP_UTF8) if (GetEnvironmentVariableW(L"OPENSSL_WIN32_UTF8", NULL, 0) != 0) { WCHAR wresult[BUFSIZ]; @@ -342,7 +316,7 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl) OPENSSL_cleanse(wresult, sizeof(wresult)); } } else -# endif +# endif if (ReadConsoleA(GetStdHandle(STD_INPUT_HANDLE), result, maxsize, &numread, NULL)) { if (numread >= 2 && @@ -354,12 +328,12 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl) p = result; } } else -# elif defined(OPENSSL_SYS_MSDOS) +# elif defined(OPENSSL_SYS_MSDOS) if (!echo) { noecho_fgets(result, maxsize, tty_in); p = result; /* FIXME: noecho_fgets doesn't return errors */ } else -# endif +# endif p = fgets(result, maxsize, tty_in); if (p == NULL) goto error; @@ -385,9 +359,9 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl) if (ps >= 1) popsig(); -#else +# else ok = 1; -#endif +# endif OPENSSL_cleanse(result, BUFSIZ); return ok; @@ -399,10 +373,10 @@ static int open_console(UI *ui) CRYPTO_THREAD_write_lock(ui->lock); is_a_tty = 1; -#if defined(OPENSSL_SYS_VXWORKS) +# if defined(OPENSSL_SYS_VXWORKS) tty_in = stdin; tty_out = stderr; -#elif defined(_WIN32) && !defined(_WIN32_WCE) +# elif defined(_WIN32) && !defined(_WIN32_WCE) if ((tty_out = fopen("conout$", "w")) == NULL) tty_out = stderr; @@ -413,26 +387,26 @@ static int open_console(UI *ui) if ((tty_in = fopen("conin$", "r")) == NULL) tty_in = stdin; } -#else -# ifdef OPENSSL_SYS_MSDOS -# define DEV_TTY "con" # else -# define DEV_TTY "/dev/tty" -# endif +# ifdef OPENSSL_SYS_MSDOS +# define DEV_TTY "con" +# else +# define DEV_TTY "/dev/tty" +# endif if ((tty_in = fopen(DEV_TTY, "r")) == NULL) tty_in = stdin; if ((tty_out = fopen(DEV_TTY, "w")) == NULL) tty_out = stderr; -#endif +# endif -#if defined(TTY_get) && !defined(OPENSSL_SYS_VMS) +# if defined(TTY_get) && !defined(OPENSSL_SYS_VMS) if (TTY_get(fileno(tty_in), &tty_orig) == -1) { -# ifdef ENOTTY +# ifdef ENOTTY if (errno == ENOTTY) is_a_tty = 0; else -# endif -# ifdef EINVAL +# endif +# ifdef EINVAL /* * Ariel Glenn ariel@columbia.edu reports that solaris can return * EINVAL instead. This should be ok @@ -440,8 +414,8 @@ static int open_console(UI *ui) if (errno == EINVAL) is_a_tty = 0; else -# endif -# ifdef ENODEV +# endif +# ifdef ENODEV /* * MacOS X returns ENODEV (Operation not supported by device), * which seems appropriate. @@ -449,7 +423,7 @@ static int open_console(UI *ui) if (errno == ENODEV) is_a_tty = 0; else -# endif +# endif { char tmp_num[10]; BIO_snprintf(tmp_num, sizeof(tmp_num) - 1, "%d", errno); @@ -459,8 +433,8 @@ static int open_console(UI *ui) return 0; } } -#endif -#ifdef OPENSSL_SYS_VMS +# endif +# ifdef OPENSSL_SYS_VMS status = sys$assign(&terminal, &channel, 0, 0); /* if there isn't a TT device, something is very wrong */ @@ -479,22 +453,22 @@ static int open_console(UI *ui) /* If IO$_SENSEMODE doesn't work, this is not a terminal device */ if ((status != SS$_NORMAL) || (iosb.iosb$w_value != SS$_NORMAL)) is_a_tty = 0; -#endif +# endif return 1; } static int noecho_console(UI *ui) { -#ifdef TTY_FLAGS +# ifdef TTY_FLAGS memcpy(&(tty_new), &(tty_orig), sizeof(tty_orig)); tty_new.TTY_FLAGS &= ~ECHO; -#endif +# endif -#if defined(TTY_set) && !defined(OPENSSL_SYS_VMS) +# if defined(TTY_set) && !defined(OPENSSL_SYS_VMS) if (is_a_tty && (TTY_set(fileno(tty_in), &tty_new) == -1)) return 0; -#endif -#ifdef OPENSSL_SYS_VMS +# endif +# ifdef OPENSSL_SYS_VMS if (is_a_tty) { tty_new[0] = tty_orig[0]; tty_new[1] = tty_orig[1] | TT$M_NOECHO; @@ -514,29 +488,29 @@ static int noecho_console(UI *ui) return 0; } } -#endif -#if defined(_WIN32) && !defined(_WIN32_WCE) +# endif +# if defined(_WIN32) && !defined(_WIN32_WCE) if (is_a_tty) { tty_new = tty_orig; tty_new &= ~ENABLE_ECHO_INPUT; SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), tty_new); } -#endif +# endif return 1; } static int echo_console(UI *ui) { -#if defined(TTY_set) && !defined(OPENSSL_SYS_VMS) +# if defined(TTY_set) && !defined(OPENSSL_SYS_VMS) memcpy(&(tty_new), &(tty_orig), sizeof(tty_orig)); tty_new.TTY_FLAGS |= ECHO; -#endif +# endif -#if defined(TTY_set) && !defined(OPENSSL_SYS_VMS) +# if defined(TTY_set) && !defined(OPENSSL_SYS_VMS) if (is_a_tty && (TTY_set(fileno(tty_in), &tty_new) == -1)) return 0; -#endif -#ifdef OPENSSL_SYS_VMS +# endif +# ifdef OPENSSL_SYS_VMS if (is_a_tty) { tty_new[0] = tty_orig[0]; tty_new[1] = tty_orig[1] & ~TT$M_NOECHO; @@ -556,14 +530,14 @@ static int echo_console(UI *ui) return 0; } } -#endif -#if defined(_WIN32) && !defined(_WIN32_WCE) +# endif +# if defined(_WIN32) && !defined(_WIN32_WCE) if (is_a_tty) { tty_new = tty_orig; tty_new |= ENABLE_ECHO_INPUT; SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), tty_new); } -#endif +# endif return 1; } @@ -573,7 +547,7 @@ static int close_console(UI *ui) fclose(tty_in); if (tty_out != stderr) fclose(tty_out); -#ifdef OPENSSL_SYS_VMS +# ifdef OPENSSL_SYS_VMS status = sys$dassgn(channel); if (status != SS$_NORMAL) { char tmp_num[12]; @@ -583,97 +557,97 @@ static int close_console(UI *ui) ERR_add_error_data(2, "status=", tmp_num); return 0; } -#endif +# endif CRYPTO_THREAD_unlock(ui->lock); return 1; } -#if !defined(OPENSSL_SYS_WINCE) +# if !defined(OPENSSL_SYS_WINCE) /* Internal functions to handle signals and act on them */ static void pushsig(void) { -# ifndef OPENSSL_SYS_WIN32 +# ifndef OPENSSL_SYS_WIN32 int i; -# endif -# ifdef SIGACTION +# endif +# ifdef SIGACTION struct sigaction sa; memset(&sa, 0, sizeof(sa)); sa.sa_handler = recsig; -# endif +# endif -# ifdef OPENSSL_SYS_WIN32 +# ifdef OPENSSL_SYS_WIN32 savsig[SIGABRT] = signal(SIGABRT, recsig); savsig[SIGFPE] = signal(SIGFPE, recsig); savsig[SIGILL] = signal(SIGILL, recsig); savsig[SIGINT] = signal(SIGINT, recsig); savsig[SIGSEGV] = signal(SIGSEGV, recsig); savsig[SIGTERM] = signal(SIGTERM, recsig); -# else +# else for (i = 1; i < NX509_SIG; i++) { -# ifdef SIGUSR1 +# ifdef SIGUSR1 if (i == SIGUSR1) continue; -# endif -# ifdef SIGUSR2 +# endif +# ifdef SIGUSR2 if (i == SIGUSR2) continue; -# endif -# ifdef SIGKILL +# endif +# ifdef SIGKILL if (i == SIGKILL) /* We can't make any action on that. */ continue; -# endif -# ifdef SIGACTION +# endif +# ifdef SIGACTION sigaction(i, &sa, &savsig[i]); -# else +# else savsig[i] = signal(i, recsig); -# endif +# endif } -# endif +# endif -# ifdef SIGWINCH +# ifdef SIGWINCH signal(SIGWINCH, SIG_DFL); -# endif +# endif } static void popsig(void) { -# ifdef OPENSSL_SYS_WIN32 +# ifdef OPENSSL_SYS_WIN32 signal(SIGABRT, savsig[SIGABRT]); signal(SIGFPE, savsig[SIGFPE]); signal(SIGILL, savsig[SIGILL]); signal(SIGINT, savsig[SIGINT]); signal(SIGSEGV, savsig[SIGSEGV]); signal(SIGTERM, savsig[SIGTERM]); -# else +# else int i; for (i = 1; i < NX509_SIG; i++) { -# ifdef SIGUSR1 +# ifdef SIGUSR1 if (i == SIGUSR1) continue; -# endif -# ifdef SIGUSR2 +# endif +# ifdef SIGUSR2 if (i == SIGUSR2) continue; -# endif -# ifdef SIGACTION +# endif +# ifdef SIGACTION sigaction(i, &savsig[i], NULL); -# else +# else signal(i, savsig[i]); -# endif +# endif } -# endif +# endif } static void recsig(int i) { intr_signal = i; } -#endif +# endif /* Internal functions specific for Windows */ -#if defined(OPENSSL_SYS_MSDOS) && !defined(_WIN32) +# if defined(OPENSSL_SYS_MSDOS) && !defined(_WIN32) static int noecho_fgets(char *buf, int size, FILE *tty) { int i; @@ -686,11 +660,11 @@ static int noecho_fgets(char *buf, int size, FILE *tty) break; } size--; -# if defined(_WIN32) +# if defined(_WIN32) i = _getch(); -# else +# else i = getch(); -# endif +# endif if (i == '\r') i = '\n'; *(p++) = i; @@ -699,7 +673,7 @@ static int noecho_fgets(char *buf, int size, FILE *tty) break; } } -# ifdef WIN_CONSOLE_BUG +# ifdef WIN_CONSOLE_BUG /* * Win95 has several evil console bugs: one of these is that the last * character read using getch() is passed to the next read: this is @@ -711,7 +685,41 @@ static int noecho_fgets(char *buf, int size, FILE *tty) inh = GetStdHandle(STD_INPUT_HANDLE); FlushConsoleInputBuffer(inh); } -# endif +# endif return (strlen(buf)); } +# endif + +static UI_METHOD ui_openssl = { + "OpenSSL default user interface", + open_console, + write_string, + NULL, /* No flusher is needed for command lines */ + read_string, + close_console, + NULL +}; + +/* The method with all the built-in console thingies */ +UI_METHOD *UI_OpenSSL(void) +{ + return &ui_openssl; +} + +static const UI_METHOD *default_UI_meth = &ui_openssl; + +#else + +static const UI_METHOD *default_UI_meth = NULL; + #endif + +void UI_set_default_method(const UI_METHOD *meth) +{ + default_UI_meth = meth; +} + +const UI_METHOD *UI_get_default_method(void) +{ + return default_UI_meth; +} diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 89a64aeb8e..2531d0012f 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -546,13 +546,11 @@ __owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); __owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); -#ifndef OPENSSL_NO_UI int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, const char *prompt, int verify); void EVP_set_pw_prompt(const char *prompt); char *EVP_get_pw_prompt(void); -#endif __owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const unsigned char *salt, diff --git a/include/openssl/ui.h b/include/openssl/ui.h index 5990153a9e..0f8c03f8ed 100644 --- a/include/openssl/ui.h +++ b/include/openssl/ui.h @@ -12,19 +12,24 @@ # include -# ifndef OPENSSL_NO_UI - -# if OPENSSL_API_COMPAT < 0x10100000L -# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include +# include +# include +# include + +/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ +# if OPENSSL_API_COMPAT < 0x10200000L +# ifdef OPENSSL_NO_UI_CONSOLE +# define OPENSSL_NO_UI # endif -# include -# include -# include -# include +# endif -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif +# endif /* * All the following functions return -1 or NULL on error and in some cases @@ -112,7 +117,7 @@ int UI_dup_error_string(UI *ui, const char *text); * each UI being marked with this flag, or the application might get * confused. */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 /*- * The user of these routines may want to define flags of their own. The core @@ -124,7 +129,7 @@ int UI_dup_error_string(UI *ui, const char *text); * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) * */ -# define UI_INPUT_FLAG_USER_BASE 16 +# define UI_INPUT_FLAG_USER_BASE 16 /*- * The following function helps construct a prompt. object_desc is a @@ -187,7 +192,7 @@ int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); * OpenSSL error stack before printing any info or added error messages and * before any prompting. */ -# define UI_CTRL_PRINT_ERRORS 1 +# define UI_CTRL_PRINT_ERRORS 1 /* * Check if a UI_process() is possible to do again with the same instance of * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 @@ -199,7 +204,7 @@ int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); # define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) # define UI_get_app_data(s) UI_get_ex_data(s,0) -#define UI_get_ex_new_index(l, p, newf, dupf, freef) \ +# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) int UI_set_ex_data(UI *r, int idx, void *arg); void *UI_get_ex_data(UI *r, int idx); @@ -210,9 +215,13 @@ const UI_METHOD *UI_get_default_method(void); const UI_METHOD *UI_get_method(UI *ui); const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); +# ifndef OPENSSL_NO_UI_CONSOLE + /* The method with all the built-in thingies */ UI_METHOD *UI_OpenSSL(void); +# endif + /* * NULL method. Literally does nothing, but may serve as a placeholder * to avoid internal default. @@ -351,8 +360,7 @@ UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); int ERR_load_UI_strings(void); -# ifdef __cplusplus +# ifdef __cplusplus } -# endif # endif #endif diff --git a/test/uitest.c b/test/uitest.c index 469e2304f8..6fef137b02 100644 --- a/test/uitest.c +++ b/test/uitest.c @@ -17,8 +17,7 @@ /* apps/apps.c depend on these */ char *default_config_file = NULL; -#ifndef OPENSSL_NO_UI -# include +#include /* Old style PEM password callback */ static int test_pem_password_cb(char *buf, int size, int rwflag, void *userdata) @@ -89,12 +88,8 @@ static int test_new_ui() return ok; } -#endif - void register_tests(void) { -#ifndef OPENSSL_NO_UI ADD_TEST(test_old); ADD_TEST(test_new_ui); -#endif } diff --git a/util/libcrypto.num b/util/libcrypto.num index c861878fb1..436969429f 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -30,7 +30,7 @@ GENERAL_NAME_get0_otherName 29 1_1_0 EXIST::FUNCTION: ASN1_INTEGER_get_uint64 30 1_1_0 EXIST::FUNCTION: EVP_DigestInit_ex 31 1_1_0 EXIST::FUNCTION: CTLOG_new 32 1_1_0 EXIST::FUNCTION:CT -UI_get_result_minsize 33 1_1_0 EXIST::FUNCTION:UI +UI_get_result_minsize 33 1_1_0 EXIST::FUNCTION: EVP_PBE_alg_add_type 34 1_1_0 EXIST::FUNCTION: EVP_cast5_ofb 35 1_1_0 EXIST::FUNCTION:CAST d2i_PUBKEY_fp 36 1_1_0 EXIST::FUNCTION:STDIO @@ -39,7 +39,7 @@ BF_decrypt 38 1_1_0 EXIST::FUNCTION:BF PEM_read_bio_PUBKEY 39 1_1_0 EXIST::FUNCTION: X509_NAME_delete_entry 40 1_1_0 EXIST::FUNCTION: EVP_PKEY_meth_set_verify_recover 41 1_1_0 EXIST::FUNCTION: -UI_set_method 42 1_1_0 EXIST::FUNCTION:UI +UI_set_method 42 1_1_0 EXIST::FUNCTION: PKCS7_ISSUER_AND_SERIAL_it 43 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: PKCS7_ISSUER_AND_SERIAL_it 43 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: EC_GROUP_method_of 44 1_1_0 EXIST::FUNCTION:EC @@ -77,7 +77,7 @@ ASN1_item_print 76 1_1_0 EXIST::FUNCTION: CONF_set_nconf 77 1_1_0 EXIST::FUNCTION: RAND_set_rand_method 78 1_1_0 EXIST::FUNCTION: BN_GF2m_mod_mul 79 1_1_0 EXIST::FUNCTION:EC2M -UI_add_input_boolean 80 1_1_0 EXIST::FUNCTION:UI +UI_add_input_boolean 80 1_1_0 EXIST::FUNCTION: ASN1_TIME_adj 81 1_1_0 EXIST::FUNCTION: EVP_PKEY_asn1_get0_info 82 1_1_0 EXIST::FUNCTION: BN_add_word 83 1_1_0 EXIST::FUNCTION: @@ -85,7 +85,7 @@ EVP_des_ede 84 1_1_0 EXIST::FUNCTION:DES EVP_PKEY_add1_attr_by_OBJ 85 1_1_0 EXIST::FUNCTION: ASYNC_WAIT_CTX_get_all_fds 86 1_1_0 EXIST::FUNCTION: EVP_CIPHER_meth_set_do_cipher 87 1_1_0 EXIST::FUNCTION: -EVP_set_pw_prompt 88 1_1_0 EXIST::FUNCTION:UI +EVP_set_pw_prompt 88 1_1_0 EXIST::FUNCTION: d2i_OCSP_RESPBYTES 89 1_1_0 EXIST::FUNCTION:OCSP TS_REQ_get_ext_by_NID 90 1_1_0 EXIST::FUNCTION:TS ASN1_item_ndef_i2d 91 1_1_0 EXIST::FUNCTION: @@ -206,7 +206,7 @@ SCT_set_version 206 1_1_0 EXIST::FUNCTION:CT CMS_add1_ReceiptRequest 207 1_1_0 EXIST::FUNCTION:CMS d2i_CRL_DIST_POINTS 208 1_1_0 EXIST::FUNCTION: X509_CRL_INFO_free 209 1_1_0 EXIST::FUNCTION: -ERR_load_UI_strings 210 1_1_0 EXIST::FUNCTION:UI +ERR_load_UI_strings 210 1_1_0 EXIST::FUNCTION: ERR_load_strings 211 1_1_0 EXIST::FUNCTION: RSA_X931_hash_id 212 1_1_0 EXIST::FUNCTION:RSA EC_KEY_set_method 213 1_1_0 EXIST::FUNCTION:EC @@ -272,7 +272,7 @@ EVP_OpenInit 272 1_1_0 EXIST::FUNCTION:RSA OCSP_response_get1_basic 273 1_1_0 EXIST::FUNCTION:OCSP CRYPTO_gcm128_tag 274 1_1_0 EXIST::FUNCTION: OCSP_parse_url 275 1_1_0 EXIST::FUNCTION:OCSP -UI_get0_test_string 276 1_1_0 EXIST::FUNCTION:UI +UI_get0_test_string 276 1_1_0 EXIST::FUNCTION: CRYPTO_secure_free 277 1_1_0 EXIST::FUNCTION: DSA_print_fp 278 1_1_0 EXIST::FUNCTION:DSA,STDIO X509_get_ext_d2i 279 1_1_0 EXIST::FUNCTION: @@ -314,7 +314,7 @@ EVP_CIPHER_CTX_set_flags 314 1_1_0 EXIST::FUNCTION: err_free_strings_int 315 1_1_0 EXIST::FUNCTION: PEM_write_bio_PKCS7_stream 316 1_1_0 EXIST::FUNCTION: d2i_X509_CERT_AUX 317 1_1_0 EXIST::FUNCTION: -UI_process 318 1_1_0 EXIST::FUNCTION:UI +UI_process 318 1_1_0 EXIST::FUNCTION: X509_get_subject_name 319 1_1_0 EXIST::FUNCTION: DH_get_1024_160 320 1_1_0 EXIST::FUNCTION:DH i2d_ASN1_UNIVERSALSTRING 321 1_1_0 EXIST::FUNCTION: @@ -331,7 +331,7 @@ CRYPTO_ccm128_tag 331 1_1_0 EXIST::FUNCTION: BIO_new_dgram_sctp 332 1_1_0 EXIST::FUNCTION:DGRAM,SCTP d2i_RSAPrivateKey_fp 333 1_1_0 EXIST::FUNCTION:RSA,STDIO s2i_ASN1_IA5STRING 334 1_1_0 EXIST::FUNCTION: -UI_get_ex_data 335 1_1_0 EXIST::FUNCTION:UI +UI_get_ex_data 335 1_1_0 EXIST::FUNCTION: EVP_EncryptUpdate 336 1_1_0 EXIST::FUNCTION: SRP_create_verifier 337 1_1_0 EXIST::FUNCTION:SRP TS_TST_INFO_print_bio 338 1_1_0 EXIST::FUNCTION:TS @@ -372,7 +372,7 @@ SEED_ecb_encrypt 370 1_1_0 EXIST::FUNCTION:SEED X509_PUBKEY_get0_param 371 1_1_0 EXIST::FUNCTION: ASN1_i2d_fp 372 1_1_0 EXIST::FUNCTION:STDIO BIO_new_mem_buf 373 1_1_0 EXIST::FUNCTION: -UI_get_input_flags 374 1_1_0 EXIST::FUNCTION:UI +UI_get_input_flags 374 1_1_0 EXIST::FUNCTION: X509V3_EXT_REQ_add_nconf 375 1_1_0 EXIST::FUNCTION: X509v3_asid_subset 376 1_1_0 EXIST::FUNCTION:RFC3779 RSA_check_key_ex 377 1_1_0 EXIST::FUNCTION:RSA @@ -492,7 +492,7 @@ BN_GF2m_mod_sqr_arr 492 1_1_0 EXIST::FUNCTION:EC2M ASN1_PRINTABLESTRING_it 493 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: ASN1_PRINTABLESTRING_it 493 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: BIO_f_cipher 494 1_1_0 EXIST::FUNCTION: -UI_destroy_method 495 1_1_0 EXIST::FUNCTION:UI +UI_destroy_method 495 1_1_0 EXIST::FUNCTION: BN_get_rfc3526_prime_3072 496 1_1_0 EXIST::FUNCTION: X509_INFO_new 497 1_1_0 EXIST::FUNCTION: OCSP_RESPDATA_it 498 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP @@ -626,7 +626,7 @@ CRYPTO_secure_malloc_done 625 1_1_0 EXIST::FUNCTION: RSA_OAEP_PARAMS_new 626 1_1_0 EXIST::FUNCTION:RSA X509_NAME_free 627 1_1_0 EXIST::FUNCTION: PKCS12_set_mac 628 1_1_0 EXIST::FUNCTION: -UI_get0_result_string 629 1_1_0 EXIST::FUNCTION:UI +UI_get0_result_string 629 1_1_0 EXIST::FUNCTION: TS_RESP_CTX_add_policy 630 1_1_0 EXIST::FUNCTION:TS X509_REQ_dup 631 1_1_0 EXIST::FUNCTION: d2i_DSA_PUBKEY_fp 633 1_1_0 EXIST::FUNCTION:DSA,STDIO @@ -640,9 +640,9 @@ CRYPTO_THREAD_write_lock 639 1_1_0 EXIST::FUNCTION: X509V3_NAME_from_section 640 1_1_0 EXIST::FUNCTION: EC_POINT_set_compressed_coordinates_GFp 641 1_1_0 EXIST::FUNCTION:EC OCSP_SINGLERESP_get0_id 642 1_1_0 EXIST::FUNCTION:OCSP -UI_add_info_string 643 1_1_0 EXIST::FUNCTION:UI +UI_add_info_string 643 1_1_0 EXIST::FUNCTION: OBJ_NAME_remove 644 1_1_0 EXIST::FUNCTION: -UI_get_method 645 1_1_0 EXIST::FUNCTION:UI +UI_get_method 645 1_1_0 EXIST::FUNCTION: CONF_modules_unload 646 1_1_0 EXIST::FUNCTION: CRYPTO_ccm128_encrypt_ccm64 647 1_1_0 EXIST::FUNCTION: CRYPTO_secure_malloc_init 648 1_1_0 EXIST::FUNCTION: @@ -717,7 +717,7 @@ PKCS7_add_signature 716 1_1_0 EXIST::FUNCTION: OBJ_ln2nid 717 1_1_0 EXIST::FUNCTION: CRYPTO_128_unwrap 718 1_1_0 EXIST::FUNCTION: BIO_new_PKCS7 719 1_1_0 EXIST::FUNCTION: -UI_get0_user_data 720 1_1_0 EXIST::FUNCTION:UI +UI_get0_user_data 720 1_1_0 EXIST::FUNCTION: TS_RESP_get_token 721 1_1_0 EXIST::FUNCTION:TS OCSP_RESPID_new 722 1_1_0 EXIST::FUNCTION:OCSP ASN1_SET_ANY_it 723 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: @@ -760,7 +760,7 @@ X509_policy_node_get0_qualifiers 758 1_1_0 EXIST::FUNCTION: OCSP_cert_status_str 759 1_1_0 EXIST::FUNCTION:OCSP EVP_MD_meth_get_flags 760 1_1_0 EXIST::FUNCTION: ASN1_ENUMERATED_set 761 1_1_0 EXIST::FUNCTION: -UI_UTIL_read_pw 762 1_1_0 EXIST::FUNCTION:UI +UI_UTIL_read_pw 762 1_1_0 EXIST::FUNCTION: PKCS7_ENC_CONTENT_free 763 1_1_0 EXIST::FUNCTION: CMS_RecipientInfo_type 764 1_1_0 EXIST::FUNCTION:CMS OCSP_BASICRESP_get_ext 765 1_1_0 EXIST::FUNCTION:OCSP @@ -772,7 +772,7 @@ ENGINE_init 770 1_1_0 EXIST::FUNCTION:ENGINE TS_RESP_CTX_add_flags 771 1_1_0 EXIST::FUNCTION:TS BIO_gethostbyname 772 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK X509V3_EXT_add 773 1_1_0 EXIST::FUNCTION: -UI_add_verify_string 774 1_1_0 EXIST::FUNCTION:UI +UI_add_verify_string 774 1_1_0 EXIST::FUNCTION: EVP_rc5_32_12_16_cfb64 775 1_1_0 EXIST::FUNCTION:RC5 PKCS7_dataVerify 776 1_1_0 EXIST::FUNCTION: PKCS7_SIGNER_INFO_free 777 1_1_0 EXIST::FUNCTION: @@ -909,13 +909,13 @@ PKCS5_pbe2_set_iv 905 1_1_0 EXIST::FUNCTION: ASN1_add_stable_module 906 1_1_0 EXIST::FUNCTION: EVP_camellia_128_cbc 907 1_1_0 EXIST::FUNCTION:CAMELLIA COMP_zlib 908 1_1_0 EXIST::FUNCTION:COMP -EVP_read_pw_string 909 1_1_0 EXIST::FUNCTION:UI +EVP_read_pw_string 909 1_1_0 EXIST::FUNCTION: i2d_ASN1_NULL 910 1_1_0 EXIST::FUNCTION: DES_encrypt1 911 1_1_0 EXIST::FUNCTION:DES BN_mod_lshift1_quick 912 1_1_0 EXIST::FUNCTION: BN_get_rfc3526_prime_6144 913 1_1_0 EXIST::FUNCTION: OBJ_obj2txt 914 1_1_0 EXIST::FUNCTION: -UI_set_result 915 1_1_0 EXIST::FUNCTION:UI +UI_set_result 915 1_1_0 EXIST::FUNCTION: EVP_EncodeUpdate 916 1_1_0 EXIST::FUNCTION: PEM_write_bio_X509_CRL 917 1_1_0 EXIST::FUNCTION: BN_cmp 918 1_1_0 EXIST::FUNCTION: @@ -1020,11 +1020,11 @@ ASN1_UTCTIME_it 1013 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION: i2d_DSA_PUBKEY_fp 1014 1_1_0 EXIST::FUNCTION:DSA,STDIO X509at_get_attr_by_OBJ 1015 1_1_0 EXIST::FUNCTION: EVP_MD_CTX_copy_ex 1016 1_1_0 EXIST::FUNCTION: -UI_dup_error_string 1017 1_1_0 EXIST::FUNCTION:UI +UI_dup_error_string 1017 1_1_0 EXIST::FUNCTION: OPENSSL_LH_num_items 1018 1_1_0 EXIST::FUNCTION: ASN1_INTEGER_cmp 1020 1_1_0 EXIST::FUNCTION: X509_NAME_entry_count 1021 1_1_0 EXIST::FUNCTION: -UI_method_set_closer 1022 1_1_0 EXIST::FUNCTION:UI +UI_method_set_closer 1022 1_1_0 EXIST::FUNCTION: OPENSSL_LH_get_down_load 1023 1_1_0 EXIST::FUNCTION: EVP_md4 1024 1_1_0 EXIST::FUNCTION:MD4 X509_set_subject_name 1025 1_1_0 EXIST::FUNCTION: @@ -1100,7 +1100,7 @@ X509_print_ex_fp 1093 1_1_0 EXIST::FUNCTION:STDIO ERR_load_PEM_strings 1094 1_1_0 EXIST::FUNCTION: ENGINE_unregister_pkey_asn1_meths 1095 1_1_0 EXIST::FUNCTION:ENGINE IPAddressFamily_free 1096 1_1_0 EXIST::FUNCTION:RFC3779 -UI_method_get_prompt_constructor 1097 1_1_0 EXIST::FUNCTION:UI +UI_method_get_prompt_constructor 1097 1_1_0 EXIST::FUNCTION: ASN1_NULL_it 1098 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: ASN1_NULL_it 1098 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: X509_REQ_get_pubkey 1099 1_1_0 EXIST::FUNCTION: @@ -1262,7 +1262,7 @@ OPENSSL_DIR_read 1250 1_1_0 EXIST::FUNCTION: CMS_add_smimecap 1251 1_1_0 EXIST::FUNCTION:CMS X509_check_email 1252 1_1_0 EXIST::FUNCTION: CRYPTO_cts128_decrypt_block 1253 1_1_0 EXIST::FUNCTION: -UI_method_get_opener 1254 1_1_0 EXIST::FUNCTION:UI +UI_method_get_opener 1254 1_1_0 EXIST::FUNCTION: EVP_aes_192_gcm 1255 1_1_0 EXIST::FUNCTION: TS_CONF_set_tsa_name 1256 1_1_0 EXIST::FUNCTION:TS X509_email_free 1257 1_1_0 EXIST::FUNCTION: @@ -1292,7 +1292,7 @@ ASN1_TIME_free 1281 1_1_0 EXIST::FUNCTION: i2o_SCT_LIST 1282 1_1_0 EXIST::FUNCTION:CT AES_encrypt 1283 1_1_0 EXIST::FUNCTION: MD5_Init 1284 1_1_0 EXIST::FUNCTION:MD5 -UI_add_error_string 1285 1_1_0 EXIST::FUNCTION:UI +UI_add_error_string 1285 1_1_0 EXIST::FUNCTION: X509_TRUST_cleanup 1286 1_1_0 EXIST::FUNCTION: PEM_read_X509 1287 1_1_0 EXIST::FUNCTION:STDIO EC_KEY_new_method 1288 1_1_0 EXIST::FUNCTION:EC @@ -1315,11 +1315,11 @@ BN_rshift1 1303 1_1_0 EXIST::FUNCTION: i2d_PKCS7_ENVELOPE 1304 1_1_0 EXIST::FUNCTION: PBKDF2PARAM_it 1305 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: PBKDF2PARAM_it 1305 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: -UI_get_result_maxsize 1306 1_1_0 EXIST::FUNCTION:UI +UI_get_result_maxsize 1306 1_1_0 EXIST::FUNCTION: PBEPARAM_it 1307 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: PBEPARAM_it 1307 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: TS_ACCURACY_set_seconds 1308 1_1_0 EXIST::FUNCTION:TS -UI_get0_action_string 1309 1_1_0 EXIST::FUNCTION:UI +UI_get0_action_string 1309 1_1_0 EXIST::FUNCTION: RC2_decrypt 1310 1_1_0 EXIST::FUNCTION:RC2 OPENSSL_atexit 1311 1_1_0 EXIST::FUNCTION: CMS_add_standard_smimecap 1312 1_1_0 EXIST::FUNCTION:CMS @@ -1391,7 +1391,7 @@ PROXY_CERT_INFO_EXTENSION_it 1377 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION: CT_POLICY_EVAL_CTX_set1_cert 1378 1_1_0 EXIST::FUNCTION:CT X509_NAME_hash 1379 1_1_0 EXIST::FUNCTION: SCT_set_timestamp 1380 1_1_0 EXIST::FUNCTION:CT -UI_new 1381 1_1_0 EXIST::FUNCTION:UI +UI_new 1381 1_1_0 EXIST::FUNCTION: TS_REQ_get_msg_imprint 1382 1_1_0 EXIST::FUNCTION:TS i2d_PKCS12_BAGS 1383 1_1_0 EXIST::FUNCTION: CERTIFICATEPOLICIES_free 1385 1_1_0 EXIST::FUNCTION: @@ -1410,7 +1410,7 @@ PEM_read_bio_PrivateKey 1398 1_1_0 EXIST::FUNCTION: d2i_PKCS7_ENCRYPT 1399 1_1_0 EXIST::FUNCTION: EVP_PKEY_CTX_ctrl 1400 1_1_0 EXIST::FUNCTION: X509_REQ_set_pubkey 1401 1_1_0 EXIST::FUNCTION: -UI_create_method 1402 1_1_0 EXIST::FUNCTION:UI +UI_create_method 1402 1_1_0 EXIST::FUNCTION: X509_REQ_add_extensions_nid 1403 1_1_0 EXIST::FUNCTION: PEM_X509_INFO_write_bio 1404 1_1_0 EXIST::FUNCTION: BIO_dump_cb 1405 1_1_0 EXIST::FUNCTION: @@ -1478,7 +1478,7 @@ BN_gcd 1465 1_1_0 EXIST::FUNCTION: CMS_dataInit 1466 1_1_0 EXIST::FUNCTION:CMS TS_CONF_get_tsa_section 1467 1_1_0 EXIST::FUNCTION:TS i2d_PKCS7_SIGNER_INFO 1468 1_1_0 EXIST::FUNCTION: -EVP_get_pw_prompt 1469 1_1_0 EXIST::FUNCTION:UI +EVP_get_pw_prompt 1469 1_1_0 EXIST::FUNCTION: BN_bn2bin 1470 1_1_0 EXIST::FUNCTION: d2i_ASN1_BIT_STRING 1471 1_1_0 EXIST::FUNCTION: OCSP_CERTSTATUS_new 1472 1_1_0 EXIST::FUNCTION:OCSP @@ -1491,7 +1491,7 @@ SHA384_Final 1478 1_1_0 EXIST::FUNCTION: TS_RESP_CTX_set_certs 1479 1_1_0 EXIST::FUNCTION:TS BN_MONT_CTX_free 1480 1_1_0 EXIST::FUNCTION: BN_GF2m_mod_solve_quad_arr 1481 1_1_0 EXIST::FUNCTION:EC2M -UI_add_input_string 1482 1_1_0 EXIST::FUNCTION:UI +UI_add_input_string 1482 1_1_0 EXIST::FUNCTION: TS_TST_INFO_get_version 1483 1_1_0 EXIST::FUNCTION:TS BIO_accept_ex 1484 1_1_0 EXIST::FUNCTION:SOCK CRYPTO_get_mem_functions 1485 1_1_0 EXIST::FUNCTION: @@ -1600,7 +1600,7 @@ SRP_Verify_A_mod_N 1587 1_1_0 EXIST::FUNCTION:SRP SRP_VBASE_free 1588 1_1_0 EXIST::FUNCTION:SRP PKCS7_add0_attrib_signing_time 1589 1_1_0 EXIST::FUNCTION: X509_STORE_set_flags 1590 1_1_0 EXIST::FUNCTION: -UI_get0_output_string 1591 1_1_0 EXIST::FUNCTION:UI +UI_get0_output_string 1591 1_1_0 EXIST::FUNCTION: ERR_get_error_line_data 1592 1_1_0 EXIST::FUNCTION: CTLOG_get0_name 1593 1_1_0 EXIST::FUNCTION:CT ASN1_TBOOLEAN_it 1594 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: @@ -1699,7 +1699,7 @@ CMS_EncryptedData_set1_key 1686 1_1_0 EXIST::FUNCTION:CMS OBJ_find_sigid_by_algs 1687 1_1_0 EXIST::FUNCTION: ASN1_generate_nconf 1688 1_1_0 EXIST::FUNCTION: CMS_add0_recipient_password 1689 1_1_0 EXIST::FUNCTION:CMS -UI_get_string_type 1690 1_1_0 EXIST::FUNCTION:UI +UI_get_string_type 1690 1_1_0 EXIST::FUNCTION: PEM_read_bio_ECPrivateKey 1691 1_1_0 EXIST::FUNCTION:EC EVP_PKEY_get_attr 1692 1_1_0 EXIST::FUNCTION: PEM_read_bio_ECPKParameters 1693 1_1_0 EXIST::FUNCTION:EC @@ -1720,7 +1720,7 @@ X509_policy_tree_get0_level 1706 1_1_0 EXIST::FUNCTION: ASN1_parse_dump 1708 1_1_0 EXIST::FUNCTION: BIO_vfree 1709 1_1_0 EXIST::FUNCTION: CRYPTO_cbc128_decrypt 1710 1_1_0 EXIST::FUNCTION: -UI_dup_verify_string 1711 1_1_0 EXIST::FUNCTION:UI +UI_dup_verify_string 1711 1_1_0 EXIST::FUNCTION: d2i_PKCS7_bio 1712 1_1_0 EXIST::FUNCTION: ENGINE_set_default_digests 1713 1_1_0 EXIST::FUNCTION:ENGINE i2d_PublicKey 1714 1_1_0 EXIST::FUNCTION: @@ -1738,7 +1738,7 @@ BIO_nwrite0 1725 1_1_0 EXIST::FUNCTION: CAST_encrypt 1726 1_1_0 EXIST::FUNCTION:CAST a2d_ASN1_OBJECT 1727 1_1_0 EXIST::FUNCTION: OCSP_ONEREQ_delete_ext 1728 1_1_0 EXIST::FUNCTION:OCSP -UI_method_get_reader 1729 1_1_0 EXIST::FUNCTION:UI +UI_method_get_reader 1729 1_1_0 EXIST::FUNCTION: CMS_unsigned_get_attr 1730 1_1_0 EXIST::FUNCTION:CMS EVP_aes_256_cbc 1731 1_1_0 EXIST::FUNCTION: X509_check_ip_asc 1732 1_1_0 EXIST::FUNCTION: @@ -1866,7 +1866,7 @@ TS_RESP_CTX_set_serial_cb 1851 1_1_0 EXIST::FUNCTION:TS POLICY_MAPPING_it 1852 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: POLICY_MAPPING_it 1852 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: ERR_load_KDF_strings 1853 1_1_0 EXIST::FUNCTION: -UI_method_set_reader 1854 1_1_0 EXIST::FUNCTION:UI +UI_method_set_reader 1854 1_1_0 EXIST::FUNCTION: BIO_next 1855 1_1_0 EXIST::FUNCTION: ASN1_STRING_set_default_mask_asc 1856 1_1_0 EXIST::FUNCTION: X509_CRL_new 1857 1_1_0 EXIST::FUNCTION: @@ -1913,7 +1913,7 @@ EVP_aes_192_cfb128 1896 1_1_0 EXIST::FUNCTION: OCSP_REQ_CTX_nbio 1897 1_1_0 EXIST::FUNCTION:OCSP EVP_CIPHER_CTX_copy 1898 1_1_0 EXIST::FUNCTION: CRYPTO_secure_allocated 1899 1_1_0 EXIST::FUNCTION: -UI_UTIL_read_pw_string 1900 1_1_0 EXIST::FUNCTION:UI +UI_UTIL_read_pw_string 1900 1_1_0 EXIST::FUNCTION: NOTICEREF_free 1901 1_1_0 EXIST::FUNCTION: AES_cfb1_encrypt 1902 1_1_0 EXIST::FUNCTION: X509v3_get_ext 1903 1_1_0 EXIST::FUNCTION: @@ -1966,7 +1966,7 @@ PKCS12_unpack_p7data 1951 1_1_0 EXIST::FUNCTION: ECDSA_sign 1952 1_1_0 EXIST::FUNCTION:EC d2i_PKCS12_fp 1953 1_1_0 EXIST::FUNCTION:STDIO CMS_unsigned_get_attr_by_NID 1954 1_1_0 EXIST::FUNCTION:CMS -UI_add_user_data 1955 1_1_0 EXIST::FUNCTION:UI +UI_add_user_data 1955 1_1_0 EXIST::FUNCTION: BN_bntest_rand 1956 1_1_0 EXIST::FUNCTION: X509_get_pubkey 1957 1_1_0 EXIST::FUNCTION: i2d_X509_NAME 1958 1_1_0 EXIST::FUNCTION: @@ -2032,7 +2032,7 @@ EC_POINT_point2hex 2013 1_1_0 EXIST::FUNCTION:EC ENGINE_get_default_DSA 2014 1_1_0 EXIST::FUNCTION:ENGINE ENGINE_register_all_complete 2015 1_1_0 EXIST::FUNCTION:ENGINE SRP_get_default_gN 2016 1_1_0 EXIST::FUNCTION:SRP -UI_dup_input_boolean 2017 1_1_0 EXIST::FUNCTION:UI +UI_dup_input_boolean 2017 1_1_0 EXIST::FUNCTION: PKCS7_dup 2018 1_1_0 EXIST::FUNCTION: i2d_TS_REQ_fp 2019 1_1_0 EXIST::FUNCTION:STDIO,TS i2d_OTHERNAME 2020 1_1_0 EXIST::FUNCTION: @@ -2045,9 +2045,9 @@ ENGINE_get_pkey_asn1_meth_str 2026 1_1_0 EXIST::FUNCTION:ENGINE PKCS7_signatureVerify 2027 1_1_0 EXIST::FUNCTION: CRYPTO_ocb128_new 2028 1_1_0 EXIST::FUNCTION:OCB EC_curve_nist2nid 2029 1_1_0 EXIST::FUNCTION:EC -UI_get0_result 2030 1_1_0 EXIST::FUNCTION:UI +UI_get0_result 2030 1_1_0 EXIST::FUNCTION: OCSP_request_add1_nonce 2031 1_1_0 EXIST::FUNCTION:OCSP -UI_construct_prompt 2032 1_1_0 EXIST::FUNCTION:UI +UI_construct_prompt 2032 1_1_0 EXIST::FUNCTION: ENGINE_unregister_RSA 2033 1_1_0 EXIST::FUNCTION:ENGINE EC_GROUP_order_bits 2034 1_1_0 EXIST::FUNCTION:EC d2i_CMS_bio 2035 1_1_0 EXIST::FUNCTION:CMS @@ -2076,10 +2076,10 @@ EVP_CIPHER_CTX_original_iv 2054 1_1_0 EXIST::FUNCTION: PKCS7_SIGNED_free 2055 1_1_0 EXIST::FUNCTION: X509_TRUST_get0_name 2056 1_1_0 EXIST::FUNCTION: ENGINE_get_load_pubkey_function 2057 1_1_0 EXIST::FUNCTION:ENGINE -UI_get_default_method 2058 1_1_0 EXIST::FUNCTION:UI +UI_get_default_method 2058 1_1_0 EXIST::FUNCTION: PKCS12_add_CSPName_asc 2059 1_1_0 EXIST::FUNCTION: PEM_write_PUBKEY 2060 1_1_0 EXIST::FUNCTION:STDIO -UI_method_set_prompt_constructor 2061 1_1_0 EXIST::FUNCTION:UI +UI_method_set_prompt_constructor 2061 1_1_0 EXIST::FUNCTION: OBJ_length 2062 1_1_0 EXIST::FUNCTION: BN_GENCB_get_arg 2063 1_1_0 EXIST::FUNCTION: EVP_MD_CTX_clear_flags 2064 1_1_0 EXIST::FUNCTION: @@ -2107,7 +2107,7 @@ i2d_ASN1_GENERALSTRING 2085 1_1_0 EXIST::FUNCTION: POLICYQUALINFO_new 2086 1_1_0 EXIST::FUNCTION: PKCS7_RECIP_INFO_get0_alg 2087 1_1_0 EXIST::FUNCTION: EVP_PKEY_base_id 2088 1_1_0 EXIST::FUNCTION: -UI_method_set_opener 2089 1_1_0 EXIST::FUNCTION:UI +UI_method_set_opener 2089 1_1_0 EXIST::FUNCTION: X509v3_get_ext_by_NID 2090 1_1_0 EXIST::FUNCTION: TS_CONF_set_policies 2091 1_1_0 EXIST::FUNCTION:TS CMS_SignerInfo_cert_cmp 2092 1_1_0 EXIST::FUNCTION:CMS @@ -2368,7 +2368,7 @@ ASN1_PRINTABLE_type 2338 1_1_0 EXIST::FUNCTION: TS_CONF_set_ess_cert_id_chain 2339 1_1_0 EXIST::FUNCTION:TS PEM_read_DSAPrivateKey 2340 1_1_0 EXIST::FUNCTION:DSA,STDIO DH_generate_parameters_ex 2341 1_1_0 EXIST::FUNCTION:DH -UI_dup_input_string 2342 1_1_0 EXIST::FUNCTION:UI +UI_dup_input_string 2342 1_1_0 EXIST::FUNCTION: X509_keyid_set1 2343 1_1_0 EXIST::FUNCTION: X509_VERIFY_PARAM_set1 2344 1_1_0 EXIST::FUNCTION: EC_GROUP_get_asn1_flag 2345 1_1_0 EXIST::FUNCTION:EC @@ -2444,7 +2444,7 @@ ASN1_PCTX_set_nm_flags 2413 1_1_0 EXIST::FUNCTION: BIO_ctrl 2414 1_1_0 EXIST::FUNCTION: X509_CRL_set_default_method 2415 1_1_0 EXIST::FUNCTION: d2i_RSAPublicKey_fp 2417 1_1_0 EXIST::FUNCTION:RSA,STDIO -UI_method_get_flusher 2418 1_1_0 EXIST::FUNCTION:UI +UI_method_get_flusher 2418 1_1_0 EXIST::FUNCTION: EC_POINT_dbl 2419 1_1_0 EXIST::FUNCTION:EC i2d_X509_CRL_INFO 2420 1_1_0 EXIST::FUNCTION: i2d_OCSP_CERTSTATUS 2421 1_1_0 EXIST::FUNCTION:OCSP @@ -2570,7 +2570,7 @@ X509_PURPOSE_add 2537 1_1_0 EXIST::FUNCTION: PKCS7_ENVELOPE_free 2538 1_1_0 EXIST::FUNCTION: PKCS12_key_gen_uni 2539 1_1_0 EXIST::FUNCTION: WHIRLPOOL 2540 1_1_0 EXIST::FUNCTION:WHIRLPOOL -UI_set_default_method 2542 1_1_0 EXIST::FUNCTION:UI +UI_set_default_method 2542 1_1_0 EXIST::FUNCTION: EC_POINT_is_at_infinity 2543 1_1_0 EXIST::FUNCTION:EC i2d_NOTICEREF 2544 1_1_0 EXIST::FUNCTION: EC_KEY_new 2545 1_1_0 EXIST::FUNCTION:EC @@ -2795,8 +2795,8 @@ CT_POLICY_EVAL_CTX_new 2756 1_1_0 EXIST::FUNCTION:CT NETSCAPE_SPKI_it 2757 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: NETSCAPE_SPKI_it 2757 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: CRYPTO_THREAD_unlock 2758 1_1_0 EXIST::FUNCTION: -UI_method_set_writer 2759 1_1_0 EXIST::FUNCTION:UI -UI_dup_info_string 2760 1_1_0 EXIST::FUNCTION:UI +UI_method_set_writer 2759 1_1_0 EXIST::FUNCTION: +UI_dup_info_string 2760 1_1_0 EXIST::FUNCTION: OPENSSL_init 2761 1_1_0 EXIST::FUNCTION: TS_RESP_get_tst_info 2762 1_1_0 EXIST::FUNCTION:TS X509_VERIFY_PARAM_get_depth 2763 1_1_0 EXIST::FUNCTION: @@ -3236,7 +3236,7 @@ RSAPrivateKey_dup 3188 1_1_0 EXIST::FUNCTION:RSA BN_mod_add 3189 1_1_0 EXIST::FUNCTION: EC_POINT_set_affine_coordinates_GFp 3190 1_1_0 EXIST::FUNCTION:EC X509_get_default_cert_file 3191 1_1_0 EXIST::FUNCTION: -UI_method_set_flusher 3192 1_1_0 EXIST::FUNCTION:UI +UI_method_set_flusher 3192 1_1_0 EXIST::FUNCTION: RSA_new_method 3193 1_1_0 EXIST::FUNCTION:RSA OCSP_request_verify 3194 1_1_0 EXIST::FUNCTION:OCSP CRYPTO_THREAD_run_once 3195 1_1_0 EXIST::FUNCTION: @@ -3299,7 +3299,7 @@ CMS_set1_eContentType 3251 1_1_0 EXIST::FUNCTION:CMS EVP_des_ede3_wrap 3252 1_1_0 EXIST::FUNCTION:DES GENERAL_SUBTREE_it 3253 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: GENERAL_SUBTREE_it 3253 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: -EVP_read_pw_string_min 3254 1_1_0 EXIST::FUNCTION:UI +EVP_read_pw_string_min 3254 1_1_0 EXIST::FUNCTION: X509_set1_notBefore 3255 1_1_0 EXIST::FUNCTION: MD4 3256 1_1_0 EXIST::FUNCTION:MD4 EVP_PKEY_CTX_dup 3257 1_1_0 EXIST::FUNCTION: @@ -3466,7 +3466,7 @@ ASN1_mbstring_copy 3417 1_1_0 EXIST::FUNCTION: PKCS7_set_type 3418 1_1_0 EXIST::FUNCTION: BIO_gets 3419 1_1_0 EXIST::FUNCTION: RSA_padding_check_PKCS1_type_1 3420 1_1_0 EXIST::FUNCTION:RSA -UI_ctrl 3421 1_1_0 EXIST::FUNCTION:UI +UI_ctrl 3421 1_1_0 EXIST::FUNCTION: i2d_X509_REQ_fp 3422 1_1_0 EXIST::FUNCTION:STDIO BN_BLINDING_convert_ex 3423 1_1_0 EXIST::FUNCTION: ASN1_GENERALIZEDTIME_print 3424 1_1_0 EXIST::FUNCTION: @@ -3479,7 +3479,7 @@ OCSP_SINGLERESP_get_ext_count 3430 1_1_0 EXIST::FUNCTION:OCSP EC_POINT_free 3431 1_1_0 EXIST::FUNCTION:EC EVP_OpenFinal 3432 1_1_0 EXIST::FUNCTION:RSA RAND_egd_bytes 3433 1_1_0 EXIST::FUNCTION:EGD -UI_method_get_writer 3434 1_1_0 EXIST::FUNCTION:UI +UI_method_get_writer 3434 1_1_0 EXIST::FUNCTION: BN_secure_new 3435 1_1_0 EXIST::FUNCTION: SHA1_Update 3437 1_1_0 EXIST::FUNCTION: BIO_s_connect 3438 1_1_0 EXIST::FUNCTION:SOCK @@ -3642,7 +3642,7 @@ RAND_bytes 3596 1_1_0 EXIST::FUNCTION: PKCS7_free 3597 1_1_0 EXIST::FUNCTION: X509_NAME_ENTRY_create_by_txt 3598 1_1_0 EXIST::FUNCTION: DES_cbc_cksum 3599 1_1_0 EXIST::FUNCTION:DES -UI_free 3600 1_1_0 EXIST::FUNCTION:UI +UI_free 3600 1_1_0 EXIST::FUNCTION: BN_is_prime 3601 1_1_0 EXIST::FUNCTION:DEPRECATEDIN_0_9_8 CMS_get0_signers 3602 1_1_0 EXIST::FUNCTION:CMS i2d_PrivateKey_fp 3603 1_1_0 EXIST::FUNCTION:STDIO @@ -3665,7 +3665,7 @@ TS_CONF_set_signer_digest 3619 1_1_0 EXIST::FUNCTION:TS OBJ_new_nid 3620 1_1_0 EXIST::FUNCTION: CMS_ReceiptRequest_new 3621 1_1_0 EXIST::FUNCTION:CMS SRP_VBASE_get1_by_user 3622 1_1_0 EXIST::FUNCTION:SRP -UI_method_get_closer 3623 1_1_0 EXIST::FUNCTION:UI +UI_method_get_closer 3623 1_1_0 EXIST::FUNCTION: ENGINE_get_ex_data 3624 1_1_0 EXIST::FUNCTION:ENGINE BN_print_fp 3625 1_1_0 EXIST::FUNCTION:STDIO MD2_Update 3626 1_1_0 EXIST::FUNCTION:MD2 @@ -3759,7 +3759,7 @@ ENGINE_register_all_digests 3713 1_1_0 EXIST::FUNCTION:ENGINE X509_REQ_get_version 3714 1_1_0 EXIST::FUNCTION: i2d_ASN1_UTCTIME 3715 1_1_0 EXIST::FUNCTION: TS_STATUS_INFO_new 3716 1_1_0 EXIST::FUNCTION:TS -UI_set_ex_data 3717 1_1_0 EXIST::FUNCTION:UI +UI_set_ex_data 3717 1_1_0 EXIST::FUNCTION: ASN1_TIME_set 3718 1_1_0 EXIST::FUNCTION: TS_RESP_verify_response 3719 1_1_0 EXIST::FUNCTION:TS X509_REVOKED_get0_serialNumber 3720 1_1_0 EXIST::FUNCTION: @@ -3796,7 +3796,7 @@ EVP_PKEY_meth_get_sign 3750 1_1_0 EXIST::FUNCTION: TS_REQ_get_nonce 3751 1_1_0 EXIST::FUNCTION:TS ENGINE_unregister_EC 3752 1_1_0 EXIST::FUNCTION:ENGINE X509v3_get_ext_count 3753 1_1_0 EXIST::FUNCTION: -UI_OpenSSL 3754 1_1_0 EXIST::FUNCTION:UI +UI_OpenSSL 3754 1_1_0 EXIST::FUNCTION:UI_CONSOLE CRYPTO_ccm128_decrypt 3755 1_1_0 EXIST::FUNCTION: d2i_OCSP_RESPDATA 3756 1_1_0 EXIST::FUNCTION:OCSP BIO_set_callback 3757 1_1_0 EXIST::FUNCTION: @@ -3826,7 +3826,7 @@ RSA_PSS_PARAMS_it 3779 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION: X509_STORE_CTX_get_error_depth 3780 1_1_0 EXIST::FUNCTION: ASN1_GENERALIZEDTIME_set_string 3781 1_1_0 EXIST::FUNCTION: EC_GROUP_new_curve_GFp 3782 1_1_0 EXIST::FUNCTION:EC -UI_new_method 3783 1_1_0 EXIST::FUNCTION:UI +UI_new_method 3783 1_1_0 EXIST::FUNCTION: Camellia_ofb128_encrypt 3784 1_1_0 EXIST::FUNCTION:CAMELLIA X509_new 3785 1_1_0 EXIST::FUNCTION: EC_KEY_get_conv_form 3786 1_1_0 EXIST::FUNCTION:EC @@ -4224,9 +4224,9 @@ X509_VERIFY_PARAM_set_inh_flags 4174 1_1_0d EXIST::FUNCTION: X509_VERIFY_PARAM_get_inh_flags 4175 1_1_0d EXIST::FUNCTION: EVP_PKEY_CTX_md 4176 1_1_1 EXIST::FUNCTION: RSA_pkey_ctx_ctrl 4177 1_1_1 EXIST::FUNCTION:RSA -UI_method_set_ex_data 4178 1_1_1 EXIST::FUNCTION:UI -UI_method_get_ex_data 4179 1_1_1 EXIST::FUNCTION:UI -UI_UTIL_wrap_read_pem_callback 4180 1_1_1 EXIST::FUNCTION:UI +UI_method_set_ex_data 4178 1_1_1 EXIST::FUNCTION: +UI_method_get_ex_data 4179 1_1_1 EXIST::FUNCTION: +UI_UTIL_wrap_read_pem_callback 4180 1_1_1 EXIST::FUNCTION: X509_VERIFY_PARAM_get_time 4181 1_1_0d EXIST::FUNCTION: EVP_PKEY_get0_poly1305 4182 1_1_1 EXIST::FUNCTION:POLY1305 DH_check_params 4183 1_1_0d EXIST::FUNCTION:DH @@ -4252,7 +4252,7 @@ EVP_aria_256_ecb 4202 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_192_ctr 4205 1_1_1 EXIST::FUNCTION:ARIA -UI_null 4206 1_1_1 EXIST::FUNCTION:UI +UI_null 4206 1_1_1 EXIST::FUNCTION: EC_KEY_get0_engine 4207 1_1_1 EXIST::FUNCTION:EC INT32_it 4208 1_1_0f EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: INT32_it 4208 1_1_0f EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: @@ -4292,10 +4292,10 @@ PEM_read_bio_ex 4234 1_1_1 EXIST::FUNCTION: PEM_bytes_read_bio_secmem 4235 1_1_1 EXIST::FUNCTION: EVP_DigestSign 4236 1_1_1 EXIST::FUNCTION: EVP_DigestVerify 4237 1_1_1 EXIST::FUNCTION: -UI_method_get_data_duplicator 4238 1_1_1 EXIST::FUNCTION:UI -UI_method_set_data_duplicator 4239 1_1_1 EXIST::FUNCTION:UI -UI_dup_user_data 4240 1_1_1 EXIST::FUNCTION:UI -UI_method_get_data_destructor 4241 1_1_1 EXIST::FUNCTION:UI +UI_method_get_data_duplicator 4238 1_1_1 EXIST::FUNCTION: +UI_method_set_data_duplicator 4239 1_1_1 EXIST::FUNCTION: +UI_dup_user_data 4240 1_1_1 EXIST::FUNCTION: +UI_method_get_data_destructor 4241 1_1_1 EXIST::FUNCTION: ERR_load_strings_const 4242 1_1_1 EXIST::FUNCTION: ASN1_TIME_to_tm 4243 1_1_1 EXIST::FUNCTION: ASN1_TIME_set_string_X509 4244 1_1_1 EXIST::FUNCTION: diff --git a/util/mkdef.pl b/util/mkdef.pl index cc2fef7c81..6315a5bea5 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -127,7 +127,7 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", # Unit testing "UNIT_TEST", # User Interface - "UI", + "UI_CONSOLE", # "TS", # OCB mode -- 2.34.1