diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-06-17 16:38:00 +0300 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-06-17 16:38:00 +0300 |
commit | a5f004fe7d2f53f5e246003e4642353de1617cab (patch) | |
tree | 509689a5ae3b199f4b54741fec99d99933e8f0d8 | |
parent | 774bed7e6098358012bd4ea05914497891ab4652 (diff) | |
parent | 9424bb4aea0e0a6f20c8ae6e451dfa83d1101923 (diff) | |
download | cpython-git-a5f004fe7d2f53f5e246003e4642353de1617cab.tar.gz |
Merge heads
-rw-r--r-- | Lib/test/test_ssl.py | 18 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 19 insertions, 2 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 08a07bab80..e2edcffa67 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -6,6 +6,7 @@ from test import support import socket import select import time +import datetime import gc import os import errno @@ -73,6 +74,19 @@ def no_sslv2_implies_sslv3_hello(): # 0.9.7h or higher return ssl.OPENSSL_VERSION_INFO >= (0, 9, 7, 8, 15) +def asn1time(cert_time): + # Some versions of OpenSSL ignore seconds, see #18207 + # 0.9.8.i + if ssl._OPENSSL_API_VERSION == (0, 9, 8, 9, 15): + fmt = "%b %d %H:%M:%S %Y GMT" + dt = datetime.datetime.strptime(cert_time, fmt) + dt = dt.replace(second=0) + cert_time = dt.strftime(fmt) + # %d adds leading zero but ASN1_TIME_print() uses leading space + if cert_time[4] == "0": + cert_time = cert_time[:4] + " " + cert_time[5:] + + return cert_time # Issue #9415: Ubuntu hijacks their OpenSSL and forcefully disables SSLv2 def skip_if_broken_ubuntu_ssl(func): @@ -142,8 +156,8 @@ class BasicSocketTests(unittest.TestCase): (('commonName', 'localhost'),)) ) # Note the next three asserts will fail if the keys are regenerated - self.assertEqual(p['notAfter'], 'Oct 5 23:01:56 2020 GMT') - self.assertEqual(p['notBefore'], 'Oct 8 23:01:56 2010 GMT') + self.assertEqual(p['notAfter'], asn1time('Oct 5 23:01:56 2020 GMT')) + self.assertEqual(p['notBefore'], asn1time('Oct 8 23:01:56 2010 GMT')) self.assertEqual(p['serialNumber'], 'D7C7381919AFC24E') self.assertEqual(p['subject'], ((('countryName', 'XY'),), @@ -412,6 +412,9 @@ Library Tests ----- +- Issue #18207: Fix test_ssl for some versions of OpenSSL that ignore seconds + in ASN1_TIME fields. + - Issue #18094: test_uuid no more reports skipped tests as passed. - Issue #17992: Add timeouts to asyncore and asynchat tests so that they won't |