diff --git a/src/imap.c b/src/imap.c index 2e611418..c29f3a75 100644 --- a/src/imap.c +++ b/src/imap.c @@ -96,7 +96,7 @@ int connect_to_imap_server(struct data *data){ data->import->cap_uidplus = 0; if(data->net->use_ssl == 1){ - init_ssl_to_server(data); + init_ssl(data); } diff --git a/src/misc.c b/src/misc.c index d934b40c..f7cb6d7d 100644 --- a/src/misc.c +++ b/src/misc.c @@ -730,7 +730,7 @@ int read_one_line(char *s, int c, char *buf, int buflen, int *rc){ } -int init_ssl_to_server(struct data *data){ +int init_ssl(struct data *data){ int n; X509* server_cert; char *str; diff --git a/src/misc.h b/src/misc.h index 96481063..2dc7d191 100644 --- a/src/misc.h +++ b/src/misc.h @@ -51,7 +51,7 @@ int can_i_write_directory(char *dir); void move_email(struct smtp_session *session); int read_one_line(char *s, int c, char *buf, int buflen, int *rc); -int init_ssl_to_server(struct data *data); +int init_ssl(struct data *data); #ifndef _GNU_SOURCE char *strcasestr(const char *s, const char *find); diff --git a/src/pop3.c b/src/pop3.c index ec3a5e2c..456d2b1c 100644 --- a/src/pop3.c +++ b/src/pop3.c @@ -37,7 +37,7 @@ int connect_to_pop3_server(struct data *data){ char buf[MAXBUFSIZE]; if(data->net->use_ssl == 1){ - init_ssl_to_server(data); + init_ssl(data); } recvtimeoutssl(data->net, buf, sizeof(buf)); diff --git a/unit_tests/smtp.c b/unit_tests/smtp.c index d71a69b8..82b3328e 100644 --- a/unit_tests/smtp.c +++ b/unit_tests/smtp.c @@ -108,49 +108,6 @@ void send_helo_command(struct net *net){ } -int init_ssl(struct data *data){ - int n; - char *str; - X509* server_cert; - - SSL_library_init(); - SSL_load_error_strings(); - - #if OPENSSL_VERSION_NUMBER < 0x10100000L - data->net->ctx = SSL_CTX_new(TLSv1_client_method()); - #else - data->net->ctx = SSL_CTX_new(TLS_client_method()); - #endif - CHK_NULL(data->net->ctx, "internal SSL error"); - - data->net->ssl = SSL_new(data->net->ctx); - CHK_NULL(data->net->ssl, "internal ssl error"); - - SSL_set_fd(data->net->ssl, data->net->socket); - n = SSL_connect(data->net->ssl); - CHK_SSL(n, "internal ssl error"); - - printf("Cipher: %s\n", SSL_get_cipher(data->net->ssl)); - - server_cert = SSL_get_peer_certificate(data->net->ssl); - CHK_NULL(server_cert, "server cert error"); - - str = X509_NAME_oneline(X509_get_subject_name(server_cert), 0, 0); - CHK_NULL(str, "error in server cert"); - OPENSSL_free(str); - - str = X509_NAME_oneline(X509_get_issuer_name(server_cert), 0, 0); - CHK_NULL(str, "error in server cert"); - OPENSSL_free(str); - - X509_free(server_cert); - - data->net->use_ssl = 1; - - return OK; -} - - static void test_smtp_commands_one_at_a_time(char *server, int port, struct data *data){ char recvbuf[MAXBUFSIZE], sendbuf[MAXBUFSIZE]; @@ -285,6 +242,7 @@ static void test_smtp_commands_starttls(char *server, int port, struct data *dat assert(strncmp(recvbuf, "220 ", 4) == 0 && "STARTTLS"); init_ssl(data); + data->net->use_ssl = 1; send_helo_command(data->net);