summaryrefslogtreecommitdiff
path: root/src/lib/libssl/src/apps/s_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/src/apps/s_server.c')
-rw-r--r--src/lib/libssl/src/apps/s_server.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/src/lib/libssl/src/apps/s_server.c b/src/lib/libssl/src/apps/s_server.c
index b03231f3ba..5157aae4d1 100644
--- a/src/lib/libssl/src/apps/s_server.c
+++ b/src/lib/libssl/src/apps/s_server.c
@@ -144,6 +144,14 @@ typedef unsigned int u_int;
144#include <conio.h> 144#include <conio.h>
145#endif 145#endif
146 146
147#ifdef OPENSSL_SYS_WINCE
148/* Windows CE incorrectly defines fileno as returning void*, so to avoid problems below... */
149#ifdef fileno
150#undef fileno
151#endif
152#define fileno(a) (int)_fileno(a)
153#endif
154
147#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000) 155#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000)
148/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */ 156/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */
149#undef FIONBIO 157#undef FIONBIO
@@ -234,7 +242,9 @@ static int s_msg=0;
234static int s_quiet=0; 242static int s_quiet=0;
235 243
236static int hack=0; 244static int hack=0;
245#ifndef OPENSSL_NO_ENGINE
237static char *engine_id=NULL; 246static char *engine_id=NULL;
247#endif
238static const char *session_id_prefix=NULL; 248static const char *session_id_prefix=NULL;
239 249
240#ifdef MONOLITH 250#ifdef MONOLITH
@@ -259,7 +269,9 @@ static void s_server_init(void)
259 s_msg=0; 269 s_msg=0;
260 s_quiet=0; 270 s_quiet=0;
261 hack=0; 271 hack=0;
272#ifndef OPENSSL_NO_ENGINE
262 engine_id=NULL; 273 engine_id=NULL;
274#endif
263 } 275 }
264#endif 276#endif
265 277
@@ -308,7 +320,9 @@ static void sv_usage(void)
308 BIO_printf(bio_err," -WWW - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n"); 320 BIO_printf(bio_err," -WWW - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n");
309 BIO_printf(bio_err," -HTTP - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n"); 321 BIO_printf(bio_err," -HTTP - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n");
310 BIO_printf(bio_err," with the assumption it contains a complete HTTP response.\n"); 322 BIO_printf(bio_err," with the assumption it contains a complete HTTP response.\n");
323#ifndef OPENSSL_NO_ENGINE
311 BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n"); 324 BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n");
325#endif
312 BIO_printf(bio_err," -id_prefix arg - Generate SSL/TLS session IDs prefixed by 'arg'\n"); 326 BIO_printf(bio_err," -id_prefix arg - Generate SSL/TLS session IDs prefixed by 'arg'\n");
313 BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR); 327 BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
314 } 328 }
@@ -482,7 +496,9 @@ int MAIN(int argc, char *argv[])
482 int no_tmp_rsa=0,no_dhe=0,nocert=0; 496 int no_tmp_rsa=0,no_dhe=0,nocert=0;
483 int state=0; 497 int state=0;
484 SSL_METHOD *meth=NULL; 498 SSL_METHOD *meth=NULL;
499#ifndef OPENSSL_NO_ENGINE
485 ENGINE *e=NULL; 500 ENGINE *e=NULL;
501#endif
486 char *inrand=NULL; 502 char *inrand=NULL;
487 503
488#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3) 504#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
@@ -657,11 +673,13 @@ int MAIN(int argc, char *argv[])
657 if (--argc < 1) goto bad; 673 if (--argc < 1) goto bad;
658 session_id_prefix = *(++argv); 674 session_id_prefix = *(++argv);
659 } 675 }
676#ifndef OPENSSL_NO_ENGINE
660 else if (strcmp(*argv,"-engine") == 0) 677 else if (strcmp(*argv,"-engine") == 0)
661 { 678 {
662 if (--argc < 1) goto bad; 679 if (--argc < 1) goto bad;
663 engine_id= *(++argv); 680 engine_id= *(++argv);
664 } 681 }
682#endif
665 else if (strcmp(*argv,"-rand") == 0) 683 else if (strcmp(*argv,"-rand") == 0)
666 { 684 {
667 if (--argc < 1) goto bad; 685 if (--argc < 1) goto bad;
@@ -686,7 +704,9 @@ bad:
686 SSL_load_error_strings(); 704 SSL_load_error_strings();
687 OpenSSL_add_ssl_algorithms(); 705 OpenSSL_add_ssl_algorithms();
688 706
707#ifndef OPENSSL_NO_ENGINE
689 e = setup_engine(bio_err, engine_id, 1); 708 e = setup_engine(bio_err, engine_id, 1);
709#endif
690 710
691 if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL 711 if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL
692 && !RAND_status()) 712 && !RAND_status())
@@ -860,7 +880,7 @@ end:
860 bio_s_out=NULL; 880 bio_s_out=NULL;
861 } 881 }
862 apps_shutdown(); 882 apps_shutdown();
863 EXIT(ret); 883 OPENSSL_EXIT(ret);
864 } 884 }
865 885
866static void print_stats(BIO *bio, SSL_CTX *ssl_ctx) 886static void print_stats(BIO *bio, SSL_CTX *ssl_ctx)
@@ -1176,7 +1196,7 @@ err:
1176 BIO_printf(bio_s_out,"CONNECTION CLOSED\n"); 1196 BIO_printf(bio_s_out,"CONNECTION CLOSED\n");
1177 if (buf != NULL) 1197 if (buf != NULL)
1178 { 1198 {
1179 memset(buf,0,bufsize); 1199 OPENSSL_cleanse(buf,bufsize);
1180 OPENSSL_free(buf); 1200 OPENSSL_free(buf);
1181 } 1201 }
1182 if (ret >= 0) 1202 if (ret >= 0)
@@ -1228,14 +1248,14 @@ static int init_ssl_connection(SSL *con)
1228 { 1248 {
1229 BIO_printf(bio_s_out,"Client certificate\n"); 1249 BIO_printf(bio_s_out,"Client certificate\n");
1230 PEM_write_bio_X509(bio_s_out,peer); 1250 PEM_write_bio_X509(bio_s_out,peer);
1231 X509_NAME_oneline(X509_get_subject_name(peer),buf,BUFSIZ); 1251 X509_NAME_oneline(X509_get_subject_name(peer),buf,sizeof buf);
1232 BIO_printf(bio_s_out,"subject=%s\n",buf); 1252 BIO_printf(bio_s_out,"subject=%s\n",buf);
1233 X509_NAME_oneline(X509_get_issuer_name(peer),buf,BUFSIZ); 1253 X509_NAME_oneline(X509_get_issuer_name(peer),buf,sizeof buf);
1234 BIO_printf(bio_s_out,"issuer=%s\n",buf); 1254 BIO_printf(bio_s_out,"issuer=%s\n",buf);
1235 X509_free(peer); 1255 X509_free(peer);
1236 } 1256 }
1237 1257
1238 if (SSL_get_shared_ciphers(con,buf,BUFSIZ) != NULL) 1258 if (SSL_get_shared_ciphers(con,buf,sizeof buf) != NULL)
1239 BIO_printf(bio_s_out,"Shared ciphers:%s\n",buf); 1259 BIO_printf(bio_s_out,"Shared ciphers:%s\n",buf);
1240 str=SSL_CIPHER_get_name(SSL_get_current_cipher(con)); 1260 str=SSL_CIPHER_get_name(SSL_get_current_cipher(con));
1241 BIO_printf(bio_s_out,"CIPHER is %s\n",(str != NULL)?str:"(NONE)"); 1261 BIO_printf(bio_s_out,"CIPHER is %s\n",(str != NULL)?str:"(NONE)");
@@ -1395,7 +1415,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
1395 else 1415 else
1396 { 1416 {
1397 BIO_printf(bio_s_out,"read R BLOCK\n"); 1417 BIO_printf(bio_s_out,"read R BLOCK\n");
1398#ifndef OPENSSL_SYS_MSDOS 1418#if !defined(OPENSSL_SYS_MSDOS) && !defined(__DJGPP__)
1399 sleep(1); 1419 sleep(1);
1400#endif 1420#endif
1401 continue; 1421 continue;