* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#include <string.h>
#include <openssl/ui_compat.h>
-int _ossl_old_des_read_pw_string(char *buf,int length,const char *prompt,int verify)
- {
+int
+_ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, int verify)
+{
return UI_UTIL_read_pw_string(buf, length, prompt, verify);
- }
+}
-int _ossl_old_des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify)
- {
+int
+_ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, int verify)
+{
return UI_UTIL_read_pw(buf, buff, size, prompt, verify);
- }
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#define ERR_FUNC(func) ERR_PACK(ERR_LIB_UI,func,0)
#define ERR_REASON(reason) ERR_PACK(ERR_LIB_UI,0,reason)
-static ERR_STRING_DATA UI_str_functs[]=
- {
-{ERR_FUNC(UI_F_GENERAL_ALLOCATE_BOOLEAN), "GENERAL_ALLOCATE_BOOLEAN"},
-{ERR_FUNC(UI_F_GENERAL_ALLOCATE_PROMPT), "GENERAL_ALLOCATE_PROMPT"},
-{ERR_FUNC(UI_F_GENERAL_ALLOCATE_STRING), "GENERAL_ALLOCATE_STRING"},
-{ERR_FUNC(UI_F_UI_CTRL), "UI_ctrl"},
-{ERR_FUNC(UI_F_UI_DUP_ERROR_STRING), "UI_dup_error_string"},
-{ERR_FUNC(UI_F_UI_DUP_INFO_STRING), "UI_dup_info_string"},
-{ERR_FUNC(UI_F_UI_DUP_INPUT_BOOLEAN), "UI_dup_input_boolean"},
-{ERR_FUNC(UI_F_UI_DUP_INPUT_STRING), "UI_dup_input_string"},
-{ERR_FUNC(UI_F_UI_DUP_VERIFY_STRING), "UI_dup_verify_string"},
-{ERR_FUNC(UI_F_UI_GET0_RESULT), "UI_get0_result"},
-{ERR_FUNC(UI_F_UI_NEW_METHOD), "UI_new_method"},
-{ERR_FUNC(UI_F_UI_SET_RESULT), "UI_set_result"},
-{0,NULL}
- };
+static ERR_STRING_DATA UI_str_functs[] =
+{
+ {ERR_FUNC(UI_F_GENERAL_ALLOCATE_BOOLEAN), "GENERAL_ALLOCATE_BOOLEAN"},
+ {ERR_FUNC(UI_F_GENERAL_ALLOCATE_PROMPT), "GENERAL_ALLOCATE_PROMPT"},
+ {ERR_FUNC(UI_F_GENERAL_ALLOCATE_STRING), "GENERAL_ALLOCATE_STRING"},
+ {ERR_FUNC(UI_F_UI_CTRL), "UI_ctrl"},
+ {ERR_FUNC(UI_F_UI_DUP_ERROR_STRING), "UI_dup_error_string"},
+ {ERR_FUNC(UI_F_UI_DUP_INFO_STRING), "UI_dup_info_string"},
+ {ERR_FUNC(UI_F_UI_DUP_INPUT_BOOLEAN), "UI_dup_input_boolean"},
+ {ERR_FUNC(UI_F_UI_DUP_INPUT_STRING), "UI_dup_input_string"},
+ {ERR_FUNC(UI_F_UI_DUP_VERIFY_STRING), "UI_dup_verify_string"},
+ {ERR_FUNC(UI_F_UI_GET0_RESULT), "UI_get0_result"},
+ {ERR_FUNC(UI_F_UI_NEW_METHOD), "UI_new_method"},
+ {ERR_FUNC(UI_F_UI_SET_RESULT), "UI_set_result"},
+ {0, NULL}
+};
-static ERR_STRING_DATA UI_str_reasons[]=
- {
-{ERR_REASON(UI_R_COMMON_OK_AND_CANCEL_CHARACTERS),"common ok and cancel characters"},
-{ERR_REASON(UI_R_INDEX_TOO_LARGE) ,"index too large"},
-{ERR_REASON(UI_R_INDEX_TOO_SMALL) ,"index too small"},
-{ERR_REASON(UI_R_NO_RESULT_BUFFER) ,"no result buffer"},
-{ERR_REASON(UI_R_RESULT_TOO_LARGE) ,"result too large"},
-{ERR_REASON(UI_R_RESULT_TOO_SMALL) ,"result too small"},
-{ERR_REASON(UI_R_UNKNOWN_CONTROL_COMMAND),"unknown control command"},
-{0,NULL}
- };
+static ERR_STRING_DATA UI_str_reasons[] =
+{
+ {ERR_REASON(UI_R_COMMON_OK_AND_CANCEL_CHARACTERS), "common ok and cancel characters"},
+ {ERR_REASON(UI_R_INDEX_TOO_LARGE), "index too large"},
+ {ERR_REASON(UI_R_INDEX_TOO_SMALL), "index too small"},
+ {ERR_REASON(UI_R_NO_RESULT_BUFFER), "no result buffer"},
+ {ERR_REASON(UI_R_RESULT_TOO_LARGE), "result too large"},
+ {ERR_REASON(UI_R_RESULT_TOO_SMALL), "result too small"},
+ {ERR_REASON(UI_R_UNKNOWN_CONTROL_COMMAND), "unknown control command"},
+ {0, NULL}
+};
#endif
-void ERR_load_UI_strings(void)
- {
+void
+ERR_load_UI_strings(void)
+{
#ifndef OPENSSL_NO_ERR
- if (ERR_func_error_string(UI_str_functs[0].error) == NULL)
- {
- ERR_load_strings(0,UI_str_functs);
- ERR_load_strings(0,UI_str_reasons);
- }
-#endif
+ if (ERR_func_error_string(UI_str_functs[0].error) == NULL) {
+ ERR_load_strings(0, UI_str_functs);
+ ERR_load_strings(0, UI_str_reasons);
}
+#endif
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#include "ui_locl.h"
IMPLEMENT_STACK_OF(UI_STRING_ST)
+ static const UI_METHOD *default_UI_meth = NULL;
-static const UI_METHOD *default_UI_meth=NULL;
+ UI *UI_new(void)
+{
+ return (UI_new_method(NULL));
+}
-UI *UI_new(void)
- {
- return(UI_new_method(NULL));
- }
-
-UI *UI_new_method(const UI_METHOD *method)
- {
+UI *
+UI_new_method(const UI_METHOD * method)
+{
UI *ret;
- ret=(UI *)malloc(sizeof(UI));
- if (ret == NULL)
- {
- UIerr(UI_F_UI_NEW_METHOD,ERR_R_MALLOC_FAILURE);
+ ret = (UI *) malloc(sizeof(UI));
+ if (ret == NULL) {
+ UIerr(UI_F_UI_NEW_METHOD, ERR_R_MALLOC_FAILURE);
return NULL;
- }
+ }
if (method == NULL)
- ret->meth=UI_get_default_method();
+ ret->meth = UI_get_default_method();
else
- ret->meth=method;
+ ret->meth = method;
- ret->strings=NULL;
- ret->user_data=NULL;
- ret->flags=0;
+ ret->strings = NULL;
+ ret->user_data = NULL;
+ ret->flags = 0;
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data);
return ret;
- }
-
-static void free_string(UI_STRING *uis)
- {
- if (uis->flags & OUT_STRING_FREEABLE)
- {
- free((char *)uis->out_string);
- switch(uis->type)
- {
+}
+
+static void
+free_string(UI_STRING * uis)
+{
+ if (uis->flags & OUT_STRING_FREEABLE) {
+ free((char *) uis->out_string);
+ switch (uis->type) {
case UIT_BOOLEAN:
- free((char *)uis->_.boolean_data.action_desc);
- free((char *)uis->_.boolean_data.ok_chars);
- free((char *)uis->_.boolean_data.cancel_chars);
+ free((char *) uis->_.boolean_data.action_desc);
+ free((char *) uis->_.boolean_data.ok_chars);
+ free((char *) uis->_.boolean_data.cancel_chars);
break;
default:
break;
- }
}
- free(uis);
}
+ free(uis);
+}
-void UI_free(UI *ui)
- {
+void
+UI_free(UI * ui)
+{
if (ui == NULL)
return;
- sk_UI_STRING_pop_free(ui->strings,free_string);
+ sk_UI_STRING_pop_free(ui->strings, free_string);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_UI, ui, &ui->ex_data);
free(ui);
- }
-
-static int allocate_string_stack(UI *ui)
- {
- if (ui->strings == NULL)
- {
- ui->strings=sk_UI_STRING_new_null();
- if (ui->strings == NULL)
- {
+}
+
+static int
+allocate_string_stack(UI * ui)
+{
+ if (ui->strings == NULL) {
+ ui->strings = sk_UI_STRING_new_null();
+ if (ui->strings == NULL) {
return -1;
- }
}
- return 0;
}
+ return 0;
+}
-static UI_STRING *general_allocate_prompt(UI *ui, const char *prompt,
- int prompt_freeable, enum UI_string_types type, int input_flags,
- char *result_buf)
- {
+static UI_STRING *
+general_allocate_prompt(UI * ui, const char *prompt,
+ int prompt_freeable, enum UI_string_types type, int input_flags,
+ char *result_buf)
+{
UI_STRING *ret = NULL;
- if (prompt == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_PROMPT,ERR_R_PASSED_NULL_PARAMETER);
- }
- else if ((type == UIT_PROMPT || type == UIT_VERIFY
- || type == UIT_BOOLEAN) && result_buf == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_PROMPT,UI_R_NO_RESULT_BUFFER);
- }
- else if ((ret = (UI_STRING *)malloc(sizeof(UI_STRING))))
- {
- ret->out_string=prompt;
- ret->flags=prompt_freeable ? OUT_STRING_FREEABLE : 0;
- ret->input_flags=input_flags;
- ret->type=type;
- ret->result_buf=result_buf;
- }
- return ret;
+ if (prompt == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_PROMPT, ERR_R_PASSED_NULL_PARAMETER);
+ } else if ((type == UIT_PROMPT || type == UIT_VERIFY
+ || type == UIT_BOOLEAN) && result_buf == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_PROMPT, UI_R_NO_RESULT_BUFFER);
+ } else if ((ret = (UI_STRING *) malloc(sizeof(UI_STRING)))) {
+ ret->out_string = prompt;
+ ret->flags = prompt_freeable ? OUT_STRING_FREEABLE : 0;
+ ret->input_flags = input_flags;
+ ret->type = type;
+ ret->result_buf = result_buf;
}
+ return ret;
+}
-static int general_allocate_string(UI *ui, const char *prompt,
- int prompt_freeable, enum UI_string_types type, int input_flags,
- char *result_buf, int minsize, int maxsize, const char *test_buf)
- {
+static int
+general_allocate_string(UI * ui, const char *prompt,
+ int prompt_freeable, enum UI_string_types type, int input_flags,
+ char *result_buf, int minsize, int maxsize, const char *test_buf)
+{
int ret = -1;
UI_STRING *s = general_allocate_prompt(ui, prompt, prompt_freeable,
- type, input_flags, result_buf);
-
- if (s)
- {
- if (allocate_string_stack(ui) >= 0)
- {
- s->_.string_data.result_minsize=minsize;
- s->_.string_data.result_maxsize=maxsize;
- s->_.string_data.test_buf=test_buf;
- ret=sk_UI_STRING_push(ui->strings, s);
+ type, input_flags, result_buf);
+
+ if (s) {
+ if (allocate_string_stack(ui) >= 0) {
+ s->_.string_data.result_minsize = minsize;
+ s->_.string_data.result_maxsize = maxsize;
+ s->_.string_data.test_buf = test_buf;
+ ret = sk_UI_STRING_push(ui->strings, s);
/* sk_push() returns 0 on error. Let's addapt that */
- if (ret <= 0) ret--;
- }
- else
+ if (ret <= 0)
+ ret--;
+ } else
free_string(s);
- }
- return ret;
}
-
-static int general_allocate_boolean(UI *ui,
- const char *prompt, const char *action_desc,
- const char *ok_chars, const char *cancel_chars,
- int prompt_freeable, enum UI_string_types type, int input_flags,
- char *result_buf)
- {
+ return ret;
+}
+
+static int
+general_allocate_boolean(UI * ui,
+ const char *prompt, const char *action_desc,
+ const char *ok_chars, const char *cancel_chars,
+ int prompt_freeable, enum UI_string_types type, int input_flags,
+ char *result_buf)
+{
int ret = -1;
UI_STRING *s;
const char *p;
- if (ok_chars == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN,ERR_R_PASSED_NULL_PARAMETER);
- }
- else if (cancel_chars == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN,ERR_R_PASSED_NULL_PARAMETER);
- }
- else
- {
- for(p = ok_chars; *p; p++)
- {
- if (strchr(cancel_chars, *p))
- {
+ if (ok_chars == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN, ERR_R_PASSED_NULL_PARAMETER);
+ } else if (cancel_chars == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN, ERR_R_PASSED_NULL_PARAMETER);
+ } else {
+ for (p = ok_chars; *p; p++) {
+ if (strchr(cancel_chars, *p)) {
UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN,
- UI_R_COMMON_OK_AND_CANCEL_CHARACTERS);
- }
+ UI_R_COMMON_OK_AND_CANCEL_CHARACTERS);
}
+ }
s = general_allocate_prompt(ui, prompt, prompt_freeable,
- type, input_flags, result_buf);
+ type, input_flags, result_buf);
- if (s)
- {
- if (allocate_string_stack(ui) >= 0)
- {
+ if (s) {
+ if (allocate_string_stack(ui) >= 0) {
s->_.boolean_data.action_desc = action_desc;
s->_.boolean_data.ok_chars = ok_chars;
s->_.boolean_data.cancel_chars = cancel_chars;
- ret=sk_UI_STRING_push(ui->strings, s);
- /* sk_push() returns 0 on error.
- Let's addapt that */
- if (ret <= 0) ret--;
- }
- else
+ ret = sk_UI_STRING_push(ui->strings, s);
+ /*
+ * sk_push() returns 0 on error. Let's addapt
+ * that
+ */
+ if (ret <= 0)
+ ret--;
+ } else
free_string(s);
- }
}
- return ret;
}
+ return ret;
+}
/* Returns the index to the place in the stack or -1 for error. Uses a
direct reference to the prompt. */
-int UI_add_input_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize)
- {
+int
+UI_add_input_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize)
+{
return general_allocate_string(ui, prompt, 0,
- UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
- }
+ UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
+}
/* Same as UI_add_input_string(), excepts it takes a copy of the prompt */
-int UI_dup_input_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize)
- {
- char *prompt_copy=NULL;
+int
+UI_dup_input_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize)
+{
+ char *prompt_copy = NULL;
- if (prompt)
- {
- prompt_copy=BUF_strdup(prompt);
- if (prompt_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_STRING,ERR_R_MALLOC_FAILURE);
+ if (prompt) {
+ prompt_copy = BUF_strdup(prompt);
+ if (prompt_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_STRING, ERR_R_MALLOC_FAILURE);
return 0;
- }
}
-
- return general_allocate_string(ui, prompt_copy, 1,
- UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
}
+ return general_allocate_string(ui, prompt_copy, 1,
+ UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
+}
-int UI_add_verify_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize, const char *test_buf)
- {
+int
+UI_add_verify_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize, const char *test_buf)
+{
return general_allocate_string(ui, prompt, 0,
- UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
- }
+ UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
+}
-int UI_dup_verify_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize, const char *test_buf)
- {
- char *prompt_copy=NULL;
+int
+UI_dup_verify_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize, const char *test_buf)
+{
+ char *prompt_copy = NULL;
- if (prompt)
- {
- prompt_copy=BUF_strdup(prompt);
- if (prompt_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_VERIFY_STRING,ERR_R_MALLOC_FAILURE);
+ if (prompt) {
+ prompt_copy = BUF_strdup(prompt);
+ if (prompt_copy == NULL) {
+ UIerr(UI_F_UI_DUP_VERIFY_STRING, ERR_R_MALLOC_FAILURE);
return -1;
- }
}
-
- return general_allocate_string(ui, prompt_copy, 1,
- UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
}
-
-int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,
- const char *ok_chars, const char *cancel_chars,
- int flags, char *result_buf)
- {
+ return general_allocate_string(ui, prompt_copy, 1,
+ UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
+}
+
+int
+UI_add_input_boolean(UI * ui, const char *prompt, const char *action_desc,
+ const char *ok_chars, const char *cancel_chars,
+ int flags, char *result_buf)
+{
return general_allocate_boolean(ui, prompt, action_desc,
- ok_chars, cancel_chars, 0, UIT_BOOLEAN, flags, result_buf);
- }
-
-int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
- const char *ok_chars, const char *cancel_chars,
- int flags, char *result_buf)
- {
+ ok_chars, cancel_chars, 0, UIT_BOOLEAN, flags, result_buf);
+}
+
+int
+UI_dup_input_boolean(UI * ui, const char *prompt, const char *action_desc,
+ const char *ok_chars, const char *cancel_chars,
+ int flags, char *result_buf)
+{
char *prompt_copy = NULL;
char *action_desc_copy = NULL;
char *ok_chars_copy = NULL;
char *cancel_chars_copy = NULL;
- if (prompt)
- {
- prompt_copy=BUF_strdup(prompt);
- if (prompt_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ if (prompt) {
+ prompt_copy = BUF_strdup(prompt);
+ if (prompt_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
- if (action_desc)
- {
- action_desc_copy=BUF_strdup(action_desc);
- if (action_desc_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ }
+ if (action_desc) {
+ action_desc_copy = BUF_strdup(action_desc);
+ if (action_desc_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
- if (ok_chars)
- {
- ok_chars_copy=BUF_strdup(ok_chars);
- if (ok_chars_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ }
+ if (ok_chars) {
+ ok_chars_copy = BUF_strdup(ok_chars);
+ if (ok_chars_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
- if (cancel_chars)
- {
- cancel_chars_copy=BUF_strdup(cancel_chars);
- if (cancel_chars_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ }
+ if (cancel_chars) {
+ cancel_chars_copy = BUF_strdup(cancel_chars);
+ if (cancel_chars_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
+ }
return general_allocate_boolean(ui, prompt_copy, action_desc_copy,
- ok_chars_copy, cancel_chars_copy, 1, UIT_BOOLEAN, flags,
- result_buf);
- err:
- if (prompt_copy) free(prompt_copy);
- if (action_desc_copy) free(action_desc_copy);
- if (ok_chars_copy) free(ok_chars_copy);
- if (cancel_chars_copy) free(cancel_chars_copy);
+ ok_chars_copy, cancel_chars_copy, 1, UIT_BOOLEAN, flags,
+ result_buf);
+err:
+ if (prompt_copy)
+ free(prompt_copy);
+ if (action_desc_copy)
+ free(action_desc_copy);
+ if (ok_chars_copy)
+ free(ok_chars_copy);
+ if (cancel_chars_copy)
+ free(cancel_chars_copy);
return -1;
- }
+}
-int UI_add_info_string(UI *ui, const char *text)
- {
+int
+UI_add_info_string(UI * ui, const char *text)
+{
return general_allocate_string(ui, text, 0, UIT_INFO, 0, NULL, 0, 0,
- NULL);
- }
-
-int UI_dup_info_string(UI *ui, const char *text)
- {
- char *text_copy=NULL;
-
- if (text)
- {
- text_copy=BUF_strdup(text);
- if (text_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INFO_STRING,ERR_R_MALLOC_FAILURE);
+ NULL);
+}
+
+int
+UI_dup_info_string(UI * ui, const char *text)
+{
+ char *text_copy = NULL;
+
+ if (text) {
+ text_copy = BUF_strdup(text);
+ if (text_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INFO_STRING, ERR_R_MALLOC_FAILURE);
return -1;
- }
}
-
- return general_allocate_string(ui, text_copy, 1, UIT_INFO, 0, NULL,
- 0, 0, NULL);
}
+ return general_allocate_string(ui, text_copy, 1, UIT_INFO, 0, NULL,
+ 0, 0, NULL);
+}
-int UI_add_error_string(UI *ui, const char *text)
- {
+int
+UI_add_error_string(UI * ui, const char *text)
+{
return general_allocate_string(ui, text, 0, UIT_ERROR, 0, NULL, 0, 0,
- NULL);
- }
-
-int UI_dup_error_string(UI *ui, const char *text)
- {
- char *text_copy=NULL;
-
- if (text)
- {
- text_copy=BUF_strdup(text);
- if (text_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_ERROR_STRING,ERR_R_MALLOC_FAILURE);
+ NULL);
+}
+
+int
+UI_dup_error_string(UI * ui, const char *text)
+{
+ char *text_copy = NULL;
+
+ if (text) {
+ text_copy = BUF_strdup(text);
+ if (text_copy == NULL) {
+ UIerr(UI_F_UI_DUP_ERROR_STRING, ERR_R_MALLOC_FAILURE);
return -1;
- }
}
- return general_allocate_string(ui, text_copy, 1, UIT_ERROR, 0, NULL,
- 0, 0, NULL);
}
+ return general_allocate_string(ui, text_copy, 1, UIT_ERROR, 0, NULL,
+ 0, 0, NULL);
+}
-char *UI_construct_prompt(UI *ui, const char *object_desc,
- const char *object_name)
- {
+char *
+UI_construct_prompt(UI * ui, const char *object_desc,
+ const char *object_name)
+{
char *prompt = NULL;
if (ui->meth->ui_construct_prompt)
prompt = ui->meth->ui_construct_prompt(ui,
- object_desc, object_name);
- else
- {
+ object_desc, object_name);
+ else {
char prompt1[] = "Enter ";
char prompt2[] = " for ";
char prompt3[] = ":";
len += sizeof(prompt2) - 1 + strlen(object_name);
len += sizeof(prompt3) - 1;
- prompt = (char *)malloc(len + 1);
+ prompt = (char *) malloc(len + 1);
BUF_strlcpy(prompt, prompt1, len + 1);
BUF_strlcat(prompt, object_desc, len + 1);
- if (object_name)
- {
+ if (object_name) {
BUF_strlcat(prompt, prompt2, len + 1);
BUF_strlcat(prompt, object_name, len + 1);
- }
- BUF_strlcat(prompt, prompt3, len + 1);
}
- return prompt;
+ BUF_strlcat(prompt, prompt3, len + 1);
}
+ return prompt;
+}
-void *UI_add_user_data(UI *ui, void *user_data)
- {
+void *
+UI_add_user_data(UI * ui, void *user_data)
+{
void *old_data = ui->user_data;
ui->user_data = user_data;
return old_data;
- }
+}
-void *UI_get0_user_data(UI *ui)
- {
+void *
+UI_get0_user_data(UI * ui)
+{
return ui->user_data;
- }
+}
-const char *UI_get0_result(UI *ui, int i)
- {
- if (i < 0)
- {
- UIerr(UI_F_UI_GET0_RESULT,UI_R_INDEX_TOO_SMALL);
+const char *
+UI_get0_result(UI * ui, int i)
+{
+ if (i < 0) {
+ UIerr(UI_F_UI_GET0_RESULT, UI_R_INDEX_TOO_SMALL);
return NULL;
- }
- if (i >= sk_UI_STRING_num(ui->strings))
- {
- UIerr(UI_F_UI_GET0_RESULT,UI_R_INDEX_TOO_LARGE);
+ }
+ if (i >= sk_UI_STRING_num(ui->strings)) {
+ UIerr(UI_F_UI_GET0_RESULT, UI_R_INDEX_TOO_LARGE);
return NULL;
- }
- return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i));
}
+ return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i));
+}
-static int print_error(const char *str, size_t len, UI *ui)
- {
+static int
+print_error(const char *str, size_t len, UI * ui)
+{
UI_STRING uis;
memset(&uis, 0, sizeof(uis));
uis.out_string = str;
if (ui->meth->ui_write_string
- && !ui->meth->ui_write_string(ui, &uis))
+ && !ui->meth->ui_write_string(ui, &uis))
return -1;
return 0;
- }
+}
-int UI_process(UI *ui)
- {
- int i, ok=0;
+int
+UI_process(UI * ui)
+{
+ int i, ok = 0;
if (ui->meth->ui_open_session && !ui->meth->ui_open_session(ui))
return -1;
if (ui->flags & UI_FLAG_PRINT_ERRORS)
ERR_print_errors_cb(
- (int (*)(const char *, size_t, void *))print_error,
- (void *)ui);
+ (int (*) (const char *, size_t, void *)) print_error,
+ (void *) ui);
- for(i=0; i<sk_UI_STRING_num(ui->strings); i++)
- {
+ for (i = 0; i < sk_UI_STRING_num(ui->strings); i++) {
if (ui->meth->ui_write_string
- && !ui->meth->ui_write_string(ui,
- sk_UI_STRING_value(ui->strings, i)))
- {
- ok=-1;
+ && !ui->meth->ui_write_string(ui,
+ sk_UI_STRING_value(ui->strings, i))) {
+ ok = -1;
goto err;
- }
}
+ }
if (ui->meth->ui_flush)
- switch(ui->meth->ui_flush(ui))
- {
- case -1: /* Interrupt/Cancel/something... */
+ switch (ui->meth->ui_flush(ui)) {
+ case -1: /* Interrupt/Cancel/something... */
ok = -2;
goto err;
- case 0: /* Errors */
+ case 0: /* Errors */
ok = -1;
goto err;
- default: /* Success */
+ default: /* Success */
ok = 0;
break;
- }
+ }
- for(i=0; i<sk_UI_STRING_num(ui->strings); i++)
- {
- if (ui->meth->ui_read_string)
- {
- switch(ui->meth->ui_read_string(ui,
- sk_UI_STRING_value(ui->strings, i)))
- {
- case -1: /* Interrupt/Cancel/something... */
+ for (i = 0; i < sk_UI_STRING_num(ui->strings); i++) {
+ if (ui->meth->ui_read_string) {
+ switch (ui->meth->ui_read_string(ui,
+ sk_UI_STRING_value(ui->strings, i))) {
+ case -1: /* Interrupt/Cancel/something... */
ok = -2;
goto err;
- case 0: /* Errors */
+ case 0:/* Errors */
ok = -1;
goto err;
- default: /* Success */
+ default: /* Success */
ok = 0;
break;
- }
}
}
- err:
+ }
+err:
if (ui->meth->ui_close_session && !ui->meth->ui_close_session(ui))
return -1;
return ok;
- }
+}
-int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)(void))
- {
- if (ui == NULL)
- {
- UIerr(UI_F_UI_CTRL,ERR_R_PASSED_NULL_PARAMETER);
+int
+UI_ctrl(UI * ui, int cmd, long i, void *p, void (*f) (void))
+{
+ if (ui == NULL) {
+ UIerr(UI_F_UI_CTRL, ERR_R_PASSED_NULL_PARAMETER);
return -1;
- }
- switch(cmd)
- {
+ }
+ switch (cmd) {
case UI_CTRL_PRINT_ERRORS:
{
- int save_flag = !!(ui->flags & UI_FLAG_PRINT_ERRORS);
- if (i)
- ui->flags |= UI_FLAG_PRINT_ERRORS;
- else
- ui->flags &= ~UI_FLAG_PRINT_ERRORS;
- return save_flag;
+ int save_flag = !!(ui->flags & UI_FLAG_PRINT_ERRORS);
+ if (i)
+ ui->flags |= UI_FLAG_PRINT_ERRORS;
+ else
+ ui->flags &= ~UI_FLAG_PRINT_ERRORS;
+ return save_flag;
}
case UI_CTRL_IS_REDOABLE:
return !!(ui->flags & UI_FLAG_REDOABLE);
default:
break;
- }
- UIerr(UI_F_UI_CTRL,UI_R_UNKNOWN_CONTROL_COMMAND);
- return -1;
}
+ UIerr(UI_F_UI_CTRL, UI_R_UNKNOWN_CONTROL_COMMAND);
+ return -1;
+}
-int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
- CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
- {
+int
+UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new * new_func,
+ CRYPTO_EX_dup * dup_func, CRYPTO_EX_free * free_func)
+{
return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, argl, argp,
- new_func, dup_func, free_func);
- }
-
-int UI_set_ex_data(UI *r, int idx, void *arg)
- {
- return(CRYPTO_set_ex_data(&r->ex_data,idx,arg));
- }
-
-void *UI_get_ex_data(UI *r, int idx)
- {
- return(CRYPTO_get_ex_data(&r->ex_data,idx));
- }
-
-void UI_set_default_method(const UI_METHOD *meth)
- {
- default_UI_meth=meth;
+ new_func, dup_func, free_func);
+}
+
+int
+UI_set_ex_data(UI * r, int idx, void *arg)
+{
+ return (CRYPTO_set_ex_data(&r->ex_data, idx, arg));
+}
+
+void *
+UI_get_ex_data(UI * r, int idx)
+{
+ return (CRYPTO_get_ex_data(&r->ex_data, idx));
+}
+
+void
+UI_set_default_method(const UI_METHOD * meth)
+{
+ default_UI_meth = meth;
+}
+
+const UI_METHOD *
+UI_get_default_method(void)
+{
+ if (default_UI_meth == NULL) {
+ default_UI_meth = UI_OpenSSL();
}
-
-const UI_METHOD *UI_get_default_method(void)
- {
- if (default_UI_meth == NULL)
- {
- default_UI_meth=UI_OpenSSL();
- }
return default_UI_meth;
- }
+}
-const UI_METHOD *UI_get_method(UI *ui)
- {
+const UI_METHOD *
+UI_get_method(UI * ui)
+{
return ui->meth;
- }
+}
-const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth)
- {
- ui->meth=meth;
+const UI_METHOD *
+UI_set_method(UI * ui, const UI_METHOD * meth)
+{
+ ui->meth = meth;
return ui->meth;
- }
+}
-UI_METHOD *UI_create_method(char *name)
- {
- UI_METHOD *ui_method = (UI_METHOD *)malloc(sizeof(UI_METHOD));
+UI_METHOD *
+UI_create_method(char *name)
+{
+ UI_METHOD *ui_method = (UI_METHOD *) malloc(sizeof(UI_METHOD));
- if (ui_method)
- {
+ if (ui_method) {
memset(ui_method, 0, sizeof(*ui_method));
ui_method->name = BUF_strdup(name);
- }
- return ui_method;
}
+ return ui_method;
+}
/* BIG FSCKING WARNING!!!! If you use this on a statically allocated method
(that is, it hasn't been allocated using UI_create_method(), you deserve
anything Murphy can throw at you and more! You have been warned. */
-void UI_destroy_method(UI_METHOD *ui_method)
- {
+void
+UI_destroy_method(UI_METHOD * ui_method)
+{
free(ui_method->name);
ui_method->name = NULL;
free(ui_method);
- }
+}
-int UI_method_set_opener(UI_METHOD *method, int (*opener)(UI *ui))
- {
- if (method)
- {
+int
+UI_method_set_opener(UI_METHOD * method, int (*opener) (UI * ui))
+{
+ if (method) {
method->ui_open_session = opener;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_writer(UI_METHOD *method, int (*writer)(UI *ui, UI_STRING *uis))
- {
- if (method)
- {
+int
+UI_method_set_writer(UI_METHOD * method, int (*writer) (UI * ui, UI_STRING * uis))
+{
+ if (method) {
method->ui_write_string = writer;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui))
- {
- if (method)
- {
+int
+UI_method_set_flusher(UI_METHOD * method, int (*flusher) (UI * ui))
+{
+ if (method) {
method->ui_flush = flusher;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis))
- {
- if (method)
- {
+int
+UI_method_set_reader(UI_METHOD * method, int (*reader) (UI * ui, UI_STRING * uis))
+{
+ if (method) {
method->ui_read_string = reader;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui))
- {
- if (method)
- {
+int
+UI_method_set_closer(UI_METHOD * method, int (*closer) (UI * ui))
+{
+ if (method) {
method->ui_close_session = closer;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI* ui, const char* object_desc, const char* object_name))
- {
- if (method)
- {
+int
+UI_method_set_prompt_constructor(UI_METHOD * method, char *(*prompt_constructor) (UI * ui, const char *object_desc, const char *object_name))
+{
+ if (method) {
method->ui_construct_prompt = prompt_constructor;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int (*UI_method_get_opener(UI_METHOD *method))(UI*)
- {
+int (*
+ UI_method_get_opener(UI_METHOD * method)) (UI *)
+{
if (method)
return method->ui_open_session;
else
return NULL;
- }
+}
-int (*UI_method_get_writer(UI_METHOD *method))(UI*,UI_STRING*)
- {
+int (*
+ UI_method_get_writer(UI_METHOD * method)) (UI *, UI_STRING *)
+{
if (method)
return method->ui_write_string;
else
return NULL;
- }
+}
-int (*UI_method_get_flusher(UI_METHOD *method))(UI*)
- {
+int (*
+ UI_method_get_flusher(UI_METHOD * method)) (UI *)
+{
if (method)
return method->ui_flush;
else
return NULL;
- }
+}
-int (*UI_method_get_reader(UI_METHOD *method))(UI*,UI_STRING*)
- {
+int (*
+ UI_method_get_reader(UI_METHOD * method)) (UI *, UI_STRING *)
+{
if (method)
return method->ui_read_string;
else
return NULL;
- }
+}
-int (*UI_method_get_closer(UI_METHOD *method))(UI*)
- {
+int (*
+ UI_method_get_closer(UI_METHOD * method)) (UI *)
+{
if (method)
return method->ui_close_session;
else
return NULL;
- }
+}
-char* (*UI_method_get_prompt_constructor(UI_METHOD *method))(UI*, const char*, const char*)
- {
+char *(*
+ UI_method_get_prompt_constructor(UI_METHOD * method)) (UI *, const char *, const char *)
+{
if (method)
return method->ui_construct_prompt;
else
return NULL;
- }
+}
-enum UI_string_types UI_get_string_type(UI_STRING *uis)
- {
+enum UI_string_types
+UI_get_string_type(UI_STRING * uis)
+{
if (!uis)
return UIT_NONE;
return uis->type;
- }
+}
-int UI_get_input_flags(UI_STRING *uis)
- {
+int
+UI_get_input_flags(UI_STRING * uis)
+{
if (!uis)
return 0;
return uis->input_flags;
- }
+}
-const char *UI_get0_output_string(UI_STRING *uis)
- {
+const char *
+UI_get0_output_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
return uis->out_string;
- }
+}
-const char *UI_get0_action_string(UI_STRING *uis)
- {
+const char *
+UI_get0_action_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_BOOLEAN:
return uis->_.boolean_data.action_desc;
default:
return NULL;
- }
}
+}
-const char *UI_get0_result_string(UI_STRING *uis)
- {
+const char *
+UI_get0_result_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
return uis->result_buf;
default:
return NULL;
- }
}
+}
-const char *UI_get0_test_string(UI_STRING *uis)
- {
+const char *
+UI_get0_test_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_VERIFY:
return uis->_.string_data.test_buf;
default:
return NULL;
- }
}
+}
-int UI_get_result_minsize(UI_STRING *uis)
- {
+int
+UI_get_result_minsize(UI_STRING * uis)
+{
if (!uis)
return -1;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
return uis->_.string_data.result_minsize;
default:
return -1;
- }
}
+}
-int UI_get_result_maxsize(UI_STRING *uis)
- {
+int
+UI_get_result_maxsize(UI_STRING * uis)
+{
if (!uis)
return -1;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
return uis->_.string_data.result_maxsize;
default:
return -1;
- }
}
+}
-int UI_set_result(UI *ui, UI_STRING *uis, const char *result)
- {
+int
+UI_set_result(UI * ui, UI_STRING * uis, const char *result)
+{
int l = strlen(result);
ui->flags &= ~UI_FLAG_REDOABLE;
if (!uis)
return -1;
- switch (uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
{
- char number1[DECIMAL_SIZE(uis->_.string_data.result_minsize)+1];
- char number2[DECIMAL_SIZE(uis->_.string_data.result_maxsize)+1];
-
- (void) snprintf(number1, sizeof(number1), "%d",
- uis->_.string_data.result_minsize);
- (void) snprintf(number2, sizeof(number2), "%d",
- uis->_.string_data.result_maxsize);
-
- if (l < uis->_.string_data.result_minsize)
- {
- ui->flags |= UI_FLAG_REDOABLE;
- UIerr(UI_F_UI_SET_RESULT,UI_R_RESULT_TOO_SMALL);
- ERR_add_error_data(5,"You must type in ",
- number1," to ",number2," characters");
- return -1;
+ char number1[DECIMAL_SIZE(uis->_.string_data.result_minsize) + 1];
+ char number2[DECIMAL_SIZE(uis->_.string_data.result_maxsize) + 1];
+
+ (void) snprintf(number1, sizeof(number1), "%d",
+ uis->_.string_data.result_minsize);
+ (void) snprintf(number2, sizeof(number2), "%d",
+ uis->_.string_data.result_maxsize);
+
+ if (l < uis->_.string_data.result_minsize) {
+ ui->flags |= UI_FLAG_REDOABLE;
+ UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_SMALL);
+ ERR_add_error_data(5, "You must type in ",
+ number1, " to ", number2, " characters");
+ return -1;
}
- if (l > uis->_.string_data.result_maxsize)
- {
- ui->flags |= UI_FLAG_REDOABLE;
- UIerr(UI_F_UI_SET_RESULT,UI_R_RESULT_TOO_LARGE);
- ERR_add_error_data(5,"You must type in ",
- number1," to ",number2," characters");
- return -1;
+ if (l > uis->_.string_data.result_maxsize) {
+ ui->flags |= UI_FLAG_REDOABLE;
+ UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_LARGE);
+ ERR_add_error_data(5, "You must type in ",
+ number1, " to ", number2, " characters");
+ return -1;
}
}
- if (!uis->result_buf)
- {
- UIerr(UI_F_UI_SET_RESULT,UI_R_NO_RESULT_BUFFER);
+ if (!uis->result_buf) {
+ UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER);
return -1;
- }
-
+ }
BUF_strlcpy(uis->result_buf, result,
- uis->_.string_data.result_maxsize + 1);
+ uis->_.string_data.result_maxsize + 1);
break;
case UIT_BOOLEAN:
{
- const char *p;
+ const char *p;
- if (!uis->result_buf)
- {
- UIerr(UI_F_UI_SET_RESULT,UI_R_NO_RESULT_BUFFER);
- return -1;
+ if (!uis->result_buf) {
+ UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER);
+ return -1;
}
-
- uis->result_buf[0] = '\0';
- for(p = result; *p; p++)
- {
- if (strchr(uis->_.boolean_data.ok_chars, *p))
- {
- uis->result_buf[0] =
- uis->_.boolean_data.ok_chars[0];
- break;
+ uis->result_buf[0] = '\0';
+ for (p = result; *p; p++) {
+ if (strchr(uis->_.boolean_data.ok_chars, *p)) {
+ uis->result_buf[0] =
+ uis->_.boolean_data.ok_chars[0];
+ break;
}
- if (strchr(uis->_.boolean_data.cancel_chars, *p))
- {
- uis->result_buf[0] =
- uis->_.boolean_data.cancel_chars[0];
- break;
+ if (strchr(uis->_.boolean_data.cancel_chars, *p)) {
+ uis->result_buf[0] =
+ uis->_.boolean_data.cancel_chars[0];
+ break;
}
}
default:
- break;
- }
+ break;
}
- return 0;
}
+ return 0;
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
- *
+ *
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
+ *
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
+ * 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
+ *
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
- *
+ *
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
#include <unistd.h>
/* 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
#include "ui_locl.h"
#include "cryptlib.h"
*/
#ifdef _LIBC
-# undef TERMIOS
-# define TERMIO
-# undef SGTTY
+#undef TERMIOS
+#define TERMIO
+#undef SGTTY
#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)
+#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)
+#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
-# include <sys/ioctl.h>
+#include <sys/ioctl.h>
#ifndef NX509_SIG
-# define NX509_SIG 32
+#define NX509_SIG 32
#endif
#ifdef SIGACTION
static struct sigaction savsig[NX509_SIG];
#else
-static void (*savsig[NX509_SIG])(int );
+static void (*savsig[NX509_SIG]) (int);
#endif
-static TTY_STRUCT tty_orig,tty_new;
+static TTY_STRUCT tty_orig, tty_new;
static FILE *tty_in, *tty_out;
static int is_a_tty;
static void recsig(int);
static void pushsig(void);
static void popsig(void);
-static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl);
+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 write_string(UI *ui, UI_STRING *uis);
+static int read_string(UI * ui, UI_STRING * uis);
+static int write_string(UI * ui, UI_STRING * uis);
-static int open_console(UI *ui);
-static int echo_console(UI *ui);
-static int noecho_console(UI *ui);
-static int close_console(UI *ui);
+static int open_console(UI * ui);
+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,
read_string,
close_console,
NULL
- };
+};
/* The method with all the built-in thingies */
-UI_METHOD *UI_OpenSSL(void)
- {
+UI_METHOD *
+UI_OpenSSL(void)
+{
return &ui_openssl;
- }
+}
/* The following function makes sure that info and error strings are printed
before any prompt. */
-static int write_string(UI *ui, UI_STRING *uis)
- {
- switch (UI_get_string_type(uis))
- {
- case UIT_ERROR:
- case UIT_INFO:
+static int
+write_string(UI * ui, UI_STRING * uis)
+{
+ switch (UI_get_string_type(uis)) {
+ case UIT_ERROR:
+ case UIT_INFO:
fputs(UI_get0_output_string(uis), tty_out);
fflush(tty_out);
break;
default:
break;
- }
- return 1;
}
+ return 1;
+}
-static int read_string(UI *ui, UI_STRING *uis)
- {
+static int
+read_string(UI * ui, UI_STRING * uis)
+{
int ok = 0;
- switch (UI_get_string_type(uis))
- {
+ switch (UI_get_string_type(uis)) {
case UIT_BOOLEAN:
fputs(UI_get0_output_string(uis), tty_out);
fputs(UI_get0_action_string(uis), tty_out);
fflush(tty_out);
return read_string_inner(ui, uis,
- UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 0);
+ UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 0);
case UIT_PROMPT:
fputs(UI_get0_output_string(uis), tty_out);
fflush(tty_out);
return read_string_inner(ui, uis,
- UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1);
+ UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1);
case UIT_VERIFY:
- fprintf(tty_out,"Verifying - %s",
- UI_get0_output_string(uis));
+ fprintf(tty_out, "Verifying - %s",
+ UI_get0_output_string(uis));
fflush(tty_out);
if ((ok = read_string_inner(ui, uis,
- UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1)) <= 0)
+ UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1)) <= 0)
return ok;
if (strcmp(UI_get0_result_string(uis),
- UI_get0_test_string(uis)) != 0)
- {
- fprintf(tty_out,"Verify failure\n");
+ UI_get0_test_string(uis)) != 0) {
+ fprintf(tty_out, "Verify failure\n");
fflush(tty_out);
return 0;
- }
+ }
break;
default:
break;
- }
- return 1;
}
+ return 1;
+}
/* Internal functions to read a string without echoing */
-static int read_till_nl(FILE *in)
- {
+static int
+read_till_nl(FILE * in)
+{
#define SIZE 4
- char buf[SIZE+1];
+ char buf[SIZE + 1];
- do {
- if (!fgets(buf,SIZE,in))
+ do {
+ if (!fgets(buf, SIZE, in))
return 0;
- } while (strchr(buf,'\n') == NULL);
+ } while (strchr(buf, '\n') == NULL);
return 1;
- }
+}
static volatile sig_atomic_t intr_signal;
-static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
- {
+static int
+read_string_inner(UI * ui, UI_STRING * uis, int echo, int strip_nl)
+{
static int ps;
int ok;
char result[BUFSIZ];
- int maxsize = BUFSIZ-1;
+ int maxsize = BUFSIZ - 1;
char *p;
- intr_signal=0;
- ok=0;
- ps=0;
+ intr_signal = 0;
+ ok = 0;
+ ps = 0;
pushsig();
- ps=1;
+ ps = 1;
if (!echo && !noecho_console(ui))
goto error;
- ps=2;
+ ps = 2;
- result[0]='\0';
- p=fgets(result,maxsize,tty_in);
- if(!p)
+ result[0] = '\0';
+ p = fgets(result, maxsize, tty_in);
+ if (!p)
goto error;
- if (feof(tty_in)) goto error;
- if (ferror(tty_in)) goto error;
- if ((p=(char *)strchr(result,'\n')) != NULL)
- {
+ if (feof(tty_in))
+ goto error;
+ if (ferror(tty_in))
+ goto error;
+ if ((p = (char *) strchr(result, '\n')) != NULL) {
if (strip_nl)
- *p='\0';
- }
- else
- if (!read_till_nl(tty_in))
- goto error;
+ *p = '\0';
+ } else if (!read_till_nl(tty_in))
+ goto error;
if (UI_set_result(ui, uis, result) >= 0)
- ok=1;
+ ok = 1;
error:
if (intr_signal == SIGINT)
- ok=-1;
- if (!echo) fprintf(tty_out,"\n");
+ ok = -1;
+ if (!echo)
+ fprintf(tty_out, "\n");
if (ps >= 2 && !echo && !echo_console(ui))
- ok=0;
+ ok = 0;
if (ps >= 1)
popsig();
- OPENSSL_cleanse(result,BUFSIZ);
+ OPENSSL_cleanse(result, BUFSIZ);
return ok;
- }
+}
/* Internal functions to open, handle and close a channel to the console. */
-static int open_console(UI *ui)
- {
+static int
+open_console(UI * ui)
+{
CRYPTO_w_lock(CRYPTO_LOCK_UI);
is_a_tty = 1;
-# define DEV_TTY "/dev/tty"
- if ((tty_in=fopen(DEV_TTY,"r")) == NULL)
- tty_in=stdin;
- if ((tty_out=fopen(DEV_TTY,"w")) == NULL)
- tty_out=stderr;
+#define DEV_TTY "/dev/tty"
+ if ((tty_in = fopen(DEV_TTY, "r")) == NULL)
+ tty_in = stdin;
+ if ((tty_out = fopen(DEV_TTY, "w")) == NULL)
+ tty_out = stderr;
#if defined(TTY_get)
- if (TTY_get(fileno(tty_in),&tty_orig) == -1)
- {
+ if (TTY_get(fileno(tty_in), &tty_orig) == -1) {
if (errno == ENOTTY)
- is_a_tty=0;
+ is_a_tty = 0;
else
- /* Ariel Glenn ariel@columbia.edu reports that solaris
- * can return EINVAL instead. This should be ok */
+ /*
+ * Ariel Glenn ariel@columbia.edu reports that
+ * solaris can return EINVAL instead. This should be
+ * ok
+ */
if (errno == EINVAL)
- is_a_tty=0;
+ is_a_tty = 0;
else
return 0;
- }
+ }
#endif
return 1;
- }
+}
-static int noecho_console(UI *ui)
- {
+static int
+noecho_console(UI * ui)
+{
#ifdef TTY_FLAGS
- memcpy(&(tty_new),&(tty_orig),sizeof(tty_orig));
+ memcpy(&(tty_new), &(tty_orig), sizeof(tty_orig));
tty_new.TTY_FLAGS &= ~ECHO;
#endif
#if defined(TTY_set)
- if (is_a_tty && (TTY_set(fileno(tty_in),&tty_new) == -1))
+ if (is_a_tty && (TTY_set(fileno(tty_in), &tty_new) == -1))
return 0;
#endif
return 1;
- }
+}
-static int echo_console(UI *ui)
- {
+static int
+echo_console(UI * ui)
+{
#if defined(TTY_set)
- memcpy(&(tty_new),&(tty_orig),sizeof(tty_orig));
+ memcpy(&(tty_new), &(tty_orig), sizeof(tty_orig));
tty_new.TTY_FLAGS |= ECHO;
#endif
#if defined(TTY_set)
- if (is_a_tty && (TTY_set(fileno(tty_in),&tty_new) == -1))
+ if (is_a_tty && (TTY_set(fileno(tty_in), &tty_new) == -1))
return 0;
#endif
return 1;
- }
-
-static int close_console(UI *ui)
- {
- if (tty_in != stdin) fclose(tty_in);
- if (tty_out != stderr) fclose(tty_out);
+}
+
+static int
+close_console(UI * ui)
+{
+ if (tty_in != stdin)
+ fclose(tty_in);
+ if (tty_out != stderr)
+ fclose(tty_out);
CRYPTO_w_unlock(CRYPTO_LOCK_UI);
return 1;
- }
+}
/* Internal functions to handle signals and act on them */
-static void pushsig(void)
- {
+static void
+pushsig(void)
+{
int i;
#ifdef SIGACTION
struct sigaction sa;
- memset(&sa,0,sizeof sa);
- sa.sa_handler=recsig;
+ memset(&sa, 0, sizeof sa);
+ sa.sa_handler = recsig;
#endif
- for (i=1; i<NX509_SIG; i++)
- {
+ for (i = 1; i < NX509_SIG; i++) {
#ifdef SIGUSR1
if (i == SIGUSR1)
continue;
continue;
#endif
#ifdef SIGKILL
- if (i == SIGKILL) /* We can't make any action on that. */
+ if (i == SIGKILL) /* We can't make any action on that. */
continue;
#endif
#ifdef SIGACTION
- sigaction(i,&sa,&savsig[i]);
+ sigaction(i, &sa, &savsig[i]);
#else
- savsig[i]=signal(i,recsig);
+ savsig[i] = signal(i, recsig);
#endif
- }
+ }
#ifdef SIGWINCH
- signal(SIGWINCH,SIG_DFL);
+ signal(SIGWINCH, SIG_DFL);
#endif
- }
+}
-static void popsig(void)
- {
+static void
+popsig(void)
+{
int i;
- for (i=1; i<NX509_SIG; i++)
- {
+ for (i = 1; i < NX509_SIG; i++) {
if (i == SIGUSR1)
continue;
if (i == SIGUSR2)
continue;
#ifdef SIGACTION
- sigaction(i,&savsig[i],NULL);
+ sigaction(i, &savsig[i], NULL);
#else
- signal(i,savsig[i]);
+ signal(i, savsig[i]);
#endif
- }
}
+}
-static void recsig(int i)
- {
- intr_signal=i;
- }
+static void
+recsig(int i)
+{
+ intr_signal = i;
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#include <string.h>
#include "ui_locl.h"
-int UI_UTIL_read_pw_string(char *buf,int length,const char *prompt,int verify)
- {
+int
+UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, int verify)
+{
char buff[BUFSIZ];
int ret;
- ret=UI_UTIL_read_pw(buf,buff,(length>BUFSIZ)?BUFSIZ:length,prompt,verify);
- OPENSSL_cleanse(buff,BUFSIZ);
- return(ret);
- }
+ ret = UI_UTIL_read_pw(buf, buff, (length > BUFSIZ) ? BUFSIZ : length, prompt, verify);
+ OPENSSL_cleanse(buff, BUFSIZ);
+ return (ret);
+}
-int UI_UTIL_read_pw(char *buf,char *buff,int size,const char *prompt,int verify)
- {
+int
+UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, int verify)
+{
int ok = 0;
UI *ui;
return -1;
ui = UI_new();
- if (ui)
- {
- ok = UI_add_input_string(ui,prompt,0,buf,0,size-1);
+ if (ui) {
+ ok = UI_add_input_string(ui, prompt, 0, buf, 0, size - 1);
if (ok >= 0 && verify)
- ok = UI_add_verify_string(ui,prompt,0,buff,0,size-1,
- buf);
+ ok = UI_add_verify_string(ui, prompt, 0, buff, 0, size - 1,
+ buf);
if (ok >= 0)
- ok=UI_process(ui);
+ ok = UI_process(ui);
UI_free(ui);
- }
+ }
if (ok > 0)
ok = 0;
- return(ok);
- }
+ return (ok);
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#include <string.h>
#include <openssl/ui_compat.h>
-int _ossl_old_des_read_pw_string(char *buf,int length,const char *prompt,int verify)
- {
+int
+_ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, int verify)
+{
return UI_UTIL_read_pw_string(buf, length, prompt, verify);
- }
+}
-int _ossl_old_des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify)
- {
+int
+_ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, int verify)
+{
return UI_UTIL_read_pw(buf, buff, size, prompt, verify);
- }
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#define ERR_FUNC(func) ERR_PACK(ERR_LIB_UI,func,0)
#define ERR_REASON(reason) ERR_PACK(ERR_LIB_UI,0,reason)
-static ERR_STRING_DATA UI_str_functs[]=
- {
-{ERR_FUNC(UI_F_GENERAL_ALLOCATE_BOOLEAN), "GENERAL_ALLOCATE_BOOLEAN"},
-{ERR_FUNC(UI_F_GENERAL_ALLOCATE_PROMPT), "GENERAL_ALLOCATE_PROMPT"},
-{ERR_FUNC(UI_F_GENERAL_ALLOCATE_STRING), "GENERAL_ALLOCATE_STRING"},
-{ERR_FUNC(UI_F_UI_CTRL), "UI_ctrl"},
-{ERR_FUNC(UI_F_UI_DUP_ERROR_STRING), "UI_dup_error_string"},
-{ERR_FUNC(UI_F_UI_DUP_INFO_STRING), "UI_dup_info_string"},
-{ERR_FUNC(UI_F_UI_DUP_INPUT_BOOLEAN), "UI_dup_input_boolean"},
-{ERR_FUNC(UI_F_UI_DUP_INPUT_STRING), "UI_dup_input_string"},
-{ERR_FUNC(UI_F_UI_DUP_VERIFY_STRING), "UI_dup_verify_string"},
-{ERR_FUNC(UI_F_UI_GET0_RESULT), "UI_get0_result"},
-{ERR_FUNC(UI_F_UI_NEW_METHOD), "UI_new_method"},
-{ERR_FUNC(UI_F_UI_SET_RESULT), "UI_set_result"},
-{0,NULL}
- };
+static ERR_STRING_DATA UI_str_functs[] =
+{
+ {ERR_FUNC(UI_F_GENERAL_ALLOCATE_BOOLEAN), "GENERAL_ALLOCATE_BOOLEAN"},
+ {ERR_FUNC(UI_F_GENERAL_ALLOCATE_PROMPT), "GENERAL_ALLOCATE_PROMPT"},
+ {ERR_FUNC(UI_F_GENERAL_ALLOCATE_STRING), "GENERAL_ALLOCATE_STRING"},
+ {ERR_FUNC(UI_F_UI_CTRL), "UI_ctrl"},
+ {ERR_FUNC(UI_F_UI_DUP_ERROR_STRING), "UI_dup_error_string"},
+ {ERR_FUNC(UI_F_UI_DUP_INFO_STRING), "UI_dup_info_string"},
+ {ERR_FUNC(UI_F_UI_DUP_INPUT_BOOLEAN), "UI_dup_input_boolean"},
+ {ERR_FUNC(UI_F_UI_DUP_INPUT_STRING), "UI_dup_input_string"},
+ {ERR_FUNC(UI_F_UI_DUP_VERIFY_STRING), "UI_dup_verify_string"},
+ {ERR_FUNC(UI_F_UI_GET0_RESULT), "UI_get0_result"},
+ {ERR_FUNC(UI_F_UI_NEW_METHOD), "UI_new_method"},
+ {ERR_FUNC(UI_F_UI_SET_RESULT), "UI_set_result"},
+ {0, NULL}
+};
-static ERR_STRING_DATA UI_str_reasons[]=
- {
-{ERR_REASON(UI_R_COMMON_OK_AND_CANCEL_CHARACTERS),"common ok and cancel characters"},
-{ERR_REASON(UI_R_INDEX_TOO_LARGE) ,"index too large"},
-{ERR_REASON(UI_R_INDEX_TOO_SMALL) ,"index too small"},
-{ERR_REASON(UI_R_NO_RESULT_BUFFER) ,"no result buffer"},
-{ERR_REASON(UI_R_RESULT_TOO_LARGE) ,"result too large"},
-{ERR_REASON(UI_R_RESULT_TOO_SMALL) ,"result too small"},
-{ERR_REASON(UI_R_UNKNOWN_CONTROL_COMMAND),"unknown control command"},
-{0,NULL}
- };
+static ERR_STRING_DATA UI_str_reasons[] =
+{
+ {ERR_REASON(UI_R_COMMON_OK_AND_CANCEL_CHARACTERS), "common ok and cancel characters"},
+ {ERR_REASON(UI_R_INDEX_TOO_LARGE), "index too large"},
+ {ERR_REASON(UI_R_INDEX_TOO_SMALL), "index too small"},
+ {ERR_REASON(UI_R_NO_RESULT_BUFFER), "no result buffer"},
+ {ERR_REASON(UI_R_RESULT_TOO_LARGE), "result too large"},
+ {ERR_REASON(UI_R_RESULT_TOO_SMALL), "result too small"},
+ {ERR_REASON(UI_R_UNKNOWN_CONTROL_COMMAND), "unknown control command"},
+ {0, NULL}
+};
#endif
-void ERR_load_UI_strings(void)
- {
+void
+ERR_load_UI_strings(void)
+{
#ifndef OPENSSL_NO_ERR
- if (ERR_func_error_string(UI_str_functs[0].error) == NULL)
- {
- ERR_load_strings(0,UI_str_functs);
- ERR_load_strings(0,UI_str_reasons);
- }
-#endif
+ if (ERR_func_error_string(UI_str_functs[0].error) == NULL) {
+ ERR_load_strings(0, UI_str_functs);
+ ERR_load_strings(0, UI_str_reasons);
}
+#endif
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#include "ui_locl.h"
IMPLEMENT_STACK_OF(UI_STRING_ST)
+ static const UI_METHOD *default_UI_meth = NULL;
-static const UI_METHOD *default_UI_meth=NULL;
+ UI *UI_new(void)
+{
+ return (UI_new_method(NULL));
+}
-UI *UI_new(void)
- {
- return(UI_new_method(NULL));
- }
-
-UI *UI_new_method(const UI_METHOD *method)
- {
+UI *
+UI_new_method(const UI_METHOD * method)
+{
UI *ret;
- ret=(UI *)malloc(sizeof(UI));
- if (ret == NULL)
- {
- UIerr(UI_F_UI_NEW_METHOD,ERR_R_MALLOC_FAILURE);
+ ret = (UI *) malloc(sizeof(UI));
+ if (ret == NULL) {
+ UIerr(UI_F_UI_NEW_METHOD, ERR_R_MALLOC_FAILURE);
return NULL;
- }
+ }
if (method == NULL)
- ret->meth=UI_get_default_method();
+ ret->meth = UI_get_default_method();
else
- ret->meth=method;
+ ret->meth = method;
- ret->strings=NULL;
- ret->user_data=NULL;
- ret->flags=0;
+ ret->strings = NULL;
+ ret->user_data = NULL;
+ ret->flags = 0;
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data);
return ret;
- }
-
-static void free_string(UI_STRING *uis)
- {
- if (uis->flags & OUT_STRING_FREEABLE)
- {
- free((char *)uis->out_string);
- switch(uis->type)
- {
+}
+
+static void
+free_string(UI_STRING * uis)
+{
+ if (uis->flags & OUT_STRING_FREEABLE) {
+ free((char *) uis->out_string);
+ switch (uis->type) {
case UIT_BOOLEAN:
- free((char *)uis->_.boolean_data.action_desc);
- free((char *)uis->_.boolean_data.ok_chars);
- free((char *)uis->_.boolean_data.cancel_chars);
+ free((char *) uis->_.boolean_data.action_desc);
+ free((char *) uis->_.boolean_data.ok_chars);
+ free((char *) uis->_.boolean_data.cancel_chars);
break;
default:
break;
- }
}
- free(uis);
}
+ free(uis);
+}
-void UI_free(UI *ui)
- {
+void
+UI_free(UI * ui)
+{
if (ui == NULL)
return;
- sk_UI_STRING_pop_free(ui->strings,free_string);
+ sk_UI_STRING_pop_free(ui->strings, free_string);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_UI, ui, &ui->ex_data);
free(ui);
- }
-
-static int allocate_string_stack(UI *ui)
- {
- if (ui->strings == NULL)
- {
- ui->strings=sk_UI_STRING_new_null();
- if (ui->strings == NULL)
- {
+}
+
+static int
+allocate_string_stack(UI * ui)
+{
+ if (ui->strings == NULL) {
+ ui->strings = sk_UI_STRING_new_null();
+ if (ui->strings == NULL) {
return -1;
- }
}
- return 0;
}
+ return 0;
+}
-static UI_STRING *general_allocate_prompt(UI *ui, const char *prompt,
- int prompt_freeable, enum UI_string_types type, int input_flags,
- char *result_buf)
- {
+static UI_STRING *
+general_allocate_prompt(UI * ui, const char *prompt,
+ int prompt_freeable, enum UI_string_types type, int input_flags,
+ char *result_buf)
+{
UI_STRING *ret = NULL;
- if (prompt == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_PROMPT,ERR_R_PASSED_NULL_PARAMETER);
- }
- else if ((type == UIT_PROMPT || type == UIT_VERIFY
- || type == UIT_BOOLEAN) && result_buf == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_PROMPT,UI_R_NO_RESULT_BUFFER);
- }
- else if ((ret = (UI_STRING *)malloc(sizeof(UI_STRING))))
- {
- ret->out_string=prompt;
- ret->flags=prompt_freeable ? OUT_STRING_FREEABLE : 0;
- ret->input_flags=input_flags;
- ret->type=type;
- ret->result_buf=result_buf;
- }
- return ret;
+ if (prompt == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_PROMPT, ERR_R_PASSED_NULL_PARAMETER);
+ } else if ((type == UIT_PROMPT || type == UIT_VERIFY
+ || type == UIT_BOOLEAN) && result_buf == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_PROMPT, UI_R_NO_RESULT_BUFFER);
+ } else if ((ret = (UI_STRING *) malloc(sizeof(UI_STRING)))) {
+ ret->out_string = prompt;
+ ret->flags = prompt_freeable ? OUT_STRING_FREEABLE : 0;
+ ret->input_flags = input_flags;
+ ret->type = type;
+ ret->result_buf = result_buf;
}
+ return ret;
+}
-static int general_allocate_string(UI *ui, const char *prompt,
- int prompt_freeable, enum UI_string_types type, int input_flags,
- char *result_buf, int minsize, int maxsize, const char *test_buf)
- {
+static int
+general_allocate_string(UI * ui, const char *prompt,
+ int prompt_freeable, enum UI_string_types type, int input_flags,
+ char *result_buf, int minsize, int maxsize, const char *test_buf)
+{
int ret = -1;
UI_STRING *s = general_allocate_prompt(ui, prompt, prompt_freeable,
- type, input_flags, result_buf);
-
- if (s)
- {
- if (allocate_string_stack(ui) >= 0)
- {
- s->_.string_data.result_minsize=minsize;
- s->_.string_data.result_maxsize=maxsize;
- s->_.string_data.test_buf=test_buf;
- ret=sk_UI_STRING_push(ui->strings, s);
+ type, input_flags, result_buf);
+
+ if (s) {
+ if (allocate_string_stack(ui) >= 0) {
+ s->_.string_data.result_minsize = minsize;
+ s->_.string_data.result_maxsize = maxsize;
+ s->_.string_data.test_buf = test_buf;
+ ret = sk_UI_STRING_push(ui->strings, s);
/* sk_push() returns 0 on error. Let's addapt that */
- if (ret <= 0) ret--;
- }
- else
+ if (ret <= 0)
+ ret--;
+ } else
free_string(s);
- }
- return ret;
}
-
-static int general_allocate_boolean(UI *ui,
- const char *prompt, const char *action_desc,
- const char *ok_chars, const char *cancel_chars,
- int prompt_freeable, enum UI_string_types type, int input_flags,
- char *result_buf)
- {
+ return ret;
+}
+
+static int
+general_allocate_boolean(UI * ui,
+ const char *prompt, const char *action_desc,
+ const char *ok_chars, const char *cancel_chars,
+ int prompt_freeable, enum UI_string_types type, int input_flags,
+ char *result_buf)
+{
int ret = -1;
UI_STRING *s;
const char *p;
- if (ok_chars == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN,ERR_R_PASSED_NULL_PARAMETER);
- }
- else if (cancel_chars == NULL)
- {
- UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN,ERR_R_PASSED_NULL_PARAMETER);
- }
- else
- {
- for(p = ok_chars; *p; p++)
- {
- if (strchr(cancel_chars, *p))
- {
+ if (ok_chars == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN, ERR_R_PASSED_NULL_PARAMETER);
+ } else if (cancel_chars == NULL) {
+ UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN, ERR_R_PASSED_NULL_PARAMETER);
+ } else {
+ for (p = ok_chars; *p; p++) {
+ if (strchr(cancel_chars, *p)) {
UIerr(UI_F_GENERAL_ALLOCATE_BOOLEAN,
- UI_R_COMMON_OK_AND_CANCEL_CHARACTERS);
- }
+ UI_R_COMMON_OK_AND_CANCEL_CHARACTERS);
}
+ }
s = general_allocate_prompt(ui, prompt, prompt_freeable,
- type, input_flags, result_buf);
+ type, input_flags, result_buf);
- if (s)
- {
- if (allocate_string_stack(ui) >= 0)
- {
+ if (s) {
+ if (allocate_string_stack(ui) >= 0) {
s->_.boolean_data.action_desc = action_desc;
s->_.boolean_data.ok_chars = ok_chars;
s->_.boolean_data.cancel_chars = cancel_chars;
- ret=sk_UI_STRING_push(ui->strings, s);
- /* sk_push() returns 0 on error.
- Let's addapt that */
- if (ret <= 0) ret--;
- }
- else
+ ret = sk_UI_STRING_push(ui->strings, s);
+ /*
+ * sk_push() returns 0 on error. Let's addapt
+ * that
+ */
+ if (ret <= 0)
+ ret--;
+ } else
free_string(s);
- }
}
- return ret;
}
+ return ret;
+}
/* Returns the index to the place in the stack or -1 for error. Uses a
direct reference to the prompt. */
-int UI_add_input_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize)
- {
+int
+UI_add_input_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize)
+{
return general_allocate_string(ui, prompt, 0,
- UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
- }
+ UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
+}
/* Same as UI_add_input_string(), excepts it takes a copy of the prompt */
-int UI_dup_input_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize)
- {
- char *prompt_copy=NULL;
+int
+UI_dup_input_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize)
+{
+ char *prompt_copy = NULL;
- if (prompt)
- {
- prompt_copy=BUF_strdup(prompt);
- if (prompt_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_STRING,ERR_R_MALLOC_FAILURE);
+ if (prompt) {
+ prompt_copy = BUF_strdup(prompt);
+ if (prompt_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_STRING, ERR_R_MALLOC_FAILURE);
return 0;
- }
}
-
- return general_allocate_string(ui, prompt_copy, 1,
- UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
}
+ return general_allocate_string(ui, prompt_copy, 1,
+ UIT_PROMPT, flags, result_buf, minsize, maxsize, NULL);
+}
-int UI_add_verify_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize, const char *test_buf)
- {
+int
+UI_add_verify_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize, const char *test_buf)
+{
return general_allocate_string(ui, prompt, 0,
- UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
- }
+ UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
+}
-int UI_dup_verify_string(UI *ui, const char *prompt, int flags,
- char *result_buf, int minsize, int maxsize, const char *test_buf)
- {
- char *prompt_copy=NULL;
+int
+UI_dup_verify_string(UI * ui, const char *prompt, int flags,
+ char *result_buf, int minsize, int maxsize, const char *test_buf)
+{
+ char *prompt_copy = NULL;
- if (prompt)
- {
- prompt_copy=BUF_strdup(prompt);
- if (prompt_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_VERIFY_STRING,ERR_R_MALLOC_FAILURE);
+ if (prompt) {
+ prompt_copy = BUF_strdup(prompt);
+ if (prompt_copy == NULL) {
+ UIerr(UI_F_UI_DUP_VERIFY_STRING, ERR_R_MALLOC_FAILURE);
return -1;
- }
}
-
- return general_allocate_string(ui, prompt_copy, 1,
- UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
}
-
-int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,
- const char *ok_chars, const char *cancel_chars,
- int flags, char *result_buf)
- {
+ return general_allocate_string(ui, prompt_copy, 1,
+ UIT_VERIFY, flags, result_buf, minsize, maxsize, test_buf);
+}
+
+int
+UI_add_input_boolean(UI * ui, const char *prompt, const char *action_desc,
+ const char *ok_chars, const char *cancel_chars,
+ int flags, char *result_buf)
+{
return general_allocate_boolean(ui, prompt, action_desc,
- ok_chars, cancel_chars, 0, UIT_BOOLEAN, flags, result_buf);
- }
-
-int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
- const char *ok_chars, const char *cancel_chars,
- int flags, char *result_buf)
- {
+ ok_chars, cancel_chars, 0, UIT_BOOLEAN, flags, result_buf);
+}
+
+int
+UI_dup_input_boolean(UI * ui, const char *prompt, const char *action_desc,
+ const char *ok_chars, const char *cancel_chars,
+ int flags, char *result_buf)
+{
char *prompt_copy = NULL;
char *action_desc_copy = NULL;
char *ok_chars_copy = NULL;
char *cancel_chars_copy = NULL;
- if (prompt)
- {
- prompt_copy=BUF_strdup(prompt);
- if (prompt_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ if (prompt) {
+ prompt_copy = BUF_strdup(prompt);
+ if (prompt_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
- if (action_desc)
- {
- action_desc_copy=BUF_strdup(action_desc);
- if (action_desc_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ }
+ if (action_desc) {
+ action_desc_copy = BUF_strdup(action_desc);
+ if (action_desc_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
- if (ok_chars)
- {
- ok_chars_copy=BUF_strdup(ok_chars);
- if (ok_chars_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ }
+ if (ok_chars) {
+ ok_chars_copy = BUF_strdup(ok_chars);
+ if (ok_chars_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
- if (cancel_chars)
- {
- cancel_chars_copy=BUF_strdup(cancel_chars);
- if (cancel_chars_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INPUT_BOOLEAN,ERR_R_MALLOC_FAILURE);
+ }
+ if (cancel_chars) {
+ cancel_chars_copy = BUF_strdup(cancel_chars);
+ if (cancel_chars_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
- }
}
-
+ }
return general_allocate_boolean(ui, prompt_copy, action_desc_copy,
- ok_chars_copy, cancel_chars_copy, 1, UIT_BOOLEAN, flags,
- result_buf);
- err:
- if (prompt_copy) free(prompt_copy);
- if (action_desc_copy) free(action_desc_copy);
- if (ok_chars_copy) free(ok_chars_copy);
- if (cancel_chars_copy) free(cancel_chars_copy);
+ ok_chars_copy, cancel_chars_copy, 1, UIT_BOOLEAN, flags,
+ result_buf);
+err:
+ if (prompt_copy)
+ free(prompt_copy);
+ if (action_desc_copy)
+ free(action_desc_copy);
+ if (ok_chars_copy)
+ free(ok_chars_copy);
+ if (cancel_chars_copy)
+ free(cancel_chars_copy);
return -1;
- }
+}
-int UI_add_info_string(UI *ui, const char *text)
- {
+int
+UI_add_info_string(UI * ui, const char *text)
+{
return general_allocate_string(ui, text, 0, UIT_INFO, 0, NULL, 0, 0,
- NULL);
- }
-
-int UI_dup_info_string(UI *ui, const char *text)
- {
- char *text_copy=NULL;
-
- if (text)
- {
- text_copy=BUF_strdup(text);
- if (text_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_INFO_STRING,ERR_R_MALLOC_FAILURE);
+ NULL);
+}
+
+int
+UI_dup_info_string(UI * ui, const char *text)
+{
+ char *text_copy = NULL;
+
+ if (text) {
+ text_copy = BUF_strdup(text);
+ if (text_copy == NULL) {
+ UIerr(UI_F_UI_DUP_INFO_STRING, ERR_R_MALLOC_FAILURE);
return -1;
- }
}
-
- return general_allocate_string(ui, text_copy, 1, UIT_INFO, 0, NULL,
- 0, 0, NULL);
}
+ return general_allocate_string(ui, text_copy, 1, UIT_INFO, 0, NULL,
+ 0, 0, NULL);
+}
-int UI_add_error_string(UI *ui, const char *text)
- {
+int
+UI_add_error_string(UI * ui, const char *text)
+{
return general_allocate_string(ui, text, 0, UIT_ERROR, 0, NULL, 0, 0,
- NULL);
- }
-
-int UI_dup_error_string(UI *ui, const char *text)
- {
- char *text_copy=NULL;
-
- if (text)
- {
- text_copy=BUF_strdup(text);
- if (text_copy == NULL)
- {
- UIerr(UI_F_UI_DUP_ERROR_STRING,ERR_R_MALLOC_FAILURE);
+ NULL);
+}
+
+int
+UI_dup_error_string(UI * ui, const char *text)
+{
+ char *text_copy = NULL;
+
+ if (text) {
+ text_copy = BUF_strdup(text);
+ if (text_copy == NULL) {
+ UIerr(UI_F_UI_DUP_ERROR_STRING, ERR_R_MALLOC_FAILURE);
return -1;
- }
}
- return general_allocate_string(ui, text_copy, 1, UIT_ERROR, 0, NULL,
- 0, 0, NULL);
}
+ return general_allocate_string(ui, text_copy, 1, UIT_ERROR, 0, NULL,
+ 0, 0, NULL);
+}
-char *UI_construct_prompt(UI *ui, const char *object_desc,
- const char *object_name)
- {
+char *
+UI_construct_prompt(UI * ui, const char *object_desc,
+ const char *object_name)
+{
char *prompt = NULL;
if (ui->meth->ui_construct_prompt)
prompt = ui->meth->ui_construct_prompt(ui,
- object_desc, object_name);
- else
- {
+ object_desc, object_name);
+ else {
char prompt1[] = "Enter ";
char prompt2[] = " for ";
char prompt3[] = ":";
len += sizeof(prompt2) - 1 + strlen(object_name);
len += sizeof(prompt3) - 1;
- prompt = (char *)malloc(len + 1);
+ prompt = (char *) malloc(len + 1);
BUF_strlcpy(prompt, prompt1, len + 1);
BUF_strlcat(prompt, object_desc, len + 1);
- if (object_name)
- {
+ if (object_name) {
BUF_strlcat(prompt, prompt2, len + 1);
BUF_strlcat(prompt, object_name, len + 1);
- }
- BUF_strlcat(prompt, prompt3, len + 1);
}
- return prompt;
+ BUF_strlcat(prompt, prompt3, len + 1);
}
+ return prompt;
+}
-void *UI_add_user_data(UI *ui, void *user_data)
- {
+void *
+UI_add_user_data(UI * ui, void *user_data)
+{
void *old_data = ui->user_data;
ui->user_data = user_data;
return old_data;
- }
+}
-void *UI_get0_user_data(UI *ui)
- {
+void *
+UI_get0_user_data(UI * ui)
+{
return ui->user_data;
- }
+}
-const char *UI_get0_result(UI *ui, int i)
- {
- if (i < 0)
- {
- UIerr(UI_F_UI_GET0_RESULT,UI_R_INDEX_TOO_SMALL);
+const char *
+UI_get0_result(UI * ui, int i)
+{
+ if (i < 0) {
+ UIerr(UI_F_UI_GET0_RESULT, UI_R_INDEX_TOO_SMALL);
return NULL;
- }
- if (i >= sk_UI_STRING_num(ui->strings))
- {
- UIerr(UI_F_UI_GET0_RESULT,UI_R_INDEX_TOO_LARGE);
+ }
+ if (i >= sk_UI_STRING_num(ui->strings)) {
+ UIerr(UI_F_UI_GET0_RESULT, UI_R_INDEX_TOO_LARGE);
return NULL;
- }
- return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i));
}
+ return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i));
+}
-static int print_error(const char *str, size_t len, UI *ui)
- {
+static int
+print_error(const char *str, size_t len, UI * ui)
+{
UI_STRING uis;
memset(&uis, 0, sizeof(uis));
uis.out_string = str;
if (ui->meth->ui_write_string
- && !ui->meth->ui_write_string(ui, &uis))
+ && !ui->meth->ui_write_string(ui, &uis))
return -1;
return 0;
- }
+}
-int UI_process(UI *ui)
- {
- int i, ok=0;
+int
+UI_process(UI * ui)
+{
+ int i, ok = 0;
if (ui->meth->ui_open_session && !ui->meth->ui_open_session(ui))
return -1;
if (ui->flags & UI_FLAG_PRINT_ERRORS)
ERR_print_errors_cb(
- (int (*)(const char *, size_t, void *))print_error,
- (void *)ui);
+ (int (*) (const char *, size_t, void *)) print_error,
+ (void *) ui);
- for(i=0; i<sk_UI_STRING_num(ui->strings); i++)
- {
+ for (i = 0; i < sk_UI_STRING_num(ui->strings); i++) {
if (ui->meth->ui_write_string
- && !ui->meth->ui_write_string(ui,
- sk_UI_STRING_value(ui->strings, i)))
- {
- ok=-1;
+ && !ui->meth->ui_write_string(ui,
+ sk_UI_STRING_value(ui->strings, i))) {
+ ok = -1;
goto err;
- }
}
+ }
if (ui->meth->ui_flush)
- switch(ui->meth->ui_flush(ui))
- {
- case -1: /* Interrupt/Cancel/something... */
+ switch (ui->meth->ui_flush(ui)) {
+ case -1: /* Interrupt/Cancel/something... */
ok = -2;
goto err;
- case 0: /* Errors */
+ case 0: /* Errors */
ok = -1;
goto err;
- default: /* Success */
+ default: /* Success */
ok = 0;
break;
- }
+ }
- for(i=0; i<sk_UI_STRING_num(ui->strings); i++)
- {
- if (ui->meth->ui_read_string)
- {
- switch(ui->meth->ui_read_string(ui,
- sk_UI_STRING_value(ui->strings, i)))
- {
- case -1: /* Interrupt/Cancel/something... */
+ for (i = 0; i < sk_UI_STRING_num(ui->strings); i++) {
+ if (ui->meth->ui_read_string) {
+ switch (ui->meth->ui_read_string(ui,
+ sk_UI_STRING_value(ui->strings, i))) {
+ case -1: /* Interrupt/Cancel/something... */
ok = -2;
goto err;
- case 0: /* Errors */
+ case 0:/* Errors */
ok = -1;
goto err;
- default: /* Success */
+ default: /* Success */
ok = 0;
break;
- }
}
}
- err:
+ }
+err:
if (ui->meth->ui_close_session && !ui->meth->ui_close_session(ui))
return -1;
return ok;
- }
+}
-int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)(void))
- {
- if (ui == NULL)
- {
- UIerr(UI_F_UI_CTRL,ERR_R_PASSED_NULL_PARAMETER);
+int
+UI_ctrl(UI * ui, int cmd, long i, void *p, void (*f) (void))
+{
+ if (ui == NULL) {
+ UIerr(UI_F_UI_CTRL, ERR_R_PASSED_NULL_PARAMETER);
return -1;
- }
- switch(cmd)
- {
+ }
+ switch (cmd) {
case UI_CTRL_PRINT_ERRORS:
{
- int save_flag = !!(ui->flags & UI_FLAG_PRINT_ERRORS);
- if (i)
- ui->flags |= UI_FLAG_PRINT_ERRORS;
- else
- ui->flags &= ~UI_FLAG_PRINT_ERRORS;
- return save_flag;
+ int save_flag = !!(ui->flags & UI_FLAG_PRINT_ERRORS);
+ if (i)
+ ui->flags |= UI_FLAG_PRINT_ERRORS;
+ else
+ ui->flags &= ~UI_FLAG_PRINT_ERRORS;
+ return save_flag;
}
case UI_CTRL_IS_REDOABLE:
return !!(ui->flags & UI_FLAG_REDOABLE);
default:
break;
- }
- UIerr(UI_F_UI_CTRL,UI_R_UNKNOWN_CONTROL_COMMAND);
- return -1;
}
+ UIerr(UI_F_UI_CTRL, UI_R_UNKNOWN_CONTROL_COMMAND);
+ return -1;
+}
-int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
- CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
- {
+int
+UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new * new_func,
+ CRYPTO_EX_dup * dup_func, CRYPTO_EX_free * free_func)
+{
return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, argl, argp,
- new_func, dup_func, free_func);
- }
-
-int UI_set_ex_data(UI *r, int idx, void *arg)
- {
- return(CRYPTO_set_ex_data(&r->ex_data,idx,arg));
- }
-
-void *UI_get_ex_data(UI *r, int idx)
- {
- return(CRYPTO_get_ex_data(&r->ex_data,idx));
- }
-
-void UI_set_default_method(const UI_METHOD *meth)
- {
- default_UI_meth=meth;
+ new_func, dup_func, free_func);
+}
+
+int
+UI_set_ex_data(UI * r, int idx, void *arg)
+{
+ return (CRYPTO_set_ex_data(&r->ex_data, idx, arg));
+}
+
+void *
+UI_get_ex_data(UI * r, int idx)
+{
+ return (CRYPTO_get_ex_data(&r->ex_data, idx));
+}
+
+void
+UI_set_default_method(const UI_METHOD * meth)
+{
+ default_UI_meth = meth;
+}
+
+const UI_METHOD *
+UI_get_default_method(void)
+{
+ if (default_UI_meth == NULL) {
+ default_UI_meth = UI_OpenSSL();
}
-
-const UI_METHOD *UI_get_default_method(void)
- {
- if (default_UI_meth == NULL)
- {
- default_UI_meth=UI_OpenSSL();
- }
return default_UI_meth;
- }
+}
-const UI_METHOD *UI_get_method(UI *ui)
- {
+const UI_METHOD *
+UI_get_method(UI * ui)
+{
return ui->meth;
- }
+}
-const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth)
- {
- ui->meth=meth;
+const UI_METHOD *
+UI_set_method(UI * ui, const UI_METHOD * meth)
+{
+ ui->meth = meth;
return ui->meth;
- }
+}
-UI_METHOD *UI_create_method(char *name)
- {
- UI_METHOD *ui_method = (UI_METHOD *)malloc(sizeof(UI_METHOD));
+UI_METHOD *
+UI_create_method(char *name)
+{
+ UI_METHOD *ui_method = (UI_METHOD *) malloc(sizeof(UI_METHOD));
- if (ui_method)
- {
+ if (ui_method) {
memset(ui_method, 0, sizeof(*ui_method));
ui_method->name = BUF_strdup(name);
- }
- return ui_method;
}
+ return ui_method;
+}
/* BIG FSCKING WARNING!!!! If you use this on a statically allocated method
(that is, it hasn't been allocated using UI_create_method(), you deserve
anything Murphy can throw at you and more! You have been warned. */
-void UI_destroy_method(UI_METHOD *ui_method)
- {
+void
+UI_destroy_method(UI_METHOD * ui_method)
+{
free(ui_method->name);
ui_method->name = NULL;
free(ui_method);
- }
+}
-int UI_method_set_opener(UI_METHOD *method, int (*opener)(UI *ui))
- {
- if (method)
- {
+int
+UI_method_set_opener(UI_METHOD * method, int (*opener) (UI * ui))
+{
+ if (method) {
method->ui_open_session = opener;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_writer(UI_METHOD *method, int (*writer)(UI *ui, UI_STRING *uis))
- {
- if (method)
- {
+int
+UI_method_set_writer(UI_METHOD * method, int (*writer) (UI * ui, UI_STRING * uis))
+{
+ if (method) {
method->ui_write_string = writer;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui))
- {
- if (method)
- {
+int
+UI_method_set_flusher(UI_METHOD * method, int (*flusher) (UI * ui))
+{
+ if (method) {
method->ui_flush = flusher;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis))
- {
- if (method)
- {
+int
+UI_method_set_reader(UI_METHOD * method, int (*reader) (UI * ui, UI_STRING * uis))
+{
+ if (method) {
method->ui_read_string = reader;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui))
- {
- if (method)
- {
+int
+UI_method_set_closer(UI_METHOD * method, int (*closer) (UI * ui))
+{
+ if (method) {
method->ui_close_session = closer;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI* ui, const char* object_desc, const char* object_name))
- {
- if (method)
- {
+int
+UI_method_set_prompt_constructor(UI_METHOD * method, char *(*prompt_constructor) (UI * ui, const char *object_desc, const char *object_name))
+{
+ if (method) {
method->ui_construct_prompt = prompt_constructor;
return 0;
- }
- else
+ } else
return -1;
- }
+}
-int (*UI_method_get_opener(UI_METHOD *method))(UI*)
- {
+int (*
+ UI_method_get_opener(UI_METHOD * method)) (UI *)
+{
if (method)
return method->ui_open_session;
else
return NULL;
- }
+}
-int (*UI_method_get_writer(UI_METHOD *method))(UI*,UI_STRING*)
- {
+int (*
+ UI_method_get_writer(UI_METHOD * method)) (UI *, UI_STRING *)
+{
if (method)
return method->ui_write_string;
else
return NULL;
- }
+}
-int (*UI_method_get_flusher(UI_METHOD *method))(UI*)
- {
+int (*
+ UI_method_get_flusher(UI_METHOD * method)) (UI *)
+{
if (method)
return method->ui_flush;
else
return NULL;
- }
+}
-int (*UI_method_get_reader(UI_METHOD *method))(UI*,UI_STRING*)
- {
+int (*
+ UI_method_get_reader(UI_METHOD * method)) (UI *, UI_STRING *)
+{
if (method)
return method->ui_read_string;
else
return NULL;
- }
+}
-int (*UI_method_get_closer(UI_METHOD *method))(UI*)
- {
+int (*
+ UI_method_get_closer(UI_METHOD * method)) (UI *)
+{
if (method)
return method->ui_close_session;
else
return NULL;
- }
+}
-char* (*UI_method_get_prompt_constructor(UI_METHOD *method))(UI*, const char*, const char*)
- {
+char *(*
+ UI_method_get_prompt_constructor(UI_METHOD * method)) (UI *, const char *, const char *)
+{
if (method)
return method->ui_construct_prompt;
else
return NULL;
- }
+}
-enum UI_string_types UI_get_string_type(UI_STRING *uis)
- {
+enum UI_string_types
+UI_get_string_type(UI_STRING * uis)
+{
if (!uis)
return UIT_NONE;
return uis->type;
- }
+}
-int UI_get_input_flags(UI_STRING *uis)
- {
+int
+UI_get_input_flags(UI_STRING * uis)
+{
if (!uis)
return 0;
return uis->input_flags;
- }
+}
-const char *UI_get0_output_string(UI_STRING *uis)
- {
+const char *
+UI_get0_output_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
return uis->out_string;
- }
+}
-const char *UI_get0_action_string(UI_STRING *uis)
- {
+const char *
+UI_get0_action_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_BOOLEAN:
return uis->_.boolean_data.action_desc;
default:
return NULL;
- }
}
+}
-const char *UI_get0_result_string(UI_STRING *uis)
- {
+const char *
+UI_get0_result_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
return uis->result_buf;
default:
return NULL;
- }
}
+}
-const char *UI_get0_test_string(UI_STRING *uis)
- {
+const char *
+UI_get0_test_string(UI_STRING * uis)
+{
if (!uis)
return NULL;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_VERIFY:
return uis->_.string_data.test_buf;
default:
return NULL;
- }
}
+}
-int UI_get_result_minsize(UI_STRING *uis)
- {
+int
+UI_get_result_minsize(UI_STRING * uis)
+{
if (!uis)
return -1;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
return uis->_.string_data.result_minsize;
default:
return -1;
- }
}
+}
-int UI_get_result_maxsize(UI_STRING *uis)
- {
+int
+UI_get_result_maxsize(UI_STRING * uis)
+{
if (!uis)
return -1;
- switch(uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
return uis->_.string_data.result_maxsize;
default:
return -1;
- }
}
+}
-int UI_set_result(UI *ui, UI_STRING *uis, const char *result)
- {
+int
+UI_set_result(UI * ui, UI_STRING * uis, const char *result)
+{
int l = strlen(result);
ui->flags &= ~UI_FLAG_REDOABLE;
if (!uis)
return -1;
- switch (uis->type)
- {
+ switch (uis->type) {
case UIT_PROMPT:
case UIT_VERIFY:
{
- char number1[DECIMAL_SIZE(uis->_.string_data.result_minsize)+1];
- char number2[DECIMAL_SIZE(uis->_.string_data.result_maxsize)+1];
-
- (void) snprintf(number1, sizeof(number1), "%d",
- uis->_.string_data.result_minsize);
- (void) snprintf(number2, sizeof(number2), "%d",
- uis->_.string_data.result_maxsize);
-
- if (l < uis->_.string_data.result_minsize)
- {
- ui->flags |= UI_FLAG_REDOABLE;
- UIerr(UI_F_UI_SET_RESULT,UI_R_RESULT_TOO_SMALL);
- ERR_add_error_data(5,"You must type in ",
- number1," to ",number2," characters");
- return -1;
+ char number1[DECIMAL_SIZE(uis->_.string_data.result_minsize) + 1];
+ char number2[DECIMAL_SIZE(uis->_.string_data.result_maxsize) + 1];
+
+ (void) snprintf(number1, sizeof(number1), "%d",
+ uis->_.string_data.result_minsize);
+ (void) snprintf(number2, sizeof(number2), "%d",
+ uis->_.string_data.result_maxsize);
+
+ if (l < uis->_.string_data.result_minsize) {
+ ui->flags |= UI_FLAG_REDOABLE;
+ UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_SMALL);
+ ERR_add_error_data(5, "You must type in ",
+ number1, " to ", number2, " characters");
+ return -1;
}
- if (l > uis->_.string_data.result_maxsize)
- {
- ui->flags |= UI_FLAG_REDOABLE;
- UIerr(UI_F_UI_SET_RESULT,UI_R_RESULT_TOO_LARGE);
- ERR_add_error_data(5,"You must type in ",
- number1," to ",number2," characters");
- return -1;
+ if (l > uis->_.string_data.result_maxsize) {
+ ui->flags |= UI_FLAG_REDOABLE;
+ UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_LARGE);
+ ERR_add_error_data(5, "You must type in ",
+ number1, " to ", number2, " characters");
+ return -1;
}
}
- if (!uis->result_buf)
- {
- UIerr(UI_F_UI_SET_RESULT,UI_R_NO_RESULT_BUFFER);
+ if (!uis->result_buf) {
+ UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER);
return -1;
- }
-
+ }
BUF_strlcpy(uis->result_buf, result,
- uis->_.string_data.result_maxsize + 1);
+ uis->_.string_data.result_maxsize + 1);
break;
case UIT_BOOLEAN:
{
- const char *p;
+ const char *p;
- if (!uis->result_buf)
- {
- UIerr(UI_F_UI_SET_RESULT,UI_R_NO_RESULT_BUFFER);
- return -1;
+ if (!uis->result_buf) {
+ UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER);
+ return -1;
}
-
- uis->result_buf[0] = '\0';
- for(p = result; *p; p++)
- {
- if (strchr(uis->_.boolean_data.ok_chars, *p))
- {
- uis->result_buf[0] =
- uis->_.boolean_data.ok_chars[0];
- break;
+ uis->result_buf[0] = '\0';
+ for (p = result; *p; p++) {
+ if (strchr(uis->_.boolean_data.ok_chars, *p)) {
+ uis->result_buf[0] =
+ uis->_.boolean_data.ok_chars[0];
+ break;
}
- if (strchr(uis->_.boolean_data.cancel_chars, *p))
- {
- uis->result_buf[0] =
- uis->_.boolean_data.cancel_chars[0];
- break;
+ if (strchr(uis->_.boolean_data.cancel_chars, *p)) {
+ uis->result_buf[0] =
+ uis->_.boolean_data.cancel_chars[0];
+ break;
}
}
default:
- break;
- }
+ break;
}
- return 0;
}
+ return 0;
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
- *
+ *
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
+ *
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
+ * 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
+ *
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
- *
+ *
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
#include <unistd.h>
/* 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
#include "ui_locl.h"
#include "cryptlib.h"
*/
#ifdef _LIBC
-# undef TERMIOS
-# define TERMIO
-# undef SGTTY
+#undef TERMIOS
+#define TERMIO
+#undef SGTTY
#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)
+#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)
+#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
-# include <sys/ioctl.h>
+#include <sys/ioctl.h>
#ifndef NX509_SIG
-# define NX509_SIG 32
+#define NX509_SIG 32
#endif
#ifdef SIGACTION
static struct sigaction savsig[NX509_SIG];
#else
-static void (*savsig[NX509_SIG])(int );
+static void (*savsig[NX509_SIG]) (int);
#endif
-static TTY_STRUCT tty_orig,tty_new;
+static TTY_STRUCT tty_orig, tty_new;
static FILE *tty_in, *tty_out;
static int is_a_tty;
static void recsig(int);
static void pushsig(void);
static void popsig(void);
-static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl);
+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 write_string(UI *ui, UI_STRING *uis);
+static int read_string(UI * ui, UI_STRING * uis);
+static int write_string(UI * ui, UI_STRING * uis);
-static int open_console(UI *ui);
-static int echo_console(UI *ui);
-static int noecho_console(UI *ui);
-static int close_console(UI *ui);
+static int open_console(UI * ui);
+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,
read_string,
close_console,
NULL
- };
+};
/* The method with all the built-in thingies */
-UI_METHOD *UI_OpenSSL(void)
- {
+UI_METHOD *
+UI_OpenSSL(void)
+{
return &ui_openssl;
- }
+}
/* The following function makes sure that info and error strings are printed
before any prompt. */
-static int write_string(UI *ui, UI_STRING *uis)
- {
- switch (UI_get_string_type(uis))
- {
- case UIT_ERROR:
- case UIT_INFO:
+static int
+write_string(UI * ui, UI_STRING * uis)
+{
+ switch (UI_get_string_type(uis)) {
+ case UIT_ERROR:
+ case UIT_INFO:
fputs(UI_get0_output_string(uis), tty_out);
fflush(tty_out);
break;
default:
break;
- }
- return 1;
}
+ return 1;
+}
-static int read_string(UI *ui, UI_STRING *uis)
- {
+static int
+read_string(UI * ui, UI_STRING * uis)
+{
int ok = 0;
- switch (UI_get_string_type(uis))
- {
+ switch (UI_get_string_type(uis)) {
case UIT_BOOLEAN:
fputs(UI_get0_output_string(uis), tty_out);
fputs(UI_get0_action_string(uis), tty_out);
fflush(tty_out);
return read_string_inner(ui, uis,
- UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 0);
+ UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 0);
case UIT_PROMPT:
fputs(UI_get0_output_string(uis), tty_out);
fflush(tty_out);
return read_string_inner(ui, uis,
- UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1);
+ UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1);
case UIT_VERIFY:
- fprintf(tty_out,"Verifying - %s",
- UI_get0_output_string(uis));
+ fprintf(tty_out, "Verifying - %s",
+ UI_get0_output_string(uis));
fflush(tty_out);
if ((ok = read_string_inner(ui, uis,
- UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1)) <= 0)
+ UI_get_input_flags(uis) & UI_INPUT_FLAG_ECHO, 1)) <= 0)
return ok;
if (strcmp(UI_get0_result_string(uis),
- UI_get0_test_string(uis)) != 0)
- {
- fprintf(tty_out,"Verify failure\n");
+ UI_get0_test_string(uis)) != 0) {
+ fprintf(tty_out, "Verify failure\n");
fflush(tty_out);
return 0;
- }
+ }
break;
default:
break;
- }
- return 1;
}
+ return 1;
+}
/* Internal functions to read a string without echoing */
-static int read_till_nl(FILE *in)
- {
+static int
+read_till_nl(FILE * in)
+{
#define SIZE 4
- char buf[SIZE+1];
+ char buf[SIZE + 1];
- do {
- if (!fgets(buf,SIZE,in))
+ do {
+ if (!fgets(buf, SIZE, in))
return 0;
- } while (strchr(buf,'\n') == NULL);
+ } while (strchr(buf, '\n') == NULL);
return 1;
- }
+}
static volatile sig_atomic_t intr_signal;
-static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
- {
+static int
+read_string_inner(UI * ui, UI_STRING * uis, int echo, int strip_nl)
+{
static int ps;
int ok;
char result[BUFSIZ];
- int maxsize = BUFSIZ-1;
+ int maxsize = BUFSIZ - 1;
char *p;
- intr_signal=0;
- ok=0;
- ps=0;
+ intr_signal = 0;
+ ok = 0;
+ ps = 0;
pushsig();
- ps=1;
+ ps = 1;
if (!echo && !noecho_console(ui))
goto error;
- ps=2;
+ ps = 2;
- result[0]='\0';
- p=fgets(result,maxsize,tty_in);
- if(!p)
+ result[0] = '\0';
+ p = fgets(result, maxsize, tty_in);
+ if (!p)
goto error;
- if (feof(tty_in)) goto error;
- if (ferror(tty_in)) goto error;
- if ((p=(char *)strchr(result,'\n')) != NULL)
- {
+ if (feof(tty_in))
+ goto error;
+ if (ferror(tty_in))
+ goto error;
+ if ((p = (char *) strchr(result, '\n')) != NULL) {
if (strip_nl)
- *p='\0';
- }
- else
- if (!read_till_nl(tty_in))
- goto error;
+ *p = '\0';
+ } else if (!read_till_nl(tty_in))
+ goto error;
if (UI_set_result(ui, uis, result) >= 0)
- ok=1;
+ ok = 1;
error:
if (intr_signal == SIGINT)
- ok=-1;
- if (!echo) fprintf(tty_out,"\n");
+ ok = -1;
+ if (!echo)
+ fprintf(tty_out, "\n");
if (ps >= 2 && !echo && !echo_console(ui))
- ok=0;
+ ok = 0;
if (ps >= 1)
popsig();
- OPENSSL_cleanse(result,BUFSIZ);
+ OPENSSL_cleanse(result, BUFSIZ);
return ok;
- }
+}
/* Internal functions to open, handle and close a channel to the console. */
-static int open_console(UI *ui)
- {
+static int
+open_console(UI * ui)
+{
CRYPTO_w_lock(CRYPTO_LOCK_UI);
is_a_tty = 1;
-# define DEV_TTY "/dev/tty"
- if ((tty_in=fopen(DEV_TTY,"r")) == NULL)
- tty_in=stdin;
- if ((tty_out=fopen(DEV_TTY,"w")) == NULL)
- tty_out=stderr;
+#define DEV_TTY "/dev/tty"
+ if ((tty_in = fopen(DEV_TTY, "r")) == NULL)
+ tty_in = stdin;
+ if ((tty_out = fopen(DEV_TTY, "w")) == NULL)
+ tty_out = stderr;
#if defined(TTY_get)
- if (TTY_get(fileno(tty_in),&tty_orig) == -1)
- {
+ if (TTY_get(fileno(tty_in), &tty_orig) == -1) {
if (errno == ENOTTY)
- is_a_tty=0;
+ is_a_tty = 0;
else
- /* Ariel Glenn ariel@columbia.edu reports that solaris
- * can return EINVAL instead. This should be ok */
+ /*
+ * Ariel Glenn ariel@columbia.edu reports that
+ * solaris can return EINVAL instead. This should be
+ * ok
+ */
if (errno == EINVAL)
- is_a_tty=0;
+ is_a_tty = 0;
else
return 0;
- }
+ }
#endif
return 1;
- }
+}
-static int noecho_console(UI *ui)
- {
+static int
+noecho_console(UI * ui)
+{
#ifdef TTY_FLAGS
- memcpy(&(tty_new),&(tty_orig),sizeof(tty_orig));
+ memcpy(&(tty_new), &(tty_orig), sizeof(tty_orig));
tty_new.TTY_FLAGS &= ~ECHO;
#endif
#if defined(TTY_set)
- if (is_a_tty && (TTY_set(fileno(tty_in),&tty_new) == -1))
+ if (is_a_tty && (TTY_set(fileno(tty_in), &tty_new) == -1))
return 0;
#endif
return 1;
- }
+}
-static int echo_console(UI *ui)
- {
+static int
+echo_console(UI * ui)
+{
#if defined(TTY_set)
- memcpy(&(tty_new),&(tty_orig),sizeof(tty_orig));
+ memcpy(&(tty_new), &(tty_orig), sizeof(tty_orig));
tty_new.TTY_FLAGS |= ECHO;
#endif
#if defined(TTY_set)
- if (is_a_tty && (TTY_set(fileno(tty_in),&tty_new) == -1))
+ if (is_a_tty && (TTY_set(fileno(tty_in), &tty_new) == -1))
return 0;
#endif
return 1;
- }
-
-static int close_console(UI *ui)
- {
- if (tty_in != stdin) fclose(tty_in);
- if (tty_out != stderr) fclose(tty_out);
+}
+
+static int
+close_console(UI * ui)
+{
+ if (tty_in != stdin)
+ fclose(tty_in);
+ if (tty_out != stderr)
+ fclose(tty_out);
CRYPTO_w_unlock(CRYPTO_LOCK_UI);
return 1;
- }
+}
/* Internal functions to handle signals and act on them */
-static void pushsig(void)
- {
+static void
+pushsig(void)
+{
int i;
#ifdef SIGACTION
struct sigaction sa;
- memset(&sa,0,sizeof sa);
- sa.sa_handler=recsig;
+ memset(&sa, 0, sizeof sa);
+ sa.sa_handler = recsig;
#endif
- for (i=1; i<NX509_SIG; i++)
- {
+ for (i = 1; i < NX509_SIG; i++) {
#ifdef SIGUSR1
if (i == SIGUSR1)
continue;
continue;
#endif
#ifdef SIGKILL
- if (i == SIGKILL) /* We can't make any action on that. */
+ if (i == SIGKILL) /* We can't make any action on that. */
continue;
#endif
#ifdef SIGACTION
- sigaction(i,&sa,&savsig[i]);
+ sigaction(i, &sa, &savsig[i]);
#else
- savsig[i]=signal(i,recsig);
+ savsig[i] = signal(i, recsig);
#endif
- }
+ }
#ifdef SIGWINCH
- signal(SIGWINCH,SIG_DFL);
+ signal(SIGWINCH, SIG_DFL);
#endif
- }
+}
-static void popsig(void)
- {
+static void
+popsig(void)
+{
int i;
- for (i=1; i<NX509_SIG; i++)
- {
+ for (i = 1; i < NX509_SIG; i++) {
if (i == SIGUSR1)
continue;
if (i == SIGUSR2)
continue;
#ifdef SIGACTION
- sigaction(i,&savsig[i],NULL);
+ sigaction(i, &savsig[i], NULL);
#else
- signal(i,savsig[i]);
+ signal(i, savsig[i]);
#endif
- }
}
+}
-static void recsig(int i)
- {
- intr_signal=i;
- }
+static void
+recsig(int i)
+{
+ intr_signal = i;
+}
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
#include <string.h>
#include "ui_locl.h"
-int UI_UTIL_read_pw_string(char *buf,int length,const char *prompt,int verify)
- {
+int
+UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, int verify)
+{
char buff[BUFSIZ];
int ret;
- ret=UI_UTIL_read_pw(buf,buff,(length>BUFSIZ)?BUFSIZ:length,prompt,verify);
- OPENSSL_cleanse(buff,BUFSIZ);
- return(ret);
- }
+ ret = UI_UTIL_read_pw(buf, buff, (length > BUFSIZ) ? BUFSIZ : length, prompt, verify);
+ OPENSSL_cleanse(buff, BUFSIZ);
+ return (ret);
+}
-int UI_UTIL_read_pw(char *buf,char *buff,int size,const char *prompt,int verify)
- {
+int
+UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, int verify)
+{
int ok = 0;
UI *ui;
return -1;
ui = UI_new();
- if (ui)
- {
- ok = UI_add_input_string(ui,prompt,0,buf,0,size-1);
+ if (ui) {
+ ok = UI_add_input_string(ui, prompt, 0, buf, 0, size - 1);
if (ok >= 0 && verify)
- ok = UI_add_verify_string(ui,prompt,0,buff,0,size-1,
- buf);
+ ok = UI_add_verify_string(ui, prompt, 0, buff, 0, size - 1,
+ buf);
if (ok >= 0)
- ok=UI_process(ui);
+ ok = UI_process(ui);
UI_free(ui);
- }
+ }
if (ok > 0)
ok = 0;
- return(ok);
- }
+ return (ok);
+}