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,
"tls13downgrade",
"ts",
"ubsan",
- "ui",
+ "ui-console",
"unit-test",
"whirlpool",
"weak-ssl-ciphers",
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):
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);
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)) {
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)) {
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);
{
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;
UI_free(ui);
OPENSSL_free(prompt);
}
-#endif
return res;
}
if ((str == NULL) && (cipher != NULL) && (hkey == NULL)) {
if (1) {
-#ifndef OPENSSL_NO_UI
+#ifndef OPENSSL_NO_UI_CONSOLE
for (;;) {
char prompt[200];
| 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()
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;
pw_source_defined = 1;
break;
case OPT_NOVERIFY:
-# ifndef OPENSSL_NO_UI
+# ifndef OPENSSL_NO_UI_CONSOLE
in_noverify = 1;
# endif
break;
* 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 };
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");
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");
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");
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;
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)) {
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");
# 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
#include <openssl/evp.h>
#include <openssl/ui.h>
-#ifndef OPENSSL_NO_UI
/* should be init to zeros. */
static char prompt_string[80];
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,
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);
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:";
break;
}
return j;
-#endif
}
void PEM_proc_type(char *buf, int type)
}
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);
#include <openssl/e_os2.h>
#include <openssl/err.h>
+#include <openssl/ui.h>
+#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 <sys/types.h>
-#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 <sys/types.h>
# endif
-#endif
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS)
-# ifdef OPENSSL_UNISTD
-# include OPENSSL_UNISTD
-# else
-# include <unistd.h>
+
+# if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS)
+# ifndef _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE 2
+# endif
# endif
+# include <signal.h>
+# include <stdio.h>
+# include <string.h>
+# include <errno.h>
+
+# if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS)
+# ifdef OPENSSL_UNISTD
+# include OPENSSL_UNISTD
+# else
+# include <unistd.h>
+# 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 <starlet.h>
-# ifdef __DECC
-# pragma message disable DOLLARID
+# ifdef OPENSSL_SYS_VMS /* prototypes for sys$whatever */
+# include <starlet.h>
+# ifdef __DECC
+# pragma message disable DOLLARID
+# endif
# endif
-#endif
-#ifdef WIN_CONSOLE_BUG
-# include <windows.h>
-# ifndef OPENSSL_SYS_WINCE
-# include <wincon.h>
+# ifdef WIN_CONSOLE_BUG
+# include <windows.h>
+# ifndef OPENSSL_SYS_WINCE
+# include <wincon.h>
+# endif
# endif
-#endif
/*
* There are 6 types of terminal interface supported, TERMIO, TERMIOS, VMS,
* 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 <termios.h>
-# 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 <termios.h>
+# 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 <termio.h>
-# 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 <termio.h>
+# 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 <sgtty.h>
-# 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 <sgtty.h>
+# 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 <sys/ioctl.h>
-#endif
+# if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS)
+# include <sys/ioctl.h>
+# endif
-#ifdef OPENSSL_SYS_MSDOS
-# include <conio.h>
-#endif
+# ifdef OPENSSL_SYS_MSDOS
+# include <conio.h>
+# endif
-#ifdef OPENSSL_SYS_VMS
-# include <ssdef.h>
-# include <iodef.h>
-# include <ttdef.h>
-# include <descrip.h>
+# ifdef OPENSSL_SYS_VMS
+# include <ssdef.h>
+# include <iodef.h>
+# include <ttdef.h>
+# include <descrip.h>
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
* 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);
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.
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 {
}
static volatile sig_atomic_t intr_signal;
-#endif
+# endif
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;
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];
OPENSSL_cleanse(wresult, sizeof(wresult));
}
} else
-# endif
+# endif
if (ReadConsoleA(GetStdHandle(STD_INPUT_HANDLE),
result, maxsize, &numread, NULL)) {
if (numread >= 2 &&
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;
if (ps >= 1)
popsig();
-#else
+# else
ok = 1;
-#endif
+# endif
OPENSSL_cleanse(result, BUFSIZ);
return ok;
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;
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
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.
if (errno == ENODEV)
is_a_tty = 0;
else
-# endif
+# endif
{
char tmp_num[10];
BIO_snprintf(tmp_num, sizeof(tmp_num) - 1, "%d", errno);
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 */
/* 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;
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;
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;
}
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];
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;
break;
}
size--;
-# if defined(_WIN32)
+# if defined(_WIN32)
i = _getch();
-# else
+# else
i = getch();
-# endif
+# endif
if (i == '\r')
i = '\n';
*(p++) = i;
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
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;
+}
__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,
# include <openssl/opensslconf.h>
-# ifndef OPENSSL_NO_UI
-
-# if OPENSSL_API_COMPAT < 0x10100000L
-# include <openssl/crypto.h>
+# if OPENSSL_API_COMPAT < 0x10100000L
+# include <openssl/crypto.h>
+# endif
+# include <openssl/safestack.h>
+# include <openssl/pem.h>
+# include <openssl/ossl_typ.h>
+# include <openssl/uierr.h>
+
+/* 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 <openssl/safestack.h>
-# include <openssl/pem.h>
-# include <openssl/ossl_typ.h>
-# include <openssl/uierr.h>
+# endif
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
/*
* All the following functions return -1 or NULL on error and in some cases
* 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
* #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
* 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
# 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);
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.
int ERR_load_UI_strings(void);
-# ifdef __cplusplus
+# ifdef __cplusplus
}
-# endif
# endif
#endif
/* apps/apps.c depend on these */
char *default_config_file = NULL;
-#ifndef OPENSSL_NO_UI
-# include <openssl/ui.h>
+#include <openssl/ui.h>
/* Old style PEM password callback */
static int test_pem_password_cb(char *buf, int size, int rwflag, void *userdata)
return ok;
}
-#endif
-
void register_tests(void)
{
-#ifndef OPENSSL_NO_UI
ADD_TEST(test_old);
ADD_TEST(test_new_ui);
-#endif
}
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
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
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:
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:
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
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:
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:
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
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
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
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
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:
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:
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
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:
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:
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:
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:
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:
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
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
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:
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:
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
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:
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:
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
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:
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:
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:
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:
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:
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:
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
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:
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
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
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
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
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:
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:
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:
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:
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
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
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
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:
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:
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
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
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:
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:
# Unit testing
"UNIT_TEST",
# User Interface
- "UI",
+ "UI_CONSOLE",
#
"TS",
# OCB mode