84 |
int ssl_init(unsigned int protocol) |
int ssl_init(unsigned int protocol) |
85 |
{ |
{ |
86 |
int e; |
int e; |
87 |
|
unsigned int i, n = 0; |
88 |
SSL_CTX *ctx; |
SSL_CTX *ctx; |
89 |
SSL_METHOD *method = NULL; |
SSL_METHOD *method = NULL; |
90 |
X509 *cert; |
X509 *cert; |
91 |
char *c; |
char *c; |
92 |
EVP_MD *evp; |
EVP_MD *evp; |
93 |
unsigned char digest[EVP_MAX_MD_SIZE]; |
unsigned char digest[EVP_MAX_MD_SIZE]; |
|
int s, i; |
|
94 |
|
|
95 |
SSL_library_init(); |
SSL_library_init(); |
96 |
|
|
137 |
|
|
138 |
if (!(evp = EVP_md5())) |
if (!(evp = EVP_md5())) |
139 |
return ERROR_SSL; |
return ERROR_SSL; |
140 |
if (!(X509_digest(cert, evp, digest, &s))) |
if (!(X509_digest(cert, evp, digest, &n))) |
141 |
return ERROR_SSL; |
return ERROR_SSL; |
142 |
|
|
143 |
verbose("Server key fingerprint: "); |
verbose("Server key fingerprint: "); |
144 |
for (i = 0; i < s; i++) |
for (i = 0; i < n; i++) |
145 |
verbose(i != s - 1 ? "%02X:" : "%02X\n", digest[i]); |
verbose(i != n - 1 ? "%02X:" : "%02X\n", digest[i]); |
146 |
|
|
147 |
X509_free(cert); |
X509_free(cert); |
148 |
SSL_CTX_free(ctx); |
SSL_CTX_free(ctx); |
181 |
fd_set fds; |
fd_set fds; |
182 |
struct timeval tv; |
struct timeval tv; |
183 |
|
|
184 |
|
r = s = 0; |
185 |
|
|
186 |
memset(buf, 0, RESPONSE_BUF); |
memset(buf, 0, RESPONSE_BUF); |
187 |
|
|
188 |
tv.tv_sec = 30; |
tv.tv_sec = 30; |