aboutsummaryrefslogtreecommitdiffstats
path: root/socket.c
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2011-04-11 14:08:32 +0200
committerMatthias Andree <matthias.andree@gmx.de>2011-04-11 14:08:32 +0200
commitc22a3afca46c83ee6d53a6ee58deb122f309c460 (patch)
tree7b91c2e12dcc8ca2253fc239761207e9ee6fabb0 /socket.c
parent4ab1f5f5f64505f46789c61a6e5a206f3c2ee83e (diff)
downloadfetchmail-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.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/socket.c b/socket.c
index 1adc839d..fad21c50 100644
--- a/socket.c
+++ b/socket.c
@@ -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);