X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=apps%2Fs_time.c;h=c5e3dcd5ae187eac9b3edebf6211b3a6601b64ce;hb=20b85fdd7644aa940e50a158a1b2c8010bb36443;hp=853a9dcc42274e96f11e921ece5180eec6a747f4;hpb=eda1f21f1af8b6f77327e7b37573af9c1ba73726;p=oweals%2Fopenssl.git diff --git a/apps/s_time.c b/apps/s_time.c index 853a9dcc42..c5e3dcd5ae 100644 --- a/apps/s_time.c +++ b/apps/s_time.c @@ -1,5 +1,5 @@ /* apps/s_time.c */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written @@ -56,10 +56,10 @@ * [including the GNU Public Licence.] */ -#undef NO_SHUTDOWN +#define NO_SHUTDOWN /*----------------------------------------- - cntime - SSL client connection timer program + s_time - SSL client connection timer program Written and donated by Larry Streepy -----------------------------------------*/ @@ -67,16 +67,20 @@ #include #include -#ifdef WIN16 +#if defined(NO_RSA) && !defined(NO_SSL2) +#define NO_SSL2 +#endif + +#ifdef NO_STDIO #define APPS_WIN16 #endif -#include "x509.h" -#include "ssl.h" -#include "pem.h" +#include +#include +#include #define USE_SOCKETS #include "apps.h" #include "s_apps.h" -#include "err.h" +#include #ifdef WIN32_STUFF #include "winmain.h" #include "wintext.h" @@ -111,7 +115,8 @@ struct tms { #include #endif -#ifdef sun +#if defined(sun) || defined(__ultrix) +#define _POSIX_SOURCE #include #include #endif @@ -150,16 +155,10 @@ struct tms { extern int verify_depth; extern int verify_error; -#ifndef NOPROTO static void s_time_usage(void); static int parseArgs( int argc, char **argv ); static SSL *doConnection( SSL *scon ); -#else -static void s_time_usage(); -static int parseArgs(); -static SSL *doConnection(); -#endif - +static void s_time_init(void); /*********************************************************************** * Static data declarations @@ -180,31 +179,54 @@ static char *s_www_path=NULL; static long bytes_read=0; static int st_bugs=0; static int perform=0; - #ifdef FIONBIO static int t_nbio=0; #endif - #ifdef WIN32 static int exitNow = 0; /* Set when it's time to exit main */ #endif +static void s_time_init(void) + { + host=SSL_CONNECT_NAME; + t_cert_file=NULL; + t_key_file=NULL; + CApath=NULL; + CAfile=NULL; + tm_cipher=NULL; + tm_verify = SSL_VERIFY_NONE; + maxTime = SECONDS; + tm_ctx=NULL; + s_time_meth=NULL; + s_www_path=NULL; + bytes_read=0; + st_bugs=0; + perform=0; + +#ifdef FIONBIO + t_nbio=0; +#endif +#ifdef WIN32 + exitNow = 0; /* Set when it's time to exit main */ +#endif + } + /*********************************************************************** * usage - display usage message */ -static void s_time_usage() +static void s_time_usage(void) { static char umsg[] = "\ -time arg - max number of seconds to collect data, default %d\n\ -verify arg - turn on peer certificate verification, arg == depth\n\ -cert arg - certificate file to use, PEM format assumed\n\ --key arg - RSA file to use, PEM format assumed, in cert file if\n\ - not specified but cert fill is.\n\ +-key arg - RSA file to use, PEM format assumed, key is in cert file\n\ + file if not specified by this option\n\ -CApath arg - PEM format directory of CA's\n\ -CAfile arg - PEM format file of CA's\n\ --cipher - prefered cipher to use, play with 'ssleay ciphers'\n\n"; +-cipher - prefered cipher to use, play with 'openssl ciphers'\n\n"; - printf( "usage: client \n\n" ); + printf( "usage: s_time \n\n" ); printf("-connect host:port - host:port to connect to (default is %s)\n",SSL_CONNECT_NAME); #ifdef FIONBIO @@ -224,9 +246,7 @@ static void s_time_usage() * * Returns 0 if ok, -1 on bad args */ -static int parseArgs(argc,argv) -int argc; -char **argv; +static int parseArgs(int argc, char **argv) { int badop = 0; @@ -237,6 +257,7 @@ char **argv; #endif apps_startup(); + s_time_init(); if (bio_err == NULL) bio_err=BIO_new_fp(stderr,BIO_NOCLOSE); @@ -350,8 +371,7 @@ bad: #define START 0 #define STOP 1 -static double tm_Time_F(s) -int s; +static double tm_Time_F(int s) { static double ret; #ifdef TIMES @@ -385,10 +405,7 @@ int s; * MAIN - main processing area for client * real name depends on MONOLITH */ -int -MAIN(argc,argv) -int argc; -char **argv; +int MAIN(int argc, char **argv) { double totalTime = 0.0; int nConn = 0; @@ -396,6 +413,7 @@ char **argv; long finishtime=0; int ret=1,i; MS_STATIC char buf[1024*8]; + int ver; #if !defined(NO_SSL2) && !defined(NO_SSL3) s_time_meth=SSLv23_client_method(); @@ -412,6 +430,8 @@ char **argv; SSLeay_add_ssl_algorithms(); if ((tm_ctx=SSL_CTX_new(s_time_meth)) == NULL) return(1); + SSL_CTX_set_quiet_shutdown(tm_ctx,1); + if (st_bugs) SSL_CTX_set_options(tm_ctx,SSL_OP_ALL); SSL_CTX_set_cipher_list(tm_ctx,tm_cipher); if(!set_cert_stuff(tm_ctx,t_cert_file,t_key_file)) @@ -422,9 +442,9 @@ char **argv; if ((!SSL_CTX_load_verify_locations(tm_ctx,CAfile,CApath)) || (!SSL_CTX_set_default_verify_paths(tm_ctx))) { - BIO_printf(bio_err,"error seting default verify locations\n"); + /* BIO_printf(bio_err,"error seting default verify locations\n"); */ ERR_print_errors(bio_err); - goto end; + /* goto end; */ } if (tm_cipher == NULL) @@ -471,11 +491,24 @@ char **argv; #else SSL_shutdown(scon); #endif - SHUTDOWN(SSL_get_fd(scon)); + SHUTDOWN2(SSL_get_fd(scon)); nConn += 1; - fputc(SSL_session_reused(scon)?'r': - (SSL_version(scon))+'0', stdout ); + if (SSL_session_reused(scon)) + ver='r'; + else + { + ver=SSL_version(scon); + if (ver == TLS1_VERSION) + ver='t'; + else if (ver == SSL3_VERSION) + ver='3'; + else if (ver == SSL2_VERSION) + ver='2'; + else + ver='*'; + } + fputc(ver,stdout); fflush(stdout); SSL_free( scon ); @@ -512,7 +545,7 @@ next: #else SSL_shutdown(scon); #endif - SHUTDOWN(SSL_get_fd(scon)); + SHUTDOWN2(SSL_get_fd(scon)); nConn = 0; totalTime = 0.0; @@ -551,11 +584,24 @@ next: #else SSL_shutdown(scon); #endif - SHUTDOWN(SSL_get_fd(scon)); + SHUTDOWN2(SSL_get_fd(scon)); nConn += 1; - fputc(SSL_session_reused(scon)?'r': - (SSL_version(scon))+'0', stdout ); + if (SSL_session_reused(scon)) + ver='r'; + else + { + ver=SSL_version(scon); + if (ver == TLS1_VERSION) + ver='t'; + else if (ver == SSL3_VERSION) + ver='3'; + else if (ver == SSL2_VERSION) + ver='2'; + else + ver='*'; + } + fputc(ver,stdout); fflush(stdout); } totalTime += tm_Time_F(STOP); /* Add the time for this iteration*/ @@ -583,9 +629,7 @@ end: * Returns: * SSL * = the connection pointer. */ -static SSL * -doConnection(scon) -SSL *scon; +static SSL *doConnection(SSL *scon) { BIO *conn; SSL *serverCon; @@ -595,8 +639,8 @@ SSL *scon; if ((conn=BIO_new(BIO_s_connect())) == NULL) return(NULL); -/* BIO_set_port(conn,port);*/ - BIO_set_hostname(conn,host); +/* BIO_set_conn_port(conn,port);*/ + BIO_set_conn_hostname(conn,host); if (scon == NULL) serverCon=(SSL *)SSL_new(tm_ctx);