Issue #11811: ssl.get_server_certificate() is now IPv6-compatible. Patch

by Charles-François Natali.
This commit is contained in:
Antoine Pitrou 2011-04-28 19:23:55 +02:00
parent 9c39f3c4ec
commit 15399c3f09
4 changed files with 31 additions and 20 deletions

View file

@ -81,7 +81,7 @@ from _ssl import HAS_SNI
from socket import getnameinfo as _getnameinfo
from socket import error as socket_error
from socket import socket, AF_INET, SOCK_STREAM
from socket import socket, AF_INET, SOCK_STREAM, create_connection
import base64 # for DER-to-PEM translation
import traceback
import errno
@ -543,9 +543,9 @@ def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None):
cert_reqs = CERT_REQUIRED
else:
cert_reqs = CERT_NONE
s = wrap_socket(socket(), ssl_version=ssl_version,
s = create_connection(addr)
s = wrap_socket(s, ssl_version=ssl_version,
cert_reqs=cert_reqs, ca_certs=ca_certs)
s.connect(addr)
dercert = s.getpeercert(True)
s.close()
return DER_cert_to_PEM_cert(dercert)