From 4c8c768b6e51518a8cd906416df326ba178071cb Mon Sep 17 00:00:00 2001 From: Paul Howarth Date: Oct 10 2014 13:48:05 +0000 Subject: Update to 1.999 - New upstream release 1.999 - Make sure we don't use version 0.30 of IO::Socket::IP - Make sure that PeerHost is checked in all places where PeerAddr is checked, because these are synonyms and IO::Socket::IP prefers PeerHost while others prefer PeerAddr; also accept PeerService additionally to PeerPort (https://github.com/noxxi/p5-io-socket-ssl/issues/16) - Add ability to use client certificates and to overwrite hostname with util/analyze-ssl.pl --- diff --git a/IO-Socket-SSL-1.997-use-system-default-cipher-list.patch b/IO-Socket-SSL-1.997-use-system-default-cipher-list.patch deleted file mode 100644 index d565729..0000000 --- a/IO-Socket-SSL-1.997-use-system-default-cipher-list.patch +++ /dev/null @@ -1,73 +0,0 @@ ---- lib/IO/Socket/SSL.pm -+++ lib/IO/Socket/SSL.pm -@@ -89,9 +89,7 @@ my %DEFAULT_SSL_ARGS = ( - SSL_verifycn_publicsuffix => undef, # fallback default list verification - #SSL_verifycn_name => undef, # use from PeerAddr/PeerHost - do not override in set_args_filter_hack 'use_defaults' - SSL_npn_protocols => undef, # meaning depends whether on server or client side -- SSL_cipher_list => -- 'EECDH+AESGCM+ECDSA EECDH+AESGCM EECDH+ECDSA +AES256 EECDH EDH+AESGCM '. -- 'EDH ALL +SHA +3DES +RC4 !LOW !EXP !eNULL !aNULL !DES !MD5 !PSK !SRP', -+ SSL_cipher_list => 'DEFAULT', - ); - - my %DEFAULT_SSL_CLIENT_ARGS = ( -@@ -101,42 +99,6 @@ my %DEFAULT_SSL_CLIENT_ARGS = ( - SSL_ca_file => undef, - SSL_ca_path => undef, - -- # older versions of F5 BIG-IP hang when getting SSL client hello >255 bytes -- # http://support.f5.com/kb/en-us/solutions/public/13000/000/sol13037.html -- # http://guest:guest@rt.openssl.org/Ticket/Display.html?id=2771 -- # Debian works around this by disabling TLSv1_2 on the client side -- # Chrome and IE11 use TLSv1_2 but use only a few ciphers, so that packet -- # stays small enough -- # The following list is taken from IE11, except that we don't do RC4-MD5, -- # RC4-SHA is already bad enough. Also, we have a different sort order -- # compared to IE11, because we put ciphers supporting forward secrecy on top -- -- SSL_cipher_list => join(" ", -- qw( -- ECDHE-ECDSA-AES128-GCM-SHA256 -- ECDHE-ECDSA-AES128-SHA256 -- ECDHE-ECDSA-AES256-GCM-SHA384 -- ECDHE-ECDSA-AES256-SHA384 -- ECDHE-ECDSA-AES128-SHA -- ECDHE-ECDSA-AES256-SHA -- ECDHE-RSA-AES128-SHA256 -- ECDHE-RSA-AES128-SHA -- ECDHE-RSA-AES256-SHA -- DHE-DSS-AES128-SHA256 -- DHE-DSS-AES128-SHA -- DHE-DSS-AES256-SHA256 -- DHE-DSS-AES256-SHA -- AES128-SHA256 -- AES128-SHA -- AES256-SHA256 -- AES256-SHA -- EDH-DSS-DES-CBC3-SHA -- DES-CBC3-SHA -- RC4-SHA -- ), -- # just to make sure, that we don't accidentely add bad ciphers above -- "!EXP !LOW !eNULL !aNULL !DES !MD5 !PSK !SRP" -- ) - ); - - # set values inside _init to work with perlcc, RT#95452 ---- lib/IO/Socket/SSL.pod -+++ lib/IO/Socket/SSL.pod -@@ -929,12 +929,8 @@ documentation (L 0, -- SSL_version => 'SSLv23:!SSLv2', -+ SSL_version => '', - SSL_verify_callback => undef, - SSL_verifycn_scheme => undef, # fallback cn verification - SSL_verifycn_publicsuffix => undef, # fallback default list verification -@@ -2045,7 +2045,7 @@ WARN - - my $ssl_op = Net::SSLeay::OP_ALL(); - -- my $ver; -+ my $ver = ''; - for (split(/\s*:\s*/,$arg_hash->{SSL_version})) { - m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1(?:_?[12])?))$}i - or croak("invalid SSL_version specified"); ---- lib/IO/Socket/SSL.pod -+++ lib/IO/Socket/SSL.pod -@@ -910,7 +910,8 @@ recent versions of Net::SSLeay and opens - - You can limit to set of supported protocols by adding !version separated by ':'. - --The default SSL_version is 'SSLv23:!SSLv2' which means, that SSLv2, SSLv3 and -+The default SSL_version is defined by underlying cryptographic library. -+For example, 'SSLv23:!SSLv2' means that SSLv2, SSLv3 and TLSv1 - TLSv1 are supported for initial protocol handshakes, but SSLv2 will not be - accepted, leaving only SSLv3 and TLSv1. You can also use !TLSv1_1 and !TLSv1_2 - to disable TLS versions 1.1 and 1.2 while allowing TLS version 1.0. diff --git a/IO-Socket-SSL-1.999-use-system-default-SSL-version.patch b/IO-Socket-SSL-1.999-use-system-default-SSL-version.patch new file mode 100644 index 0000000..5178854 --- /dev/null +++ b/IO-Socket-SSL-1.999-use-system-default-SSL-version.patch @@ -0,0 +1,32 @@ +--- lib/IO/Socket/SSL.pm ++++ lib/IO/Socket/SSL.pm +@@ -83,7 +83,7 @@ my $algo2digest = do { + # global defaults + my %DEFAULT_SSL_ARGS = ( + SSL_check_crl => 0, +- SSL_version => 'SSLv23:!SSLv2', ++ SSL_version => '', + SSL_verify_callback => undef, + SSL_verifycn_scheme => undef, # fallback cn verification + SSL_verifycn_publicsuffix => undef, # fallback default list verification +@@ -2054,7 +2054,7 @@ WARN + + my $ssl_op = Net::SSLeay::OP_ALL(); + +- my $ver; ++ my $ver = ''; + for (split(/\s*:\s*/,$arg_hash->{SSL_version})) { + m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1(?:_?[12])?))$}i + or croak("invalid SSL_version specified"); +--- lib/IO/Socket/SSL.pod ++++ lib/IO/Socket/SSL.pod +@@ -912,7 +912,8 @@ recent versions of Net::SSLeay and opens + + You can limit to set of supported protocols by adding !version separated by ':'. + +-The default SSL_version is 'SSLv23:!SSLv2' which means, that SSLv2, SSLv3 and ++The default SSL_version is defined by underlying cryptographic library. ++For example, 'SSLv23:!SSLv2' means that SSLv2, SSLv3 and TLSv1 + TLSv1 are supported for initial protocol handshakes, but SSLv2 will not be + accepted, leaving only SSLv3 and TLSv1. You can also use !TLSv1_1 and !TLSv1_2 + to disable TLS versions 1.1 and 1.2 while allowing TLS version 1.0. diff --git a/IO-Socket-SSL-1.999-use-system-default-cipher-list.patch b/IO-Socket-SSL-1.999-use-system-default-cipher-list.patch new file mode 100644 index 0000000..d78b7ea --- /dev/null +++ b/IO-Socket-SSL-1.999-use-system-default-cipher-list.patch @@ -0,0 +1,73 @@ +--- lib/IO/Socket/SSL.pm ++++ lib/IO/Socket/SSL.pm +@@ -89,9 +89,7 @@ my %DEFAULT_SSL_ARGS = ( + SSL_verifycn_publicsuffix => undef, # fallback default list verification + #SSL_verifycn_name => undef, # use from PeerAddr/PeerHost - do not override in set_args_filter_hack 'use_defaults' + SSL_npn_protocols => undef, # meaning depends whether on server or client side +- SSL_cipher_list => +- 'EECDH+AESGCM+ECDSA EECDH+AESGCM EECDH+ECDSA +AES256 EECDH EDH+AESGCM '. +- 'EDH ALL +SHA +3DES +RC4 !LOW !EXP !eNULL !aNULL !DES !MD5 !PSK !SRP', ++ SSL_cipher_list => 'DEFAULT', + ); + + my %DEFAULT_SSL_CLIENT_ARGS = ( +@@ -101,42 +99,6 @@ my %DEFAULT_SSL_CLIENT_ARGS = ( + SSL_ca_file => undef, + SSL_ca_path => undef, + +- # older versions of F5 BIG-IP hang when getting SSL client hello >255 bytes +- # http://support.f5.com/kb/en-us/solutions/public/13000/000/sol13037.html +- # http://guest:guest@rt.openssl.org/Ticket/Display.html?id=2771 +- # Debian works around this by disabling TLSv1_2 on the client side +- # Chrome and IE11 use TLSv1_2 but use only a few ciphers, so that packet +- # stays small enough +- # The following list is taken from IE11, except that we don't do RC4-MD5, +- # RC4-SHA is already bad enough. Also, we have a different sort order +- # compared to IE11, because we put ciphers supporting forward secrecy on top +- +- SSL_cipher_list => join(" ", +- qw( +- ECDHE-ECDSA-AES128-GCM-SHA256 +- ECDHE-ECDSA-AES128-SHA256 +- ECDHE-ECDSA-AES256-GCM-SHA384 +- ECDHE-ECDSA-AES256-SHA384 +- ECDHE-ECDSA-AES128-SHA +- ECDHE-ECDSA-AES256-SHA +- ECDHE-RSA-AES128-SHA256 +- ECDHE-RSA-AES128-SHA +- ECDHE-RSA-AES256-SHA +- DHE-DSS-AES128-SHA256 +- DHE-DSS-AES128-SHA +- DHE-DSS-AES256-SHA256 +- DHE-DSS-AES256-SHA +- AES128-SHA256 +- AES128-SHA +- AES256-SHA256 +- AES256-SHA +- EDH-DSS-DES-CBC3-SHA +- DES-CBC3-SHA +- RC4-SHA +- ), +- # just to make sure, that we don't accidentely add bad ciphers above +- "!EXP !LOW !eNULL !aNULL !DES !MD5 !PSK !SRP" +- ) + ); + + # set values inside _init to work with perlcc, RT#95452 +--- lib/IO/Socket/SSL.pod ++++ lib/IO/Socket/SSL.pod +@@ -931,12 +931,8 @@ documentation (L= 0.9.8 @@ -100,6 +100,16 @@ rm -rf %{buildroot} %{_mandir}/man3/IO::Socket::SSL::Utils.3* %changelog +* Fri Oct 10 2014 Paul Howarth - 1.999-1 +- Update to 1.999 + - Make sure we don't use version 0.30 of IO::Socket::IP + - Make sure that PeerHost is checked in all places where PeerAddr is checked, + because these are synonyms and IO::Socket::IP prefers PeerHost while others + prefer PeerAddr; also accept PeerService additionally to PeerPort + (https://github.com/noxxi/p5-io-socket-ssl/issues/16) + - Add ability to use client certificates and to overwrite hostname with + util/analyze-ssl.pl + * Mon Sep 22 2014 Paul Howarth - 1.998-1 - Update to 1.998 - Make client authentication work at the server side when SNI is in by use diff --git a/sources b/sources index b0270bd..4c5b6e9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -00e23adb0bd80f4fa9c4336109e4f9db IO-Socket-SSL-1.998.tar.gz +4f59cb143df2cf2664c83f3360febafb IO-Socket-SSL-1.999.tar.gz