summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2011-05-06 13:19:49 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2011-05-06 13:19:49 (GMT)
commit1c86b4450689cc9ecef6c99ad8e55bae67931e59 (patch)
tree93db475c6bae4a416638fa39cec89d074ae3c542 /Lib/test
parent78349b06af6cabe7ff949a98fafa15d8a9c48c61 (diff)
downloadcpython-1c86b4450689cc9ecef6c99ad8e55bae67931e59.zip
cpython-1c86b4450689cc9ecef6c99ad8e55bae67931e59.tar.gz
cpython-1c86b4450689cc9ecef6c99ad8e55bae67931e59.tar.bz2
Issue #12000: When a SSL certificate has a subjectAltName without any
dNSName entry, ssl.match_hostname() should use the subject's commonName. Patch by Nicolas Bareil.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_ssl.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 164b6c2..ba788e4 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -277,6 +277,24 @@ class BasicSocketTests(unittest.TestCase):
(('organizationName', 'Google Inc'),))}
fail(cert, 'mail.google.com')
+ # No DNS entry in subjectAltName but a commonName
+ cert = {'notAfter': 'Dec 18 23:59:59 2099 GMT',
+ 'subject': ((('countryName', 'US'),),
+ (('stateOrProvinceName', 'California'),),
+ (('localityName', 'Mountain View'),),
+ (('commonName', 'mail.google.com'),)),
+ 'subjectAltName': (('othername', 'blabla'), )}
+ ok(cert, 'mail.google.com')
+
+ # No DNS entry subjectAltName and no commonName
+ cert = {'notAfter': 'Dec 18 23:59:59 2099 GMT',
+ 'subject': ((('countryName', 'US'),),
+ (('stateOrProvinceName', 'California'),),
+ (('localityName', 'Mountain View'),),
+ (('organizationName', 'Google Inc'),)),
+ 'subjectAltName': (('othername', 'blabla'),)}
+ fail(cert, 'google.com')
+
# Empty cert / no cert
self.assertRaises(ValueError, ssl.match_hostname, None, 'example.com')
self.assertRaises(ValueError, ssl.match_hostname, {}, 'example.com')