Mercurial > public > mercurial-scm > hg
comparison tests/test-url.py @ 13249:75d0c38a0bca stable
url: check subjectAltName when verifying ssl certificate
Now it verifies certificate in the same manner as py3k implementation:
http://svn.python.org/view/python/branches/py3k/Lib/ssl.py?view=markup#match_hostname
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 09 Jan 2011 00:35:36 +0900 |
parents | 00411a4fa1bb |
children | 4e8f2310f310 |
comparison
equal
deleted
inserted
replaced
13248:00411a4fa1bb | 13249:75d0c38a0bca |
---|---|
23 check(_verifycert(cert('*.example.com'), 'example.com'), | 23 check(_verifycert(cert('*.example.com'), 'example.com'), |
24 'certificate is for *.example.com') | 24 'certificate is for *.example.com') |
25 check(_verifycert(cert('*.example.com'), 'w.w.example.com'), | 25 check(_verifycert(cert('*.example.com'), 'w.w.example.com'), |
26 'certificate is for *.example.com') | 26 'certificate is for *.example.com') |
27 | 27 |
28 # Test subjectAltName | |
29 san_cert = {'subject': ((('commonName', 'example.com'),),), | |
30 'subjectAltName': (('DNS', '*.example.net'), | |
31 ('DNS', 'example.net'))} | |
32 check(_verifycert(san_cert, 'example.net'), | |
33 None) | |
34 check(_verifycert(san_cert, 'foo.example.net'), | |
35 None) | |
36 # subject is only checked when subjectAltName is empty | |
37 check(_verifycert(san_cert, 'example.com'), | |
38 'certificate is for *.example.net, example.net') | |
39 | |
28 # Avoid some pitfalls | 40 # Avoid some pitfalls |
29 check(_verifycert(cert('*.foo'), 'foo'), | 41 check(_verifycert(cert('*.foo'), 'foo'), |
30 'certificate is for *.foo') | 42 'certificate is for *.foo') |
31 check(_verifycert(cert('*o'), 'foo'), | 43 check(_verifycert(cert('*o'), 'foo'), |
32 'certificate is for *o') | 44 'certificate is for *o') |
33 | 45 |
34 check(_verifycert({'subject': ()}, | 46 check(_verifycert({'subject': ()}, |
35 'example.com'), | 47 'example.com'), |
36 'no commonName found in certificate') | 48 'no commonName or subjectAltName found in certificate') |
37 check(_verifycert(None, 'example.com'), | 49 check(_verifycert(None, 'example.com'), |
38 'no certificate received') | 50 'no certificate received') |
39 | 51 |
40 # Unicode (IDN) certname isn't supported | 52 # Unicode (IDN) certname isn't supported |
41 check(_verifycert(cert(u'\u4f8b.jp'), 'example.jp'), | 53 check(_verifycert(cert(u'\u4f8b.jp'), 'example.jp'), |