Your IP : 52.15.42.61


Current Path : /opt/alt/python33/lib64/python3.3/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/__pycache__/ssl.cpython-33.pyo

�
��f�_c+@s�dZddlZddlZddlZddlmZmZmZddlmZddlmZm	Z	m
Z
mZmZm
Z
ddlmZmZmZddlmZmZmZmZmZmZyddlmZWnek
r�YnXydd	lmZWnek
rYnXdd
lmZmZmZmZyddlmZWnek
rjYnXddlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'dd
lm(Z(m)Z)m*Z*ddlm+Z+m,Z,m-Z-m.Z.ddlm/Z/e0ed�e1�d<ide-6de,6de+6de.6Z2yddlm3Z3e3Z4Wnek
ree5Z4YnXde2e3<ddl6m7Z8ddl6m9Z:ddl6m6Z6m;Z;m<Z<m=Z=ddl6m>Z>m?Z?ddl@Z@ddlAZAddlBZBejCrdgZDngZDdZEGdd�deF�ZGdd d!�ZHd"d#�ZIGd$d%�d%e�ZJGd&d'�d'e6�ZKe5e5eLee.e5eMeMe5d(d)�	ZNd*d+�ZOd,ZPd-ZQd.d/�ZRd0d1�ZSe+e5d2d3�ZTd4d5�ZUdS(6uThis module provides some more Pythonic support for SSL.

Object types:

  SSLSocket -- subtype of socket.socket which does SSL over the socket

Exceptions:

  SSLError -- exception raised for I/O errors

Functions:

  cert_time_to_seconds -- convert time string used for certificate
                          notBefore and notAfter functions to integer
                          seconds past the Epoch (the time values
                          returned from time.time())

  fetch_server_certificate (HOST, PORT) -- fetch the certificate provided
                          by the server running on HOST at port PORT.  No
                          validation of the certificate is performed.

Integer constants:

SSL_ERROR_ZERO_RETURN
SSL_ERROR_WANT_READ
SSL_ERROR_WANT_WRITE
SSL_ERROR_WANT_X509_LOOKUP
SSL_ERROR_SYSCALL
SSL_ERROR_SSL
SSL_ERROR_WANT_CONNECT

SSL_ERROR_EOF
SSL_ERROR_INVALID_ERROR_CODE

The following group define certificate requirements that one side is
allowing/requiring from the other side:

CERT_NONE - no certificates from the other side are required (or will
            be looked at if provided)
CERT_OPTIONAL - certificates are not required, but if provided will be
                validated, and if validation fails, the connection will
                also fail
CERT_REQUIRED - certificates are required, and will be validated, and
                if validation fails, the connection will also fail

The following constants identify various SSL protocol variants:

