diff options
author | Matthias Andree <matthias.andree@gmx.de> | 2011-04-11 14:08:32 +0200 |
---|---|---|
committer | Matthias Andree <matthias.andree@gmx.de> | 2011-04-11 14:08:32 +0200 |
commit | c22a3afca46c83ee6d53a6ee58deb122f309c460 (patch) | |
tree | 7b91c2e12dcc8ca2253fc239761207e9ee6fabb0 /socket.c | |
parent | 4ab1f5f5f64505f46789c61a6e5a206f3c2ee83e (diff) | |
download | fetchmail-c22a3afca46c83ee6d53a6ee58deb122f309c460.tar.gz fetchmail-c22a3afca46c83ee6d53a6ee58deb122f309c460.tar.bz2 fetchmail-c22a3afca46c83ee6d53a6ee58deb122f309c460.zip |
Remove support for SSLv2 (fixes Debian Bug #622054).
SSLv2 has been deprecated since 1996, and is insecure.
Remove --sslproto SSL2 support.
Set SSL_OP_NO_SSLvSSL_CTX 2 option so that the SSLv23 multi-version
client no longer negotiates SSLv2.
Note that some distributions (such as Debian) build OpenSSL 1.0.0
without SSLv2 support, so on those, the build would fail.
Fixes Debian Bug #622054
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=622054
Diffstat (limited to 'socket.c')
-rw-r--r-- | socket.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -889,16 +889,14 @@ int SSLOpen(int sock, char *mycert, char *mykey, const char *myproto, int certck /* Make sure a connection referring to an older context is not left */ _ssl_context[sock] = NULL; if(myproto) { - if(!strcasecmp("ssl2",myproto)) { - _ctx[sock] = SSL_CTX_new(SSLv2_client_method()); - } else if(!strcasecmp("ssl3",myproto)) { + if(!strcasecmp("ssl3",myproto)) { _ctx[sock] = SSL_CTX_new(SSLv3_client_method()); } else if(!strcasecmp("tls1",myproto)) { _ctx[sock] = SSL_CTX_new(TLSv1_client_method()); } else if (!strcasecmp("ssl23",myproto)) { myproto = NULL; } else { - fprintf(stderr,GT_("Invalid SSL protocol '%s' specified, using default (SSLv23).\n"), myproto); + fprintf(stderr,GT_("Invalid SSL protocol '%s' specified, using default (SSL23).\n"), myproto); myproto = NULL; } } @@ -910,7 +908,7 @@ int SSLOpen(int sock, char *mycert, char *mykey, const char *myproto, int certck return(-1); } - SSL_CTX_set_options(_ctx[sock], SSL_OP_ALL); + SSL_CTX_set_options(_ctx[sock], SSL_OP_ALL | SSL_OP_NO_SSLv2); if (certck) { SSL_CTX_set_verify(_ctx[sock], SSL_VERIFY_PEER, SSL_ck_verify_callback); |