summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/ui')
-rw-r--r--src/lib/libcrypto/ui/Makefile111
-rw-r--r--src/lib/libcrypto/ui/Makefile.ssl117
-rw-r--r--src/lib/libcrypto/ui/ui.h4
-rw-r--r--src/lib/libcrypto/ui/ui_compat.c67
-rw-r--r--src/lib/libcrypto/ui/ui_err.c2
-rw-r--r--src/lib/libcrypto/ui/ui_lib.c19
-rw-r--r--src/lib/libcrypto/ui/ui_openssl.c18
7 files changed, 304 insertions, 34 deletions
diff --git a/src/lib/libcrypto/ui/Makefile b/src/lib/libcrypto/ui/Makefile
new file mode 100644
index 0000000000..a685659fb4
--- /dev/null
+++ b/src/lib/libcrypto/ui/Makefile
@@ -0,0 +1,111 @@
1#
2# OpenSSL/crypto/ui/Makefile
3#
4
5DIR= ui
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10MAKEFILE= Makefile
11AR= ar r
12
13CFLAGS= $(INCLUDES) $(CFLAG)
14
15GENERAL=Makefile
16#TEST= uitest.c
17TEST=
18APPS=
19
20COMPATSRC= ui_compat.c
21COMPATOBJ= ui_compat.o
22
23LIB=$(TOP)/libcrypto.a
24LIBSRC= ui_err.c ui_lib.c ui_openssl.c ui_util.c $(COMPATSRC)
25LIBOBJ= ui_err.o ui_lib.o ui_openssl.o ui_util.o $(COMPATOBJ)
26
27SRC= $(LIBSRC)
28
29EXHEADER= ui.h ui_compat.h
30HEADER= $(EXHEADER) ui_locl.h
31
32ALL= $(GENERAL) $(SRC) $(HEADER)
33
34top:
35 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
36
37all: lib
38
39lib: $(LIBOBJ)
40 $(AR) $(LIB) $(LIBOBJ)
41 $(RANLIB) $(LIB) || echo Never mind.
42 @touch lib
43
44files:
45 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
46
47links:
48 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
49 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
50 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
51
52install:
53 @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
70 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
71
72dclean:
73 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
74 mv -f Makefile.new $(MAKEFILE)
75
76clean:
77 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
78
79# DO NOT DELETE THIS LINE -- make depend depends on it.
80
81ui_compat.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
82ui_compat.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
83ui_compat.o: ../../include/openssl/stack.h ../../include/openssl/ui.h
84ui_compat.o: ../../include/openssl/ui_compat.h ui_compat.c
85ui_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
86ui_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
87ui_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
88ui_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
89ui_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
90ui_err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h ui_err.c
91ui_lib.o: ../../e_os.h ../../include/openssl/bio.h
92ui_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
93ui_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
94ui_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
95ui_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
96ui_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
97ui_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
98ui_lib.o: ../cryptlib.h ui_lib.c ui_locl.h
99ui_openssl.o: ../../e_os.h ../../include/openssl/bio.h
100ui_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
101ui_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
102ui_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
103ui_openssl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
104ui_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
105ui_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
106ui_openssl.o: ../cryptlib.h ui_locl.h ui_openssl.c
107ui_util.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
108ui_util.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
109ui_util.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
110ui_util.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
111ui_util.o: ../../include/openssl/ui.h ui_locl.h ui_util.c
diff --git a/src/lib/libcrypto/ui/Makefile.ssl b/src/lib/libcrypto/ui/Makefile.ssl
new file mode 100644
index 0000000000..ba46951d1c
--- /dev/null
+++ b/src/lib/libcrypto/ui/Makefile.ssl
@@ -0,0 +1,117 @@
1#
2# OpenSSL/crypto/ui/Makefile
3#
4
5DIR= ui
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKE= make -f Makefile.ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile.ssl
17AR= ar r
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile
22#TEST= uitest.c
23TEST=
24APPS=
25
26COMPATSRC= ui_compat.c
27COMPATOBJ= ui_compat.o
28
29LIB=$(TOP)/libcrypto.a
30LIBSRC= ui_err.c ui_lib.c ui_openssl.c ui_util.c $(COMPATSRC)
31LIBOBJ= ui_err.o ui_lib.o ui_openssl.o ui_util.o $(COMPATOBJ)
32
33SRC= $(LIBSRC)
34
35EXHEADER= ui.h ui_compat.h
36HEADER= $(EXHEADER) ui_locl.h
37
38ALL= $(GENERAL) $(SRC) $(HEADER)
39
40top:
41 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
42
43all: lib
44
45lib: $(LIBOBJ)
46 $(AR) $(LIB) $(LIBOBJ)
47 $(RANLIB) $(LIB) || echo Never mind.
48 @touch lib
49
50files:
51 $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
52
53links:
54 @sh $(TOP)/util/point.sh Makefile.ssl Makefile
55 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
56 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
57 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
58
59install:
60 @for i in $(EXHEADER) ; \
61 do \
62 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
63 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
64 done;
65
66tags:
67 ctags $(SRC)
68
69tests:
70
71lint:
72 lint -DLINT $(INCLUDES) $(SRC)>fluff
73
74depend:
75 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
76
77dclean:
78 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
79 mv -f Makefile.new $(MAKEFILE)
80
81clean:
82 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
83
84# DO NOT DELETE THIS LINE -- make depend depends on it.
85
86ui_compat.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
87ui_compat.o: ../../include/openssl/opensslconf.h
88ui_compat.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
89ui_compat.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
90ui_compat.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
91ui_compat.o: ui_compat.c
92ui_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
93ui_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
94ui_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
95ui_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
96ui_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
97ui_err.o: ../../include/openssl/ui.h ui_err.c
98ui_lib.o: ../../e_os.h ../../include/openssl/bio.h
99ui_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
100ui_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101ui_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
102ui_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
103ui_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
104ui_lib.o: ../../include/openssl/ui.h ../cryptlib.h ui_lib.c ui_locl.h
105ui_openssl.o: ../../e_os.h ../../include/openssl/bio.h
106ui_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
107ui_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
108ui_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
109ui_openssl.o: ../../include/openssl/opensslv.h
110ui_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
111ui_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
112ui_openssl.o: ../cryptlib.h ui_locl.h ui_openssl.c
113ui_util.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
114ui_util.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
115ui_util.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
116ui_util.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
117ui_util.o: ui_util.c
diff --git a/src/lib/libcrypto/ui/ui.h b/src/lib/libcrypto/ui/ui.h
index 2b1cfa2289..018296412b 100644
--- a/src/lib/libcrypto/ui/ui.h
+++ b/src/lib/libcrypto/ui/ui.h
@@ -287,8 +287,8 @@ UI_METHOD *UI_OpenSSL(void);
287/* The UI_STRING type is the data structure that contains all the needed info 287/* The UI_STRING type is the data structure that contains all the needed info
288 about a string or a prompt, including test data for a verification prompt. 288 about a string or a prompt, including test data for a verification prompt.
289*/ 289*/
290typedef struct ui_string_st UI_STRING;
291DECLARE_STACK_OF(UI_STRING) 290DECLARE_STACK_OF(UI_STRING)
291typedef struct ui_string_st UI_STRING;
292 292
293/* The different types of strings that are currently supported. 293/* The different types of strings that are currently supported.
294 This is only needed by method authors. */ 294 This is only needed by method authors. */
@@ -310,13 +310,11 @@ int UI_method_set_writer(UI_METHOD *method, int (*writer)(UI *ui, UI_STRING *uis
310int UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui)); 310int UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui));
311int UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis)); 311int UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis));
312int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui)); 312int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui));
313int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI* ui, const char* object_desc, const char* object_name));
314int (*UI_method_get_opener(UI_METHOD *method))(UI*); 313int (*UI_method_get_opener(UI_METHOD *method))(UI*);
315int (*UI_method_get_writer(UI_METHOD *method))(UI*,UI_STRING*); 314int (*UI_method_get_writer(UI_METHOD *method))(UI*,UI_STRING*);
316int (*UI_method_get_flusher(UI_METHOD *method))(UI*); 315int (*UI_method_get_flusher(UI_METHOD *method))(UI*);
317int (*UI_method_get_reader(UI_METHOD *method))(UI*,UI_STRING*); 316int (*UI_method_get_reader(UI_METHOD *method))(UI*,UI_STRING*);
318int (*UI_method_get_closer(UI_METHOD *method))(UI*); 317int (*UI_method_get_closer(UI_METHOD *method))(UI*);
319char* (*UI_method_get_prompt_constructor(UI_METHOD *method))(UI*, const char*, const char*);
320 318
321/* The following functions are helpers for method writers to access relevant 319/* The following functions are helpers for method writers to access relevant
322 data from a UI_STRING. */ 320 data from a UI_STRING. */
diff --git a/src/lib/libcrypto/ui/ui_compat.c b/src/lib/libcrypto/ui/ui_compat.c
new file mode 100644
index 0000000000..13e0f70d90
--- /dev/null
+++ b/src/lib/libcrypto/ui/ui_compat.c
@@ -0,0 +1,67 @@
1/* crypto/ui/ui_compat.c -*- mode:C; c-file-style: "eay" -*- */
2/* ====================================================================
3 * Copyright (c) 2001-2002 The OpenSSL Project. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. All advertising materials mentioning features or use of this
18 * software must display the following acknowledgment:
19 * "This product includes software developed by the OpenSSL Project
20 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21 *
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 * endorse or promote products derived from this software without
24 * prior written permission. For written permission, please contact
25 * openssl-core@openssl.org.
26 *
27 * 5. Products derived from this software may not be called "OpenSSL"
28 * nor may "OpenSSL" appear in their names without prior written
29 * permission of the OpenSSL Project.
30 *
31 * 6. Redistributions of any form whatsoever must retain the following
32 * acknowledgment:
33 * "This product includes software developed by the OpenSSL Project
34 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35 *
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ====================================================================
49 *
50 * This product includes cryptographic software written by Eric Young
51 * (eay@cryptsoft.com). This product includes software written by Tim
52 * Hudson (tjh@cryptsoft.com).
53 *
54 */
55
56#include <string.h>
57#include <openssl/ui_compat.h>
58
59int _ossl_old_des_read_pw_string(char *buf,int length,const char *prompt,int verify)
60 {
61 return UI_UTIL_read_pw_string(buf, length, prompt, verify);
62 }
63
64int _ossl_old_des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify)
65 {
66 return UI_UTIL_read_pw(buf, buff, size, prompt, verify);
67 }
diff --git a/src/lib/libcrypto/ui/ui_err.c b/src/lib/libcrypto/ui/ui_err.c
index a6b96299a0..786bd0dbc3 100644
--- a/src/lib/libcrypto/ui/ui_err.c
+++ b/src/lib/libcrypto/ui/ui_err.c
@@ -1,6 +1,6 @@
1/* crypto/ui/ui_err.c */ 1/* crypto/ui/ui_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
diff --git a/src/lib/libcrypto/ui/ui_lib.c b/src/lib/libcrypto/ui/ui_lib.c
index a8abc27064..ac0100808f 100644
--- a/src/lib/libcrypto/ui/ui_lib.c
+++ b/src/lib/libcrypto/ui/ui_lib.c
@@ -693,17 +693,6 @@ int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui))
693 return -1; 693 return -1;
694 } 694 }
695 695
696int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor)(UI* ui, const char* object_desc, const char* object_name))
697 {
698 if (method)
699 {
700 method->ui_construct_prompt = prompt_constructor;
701 return 0;
702 }
703 else
704 return -1;
705 }
706
707int (*UI_method_get_opener(UI_METHOD *method))(UI*) 696int (*UI_method_get_opener(UI_METHOD *method))(UI*)
708 { 697 {
709 if (method) 698 if (method)
@@ -744,14 +733,6 @@ int (*UI_method_get_closer(UI_METHOD *method))(UI*)
744 return NULL; 733 return NULL;
745 } 734 }
746 735
747char* (*UI_method_get_prompt_constructor(UI_METHOD *method))(UI*, const char*, const char*)
748 {
749 if (method)
750 return method->ui_construct_prompt;
751 else
752 return NULL;
753 }
754
755enum UI_string_types UI_get_string_type(UI_STRING *uis) 736enum UI_string_types UI_get_string_type(UI_STRING *uis)
756 { 737 {
757 if (!uis) 738 if (!uis)
diff --git a/src/lib/libcrypto/ui/ui_openssl.c b/src/lib/libcrypto/ui/ui_openssl.c
index 1bc25f48d5..5fbedf6ff8 100644
--- a/src/lib/libcrypto/ui/ui_openssl.c
+++ b/src/lib/libcrypto/ui/ui_openssl.c
@@ -122,9 +122,7 @@
122 * sigaction and fileno included. -pedantic would be more appropriate for 122 * sigaction and fileno included. -pedantic would be more appropriate for
123 * the intended purposes, but we can't prevent users from adding -ansi. 123 * the intended purposes, but we can't prevent users from adding -ansi.
124 */ 124 */
125#ifndef _POSIX_C_SOURCE 125#define _POSIX_C_SOURCE 1
126#define _POSIX_C_SOURCE 2
127#endif
128#include <signal.h> 126#include <signal.h>
129#include <stdio.h> 127#include <stdio.h>
130#include <string.h> 128#include <string.h>
@@ -299,7 +297,7 @@ static int is_a_tty;
299 297
300/* Declare static functions */ 298/* Declare static functions */
301#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE) 299#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
302static int read_till_nl(FILE *); 300static void read_till_nl(FILE *);
303static void recsig(int); 301static void recsig(int);
304static void pushsig(void); 302static void pushsig(void);
305static void popsig(void); 303static void popsig(void);
@@ -392,16 +390,15 @@ static int read_string(UI *ui, UI_STRING *uis)
392 390
393#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE) 391#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
394/* Internal functions to read a string without echoing */ 392/* Internal functions to read a string without echoing */
395static int read_till_nl(FILE *in) 393static void read_till_nl(FILE *in)
396 { 394 {
397#define SIZE 4 395#define SIZE 4
398 char buf[SIZE+1]; 396 char buf[SIZE+1];
399 397
400 do { 398 do {
401 if (!fgets(buf,SIZE,in)) 399 if (fgets(buf,sizeof(buf),in) == NULL)
402 return 0; 400 break;
403 } while (strchr(buf,'\n') == NULL); 401 } while (strchr(buf,'\n') == NULL);
404 return 1;
405 } 402 }
406 403
407static volatile sig_atomic_t intr_signal; 404static volatile sig_atomic_t intr_signal;
@@ -449,8 +446,7 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
449 *p='\0'; 446 *p='\0';
450 } 447 }
451 else 448 else
452 if (!read_till_nl(tty_in)) 449 read_till_nl(tty_in);
453 goto error;
454 if (UI_set_result(ui, uis, result) >= 0) 450 if (UI_set_result(ui, uis, result) >= 0)
455 ok=1; 451 ok=1;
456 452
@@ -478,7 +474,7 @@ static int open_console(UI *ui)
478 CRYPTO_w_lock(CRYPTO_LOCK_UI); 474 CRYPTO_w_lock(CRYPTO_LOCK_UI);
479 is_a_tty = 1; 475 is_a_tty = 1;
480 476
481#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_BEOS) 477#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE)
482 tty_in=stdin; 478 tty_in=stdin;
483 tty_out=stderr; 479 tty_out=stderr;
484#else 480#else