PROTOCOL_SSLv2
PROTOCOL_SSLv3
PROTOCOL_SSLv23
PROTOCOL_TLSv1
iN(uOPENSSL_VERSION_NUMBERuOPENSSL_VERSION_INFOuOPENSSL_VERSION(u_SSLContext(uSSLErroruSSLZeroReturnErroruSSLWantReadErroruSSLWantWriteErroruSSLSyscallErroruSSLEOFError(u	CERT_NONEu
CERT_OPTIONALu
CERT_REQUIRED(uOP_ALLuOP_NO_SSLv2uOP_NO_SSLv3uOP_NO_TLSv1uOP_CIPHER_SERVER_PREFERENCEuOP_SINGLE_DH_USE(uOP_NO_COMPRESSION(uOP_SINGLE_ECDH_USE(uRAND_statusuRAND_addu
RAND_bytesuRAND_pseudo_bytes(uRAND_egd(	uSSL_ERROR_ZERO_RETURNuSSL_ERROR_WANT_READuSSL_ERROR_WANT_WRITEuSSL_ERROR_WANT_X509_LOOKUPuSSL_ERROR_SYSCALLu
SSL_ERROR_SSLuSSL_ERROR_WANT_CONNECTu
SSL_ERROR_EOFuSSL_ERROR_INVALID_ERROR_CODE(uHAS_SNIuHAS_ECDHuHAS_NPN(uPROTOCOL_SSLv3uPROTOCOL_SSLv23uPROTOCOL_TLSv1uPROTOCOL_TLS(u_OPENSSL_API_VERSIONuPROTOCOL_TLSuPROTOCOL_SSLv23uTLSv1uSSLv23uSSLv3(uPROTOCOL_SSLv2uSSLv2(ugetnameinfo(uerror(usocketuAF_INETuSOCK_STREAMucreate_connection(u
SOL_SOCKETuSO_TYPEu
tls-uniqueu)DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2cBs|EeZdZdS(uCertificateErrorN(u__name__u
__module__u__qualname__(u
__locals__((u(/opt/alt/python33/lib64/python3.3/ssl.pyuCertificateError�suCertificateErroric	CsDg}|sdS|jd�^}}|jd�}||krYtdt|���n|su|j�|j�kS|dkr�|jd�nY|jd�s�|jd�r�|jtj	|��n"|jtj	|�j
dd��x$|D]}|jtj	|��q�Wtjdd	j|�d
tj
�}|j|�S(uhMatching according to RFC 6125, section 6.4.3

    http://tools.ietf.org/html/rfc6125#section-6.4.3
    u.u*u,too many wildcards in certificate DNS name: u[^.]+uxn--u\*u[^.]*u\Au\.u\ZF(uFalseusplitucountuCertificateErrorurepruloweruappendu
startswithureuescapeureplaceucompileujoinu
IGNORECASEumatch(	udnuhostnameu
max_wildcardsupatsuleftmostu	remainderu	wildcardsufragupat((u(/opt/alt/python33/lib64/python3.3/ssl.pyu_dnsname_match�s&"
&u_dnsname_matchcCs[|std��ng}|jdf�}xC|D];\}}|dkr4t||�r_dS|j|�q4q4W|s�xc|jdf�D]L}xC|D];\}}|dkr�t||�r�dS|j|�q�q�Wq�Wnt|�dkrtd|d	jtt|��f��n;t|�dkrKtd
||df��ntd��dS(
u)Verify that *cert* (in decoded format as returned by
    SSLSocket.getpeercert()) matches the *hostname*.  RFC 2818 and RFC 6125
    rules are followed, but IP addresses are not accepted for *hostname*.

    CertificateError is raised on failure. On success, the function
    returns nothing.
    uempty or no certificateusubjectAltNameuDNSNusubjectu
commonNameiu&hostname %r doesn't match either of %su, uhostname %r doesn't match %riu=no appropriate commonName or subjectAltName fields were found(	u
ValueErrorugetu_dnsname_matchuappendulenuCertificateErrorujoinumapurepr(ucertuhostnameudnsnamesusanukeyuvalueusub((u(/opt/alt/python33/lib64/python3.3/ssl.pyumatch_hostname�s.%umatch_hostnamecBs\|EeZdZdZdZdd�Zdd�Zd
ddddd�Z
d	d
�ZdS(u
SSLContextu|An SSLContext holds various SSL-related configuration options and
    data, such as certificates and possibly a private key.uprotocolcOs2tj||�}|tkr.|jt�n|S(N(u_SSLContextu__new__u_SSLv2_IF_EXISTSuset_ciphersu_DEFAULT_CIPHERS(uclsuprotocoluargsukwargsuself((u(/opt/alt/python33/lib64/python3.3/ssl.pyu__new__�suSSLContext.__new__cCs
||_dS(N(uprotocol(uselfuprotocol((u(/opt/alt/python33/lib64/python3.3/ssl.pyu__init__�suSSLContext.__init__c
Cs+td|d|d|d|d|d|�S(Nusockuserver_sideudo_handshake_on_connectusuppress_ragged_eofsuserver_hostnameu_context(u	SSLSocket(uselfusockuserver_sideudo_handshake_on_connectusuppress_ragged_eofsuserver_hostname((u(/opt/alt/python33/lib64/python3.3/ssl.pyuwrap_socket�s
uSSLContext.wrap_socketcCs�t�}xp|D]h}t|d�}t|�dksIt|�dkrXtd��n|jt|��|j|�qW|j|�dS(Nuasciiii�u(NPN protocols must be 1 to 255 in length(u	bytearrayubytesulenuSSLErroruappenduextendu_set_npn_protocols(uselfu
npn_protocolsuprotosuprotocolub((u(/opt/alt/python33/lib64/python3.3/ssl.pyuset_npn_protocolss	
$uSSLContext.set_npn_protocolsN(uprotocolFT(u__name__u
__module__u__qualname__u__doc__u	__slots__u__new__u__init__uFalseuTrueuNoneuwrap_socketuset_npn_protocols(u
__locals__((u(/opt/alt/python33/lib64/python3.3/ssl.pyu
SSLContext�su
SSLContextcBs�|EeZdZdZd?d?d?d@eed?dAe	e
dd?dAd?d?d?d?dd�Zdd�Zd?dd�Z
dd?d	d
�Zdd�Zd@d
d�Zdd�Zdd�Zdd�Zddd�Zd?dd�Zdd�Zddd�Zdddd�Zd?dd d!�Zddd"d#�Zd?dd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Z d0d1�Z!d@d2d3�Z"d4d5�Z#d6d7�Z$d8d9�Z%d:d;�Z&d<d=d>�Z'd?S(Bu	SSLSocketu�This class implements a subtype of socket.socket that wraps
    the underlying OS socket in an SSL context when necessary, and
    provides read and write methods over that channel.ic"Cs2|r||_n|r.|r.td��n|rJ|rJtd��n|r`|r`|}nt|�|_||j_|r�|jj|�n|r�|jj||�n|r�|jj|�n|r�|jj|�n||_||_	||_
||_||_||_
|jtt�tkr?td��n|rZ|rZtd��n||_||_||_|
|_d}|dk	r8tj|d|jd|jd|jd|j��|j|j ��y|j!�Wn=t"k
r$}z|j#t#j$kr�nWYdd}~XnXd}|j&�nA|dk	rZtj|d|�ntj|d|	d|
d|�d|_'d|_(||_)|r.yY|jj*|||�|_(|r�|j �}|d	kr�td
��n|j+�nWq.t"k
r*}z|j,�|�WYdd}~Xq.XndS(
Nu5certfile must be specified for server-side operationsucertfile must be specifiedu!only stream sockets are supportedu4server_hostname can only be specified in client modeufamilyutypeuprotoufilenoguHdo_handshake_on_connect should not be specified for non-blocking socketsFT(-ucontextu
ValueErroru
SSLContextuverify_modeuload_verify_locationsuload_cert_chainuset_npn_protocolsuset_ciphersukeyfileucertfileu	cert_reqsussl_versionuca_certsuciphersu
getsockoptu
SOL_SOCKETuSO_TYPEuSOCK_STREAMuNotImplementedErroruserver_sideuserver_hostnameudo_handshake_on_connectusuppress_ragged_eofsuFalseuNoneusocketu__init__ufamilyutypeuprotoufilenou
settimeoutu
gettimeoutugetpeernameusocket_erroruerrnouENOTCONNuTrueudetachu_closedu_sslobju
_connectedu_wrap_socketudo_handshakeuclose(uselfusockukeyfileucertfileuserver_sideu	cert_reqsussl_versionuca_certsudo_handshake_on_connectufamilyutypeuprotoufilenousuppress_ragged_eofsu
npn_protocolsuciphersuserver_hostnameu_contextu	connectedueutimeoutux((u(/opt/alt/python33/lib64/python3.3/ssl.pyu__init__s�	


														

			
uSSLSocket.__init__cCstd|jj��dS(NuCan't dup() %s instances(uNotImplementedu	__class__u__name__(uself((u(/opt/alt/python33/lib64/python3.3/ssl.pyuduphsu
SSLSocket.dupcCsdS(N((uselfumsg((u(/opt/alt/python33/lib64/python3.3/ssl.pyu_checkClosedlsuSSLSocket._checkClosedcCs�|j�yD|dk	r1|jj||�}n|jj|pCd�}|SWn[tk
r�}z;|jdtkr�|jr�|dk	r�dSdSn�WYdd}~XnXdS(uORead up to LEN bytes and return them.
        Return zero-length string on EOF.iisN(u_checkCloseduNoneu_sslobjureaduSSLErroruargsu
SSL_ERROR_EOFusuppress_ragged_eofs(uselfulenubufferuvux((u(/opt/alt/python33/lib64/python3.3/ssl.pyureadps
uSSLSocket.readcCs|j�|jj|�S(uhWrite DATA to the underlying SSL channel.  Returns
        number of bytes of DATA actually transmitted.(u_checkClosedu_sslobjuwrite(uselfudata((u(/opt/alt/python33/lib64/python3.3/ssl.pyuwrite�s
uSSLSocket.writecCs|j�|jj|�S(u�Returns a formatted version of the data in the
        certificate provided by the other end of the SSL channel.
        Return None if no certificate was provided, {} if a
        certificate was provided, but not validated.(u_checkClosedu_sslobjupeer_certificate(uselfubinary_form((u(/opt/alt/python33/lib64/python3.3/ssl.pyugetpeercert�s
uSSLSocket.getpeercertcCs3|j�|jstjr"dS|jj�SdS(N(u_checkClosedu_sslobju_ssluHAS_NPNuNoneuselected_npn_protocol(uself((u(/opt/alt/python33/lib64/python3.3/ssl.pyuselected_npn_protocol�s
uSSLSocket.selected_npn_protocolcCs(|j�|jsdS|jj�SdS(N(u_checkClosedu_sslobjuNoneucipher(uself((u(/opt/alt/python33/lib64/python3.3/ssl.pyucipher�s
	uSSLSocket.ciphercCs(|j�|jsdS|jj�SdS(N(u_checkClosedu_sslobjuNoneucompression(uself((u(/opt/alt/python33/lib64/python3.3/ssl.pyucompression�s
	uSSLSocket.compressioncCs�|j�|jr�|dkr5td|j��nx�y|jj|�}WnVtk
r�}z6|jdtkrzdS|jdtkr�dS�WYdd}~Xq8X|Sq8nt	j
|||�SdS(Niu3non-zero flags not allowed in calls to send() on %s(u_checkClosedu_sslobju
ValueErroru	__class__uwriteuSSLErroruargsuSSL_ERROR_WANT_READuSSL_ERROR_WANT_WRITEusocketusend(uselfudatauflagsuvux((u(/opt/alt/python33/lib64/python3.3/ssl.pyusend�s"
	
uSSLSocket.sendcCsb|j�|jr)td|j��n5|dkrHtj|||�Stj||||�SdS(Nu%sendto not allowed on instances of %s(u_checkClosedu_sslobju
ValueErroru	__class__uNoneusocketusendto(uselfudatau
flags_or_addruaddr((u(/opt/alt/python33/lib64/python3.3/ssl.pyusendto�s
	uSSLSocket.sendtocOstd|j��dS(Nu&sendmsg not allowed on instances of %s(uNotImplementedErroru	__class__(uselfuargsukwargs((u(/opt/alt/python33/lib64/python3.3/ssl.pyusendmsg�suSSLSocket.sendmsgcCs�|j�|jr�|dkr5td|j��nt|�}d}x3||kr||j||d��}||7}qJW|Stj|||�SdS(Niu6non-zero flags not allowed in calls to sendall() on %s(u_checkClosedu_sslobju
ValueErroru	__class__ulenusendusocketusendall(uselfudatauflagsuamountucountuv((u(/opt/alt/python33/lib64/python3.3/ssl.pyusendall�s
	uSSLSocket.sendallicCsY|j�|jrB|dkr5td|j��n|j|�Stj|||�SdS(Niu3non-zero flags not allowed in calls to recv() on %s(u_checkClosedu_sslobju
ValueErroru	__class__ureadusocketurecv(uselfubuflenuflags((u(/opt/alt/python33/lib64/python3.3/ssl.pyurecv�s
	
uSSLSocket.recvcCs�|j�|r+|dkr+t|�}n|dkr@d}n|jr{|dkrktd|j��n|j||�Stj||||�SdS(Niiu8non-zero flags not allowed in calls to recv_into() on %s(	u_checkCloseduNoneulenu_sslobju
ValueErroru	__class__ureadusocketu	recv_into(uselfubufferunbytesuflags((u(/opt/alt/python33/lib64/python3.3/ssl.pyu	recv_into�s
		uSSLSocket.recv_intocCs@|j�|jr)td|j��ntj|||�SdS(Nu'recvfrom not allowed on instances of %s(u_checkClosedu_sslobju
ValueErroru	__class__usocketurecvfrom(uselfubuflenuflags((u(/opt/alt/python33/lib64/python3.3/ssl.pyurecvfrom�s

	uSSLSocket.recvfromcCsC|j�|jr)td|j��ntj||||�SdS(Nu,recvfrom_into not allowed on instances of %s(u_checkClosedu_sslobju
ValueErroru	__class__usocketu
recvfrom_into(uselfubufferunbytesuflags((u(/opt/alt/python33/lib64/python3.3/ssl.pyu
recvfrom_intos

	uSSLSocket.recvfrom_intocOstd|j��dS(Nu&recvmsg not allowed on instances of %s(uNotImplementedErroru	__class__(uselfuargsukwargs((u(/opt/alt/python33/lib64/python3.3/ssl.pyurecvmsg	suSSLSocket.recvmsgcOstd|j��dS(Nu+recvmsg_into not allowed on instances of %s(uNotImplementedErroru	__class__(uselfuargsukwargs((u(/opt/alt/python33/lib64/python3.3/ssl.pyurecvmsg_into
suSSLSocket.recvmsg_intocCs(|j�|jr |jj�SdSdS(Ni(u_checkClosedu_sslobjupending(uself((u(/opt/alt/python33/lib64/python3.3/ssl.pyupendings
	
uSSLSocket.pendingcCs'|j�d|_tj||�dS(N(u_checkCloseduNoneu_sslobjusocketushutdown(uselfuhow((u(/opt/alt/python33/lib64/python3.3/ssl.pyushutdowns
	uSSLSocket.shutdowncCs?|jr%|jj�}d|_|Stdt|���dS(NuNo SSL wrapper around (u_sslobjushutdownuNoneu
ValueErrorustr(uselfus((u(/opt/alt/python33/lib64/python3.3/ssl.pyuunwraps
		uSSLSocket.unwrapcCsd|_tj|�dS(N(uNoneu_sslobjusocketu_real_close(uself((u(/opt/alt/python33/lib64/python3.3/ssl.pyu_real_close%s	uSSLSocket._real_closecCsT|j�}z3|dkr1|r1|jd�n|jj�Wd|j|�XdS(uPerform a TLS/SSL handshake.gN(u
gettimeoutu
settimeoutuNoneu_sslobjudo_handshake(uselfublockutimeout((u(/opt/alt/python33/lib64/python3.3/ssl.pyudo_handshake*suSSLSocket.do_handshakecCs�|jrtd��n|jr0td��n|jj|d|j�|_ya|rltj	||�}nd}tj||�|s�|jr�|j
�nd|_n|SWntk
r�d|_�YnXdS(Nu!can't connect in server-side modeu/attempt to connect already-connected SSLSocket!FT(userver_sideu
ValueErroru
_connecteducontextu_wrap_socketuFalseuserver_hostnameu_sslobjusocketu
connect_exuNoneuconnectudo_handshake_on_connectudo_handshakeuTrueusocket_error(uselfuaddru
connect_exurc((u(/opt/alt/python33/lib64/python3.3/ssl.pyu
_real_connect5s$			

	uSSLSocket._real_connectcCs|j|d�dS(uQConnects to remote ADDR, and then wraps the connection in
        an SSL channel.NF(u
_real_connectuFalse(uselfuaddr((u(/opt/alt/python33/lib64/python3.3/ssl.pyuconnectLsuSSLSocket.connectcCs|j|d�S(uQConnects to remote ADDR, and then wraps the connection in
        an SSL channel.T(u
_real_connectuTrue(uselfuaddr((u(/opt/alt/python33/lib64/python3.3/ssl.pyu
connect_exQsuSSLSocket.connect_excCsItj|�\}}|jj|d|jd|jdd�}||fS(u�Accepts a new connection from a remote client, and returns
        a tuple containing that new connection wrapped with a server-side
        SSL channel, and the address of the remote client.udo_handshake_on_connectusuppress_ragged_eofsuserver_sideT(usocketuacceptucontextuwrap_socketudo_handshake_on_connectusuppress_ragged_eofsuTrue(uselfunewsockuaddr((u(/opt/alt/python33/lib64/python3.3/ssl.pyuacceptVs			uSSLSocket.acceptu
tls-uniquecCs_|tkrtd��n|dkr?tdj|���n|jdkrRdS|jj�S(u�Get channel binding data for current connection.  Raise ValueError
        if the requested `cb_type` is not supported.  Return bytes of the data
        or None if the data is not available (e.g. before the handshake).
        u Unsupported channel binding typeu
tls-uniqueu({0} channel binding type not implementedN(uCHANNEL_BINDING_TYPESu
ValueErroruNotImplementedErroruformatu_sslobjuNoneu
tls_unique_cb(uselfucb_type((u(/opt/alt/python33/lib64/python3.3/ssl.pyuget_channel_bindingbsuSSLSocket.get_channel_bindingNFT((u__name__u
__module__u__qualname__u__doc__uNoneuFalseu	CERT_NONEuPROTOCOL_TLSuTrueuAF_INETuSOCK_STREAMu__init__udupu_checkClosedureaduwriteugetpeercertuselected_npn_protocolucipherucompressionusendusendtousendmsgusendallurecvu	recv_intourecvfromu
recvfrom_intourecvmsgurecvmsg_intoupendingushutdownuunwrapu_real_closeudo_handshakeu
_real_connectuconnectu
connect_exuacceptuget_channel_binding(u
__locals__((u(/opt/alt/python33/lib64/python3.3/ssl.pyu	SSLSocketsJ		P	
u	SSLSocketc

CsCtd|d|d|d|d|d|d|d|d	|d
|	�
S(Nusockukeyfileucertfileuserver_sideu	cert_reqsussl_versionuca_certsudo_handshake_on_connectusuppress_ragged_eofsuciphers(u	SSLSocket(
usockukeyfileucertfileuserver_sideu	cert_reqsussl_versionuca_certsudo_handshake_on_connectusuppress_ragged_eofsuciphers((u(/opt/alt/python33/lib64/python3.3/ssl.pyuwrap_socketrsuwrap_socketcCs%ddl}|j|j|d��S(u�Takes a date-time string in standard ASN1_print form
    ("MON DAY 24HOUR:MINUTE:SEC YEAR TIMEZONE") and return
    a Python time value in seconds past the epoch.iNu%b %d %H:%M:%S %Y GMT(utimeumktimeustrptime(u	cert_timeutime((u(/opt/alt/python33/lib64/python3.3/ssl.pyucert_time_to_seconds�sucert_time_to_secondsu-----BEGIN CERTIFICATE-----u-----END CERTIFICATE-----cCs?ttj|�dd�}tdtj|d�dtdS(u[Takes a certificate in binary DER format and returns the
    PEM version of it as a string.uASCIIustrictu
i@(ustrubase64ustandard_b64encodeu
PEM_HEADERutextwrapufillu
PEM_FOOTER(uder_cert_bytesuf((u(/opt/alt/python33/lib64/python3.3/ssl.pyuDER_cert_to_PEM_cert�suDER_cert_to_PEM_certcCs�|jt�s"tdt��n|j�jt�sJtdt��n|j�tt�tt��}tj|j	dd��S(uhTakes a certificate in ASCII PEM format and returns the
    DER-encoded version of it as a byte sequenceu(Invalid PEM encoding; must start with %su&Invalid PEM encoding; must end with %suASCIIustrict(
u
startswithu
PEM_HEADERu
ValueErrorustripuendswithu
PEM_FOOTERulenubase64udecodebytesuencode(upem_cert_stringud((u(/opt/alt/python33/lib64/python3.3/ssl.pyuPEM_cert_to_DER_cert�s

#uPEM_cert_to_DER_certcCst|\}}|dk	r!t}nt}t|�}t|d|d|d|�}|jd�}|j�t|�S(u�Retrieve the certificate from the server at the specified address,
    and return it as a PEM-encoded string.
    If 'ca_certs' is specified, validate the server cert against it.
    If 'ssl_version' is specified, use it in the connection attempt.ussl_versionu	cert_reqsuca_certsNT(	uNoneu
CERT_REQUIREDu	CERT_NONEucreate_connectionuwrap_socketugetpeercertuTrueucloseuDER_cert_to_PEM_cert(uaddrussl_versionuca_certsuhostuportu	cert_reqsusudercert((u(/opt/alt/python33/lib64/python3.3/ssl.pyuget_server_certificate�s	
uget_server_certificatecCstj|d�S(Nu	<unknown>(u_PROTOCOL_NAMESuget(u
protocol_code((u(/opt/alt/python33/lib64/python3.3/ssl.pyuget_protocol_name�suget_protocol_name(Vu__doc__utextwrapureu_ssluOPENSSL_VERSION_NUMBERuOPENSSL_VERSION_INFOuOPENSSL_VERSIONu_SSLContextuSSLErroruSSLZeroReturnErroruSSLWantReadErroruSSLWantWriteErroruSSLSyscallErroruSSLEOFErroru	CERT_NONEu
CERT_OPTIONALu
CERT_REQUIREDuOP_ALLuOP_NO_SSLv2uOP_NO_SSLv3uOP_NO_TLSv1uOP_CIPHER_SERVER_PREFERENCEuOP_SINGLE_DH_USEuOP_NO_COMPRESSIONuImportErroruOP_SINGLE_ECDH_USEuRAND_statusuRAND_addu
RAND_bytesuRAND_pseudo_bytesuRAND_egduSSL_ERROR_ZERO_RETURNuSSL_ERROR_WANT_READuSSL_ERROR_WANT_WRITEuSSL_ERROR_WANT_X509_LOOKUPuSSL_ERROR_SYSCALLu
SSL_ERROR_SSLuSSL_ERROR_WANT_CONNECTu
SSL_ERROR_EOFuSSL_ERROR_INVALID_ERROR_CODEuHAS_SNIuHAS_ECDHuHAS_NPNuPROTOCOL_SSLv3uPROTOCOL_SSLv23uPROTOCOL_TLSv1uPROTOCOL_TLSu_OPENSSL_API_VERSIONugetattruglobalsu_PROTOCOL_NAMESuPROTOCOL_SSLv2u_SSLv2_IF_EXISTSuNoneusocketugetnameinfou_getnameinfouerrorusocket_erroruAF_INETuSOCK_STREAMucreate_connectionu
SOL_SOCKETuSO_TYPEubase64u	tracebackuerrnouHAS_TLS_UNIQUEuCHANNEL_BINDING_TYPESu_DEFAULT_CIPHERSu
ValueErroruCertificateErroru_dnsname_matchumatch_hostnameu
SSLContextu	SSLSocketuFalseuTrueuwrap_socketucert_time_to_secondsu
PEM_HEADERu
PEM_FOOTERuDER_cert_to_PEM_certuPEM_cert_to_DER_certuget_server_certificateuget_protocol_name(((u(/opt/alt/python33/lib64/python3.3/ssl.pyu<module>7s�..

"
@"



"	1)%�g	


?>