91 |
|
|
92 |
static pthread_mutex_t ssl_mutex= PTHREAD_MUTEX_INITIALIZER; |
static pthread_mutex_t ssl_mutex= PTHREAD_MUTEX_INITIALIZER; |
93 |
static pthread_mutex_t * ssl_mutex_table; |
static pthread_mutex_t * ssl_mutex_table; |
94 |
|
|
95 |
|
static int ssl_initilized=FALSE; |
96 |
#endif |
#endif |
97 |
|
|
98 |
/** |
/** |
145 |
|
|
146 |
} |
} |
147 |
|
|
148 |
|
if (!ssl_initilized) { |
149 |
|
|
150 |
|
start_ssl(); |
151 |
|
|
152 |
|
} |
153 |
|
|
154 |
if ( socket >= 0 ) { |
if ( socket >= 0 ) { |
155 |
|
|
156 |
ssl->socket= socket; |
ssl->socket= socket; |
245 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
246 |
int i= 0; |
int i= 0; |
247 |
|
|
248 |
|
ASSERT(md5sum); |
249 |
|
|
250 |
while (( i < ssl->cert_md5_len ) && |
while (( i < ssl->cert_md5_len ) && |
251 |
( md5sum[2*i] != '\0' ) && |
( md5sum[2*i] != '\0' ) && |
252 |
( md5sum[2*i+1] != '\0' )) { |
( md5sum[2*i+1] != '\0' )) { |
289 |
int socket; |
int socket; |
290 |
ssl_connection * ssl = new_ssl_connection(NULL); |
ssl_connection * ssl = new_ssl_connection(NULL); |
291 |
|
|
292 |
|
ASSERT(hostname); |
293 |
|
|
294 |
|
if (!ssl_initilized) { |
295 |
|
|
296 |
|
start_ssl(); |
297 |
|
|
298 |
|
} |
299 |
|
|
300 |
if ((socket= create_socket(hostname, port, protocol)) == -1) { |
if ((socket= create_socket(hostname, port, protocol)) == -1) { |
301 |
|
|
302 |
error("Cannot connect!\n"); |
error("Cannot connect!\n"); |
466 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
467 |
|
|
468 |
ssl_server_connection * ssl_server = new_ssl_server_connection(); |
ssl_server_connection * ssl_server = new_ssl_server_connection(); |
469 |
|
|
470 |
|
ASSERT(pemfilename); |
471 |
|
|
472 |
|
if (!ssl_initilized) { |
473 |
|
|
474 |
|
start_ssl(); |
475 |
|
|
476 |
|
} |
477 |
|
|
478 |
if ((ssl_server->method= SSLv23_server_method()) == NULL ) { |
if ((ssl_server->method= SSLv23_server_method()) == NULL ) { |
479 |
|
|
558 |
int socket; |
int socket; |
559 |
ssl_server_connection * ssl_server; |
ssl_server_connection * ssl_server; |
560 |
|
|
561 |
|
ASSERT(pemfilename); |
562 |
|
ASSERT(bindAddr); |
563 |
|
|
564 |
|
if (!ssl_initilized) { |
565 |
|
|
566 |
|
start_ssl(); |
567 |
|
|
568 |
|
} |
569 |
|
|
570 |
if ((socket= create_server_socket(port, backlog, bindAddr)) == -1) { |
if ((socket= create_server_socket(port, backlog, bindAddr)) == -1) { |
571 |
|
|
572 |
error("Cannot connect!\n"); |
error("Cannot connect!\n"); |
712 |
|
|
713 |
ssl_connection * ssl = (ssl_connection *) NEW(ssl); |
ssl_connection * ssl = (ssl_connection *) NEW(ssl); |
714 |
|
|
715 |
|
if (!ssl_initilized) { |
716 |
|
|
717 |
|
start_ssl(); |
718 |
|
|
719 |
|
} |
720 |
|
|
721 |
|
if (!ssl_initilized) { |
722 |
|
|
723 |
|
start_ssl(); |
724 |
|
|
725 |
|
} |
726 |
|
|
727 |
ssl->method= NULL; |
ssl->method= NULL; |
728 |
ssl->handler= NULL; |
ssl->handler= NULL; |
729 |
ssl->cert= NULL; |
ssl->cert= NULL; |
876 |
|
|
877 |
ssl->socket=socket; |
ssl->socket=socket; |
878 |
|
|
879 |
|
if (!ssl_initilized) { |
880 |
|
|
881 |
|
start_ssl(); |
882 |
|
|
883 |
|
} |
884 |
|
|
885 |
if ((ssl->handler= SSL_new(ssl->ctx)) == NULL ) { |
if ((ssl->handler= SSL_new(ssl->ctx)) == NULL ) { |
886 |
|
|
887 |
error("Cannot initilize SSL handler!\n"); |
error("Cannot initilize SSL handler!\n"); |
1040 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
1041 |
|
|
1042 |
int i=0; |
int i=0; |
|
int error; |
|
1043 |
char c; |
char c; |
|
|
|
1044 |
|
|
1045 |
while(i <= len - 1) { |
ASSERT(buffer); |
1046 |
|
|
1047 |
error=recv_ssl_socket(ssl, (void *) &c, 1); |
while(i <= len - 1) { |
1048 |
|
|
1049 |
switch ( error ) { |
switch ( recv_ssl_socket(ssl, (void *) &c, 1)) { |
1050 |
|
|
1051 |
case 1: |
case 1: |
1052 |
|
|
1079 |
return buffer; |
return buffer; |
1080 |
|
|
1081 |
#else |
#else |
1082 |
|
|
1083 |
return NULL; |
return NULL; |
1084 |
|
|
1085 |
#endif |
#endif |
1102 |
int len; |
int len; |
1103 |
|
|
1104 |
va_list ap; |
va_list ap; |
1105 |
|
|
1106 |
|
ASSERT(format); |
1107 |
|
|
1108 |
va_start(ap,format); |
va_start(ap,format); |
1109 |
len=vsnprintf(msg, STRLEN, format, ap); |
len=vsnprintf(msg, STRLEN, format, ap); |
1110 |
va_end(ap); |
va_end(ap); |
1130 |
|
|
1131 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
1132 |
|
|
1133 |
return (ssl_thread_start() && SSL_library_init() && ssl_entropy_start()); |
if (! ssl_initilized ) { |
1134 |
|
|
1135 |
|
ssl_initilized=TRUE; |
1136 |
|
return (ssl_thread_start() && SSL_library_init() && ssl_entropy_start()); |
1137 |
|
|
1138 |
|
} else { |
1139 |
|
|
1140 |
|
return TRUE; |
1141 |
|
|
1142 |
|
} |
1143 |
|
|
1144 |
#else |
#else |
1145 |
|
|
1158 |
|
|
1159 |
#ifdef HAVE_OPENSSL |
#ifdef HAVE_OPENSSL |
1160 |
|
|
1161 |
return (ssl_thread_stop() && ssl_entropy_stop()); |
if ( ssl_initilized ) { |
1162 |
|
|
1163 |
|
ssl_initilized=FALSE; |
1164 |
|
return (ssl_thread_stop() && ssl_entropy_stop()); |
1165 |
|
|
1166 |
|
} else { |
1167 |
|
|
1168 |
|
return TRUE; |
1169 |
|
|
1170 |
|
} |
1171 |
|
|
1172 |
#else |
#else |
1173 |
|
|
1188 |
|
|
1189 |
ssl_connection * ssl = (ssl_connection *) NEW(ssl); |
ssl_connection * ssl = (ssl_connection *) NEW(ssl); |
1190 |
|
|
1191 |
|
if (!ssl_initilized) { |
1192 |
|
|
1193 |
|
start_ssl(); |
1194 |
|
|
1195 |
|
} |
1196 |
|
|
1197 |
ssl->handler= NULL; |
ssl->handler= NULL; |
1198 |
ssl->cert= NULL; |
ssl->cert= NULL; |
1199 |
ssl->cipher= NULL; |
ssl->cipher= NULL; |
1272 |
|
|
1273 |
ssl_server_connection * ssl_server = (ssl_server_connection *) NEW(ssl_server); |
ssl_server_connection * ssl_server = (ssl_server_connection *) NEW(ssl_server); |
1274 |
|
|
1275 |
|
if (!ssl_initilized) { |
1276 |
|
|
1277 |
|
start_ssl(); |
1278 |
|
|
1279 |
|
} |
1280 |
|
|
1281 |
ssl_server->ctx= NULL; |
ssl_server->ctx= NULL; |
1282 |
ssl_server->method= NULL; |
ssl_server->method= NULL; |
1283 |
ssl_server->server_socket= 0; |
ssl_server->server_socket= 0; |