pghmcfc pushed to perl-IO-Socket-SSL (master). "Update to 2.018 (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Tue Sep 1 08:45:17 UTC 2015


From 6f9741cacda504506b9c6e27698cf2f56bfe4212 Mon Sep 17 00:00:00 2001
From: Paul Howarth <paul at city-fan.org>
Date: Tue, 1 Sep 2015 09:44:25 +0100
Subject: Update to 2.018

- New upstream release 2.018
  - Checks for readability of files/dirs for certificates and CA no longer use
    -r because this is not safe when ACLs are used (CPAN RT#106295)
  - New method sock_certificate similar to peer_certificate (CPAN RT#105733)
  - get_fingerprint can now take optional certificate as argument and compute
    the fingerprint of it; useful in connection with sock_certificate
  - Check for both EWOULDBLOCK and EAGAIN since these codes are different on
    some platforms (CPAN RT#106573)
  - Enforce default verification scheme if nothing was specified, i.e. no
    longer just warn but accept; if really no verification is wanted, a scheme
    of 'none' must be explicitly specified
  - Support different cipher suites per SNI hosts
  - startssl.t failed on darwin with old openssl since server requested client
    certificate but offered also anon ciphers (CPAN RT#106687)
- Update patches as needed

diff --git a/IO-Socket-SSL-2.016-use-system-default-SSL-version.patch b/IO-Socket-SSL-2.016-use-system-default-SSL-version.patch
deleted file mode 100644
index 9cebdef..0000000
--- a/IO-Socket-SSL-2.016-use-system-default-SSL-version.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- lib/IO/Socket/SSL.pm
-+++ lib/IO/Socket/SSL.pm
-@@ -85,7 +85,7 @@ my $algo2digest = do {
- # global defaults
- my %DEFAULT_SSL_ARGS = (
-     SSL_check_crl => 0,
--    SSL_version => 'SSLv23:!SSLv3:!SSLv2', # consider both SSL3.0 and SSL2.0 as broken
-+    SSL_version => '',
-     SSL_verify_callback => undef,
-     SSL_verifycn_scheme => undef,  # fallback cn verification
-     SSL_verifycn_publicsuffix => undef,  # fallback default list verification
-@@ -2133,7 +2133,7 @@ WARN
-     $ssl_op |= &Net::SSLeay::OP_SINGLE_DH_USE;
-     $ssl_op |= &Net::SSLeay::OP_SINGLE_ECDH_USE if $can_ecdh;
- 
--    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
-@@ -932,11 +932,12 @@ protocol to the specified version.
- All values are case-insensitive.  Instead of 'TLSv1_1' and 'TLSv1_2' one can
- also use 'TLSv11' and 'TLSv12'.  Support for 'TLSv1_1' and 'TLSv1_2' requires
- recent versions of Net::SSLeay and openssl.
-+The default SSL_version is defined by the underlying cryptographic library.
- 
- Independent from the handshake format you can limit to set of accepted SSL
- versions by adding !version separated by ':'.
- 
--The default SSL_version is 'SSLv23:!SSLv3:!SSLv2' which means, that the
-+For example, 'SSLv23:!SSLv3:!SSLv2' means that the
- handshake format is compatible to SSL2.0 and higher, but that the successful
- handshake is limited to TLS1.0 and higher, that is no SSL2.0 or SSL3.0 because
- both of these versions have serious security issues and should not be used
diff --git a/IO-Socket-SSL-2.016-use-system-default-cipher-list.patch b/IO-Socket-SSL-2.016-use-system-default-cipher-list.patch
deleted file mode 100644
index f6b94f2..0000000
--- a/IO-Socket-SSL-2.016-use-system-default-cipher-list.patch
+++ /dev/null
@@ -1,73 +0,0 @@
---- lib/IO/Socket/SSL.pm
-+++ lib/IO/Socket/SSL.pm
-@@ -92,9 +92,7 @@ my %DEFAULT_SSL_ARGS = (
-     #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_alpn_protocols => undef,   # list of protocols we'll accept/send, for example ['http/1.1','spdy/3.1']
--    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 = (
-@@ -104,42 +102,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
-@@ -958,12 +958,8 @@ documentation (L<http://www.openssl.org/
- for more details.
- 
- Unless you fail to contact your peer because of no shared ciphers it is
--recommended to leave this option at the default setting. The default setting
--prefers ciphers with forward secrecy, disables anonymous authentication and
--disables known insecure ciphers like MD5, DES etc. This gives a grade A result
--at the tests of SSL Labs.
--To use the less secure OpenSSL builtin default (whatever this is) set
--SSL_cipher_list to ''.
-+recommended to leave this option at the default setting, which honors the
-+system-wide DEFAULT cipher list.
- 
- =item SSL_honor_cipher_order
- 
diff --git a/IO-Socket-SSL-2.018-use-system-default-SSL-version.patch b/IO-Socket-SSL-2.018-use-system-default-SSL-version.patch
new file mode 100644
index 0000000..e1b2784
--- /dev/null
+++ b/IO-Socket-SSL-2.018-use-system-default-SSL-version.patch
@@ -0,0 +1,36 @@
+--- lib/IO/Socket/SSL.pm
++++ lib/IO/Socket/SSL.pm
+@@ -85,7 +85,7 @@ my $algo2digest = do {
+ # global defaults
+ my %DEFAULT_SSL_ARGS = (
+     SSL_check_crl => 0,
+-    SSL_version => 'SSLv23:!SSLv3:!SSLv2', # consider both SSL3.0 and SSL2.0 as broken
++    SSL_version => '',
+     SSL_verify_callback => undef,
+     SSL_verifycn_scheme => undef,  # fallback cn verification
+     SSL_verifycn_publicsuffix => undef,  # fallback default list verification
+@@ -2135,7 +2135,7 @@ sub new {
+     $ssl_op |= &Net::SSLeay::OP_SINGLE_DH_USE;
+     $ssl_op |= &Net::SSLeay::OP_SINGLE_ECDH_USE if $can_ecdh;
+ 
+-    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
+@@ -934,11 +934,12 @@ protocol to the specified version.
+ All values are case-insensitive.  Instead of 'TLSv1_1' and 'TLSv1_2' one can
+ also use 'TLSv11' and 'TLSv12'.  Support for 'TLSv1_1' and 'TLSv1_2' requires
+ recent versions of Net::SSLeay and openssl.
++The default SSL_version is defined by the underlying cryptographic library.
+ 
+ Independent from the handshake format you can limit to set of accepted SSL
+ versions by adding !version separated by ':'.
+ 
+-The default SSL_version is 'SSLv23:!SSLv3:!SSLv2' which means, that the
++For example, 'SSLv23:!SSLv3:!SSLv2' means that the
+ handshake format is compatible to SSL2.0 and higher, but that the successful
+ handshake is limited to TLS1.0 and higher, that is no SSL2.0 or SSL3.0 because
+ both of these versions have serious security issues and should not be used
diff --git a/IO-Socket-SSL-2.018-use-system-default-cipher-list.patch b/IO-Socket-SSL-2.018-use-system-default-cipher-list.patch
new file mode 100644
index 0000000..8468bc9
--- /dev/null
+++ b/IO-Socket-SSL-2.018-use-system-default-cipher-list.patch
@@ -0,0 +1,73 @@
+--- lib/IO/Socket/SSL.pm
++++ lib/IO/Socket/SSL.pm
+@@ -92,9 +92,7 @@ my %DEFAULT_SSL_ARGS = (
+     #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_alpn_protocols => undef,   # list of protocols we'll accept/send, for example ['http/1.1','spdy/3.1']
+-    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 = (
+@@ -104,42 +102,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
+@@ -960,12 +960,8 @@ documentation (L<http://www.openssl.org/
+ for more details.
+ 
+ Unless you fail to contact your peer because of no shared ciphers it is
+-recommended to leave this option at the default setting. The default setting
+-prefers ciphers with forward secrecy, disables anonymous authentication and
+-disables known insecure ciphers like MD5, DES etc. This gives a grade A result
+-at the tests of SSL Labs.
+-To use the less secure OpenSSL builtin default (whatever this is) set
+-SSL_cipher_list to ''.
++recommended to leave this option at the default setting, which honors the
++system-wide DEFAULT cipher list.
+ 
+ In case different cipher lists are needed for different SNI hosts a hash can be
+ given with the host as key and the cipher suite as value, similar to
diff --git a/perl-IO-Socket-SSL.spec b/perl-IO-Socket-SSL.spec
index 9892154..266a9a7 100644
--- a/perl-IO-Socket-SSL.spec
+++ b/perl-IO-Socket-SSL.spec
@@ -1,16 +1,19 @@
 Name:		perl-IO-Socket-SSL
-Version:	2.016
-Release:	3%{?dist}
+Version:	2.018
+Release:	1%{?dist}
 Summary:	Perl library for transparent SSL
 Group:		Development/Libraries
 License:	GPL+ or Artistic
 URL:		http://search.cpan.org/dist/IO-Socket-SSL/
 Source0:	http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-%{version}.tar.gz
-Patch0:		IO-Socket-SSL-2.016-use-system-default-cipher-list.patch
-Patch1:		IO-Socket-SSL-2.016-use-system-default-SSL-version.patch
+Patch0:		IO-Socket-SSL-2.018-use-system-default-cipher-list.patch
+Patch1:		IO-Socket-SSL-2.018-use-system-default-SSL-version.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
 BuildArch:	noarch
 # Module Build
+BuildRequires:	coreutils
+BuildRequires:	findutils
+BuildRequires:	make
 BuildRequires:	perl
 BuildRequires:	perl(ExtUtils::MakeMaker)
 # Module Runtime
@@ -112,6 +115,23 @@ rm -rf %{buildroot}
 %{_mandir}/man3/IO::Socket::SSL::Utils.3*
 
 %changelog
+* Mon Aug 31 2015 Paul Howarth <paul at city-fan.org> - 2.018-1
+- Update to 2.018
+  - Checks for readability of files/dirs for certificates and CA no longer use
+    -r because this is not safe when ACLs are used (CPAN RT#106295)
+  - New method sock_certificate similar to peer_certificate (CPAN RT#105733)
+  - get_fingerprint can now take optional certificate as argument and compute
+    the fingerprint of it; useful in connection with sock_certificate
+  - Check for both EWOULDBLOCK and EAGAIN since these codes are different on
+    some platforms (CPAN RT#106573)
+  - Enforce default verification scheme if nothing was specified, i.e. no
+    longer just warn but accept; if really no verification is wanted, a scheme
+    of 'none' must be explicitly specified
+  - Support different cipher suites per SNI hosts
+  - startssl.t failed on darwin with old openssl since server requested client
+    certificate but offered also anon ciphers (CPAN RT#106687)
+- Update patches as needed
+
 * Thu Jun 18 2015 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.016-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
 
diff --git a/sources b/sources
index c4c64f6..fefc0b8 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-a71e9f0f76c7a15a11fef14ca8ef8aa8  IO-Socket-SSL-2.016.tar.gz
+817adc9e0cd6817998fd49dea3fe0349  IO-Socket-SSL-2.018.tar.gz
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/perl-IO-Socket-SSL.git/commit/?h=master&id=6f9741cacda504506b9c6e27698cf2f56bfe4212


More information about the perl-devel mailing list