Mini Kabibi Habibi

Current Path : C:/Users/ITO/AppData/Local/Programs/GIMP 2/lib/python2.7/test/
Upload File :
Current File : C:/Users/ITO/AppData/Local/Programs/GIMP 2/lib/python2.7/test/test_ssl.pyo

�
���dc@s#ddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZejd�Zeej�ZejZejj d�Z!e!o]ej"dddfkZ#e!ovej"d	fkZ$d
�Z%e%d�Z&e&j'ej(��Z)e%d�Z*e%d
�Z+e*j'ej(��Z,e+j'ej(��Z-e%d�Z.e%d�Z/dZ0e%d�Z1e1j'ej(��Z2e%dd�Z3e%dd�Z4e%d�Z5e%d�Z6e%d�Z7e%d�Z8e%d�Z9dZ:e%d�Z;e%d�Z<e%d�Z=e%d�Z>e%d�Z?e%d�Z@e%d �ZAe%d!�ZBe%d"�ZCeCj'ej(��ZDeEed#d�ZFeEed$d�ZGeEed%d�ZHeEed&d�ZIeEed'd�ZJeEed(d�ZKd)�ZLd*ejMfd+��YZNd,�ZOd-�ZPd.�ZQd/�ZRd0�ZSd1�ZTd2�ZUejVejWd3�ZXd4ejMfd5��YZYd6ejMfd7��YZZd8ejMfd9��YZ[d:ejMfd;��YZ\yddl]Z]Wne^k
rte_Z`n�XeaZ`dd<lbmcZcd=e]jdfd>��YZed?e]jdfd@��YZfdAeae_egdB�ZhegdddC�ZidDejMfdE��YZje_dF�ZkeldGkrek�ndS(Hi����N(ttest_support(tassert_python_ok(tclosingtssltLibreSSLiiicGstjjtjjt�|�S(N(tostpathtjointdirnamet__file__(tname((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt	data_file#sskeycert.pemsssl_cert.pemsssl_key.pemskeycert.passwd.pemsssl_key.passwd.pemtsomepasstcapaths
4e1295a3.0s
5ed36f99.0srevocation.crlskeycert3.pemskeycert4.pemspycacert.pemsallsans.pemsself-signed.pythontest.netsselfsigned_pythontestdotnet.pemsnullcert.pemsbadcert.pemsXXXnonexisting.pems
badkey.pems	nokia.pemsnullbytecert.pemstalos-2019-0758.pemsffdh3072.pemtOP_NO_COMPRESSIONtOP_SINGLE_DH_USEtOP_SINGLE_ECDH_USEtOP_CIPHER_SERVER_PREFERENCEtOP_ENABLE_MIDDLEBOX_COMPATtOP_IGNORE_UNEXPECTED_EOFcCsBdjtjtj���}tjr>tjj||�ndS(Nt (	Rt	tracebacktformat_exceptiontsystexc_infotsupporttverbosetstdouttwrite(tprefixt
exc_format((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pythandle_error[s	t
BasicTestscBseZd�ZRS(cCs�ytjtjtj��Wn(tk
rG}|jdkrAqH�nXy tjtjtj�j�Wn(tk
r�}|jdkr�q��nXdS(Ni (Rtsslwrap_simpletsockettAF_INETtIOErrorterrnot_sock(tselfte((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_sslwrap_simplecs (t__name__t
__module__R)(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR ascCs
tjdkS(Nii	ii
i(ii	ii
i(Rt_OPENSSL_API_VERSION(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytcan_clear_optionsuscCs
tjdkS(Nii	iii(ii	iii(RtOPENSSL_VERSION_INFO(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytno_sslv2_implies_sslv3_helloyscCs
tjdkS(Nii	ii(ii	iii(RR.(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pythave_verify_flags}scCs.tjr&tj�jdkr&tjStjS(Ni(ttimetdaylightt	localtimettm_isdsttaltzonettimezone(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
utc_offset�scCs{tjdkrwd}tjj||�}|jdd�}|j|�}|ddkrw|d d	|d
}qwn|S(Nii	iis%b %d %H:%M:%S %Y GMTtsecondit0Ri(ii	ii	i(RR,tdatetimetstrptimetreplacetstrftime(t	cert_timetfmttdt((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytasn1time�scs9ttd�r1tj���fd��}|S�SdS(NtPROTOCOL_SSLv2cskytjtj�WnGtjk
r]tjd	kr^tj�d
kr^tjd��q^nX�||�S(Nii	iitdebianssqueeze/sidts'Patched Ubuntu OpenSSL breaks behaviour(ii	iii(RCssqueeze/sidRD(	Rt
SSLContextRBtSSLErrorR.tplatformtlinux_distributiontunittesttSkipTest(targstkwargs(tfunc(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytf�s(thasattrRt	functoolstwraps(RMRN((RMs2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytskip_if_broken_ubuntu_ssl�s	cs"tj���fd��}|S(s{Skip a test if the OpenSSL config MinProtocol is > TLSv1.1.
    OS distros with an /etc/ssl/openssl.cnf and MinProtocol set often do so to
    require TLSv1.2 or higher (Debian Buster).  Some of our tests for older
    protocol versions will fail under such a config.
    Alternative workaround: Run this test in a process with
    OPENSSL_CONF=/dev/null in the environment.
    c	s�trtjd��ntjjdd�}yt|d��j}x`|D]X}tjd|�}|rI|j	d�}|dkr�tjd||f��q�qIqIWWdQXWn?t
tfk
r�}tj
r�tjjd	||f�q�nX�||�S(
Ns(OpenSSL 3 effectively disables TLS < 1.2tOPENSSL_CONFs/etc/ssl/openssl.cnftrsMinProtocol\s*=\s*(TLSv\d+\S*)isTLSv1.1s)%s has MinProtocol = %s which is > TLSv1.s(
 Could not scan %s for MinProtocol: %s
(tIS_OPENSSL_3RIRJRtenvirontgettopentretmatchtgrouptEnvironmentErrortUnicodeDecodeErrorRRRRR(RKRLtopenssl_cnftconfigtlineRZttls_verterr(RM(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRN�s$
$	(RPRQ(RMRN((RMs2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt(skip_if_openssl_cnf_minprotocol_gt_tls11�ss SNI support needed for this testtBasicSocketTestscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jd��Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zejdejkd�d��Zd�Zejejdkd�d��Zejejdkd�d��Z d�Z!d�Z"d�Z#d�Z$d�Z%eje&�d �d!��Z'd"�Z(e
j)d#d$�d%��Z*RS(&cCs�tjtjtjtjtjtjr6tjntjdkrOtj	n|j
tjtt
h�|j
tjtt
h�tjtjtjtjtjdkr�tjtjndS(Nii(ii(iii(Rt	CERT_NONEt
CERT_OPTIONALt
CERT_REQUIREDRRtHAS_ECDHRR.RtassertIntHAS_SNItTruetFalsetOP_NO_SSLv2tOP_NO_SSLv3tOP_NO_TLSv1t
OP_NO_TLSv1_3t
OP_NO_TLSv1_1t
OP_NO_TLSv1_2(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_constants�s$	

cCs�tj�}tjr>tjjd||r0dp3df�nttd�r|jt	tj
d�|jt	tj
dd�ntjdd�dS(	Ns
 RAND_status is %d (%s)
ssufficient randomnesssinsufficient randomnesstRAND_egditfoosthis is a random stringg�R@(RtRAND_statusRRRRRROtassertRaisest	TypeErrorRttRAND_add(R'tv((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_random�s	cCsttjjt�}tjr?tjjdt	j
|�d�n|j|dddd!d#f�|j|dtd��|j|d
td��|j|dd�|j|dd%d'd)d+f�|j|dd-�tjjt
�}tjrtjjdt	j
|�d�n|j|dd.d/f�|j|dd0�|j|dd1�|j|dd2�dS(3Ns
tissuertcountryNametXYtlocalityNamesCastle AnthraxtorganizationNamesPython Software Foundationt
commonNamet	localhosttnotAftersAug 26 14:23:15 2028 GMTt	notBeforesAug 29 14:23:15 2018 GMTtserialNumbert98A7CF88C74A32EDtsubjecttsubjectAltNametDNSsprojects.developer.nokia.comsprojects.forum.nokia.comtOCSPshttp://ocsp.verisign.comt	caIssuerss0http://SVRIntl-G3-aia.verisign.com/SVRIntlG3.certcrlDistributionPointss0http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl(R}R~((R}R~(RsCastle Anthrax((RsCastle Anthrax(R�sPython Software Foundation((R�sPython Software Foundation(R�R�((R�R�(R}R~((R}R~(RsCastle Anthrax((RsCastle Anthrax(R�sPython Software Foundation((R�sPython Software Foundation(R�R�((R�R�(R�R�((R�R�(R�sprojects.developer.nokia.com(R�sprojects.forum.nokia.com(shttp://ocsp.verisign.com(s0http://SVRIntl-G3-aia.verisign.com/SVRIntlG3.cer(s0http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl(Rt_sslt_test_decode_certtCERTFILERRRRRtpprinttpformattassertEqualRAt	NOKIACERT(R'tp((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_parse_cert�s8	$



	$



cCs�tjjt�}tjr?tjjdt	j
|�d�n|j|iddfd6dd6d	d
6dd6ddfd6dd6dd6�dS(Ns
R}tUKR�scody-caR|sJun 14 18:00:58 2028 GMTR�sJun 18 18:00:58 2018 GMTR�t02R�s#codenomicon-vm-2.test.lal.cisco.comR�R�R�itversion(R}R�((R}R�(R�scody-ca((R�scody-ca(R}R�((R}R�(R�s#codenomicon-vm-2.test.lal.cisco.com((R�s#codenomicon-vm-2.test.lal.cisco.com(R�s#codenomicon-vm-2.test.lal.cisco.com((R�s#codenomicon-vm-2.test.lal.cisco.com(RR�R�tTALOS_INVALID_CRLDPRRRRRR�R�R�(R'R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_parse_cert_CVE_2019_5010s	$

cCs�tjjt�}tjr?tjjdt	j
|�d�nd!d#d%d'd)d+d-f}|j|d|�|j|d|�tjd.kr�d/d0d1d2d3f}nd4d5d6d7d8f}|j|d|�dS(9Ns
R}tUStstateOrProvinceNametOregonRt	BeavertonR�sPython Software FoundationtorganizationalUnitNamesPython Core DevelopmentR�snull.python.orgexample.orgtemailAddressspython-dev@python.orgR�R|ii	iR�saltnull.python.orgexample.comtemails null@python.orguser@example.orgtURIs)http://null.python.orghttp://example.orgs
IP Addresss	192.0.2.1s2001:DB8:0:0:0:0:0:1
s	<invalid>R�(R}R�((R}R�(R�R�((R�R�(RR�((RR�(R�sPython Software Foundation((R�sPython Software Foundation(R�sPython Core Development((R�sPython Core Development(R�snull.python.orgexample.org((R�snull.python.orgexample.org(R�spython-dev@python.org((R�spython-dev@python.org(ii	i(R�saltnull.python.orgexample.com(R�s null@python.orguser@example.org(R�s)http://null.python.orghttp://example.org(s
IP Addresss	192.0.2.1(s
IP Addresss2001:DB8:0:0:0:0:0:1
(R�saltnull.python.orgexample.com(R�s null@python.orguser@example.org(R�s)http://null.python.orghttp://example.org(s
IP Addresss	192.0.2.1(s
IP Addresss	<invalid>(
RR�R�tNULLBYTECERTRRRRRR�R�R�R,(R'R�R�tsan((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_parse_cert_CVE_2013_4238&s0	$		c
CsZtjjt�}|j|ddddddd	dd!d#d%ffd&d'd(d)f
�dS(*NR�R�tallsanst	othernames
<unsupported>R�suser@example.orgswww.example.orgtDirNameR}R~RsCastle AnthraxR�sPython Software FoundationR�sdirname exampleR�shttps://www.python.org/s
IP Addresss	127.0.0.1s0:0:0:0:0:0:0:1
s
Registered IDs	1.2.3.4.5(R�R�(R�s
<unsupported>(R�s
<unsupported>(R�suser@example.org(R�swww.example.org(R}R~((R}R~(RsCastle Anthrax((RsCastle Anthrax(R�sPython Software Foundation((R�sPython Software Foundation(R�sdirname example((R�sdirname example(R�shttps://www.python.org/(s
IP Addresss	127.0.0.1(s
IP Addresss0:0:0:0:0:0:0:1
(s
Registered IDs	1.2.3.4.5(RR�R�t
ALLSANFILER�(R'R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_parse_all_sansCs 
	cCs�ttd��}|j�}WdQXtj|�}tj|�}tj|�}|j||�|jtjd�s�|j	d|�n|j
dtjd�s�|j	d|�ndS(NRTs
s-DER-to-PEM didn't include correct header:
%r
s-DER-to-PEM didn't include correct footer:
%r
(RXt
CAFILE_CACERTtreadRtPEM_cert_to_DER_certtDER_cert_to_PEM_certR�t
startswitht
PEM_HEADERtfailtendswitht
PEM_FOOTER(R'RNtpemtd1tp2td2((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_DER_to_PEMXscCs�tj}tj}tj}|j|ttf�|j|t�|j|t�|j	|d�|j
|d�|\}}}}}|j	|d�|j
|d�|j	|d�|j
|d�|j	|d�|j
|d�|j	|d�|j|d�|j	|d�|j|d�d	j|�}	|d
krYdj|||�}
ndj|||�}
|j
|j|
|	f�||t|�f�dS(Ni�i@iiiii?isLibreSSL {}isOpenSSL {}.{}.{}(RtOPENSSL_VERSION_NUMBERR.tOPENSSL_VERSIONtassertIsInstancetinttlongttupletstrtassertGreaterEqualt
assertLesstassertLessEqualtformatt
assertTrueR�thex(R'tntttstmajortminortfixtpatchtstatustlibressl_vertopenssl_ver((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_openssl_versionds4			cCsJtjtj�}tj|�}tj|�}~|j|�d�dS(N(R"R#Rtwrap_sockettweakreftrefR�tNone(R'R�tsstwr((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
test_refcycle�s
c
Cs�tjtj�}ttj|����}|jtj|jd�|jtj|jt	d��|jtj|j
d�|jtj|jt	d�d�|jtj|jd�|jtj|j
dd�|jt|j�WdQXdS(Nitxs0.0.0.0i(s0.0.0.0i(R"R#RRR�Rwterrortrecvt	recv_intot	bytearraytrecvfromt
recvfrom_intotsendtsendtotNotImplementedErrortdup(R'R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_wrapped_unconnected�s"cCshxadD]Y}tjtj�}|j|�ttj|���}|j||j��WdQXqWdS(Ngg@(Ngg@(	R�R"R#t
settimeoutRRR�R�t
gettimeout(R'ttimeoutR�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_timeout�s


cCs�tj�}|jtdtj|dt�|jtdtj|dt�|jtdtj|dtdd�ttj|dtdt���&}|jtd|jt	df�WdQX|j
t��5}ttj���}tj|dt�WdQXWdQX|j
|jjtj�|j
t��;}ttj��� }tj|dtdt�WdQXWdQX|j
|jjtj�|j
t��;}ttj��� }tj|dtdt�WdQXWdQX|j
|jjtj�dS(	Nscertfile must be specifiedtkeyfiles5certfile must be specified for server-side operationstserver_sidetcertfileRDs!can't connect in server-side modei�(R"tassertRaisesRegexpt
ValueErrorRR�R�RkRtconnecttHOSTRwR$tNONEXISTINGCERTR�t	exceptionR%tENOENT(R'tsockR�tcm((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_errors�s6			$c
Cstjjtjjt�p!tj|�}tj�}|j|j�|j	t
j��!t
j|d|dt
j
�WdQXdS(s;Check that trying to use the given client certificate failsR�tssl_versionN(RRRRR	tcurdirR"t
addCleanuptcloseRwRRFR�tPROTOCOL_TLSv1(R'R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
bad_cert_test�s!	cCs|jd�dS(s Wrapping with an empty cert filesnullcert.pemN(R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_empty_cert�scCs|jd�dS(s:Wrapping with a badly formatted certificate (syntax error)sbadcert.pemN(R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_malformed_cert�scCs|jd�dS(s2Wrapping with a badly formatted key (syntax error)s
badkey.pemN(R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_malformed_key�scs�d�}�fd�}idEd6}||d�||d�||d�||d�||d	�||d
�idHd6}||d�||d
�||d�||d�||d�idKd6}||d�||d�||d�||d�||d�idNd6}||d�||d	�||d�idQd6}||d
�||d�||d�||d�idTd6}||d�||d�||d�djd�jd�}id|fffd6}|||�idWd6}|||�idZd6}|||�d!jd�jd�}id|fffd6}||d"jd�jd��||d#jd�jd��||d$jd�jd��||d%jd�jd��id&d'6d]d6d^d_d`fd.6}||d*�||d+�||d-�||d(�id/d'6dbdddfdhdjfd6}||d8�||d9�||d3�id/d'6dldndpdrfd6}||d8�id:d'6dtdvdxdzfd6d|d.6}||d8�id:d'6d~d�d�d�fd6d�d.6}||d<��jttjdd��jttjid�id�d6}||d>�id�d6}||d>�id�d6}�jtj��}tj|dA�WdQX�jdBt	|j
��dS(�NcSstj||�dS(N(Rtmatch_hostname(tcertthostname((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytok�scs �jtjtj||�dS(N(RwRtCertificateErrorR�(R�R(R'(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR��sR�sexample.comR�sExAmple.cOmswww.example.coms.example.comsexample.orgtexampleXcoms*.a.coms	foo.a.coms
bar.foo.a.comsa.comsXa.coms.a.comsf*.comsfoo.comsf.comsbar.comsbar.foo.comsnull.python.orgexample.orgsnull.python.orgs	*.*.a.comsa.*.coms	a.foo.comsa..comupüthon.python.orgtidnatasciis
x*.python.orgsxn--p*.python.orguwww*.pythön.orguwww.pythön.orguwww1.pythön.orguftp.pythön.orgupythön.orgsJun 26 21:41:46 2011 GMTR�slinuxfrz.orgR�slinuxfr.orgslinuxfr.comR�s
<unsupported>R�sDec 18 23:59:59 2011 GMTR}R�R�t
CaliforniaRs
Mountain ViewR�s
Google Incsmail.google.coms	gmail.comsDec 18 23:59:59 2099 GMTtblablas
google.comsa*b.comsaxxb.comsa*b.co*sa*b*.comsaxxbxxc.comstoo many wildcards(R�sexample.com((R�sexample.com(((R�sexample.com(R�s*.a.com((R�s*.a.com(((R�s*.a.com(R�sf*.com((R�sf*.com(((R�sf*.com(R�snull.python.orgexample.org((R�snull.python.orgexample.org(((R�snull.python.orgexample.org(R�s	*.*.a.com((R�s	*.*.a.com(((R�s	*.*.a.com(R�sa.*.com((R�sa.*.com(((R�sa.*.com(R�s
x*.python.org((R�s
x*.python.org(((R�s
x*.python.org(R�sxn--p*.python.org((R�sxn--p*.python.org(((R�sxn--p*.python.org(R�slinuxfrz.org((R�slinuxfrz.org(((R�slinuxfrz.org(R�slinuxfr.org(R�slinuxfr.com(R�s
<unsupported>(R}R�((R}R�(R�R((R�R(Rs
Mountain View((Rs
Mountain View(R�s
Google Inc((R�s
Google Inc(R�smail.google.com((R�smail.google.com(R}R�((R}R�(R�R((R�R(Rs
Mountain View((Rs
Mountain View(R�s
Google Inc((R�s
Google Inc(R}R�((R}R�(R�R((R�R(Rs
Mountain View((Rs
Mountain View(R�smail.google.com((R�smail.google.com(R�R((R�R(R}R�((R}R�(R�R((R�R(Rs
Mountain View((Rs
Mountain View(R�s
Google Inc((R�s
Google Inc(R�R((R�R(R�sa*b.com((R�sa*b.com(((R�sa*b.com(R�sa*b.co*((R�sa*b.co*(((R�sa*b.co*(R�sa*b*.com((R�sa*b*.com(((R�sa*b*.com(tencodetdecodeRwR�RR�R�RRiR�R�(R'RR�R�RR�((R's2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_match_hostname�s�	































































cCsPtjtj�}ttj���&}|jt|j|tdd�WdQXdS(Ntserver_hostnames
some.hostname(	RREtPROTOCOL_SSLv23RR"RwR�R�Rk(R'tctxR�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_server_side`sc
CsWtjtj�}ttj|���*}|jt��|jd�WdQXWdQXdS(Nsunknown-type(R"R#RRR�RwR�tget_channel_binding(R'R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_unknown_channel_bindinggss
tls-uniques*'tls-unique' channel binding not availablecCs�tjtj�}ttj|���}|j|jd��WdQXtjtj�}ttj|dtdt���}|j|jd��WdQXdS(Ns
tls-uniqueR�R�(	R"R#RRR�tassertIsNoneRRkR�(R'R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_tls_unique_channel_bindingns$cCs�tj�}|jt|�d�|j|tj�tj��M}t|d<t	|d<tj�}|j|j
t	�|j|jt�WdQXdS(NitSSL_CERT_DIRt
SSL_CERT_FILE(Rtget_default_verify_pathsR�tlenR�tDefaultVerifyPathsRtEnvironmentVarGuardtCAPATHR�tcafileR
(R'tpathstenv((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_get_default_verify_pathszs

twin32sWindows specificc	CsI|jtjd��|jtjd��|jttj�|jttjd�t�}x�dD]�}tj|�}|j|t�x�|D]�}|j|t	�|j
t|�d�|\}}}|j|t�|j
|ddh�|j|ttf�t|t�r�|j|�q�q�WqeWd}|j
||�dS(	NtCAtROOTRDitx509_asnt
pkcs_7_asns1.3.6.1.5.5.7.3.1(RR (R�Rtenum_certificatesRwRxtWindowsErrortsetR�tlistR�R�RtbytesRitboolt
isinstancetupdate(	R't
trust_oidst	storenametstoretelementR�tencttrustt
serverAuth((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_enum_certificates�s&	

cCs�|jtjd��|jttj�|jttjd�tjd�}|j|t�xb|D]Z}|j|t�|j	t
|�d�|j|dt�|j|dddh�qeWdS(NRRDiiiR!R"(
R�Rt	enum_crlsRwRxR$R�R&R�R�RR'Ri(R'tcrlsR.((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_enum_crls�s
cCsDd}tjd�}|j||�|j|jd�|j|jd�|j|jd�|j|jd�|j|tj�|jt	tjd�tjj
d�}|j||�|j|tj�|jt	tjj
d�|jt	d��tjj
d�WdQXx�td�D]�}ytjj
|�}Wnt	k
rMqX|j|jt
�|j|jt�|j|jt�|j|jttd�f�qWtjjd�}|j||�|j|tj�|jtjjd�|�|jtjjd�|�|jt	d	��tjjd
�WdQXdS(Ni�R1sTLS Web Server Authentications1.3.6.1.5.5.7.3.1i����sunknown NID 100000i��i�sunknown object 'serverauth't
serverauth(i�R1sTLS Web Server Authentications1.3.6.1.5.5.7.3.1(Rt_ASN1ObjectR�tnidt	shortnametlongnametoidR�RwR�tfromnidR�trangeR�R�ttypeR�tfromname(R'texpectedtvaltitobj((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_asn1object�sB
#cCstjd�}|jtjjtj�|jtjj|�|jtjjjd�|jtjjjd�|jtjjjd�tjd�}|jtjj	tj�|jtjj	|�|jtjj	jd�|jtjj	jd�|jtjj	jd�dS(Ns1.3.6.1.5.5.7.3.1i�R1s1.3.6.1.5.5.7.3.2i�t
clientAuth(
RR7R�tPurposetSERVER_AUTHR�R8R9R;tCLIENT_AUTH(R'RA((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_purpose_enum�scCs�tjtjtj�}|j|j�|jt��}tj|dtj	�WdQX|j
t|j�d�tj
tj�}|jt��}|j|�WdQX|j
t|j�d�dS(Nt	cert_reqss!only stream sockets are supported(R"R#t
SOCK_DGRAMR�R�RwR�RR�ReR�R�R�RER(R'R�tcxR
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_unsupported_dtls�scCs|jtj|�|�dS(N(R�Rtcert_time_to_seconds(R't
timestringt	timestamp((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytcert_time_ok�scCs'|jt��tj|�WdQXdS(N(RwR�RRN(R'RO((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytcert_time_fail�ss)local time needs to be different from UTCcCs$|jdd�|jdd�dS(NsMay  9 00:00:00 2007 GMTg�C��AsJan  5 09:34:43 2018 GMTg��ѓ�A(RQ(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt"test_cert_time_to_seconds_timezone�scCs*d}d}|j||�|jtjd|�|�|jd|�|jd|�|jd�|jd�|jd�|jd	�|jd
�|jd�|jd�d
}|jd|�|jd|�|jdd�|jdd�|jdd�|jd�|jdd�dS(NsJan  5 09:34:43 2018 GMTg��ѓ�AR>sJan 05 09:34:43 2018 GMTsJaN  5 09:34:43 2018 GmTsJan  5 09:34 2018 GMTsJan  5 09:34:43 2018sJan  5 09:34:43 2018 UTCsJan 35 09:34:43 2018 GMTsJon  5 09:34:43 2018 GMTsJan  5 24:00:00 2018 GMTsJan  5 09:60:43 2018 GMTg�W�AsDec 31 23:59:60 2008 GMTsJan  1 00:00:00 2009 GMTsJan  5 09:34:59 2018 GMTi�FOZsJan  5 09:34:60 2018 GMTi�FOZsJan  5 09:34:61 2018 GMTi�FOZsJan  5 09:34:62 2018 GMTsDec 31 23:59:59 9999 GMTg�� �MB(RQR�RRNRR(R'ROttst
newyear_ts((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_cert_time_to_secondss*







tLC_ALLRDcCsVd�}|�j�dkr.|jd�n|jdd�|j|�d�dS(NcSstjdd	�S(
Ns%biiiiiii(	iiiiiiiii(R1R=(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytlocal_february_name'stfebs>locale-specific month name needs to be different from C localesFeb  9 00:00:00 2007 GMTg`�r�As  9 00:00:00 2007 GMT(tlowertskipTestRQRR(R'RX((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt test_cert_time_to_seconds_locale#s
	(+R*R+RsR{R�R�R�R�R�R�Rtcpython_onlyR�R�R�R�R�R�R�R�R
RRRIt
skipUnlessRtCHANNEL_BINDING_TYPESRRRRGR2R5RDRIRMRQRRR7RSRVtrun_with_localeR\(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRd�sB			(					#
	
								�			$$	'					#tContextTestscBs�eZed��Zed��Zd�Zed��Zd�Zej	e
�d�d��Zd�Zd�Z
d	�Zd
�Zed��Zd�Zej	ejd
�d��Zed��Zed��Zd�Zd�Zd�Zejejdkd�ejed�d���Zej	ejdkd�d��Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&RS( cCsaxtD]}tj|�qW|jttj�|jttjd�|jttjd�dS(Ni����i*(t	PROTOCOLSRRERwRxR�(R'tprotocol((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_constructor5s

cCs7x0tD](}tj|�}|j|j|�qWdS(N(RbRRER�Rc(R'tprotoR
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
test_protocol=s
cCsYtjtj�}|jd�|jd�|jtjd��|jd�WdQXdS(NtALLtDEFAULTsNo cipher can be selecteds^$:,;?*'dorothyx(RRER�tset_ciphersR�RF(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_ciphersCs


cCstjtj�}tjtjBtjB}|ttBtBt	Bt
BtBO}|j||j
�|j
tjO_
|j|tjB|j
�t�r�|j
tj@|_
|j||j
�d|_
|jd|j
tj@�n|jt��d|_
WdQXdS(Ni(RRER�tOP_ALLRmRnRRRRRRR�toptionsRoR-RwR�(R'R
tdefault((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_optionsJs		cCs�tjtj�}|j|jtj�tj|_|j|jtj�tj|_|j|jtj�tj|_|j|jtj�|jt	��d|_WdQX|jt��d|_WdQXdS(Ni*(RRER�R�tverify_modeReRfRgRwRxR�R�(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_verify_modeass!verify_flags need OpenSSL > 0.9.8cCs�tjtj�}ttdd�}|j|jtj|B�tj|_|j|jtj�tj|_|j|jtj�tj|_|j|jtj�tjtj	B|_|j|jtjtj	B�|j
t��d|_WdQXdS(NtVERIFY_X509_TRUSTED_FIRSTi(
RRER�tgetattrR�tverify_flagstVERIFY_DEFAULTtVERIFY_CRL_CHECK_LEAFtVERIFY_CRL_CHECK_CHAINtVERIFY_X509_STRICTRwRxR�(R'R
ttf((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_verify_flagspscCs�tjtj�}|jtdd�|jtdt�|jt|jdt�|jt��}|jt	�WdQX|j
|jjtj
�|jtjd��|jt�WdQX|jtjd��|jt�WdQXtjtj�}|jtt�|jdtdt�|jdtdt�|jtjd��|jt�WdQX|jtjd��|jt�WdQX|jtjd��|jdtdt�WdQXtjtj�}|jtjd��|jtt�WdQX|jtdt�|jtdtj��|jtdttj���|jttt�|jtttj��|jttttj���|jtd��|jtdt�WdQX|jtj��|jtdd�WdQX|jtd��|jtdd	d
�WdQXd�}d�}d
�}d�}d�}d�}d�}	ddd��Y}
|jtd|�|jtd|�|jtd|�|jtd|
��|jtd|
�j�|jtj��|jtd|�WdQX|jtd��|jtd|�WdQX|jtd��|jtd|�WdQX|jtd��|jtd|	�WdQX|jtd|	�dS(NR�sPEM libR�skey values mismatchtpasswordsshould be a stringtbadpassscannot be longertai�cSstS(N(tKEY_PASSWORD(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass_unicode�scSs
tj�S(N(R}R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
getpass_bytes�scSsttj��S(N(R�R}R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass_bytearray�scSsdS(NR{((((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass_badpass�scSsddS(NR|ii((((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass_huge�scSsdS(Ni	((((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass_bad_type�scSstd��dS(Ns
getpass error(t	Exception(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass_exception�stGetPassCallablecBseZd�Zd�ZRS(cSstS(N(R}(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt__call__�scSstS(N(R}(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytgetpass�s(R*R+R�R�(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR��s	smust return a strings
getpass error(( RRER�tload_cert_chainR�R�RwRxR$R�R�R�R%R�R�RFtBADCERTt	EMPTYCERTtONLYCERTtONLYKEYtBYTES_ONLYCERTt
BYTES_ONLYKEYR�tCERTFILE_PROTECTEDR}RR�tONLYKEY_PROTECTEDRkR�R�R�(R'R
R�R~RR�R�R�R�R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_load_cert_chain�sz							
cCsjtjtj�}|jt�|jdtdd�|jt�|jdtdd�|jdtjd��|jt	|j�|jt	|jddd�|jt
��}|jt�WdQX|j|j
jtj�|jt
��|jd�WdQX|jtjd��|jt�WdQX|jtt�|jtdt�|jt	|jdt�dS(NRR
sutf-8usPEM lib(RRER�tload_verify_locationsR�R�tBYTES_CERTFILER	RwRxR$R�R�R�R%R�R�RFR�RtBYTES_CAPATHRk(R'R
R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_load_verify_locations�s$

c
Cstt��}|j�jd�}WdQXtj|�}tt��}|j�jd�}WdQXtj|�}tjtj�}|j	|j
�dd�|jd|�|j	|j
�dd�|jd|�|j	|j
�dd�|jd|�|j	|j
�dd�tjtj�}dj||f�}|jd|�|j	|j
�dd�tjtj�}d|d	|d
|dg}|jddj|��|j	|j
�dd�tjtj�}|jd|�|jd|�|j	|j
�dd�|jd|�|j	|j
�dd�tjtj�}dj||f�}|jd|�|j	|j
�dd�tjtj�}|j
t|jdt�|jtjd
��|jdd�WdQX|jtjd��|jdd�WdQXdS(NRtx509_caitcadataiis
theadtothertagainttailRDs4no start line: cadata does not contain a certificateubrokens6not enough data: cadata does not contain a certificatetbroken(RXR�R�R	RR�tCAFILE_NEURONIORER�R�tcert_store_statsR�RRwRxtobjectR�RF(R'RNt
cacert_pemt
cacert_dertneuronio_pemtneuronio_derR
tcombined((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_load_verify_cadata�sV

c	Csfd}tj�}y|j|�Wn(tk
rM|jd||f�nXtjtj�}|jt	�t
jdkr�|jt�n|j
t|j�|j
t|jd�|j
t��}|jt�WdQX|j|jjtj�|j
tj��}|jt�WdQXtj��9}t
jj||�}tjt	|�|j|�WdQXdS(Nu
dhpäräm.pems;filename %r cannot be encoded to the filesystem encoding %rtnt(RtgetfilesystemencodingRtUnicodeEncodeErrorR[RRER�tload_dh_paramstDHFILERR
tBYTES_DHFILERwRxR�R$R�R�R�R%R�RFR�Rttemp_dirRRtshutiltcopy(R'tfilenametfs_encodingR
R�tdtfname((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_load_dh_params,s*

cCs�x�tD]x}tj|�}|j|j�idd6dd6dd6dd6dd6dd6dd6dd	6dd
6dd6dd6�qWdS(
NitnumberR�tconnect_goodtconnect_renegotiatetaccepttaccept_goodtaccept_renegotiatethitstmissesttimeoutst
cache_full(RbRRER�t
session_stats(R'ReR
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_session_statsDs
cCs tjtj�}|j�dS(N(RRER�tset_default_verify_paths(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_set_default_verify_pathsVss#ECDH disabled on this OpenSSL buildcCs�tjtj�}|jd�|jd�|jt|j�|jt|jd�|jt|jd�|jt|jd�dS(Nt
prime256v1Ru(RRER�tset_ecdh_curveRwRxR�R�(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_set_ecdh_curve\s

cCs�tjtj�}|jt|j�|jt|jd�|jt|jd�|jt|j|�d�}|jd�|j|�dS(NiRDcSsdS(N((R�t
servernameR
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
dummycallbackps(RRER�RwRxtset_servername_callbackR�(R'R
R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_sni_callbackfs	
cCsatjtj�}|d�}|j|�tj|�}~~tj�|j|�d�dS(NcSsdS(N((R�R�R
tcycle((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�zs(
RRER�R�R�R�tgctcollecttassertIsR�(R'R
R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_sni_callback_refcycleus

cCs�tjtj�}|j|j�idd6dd6dd6�|jt�|j|j�idd6dd6dd6�|jt�|j|j�idd6dd6dd6�|jt�|j|j�idd6dd6dd6�dS(NiR�tcrltx509ii(	RRER�R�R�R�R�R�R�(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_cert_store_stats�s


cCstjtj�}|j|j�g�|jt�|j|j�g�|jt�|j|j�iddddfd	6td
�d6td�d
6dd6dd6dd!d#d%fd6dd6g�t	t��}|j
�}WdQXtj|�}|j|jt�|g�dS(&NR�sRoot CAR�shttp://www.cacert.orgR�sCA Cert Signing AuthorityR�ssupport@cacert.orgR|sMar 29 12:29:49 2033 GMTR�sMar 30 12:29:49 2003 GMTR�t00R�s!https://www.cacert.org/revoke.crlR�R�iR�(R�sRoot CA((R�sRoot CA(R�shttp://www.cacert.org((R�shttp://www.cacert.org(R�sCA Cert Signing Authority((R�sCA Cert Signing Authority(R�ssupport@cacert.org((R�ssupport@cacert.org(s!https://www.cacert.org/revoke.crl(R�sRoot CA((R�sRoot CA(R�shttp://www.cacert.org((R�shttp://www.cacert.org(R�sCA Cert Signing Authority((R�sCA Cert Signing Authority(R�ssupport@cacert.org((R�ssupport@cacert.org(
RRER�R�tget_ca_certsR�R�R�RARXR�R�Rk(R'R
RNR�tder((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_get_ca_certs�s.





cCs�tjtj�}|j�tjtj�}|jtjj�|j�tjtj�}|jtjj�tjtj�}|jt|jd�|jt|jd�dS(NRG(
RRER�tload_default_certsRFRGRHRwRxR�(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_load_default_certs�s

Rsnot-Windows specifics!LibreSSL doesn't support env varsc	Csttjtj�}tj��P}t|d<t|d<|j�|j|j	�idd6dd6dd6�WdQXdS(NRRiR�iR�R�(
RRER�RRRR�R�R�R�(R'R
R((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_load_default_certs_env�s


sWindows specificcCs�tjtj�}|j�|j�}tjtj�}tj��K}t|d<t|d<|j�|dcd7<|j	|j�|�WdQXdS(NRRR�i(
RRER�R�R�RRRR�R�(R'R
tstatsR((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt#test_load_default_certs_env_windows�s



cCs�|j|jtj@tj�tdkrC|j|jt@t�ntdkri|j|jt@t�ntdkr�|j|jt@t�ntdkr�|j|jt@t�ndS(Ni(R�RlRRmRRRR(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt_assert_context_options�s


cCs(tj�}|j|jtj�|j|jtj�|j|j�|j	|�t
t��}|j�j
d�}WdQXtjdtdtd|�}|j|jtj�|j|jtj�|j	|�tjtjj�}|j|jtj�|j|jtj�|j	|�dS(NRRR
R�(Rtcreate_default_contextR�RcRRoRgR�tcheck_hostnameR�RXt
SIGNING_CAR�R	RRFRHRe(R'R
RNR�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_create_default_context�s 
	
cCs_tj�}|j|jtj�|j|jtj�|j|j�|j	|�tjtj
�}|j|jtj
�|j|jtj�|j	|�tjtj
dtjdt�}|j|jtj
�|j|jtj�|j
|j�|j	|�tjdtjj�}|j|jtj�|j|jtj�|j	|�dS(NRJR�tpurpose(Rt_create_stdlib_contextR�RcRRoRetassertFalseR�R�R�RgRkR�RFRH(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest__create_stdlib_context�s(

		
cCs�tjd�}|j|j|j�|jdt�|j|j|j�|jdt�|j|j|j�|jdt�|j�|j|j|j�dS(NRtenable(	Rtimport_fresh_moduleR�t_create_default_https_contextR�t_https_verify_certificatesRlt_create_unverified_contextRk(R't	local_ssl((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest__https_verify_certificatess



cCsqd}d}i}td||�d|tj<td||�x+d	D]#}||tj<td||�qFWdS(
Nsimport ssl, sys;             status = "Error: _create_default_https_context does not verify certs"                        if ssl._create_default_https_context is                           ssl._create_unverified_context                      else None;             sys.exit(status)simport ssl, sys;             status = "Error: _create_default_https_context verifies certs"                        if ssl._create_default_https_context is                           ssl.create_default_context                      else None;             sys.exit(status)s-cR9RDt1tenabledRu(RDR�R�Ru(RRt_https_verify_envvar(R'thttps_is_verifiedthttps_is_not_verifiedt	extra_envtsetting((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest__https_verify_envvar*s


cCs�tjtj�}|j|j�|jt��t|_WdQXtj|_	|j|j�t|_|j
|j�tj|_	t|_|j
|j�|jt��tj|_	WdQXt
|_|j|j�dS(N(RREtPROTOCOL_TLSR�R�RwR�RkRgRoR�RfReRl(R'R
((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_check_hostnameDs			('R*R+RRRdRfRjRnRpRIR^R0RyR�R�R�R�R�R�RRhR�t	needs_sniR�R�R�R�R�tskipIfRRGtIS_LIBRESSLR�R�R�R�R�R�R�R�(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRa3s8			S		?		

				$					t
SSLErrorTestscBs#eZd�Zd�Zd�ZRS(cCsztjdd�}|jt|�d�|j|jd�tjdd�}|jt|�d�|j|jd�dS(NiRu(RRFR�R�R%tSSLZeroReturnError(R'R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_str]scCs�tjtj�}|jtj��}|jt�WdQX|j|jj	d�|j|jj
d�t|j�}|j|j
d�|�dS(NtPEMt
NO_START_LINEs"[PEM: NO_START_LINE] no start line(RRER�RwRFR�R�R�R�tlibrarytreasonR�R�R�(R'R
R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_lib_reasongsc
Cstjtj�}ttj����}|jd�|jd�tj�}|j|j��|j	t
�t|j|t
dt
���m}|jtj
��}|j�WdQXt|j�}|j|jd�|�|j|jjtj�WdQXWdQXdS(Ns	127.0.0.1iitdo_handshake_on_connects%The operation did not complete (read)(s	127.0.0.1i(RRER�RR"tbindtlistenR�tgetsocknametsetblockingRlR�RwtSSLWantReadErrortdo_handshakeR�R�R�R�R�R%tSSL_ERROR_WANT_READ(R'R
R�tcR�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
test_subclassqs


!(R*R+R�R�R	(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�[s	
	
tNetworkedTestscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jej
dkd	�d
��Zd�Zd�Zd
�Zd�Zed��ZRS(c
Cs+tjt��tjtjtj�dtj�}z-|jtdf�|j	i|j
��Wd|j�Xtjtjtj�dtj�}|j
tjd|jtdf�|j�tjtjtj�dtjdt�}z*|jtdf�|j|j
��Wd|j�XWdQXdS(NRJi�scertificate verify failedtca_certs(Rttransient_internettREMOTE_HOSTRR�R"R#ReR�R�tgetpeercertR�RgR�RFtREMOTE_ROOT_CERTR�(R'R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_connect�s&
		c
Cs�tjt��stjtjtj�dtjdt�}z6|j	d|j
tdf��|j|j��Wd|j
�XWdQXdS(NRJRii�(RRR
RR�R"R#RgRR�t
connect_exR�RR�(R'R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_connect_ex�s		cCsAtjt��,tjtjtj�dtjdtdt	�}z�|j
t	�|jtdf�}|j|dt
jt
jf�tjg|ggd�xutry|j�PWq�tjk
r�tj|gggd�q�tjk
rtjg|ggd�q�Xq�W|j|j��Wd|j�XWdQXdS(NRJRRi�ig@(RRR
RR�R"R#RgRRlRRRiR%tEINPROGRESStEWOULDBLOCKtselectRkRRtSSLWantWriteErrorR�RR�(R'R�trc((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_non_blocking_connect_ex�s(		
	
!cCs�tjt���tjtjtj�dtjdtdt	�}z^|j
d�|jtdf�}|dkr�|jd�n|j
|tjtjf�Wd|j�XWdQXdS(NRJRRgH�����z>i�is!REMOTE_HOST responded too quickly(RRR
RR�R"R#RgRRlR�RR[RiR%tEAGAINRR�(R'R�R((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_timeout_connect_ex�s		
 c
Cs�tjt���tjtjtj�dtjdt�}zG|j	tdf�}t
jt
jt
j
t
jf}|j||�Wd|j�XWdQXdS(NRJRi�(RRR
RR�R"R#RgRRR%tECONNREFUSEDtEHOSTUNREACHt	ETIMEDOUTRRiR�(R'R�Rterrors((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_connect_ex_error�s		c
Csytjt��dtjtj�}|jtjtj��}|j	tdf�z|j
i|j��Wd|j�X|jtjtj�dt�}|j	tdf�|j�tj
|_|jtjtj��}|jtjd|j	tdf�|j�|jt�|jtjtj��}|j	tdf�z|j�}|j|�Wd|j�XWdQXdS(Ni�Rscertificate verify failed(RRR
RRERR�R"R#R�R�RR�RgRoR�RFR�RR�(R'R
R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_connect_with_context�s.	


cCs(tjt��tjtj�}tj|_|jdt	�|j
tjtj��}|j
tdf�z|j�}|j|�Wd|j�Xtjtj�}tj|_|jdt�|j
tjtj��}|j
tdf�z|j�}|j|�Wd|j�XWdQXdS(NR
i�(RRR
RRERRgRoR�RR�R"R#R�RR�R�R�(R'R
R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_connect_capaths&c
Cs[tt��}|j�jd�}WdQXtj|�}tjt��
tj	tj
�}tj|_|j
d|�t|jtjtj����3}|jtdf�|j�}|j|�WdQXtj	tj
�}tj|_|j
d|�t|jtjtj����3}|jtdf�|j�}|j|�WdQXWdQXdS(NRR�i�(RXRR�R	RR�RRR
RERRgRoR�RR�R"R#R�RR�(R'RNR�R�R
R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_connect_cadata(s$$$R�s*Can't use a socket as a file under WindowscCs�tjt���tjtjtj��}|jtdf�|j�}|j	�}|j
�tj|d�|j
�t
j�|jt��}tj|d�WdQX|j|jjtj�WdQXdS(Ni�i(RRR
RR�R"R#R�tfilenotmakefileR�RR�R�R�RwtOSErrorR�R�R%tEBADF(R'R�tfdRNR(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_makefile_close>s


c
Cstjt��tjtj�}|jtdf�|jt�tj	|dtj
dt�}d}xytr�y|d7}|j�PWqitj
k
r�tj|ggg�qitjk
r�tjg|gg�qiXqiW|j�tjrtjjd|�nWdQXdS(Ni�RJRiis9
Needed %d calls to do_handshake() to establish session.
(RRR
R"R#R�RRlRR�ReRkRRRRR�RRRR(R'R�tcount((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_non_blocking_handshakeRs(
			


	cs?d�fd�}|tdt�tjr;|dd�ndS(Nc	s%tj|��tj||f�}|sE�jd||f�nytj||fdt�}Wn6tjk
r�}tjr�tj	j
d|�q�nX�jd|||f�tj||fd|�}|s��jd||f�ntjrtj	j
d|||f�nWdQXdS(NsNo server certificate on %s:%s!Rs%s
s$Got server certificate %s for %s:%s!s&
Verified certificate for %s:%s is
%s
(RRRtget_server_certificateR�R�RFRRRR(thosttportR�R�R�(R'(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt_test_get_server_certificateis"
			i�sipv6.google.com(R�R
RRtIPV6_ENABLED(R'R.((R's2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_get_server_certificatehs	cCstdf}tj|d���ttjtjtj�dtjdd���}|j	|�WdQXttjtjtj�dtjdd���}|j	|�WdQX|j
tjd��Qttjtj���2}tj|dtjdd�}|j	|�WdQXWdQXWdQXdS(	Ni�iRJtciphersRgRhsNo cipher can be selecteds^$:,;?*'dorothyx(R
RRRRR�R"R#ReR�R�RF(R'tremoteR�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRj�scCs�tjt���tjtj�}tj|_|jdt	�|j
|j�g�|jt
j
t
j��}|jtdf�z|j�}|j|�Wd|j�X|j
t|j��d�WdQXdS(NR
i�i(RRR
RRERRgRoR�RR�R�R�R"R#R�RR�R�R(R'R
R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_get_ca_certs_capath�scCs�tjt���tjtj�}tjtj�}tjtj�}t	|j
|���u}|jtdf�|j|j
|�|j|jj
|�||_
|j|j
|�|j|jj
|�WdQXWdQXdS(Ni�(RRR
RRER�RR"R#RR�R�R�tcontextt_sslobj(R'tctx1tctx2R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_context_setget�s	(R*R+RRRRRR R!R"RIR�RR
R(R*R0RjR3R�R8(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR
�s								$				(tmake_https_servertThreadedEchoServercBs{eZdejfd��YZddddeeeddddd�Zd�Z	d�Z
dd�Zd�Zd�Z
RS(	tConnectionHandlercBsDeZdZd�Zd�Zd�Zd�Zd�Zd�ZRS(s�A mildly complicated class, because we want it to work both
            with and without the SSL wrapper around the socket connection, so
            that we can test the STARTTLS functionality.cCsZ||_t|_||_||_|jjd�d|_tj	j
|�t|_dS(Ni(
tserverRltrunningR�taddrRR�tsslconnt	threadingtThreadt__init__Rktdaemon(R'R<tconnsockR>((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRB�s					cCs�y]|jjj|jdt�|_|jjj|jj��|jj	j|jj
��Wn)tjt
jtfk
r�}|jtjtjtjfkr�|jjjt|��|jjr�tdt|j�d�nt|_|j�tSt|tj�r$|jtjkr$�n|jjj|�|jjratdt|j�d�nt|_|jj�|j�tSn"X|jjjtj kr:|jj!�}t"j#r�|jjr�t$j%j&dt'j(|�d�n|jj!t�}t"j#r:|jjr:t$j%j&dtt)|��d�q:n|jj*�}t"j#r�|jjr�t$j%j&dt|�d�t$j%j&d	t|jj��d�ntSdS(
NR�s'
 server:  bad connection attempt from s:
s client cert is s
s cert binary is s bytes
s" server: connection cipher is now s" server: selected protocol is now (+R<R4R�R�RkR?tselected_npn_protocolstappendtselected_npn_protocoltselected_alpn_protocolstselected_alpn_protocolRRFR"R�R%R%t
ECONNRESETtEPIPEt	ESHUTDOWNtconn_errorsR�tchattyRtreprR>RlR=R�R)tstopRoRgRRRRRRR�R�Rtcipher(R'R(R�tcert_binaryRQ((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt	wrap_conn�sH !	
%	

$*	!cCs*|jr|jj�S|jjd�SdS(Ni(R?R�R�R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�s	
cCs-|jr|jj|�S|jj|�SdS(N(R?RR�R�(R'R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR
s	cCs*|jr|jj�n
|jj�dS(N(R?R�R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�s	cCs�t|_|jjs(|j�s(dSnx�|jr�yE|j�}|j�}|skt|_|j�n
|dkr�t	j
r�|jjr�tj
jd�n|j�dS|jjr
|dkr
t	j
r�|jjr�tj
jd�n|jd�|j�sxdSnk|jjr�|jr�|dkr�t	j
rV|jjrVtj
jd�n|jd�|jj�|_d|_t	j
rx|jjrxtj
jd�qxn�|d	krt	j
r�|jjr�tj
jd
�n|jjd�}|jt|�jd�d
�nft	j
re|jjre|jr6dp9d}tj
jd|||j�|f�n|j|j��Wq+tjk
r�|jjr�td�n|j�t|_|jj�q+Xq+WdS(Ntovers" server: client closed connection
tSTARTTLSs2 server: read STARTTLS from client, sending OK...
sOK
tENDTLSs0 server: read ENDTLS from client, sending OK...
s* server: connection is now unencrypted...
s
CB tls-uniques@ server: read CB tls-unique from client, sending our CB data...
s
tls-uniquesus-asciis
t	encryptedtunencrypteds/ server: read %r (%s), sending back %r (%s)...
sTest server failure:
(RkR=R<tstarttls_serverRSR�tstripRlR�RRtconnectionchattyRRRR?tunwrapR�R�RRORRZRRFRNRRP(R'tmsgtstrippedtdatatctype((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytrunsb		



	#	

	(	R*R+t__doc__RBRSR�RR�Ra(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR;�s	
	:			cCs`|r||_n�tj|dk	r*|ntj�|_|dk	rK|ntj|j_|rs|jj|�n|r�|jj|�n|r�|jj	|�n|	r�|jj
|	�n|
r�|jj|
�n||_||_
||_tj�|_tj|j�|_d|_t|_g|_g|_g|_tjj|�t|_dS(N(R4RRER�R�ReRoR�R�tset_npn_protocolstset_alpn_protocolsRiRNR[RYR"R�Rt	bind_portR-tflagRltactiveRERHRMR@RARBRkRC(R'tcertificateR�tcertreqstcacertsRNR[RYt
npn_protocolstalpn_protocolsR1R4((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRBPs:								cCs$|jtj��|jj�|S(N(tstartR@tEventRftwait(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt	__enter__ts
cGs|j�|j�dS(N(RPR(R'RK((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt__exit__ys
cCs||_tjj|�dS(N(RfR@RARm(R'Rf((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRm}s	cCs	|jjd�|jjd�t|_|jrB|jj�nx�|jr�yu|jj�\}}tj	r�|j
r�tjj
dt|�d�n|j|||�}|j�|j�WqEtjk
r�qEtk
r�|j�qEXqEW|jj�dS(Ng�������?is server:  new connection from s
(R�R�RRkRgRfR%R�RRRNRRRROR;RmRR"R�tKeyboardInterruptRPR�(R'tnewconntconnaddrthandler((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRa�s&			

cCs
t|_dS(N(RlRg(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRP�sN(R*R+R@RAR;R�RkRlRBRpRqRmRaRP(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR:�s�	 			tAsyncoreEchoServercBsceZdejfd��YZd�Zd�Zd�Zd�Zd	d�Z
d�Zd�ZRS(
t
EchoServercBs<eZdejfd��YZd�Zd�Zd�ZRS(R;cBs>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsQtj|dtd|dt�|_tjj||j�t|_|j	�dS(NR�R�R(
RR�RkRlR"tasyncoretdispatcher_with_sendRBt_ssl_acceptingt_do_ssl_handshake(R'tconnR�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRB�s	cCsBt|jtj�r>x&|jj�dkr:|j�qWntS(Ni(R)R"Rt	SSLSockettpendingthandle_read_eventRk(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytreadable�scCs�y|jj�Wn�tjtjfk
r1dStjk
rK|j�Stjk
ra�n?tjk
r�}|j	dt
jkr�|j�Sn
Xt|_
dS(Ni(R"RRRRtSSLEOFErrorthandle_closeRFR�RKR%tECONNABORTEDRlRz(R'Rb((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR{�s
cCsu|jr|j�n[|jd�}tjrKtjjdt|��n|s^|j	�n|j
|j��dS(Nis server:  read %s from client
(RzR{R�RRRRRROR�R�RZ(R'R_((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pythandle_read�s	
	
cCs1|j�tjr-tjjd|j�ndS(Ns server:  closed connection %s
(R�RRRRRR"(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR��s
	cCs�dS(N((R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�s(R*R+RBR�R{R�R�R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR;�s					cCsZ||_tjtjtj�}tj|d�|_tjj	||�|j
d�dS(NRDi(R�R"R#tSOCK_STREAMRReR-Rxt
dispatcherRBR(R'R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRB�s
	cCsI|j�\}}tjr2tjjd|�n|j||j�dS(Ns$ server:  new connection from %s:%s
(R�RRRRRR;R�(R'tsock_objR>((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
handle_accept�s	cCs�dS(N((R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�s(R*R+RxRyR;RBR�R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRw�s3		cCsPd|_t|_|j|�|_|jj|_tjj	|�t
|_dS(N(R�RfRlRgRwR<R-R@RARBRkRC(R'R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRB�s		cCsd|jj|jfS(Ns<%s %s>(t	__class__R*R<(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt__str__�scCs$|jtj��|jj�|S(N(RmR@RnRfRo(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRp�s
cGs|tjrtjjd�n|j�tjrBtjjd�n|j�tjrhtjjd�ntjdt	�dS(Ns cleanup: stopping server.
s! cleanup: joining server thread.
s cleanup: successfully joined.
t
ignore_all(
RRRRRRPRRxt	close_allRk(R'RK((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRq�s	
	
	cCs||_tjj|�dS(N(RfR@RARm(R'Rf((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRm�s	cCsQt|_|jr"|jj�nx(|jrLytjd�Wq%q%Xq%WdS(Ni(RkRgRfR%Rxtloop(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRas		cCst|_|jj�dS(N(RlRgR<R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRPs	N(
R*R+RxR�RwRBR�RpRqR�RmRaRP(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyRv�sE					
sFOO
cCs�i}td|d|dt�}|��t|jtj�d|����}|jt|jf�x�|t|�t	|�gD]�}	|r�t
jr�tj
jd|�q�n|j|	�|j�}
|r�t
jr�tj
jd|
�q�n|
|j�kr~td|
d t|
�|d j�t|�f��q~q~W|jd	�|rpt
jrptj
jd
�qpn|ji|j�d6|j�d6|j�d
6|j�d6|j�d6|j�d6�|j�WdQX|j|d<|j|d<WdQX|S(sc
        Launch a server, connect a client to it and try various reads
        and writes.
        R4RNR[Rs client:  sending %r...
s client:  read %r
s4bad data <<%r>> (%d) received; expected <<%r>> (%d)
isover
s client:  closing connection.
tcompressionRQtpeercerttclient_alpn_protocoltclient_npn_protocolR�Ntserver_alpn_protocolstserver_npn_protocols(R:RlRR�R"R�R�R-R�t
memoryviewRRRRRR�RZtAssertionErrorRR*R�RQRRIRGR�R�RHRE(tclient_contexttserver_contexttindataRNR[tsni_nameR�R<R�targtoutdata((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytserver_params_testsL	"		
	'
		





c
Cs|dkrtj}nidtj6dtj6dtj6|}tjr�|rUdpXd}tjj	|tj
|�tj
|�|f�ntj|�}|j|O_tj|�}	|	j|O_|j
tjkr�|jd�nx7||	fD])}
||
_|
jt�|
jt�q�Wyt||	dtdt�}WnStjk
rf|r�qn�tjk
r�}|s�|jtjkr�qnkX|s�td	tj
|�tj
|�f��n9|tk	r||d
krtd||d
f��ndS(
sT
        Try to SSL-connect using *client_protocol* to *server_protocol*.
        If *expect_success* is true, assert that the connection succeeds,
        if it's false, assert that the connection fails.
        Also, if *expect_success* is a string, assert that it is the protocol
        version actually used by the connection.
        ReRfRgs %s->%s %s
s
 {%s->%s} %s
RgRNR[s5Client protocol %s succeeded with server protocol %s!R�s%version mismatch: expected %r, got %rN(R�RReRfRgRRRRRtget_protocol_nameRERlRcRRiRoR�R�R�R�RlRFR"R�R%RJR�Rk(
tserver_protocoltclient_protocoltexpect_successt	certsreqstserver_optionstclient_optionstcerttypet	formatstrR�R�R
R�R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttry_protocol_combo=sR	


		
	
t
ThreadedTestscBs�eZed��Zd�Zeje�d�d��Zd�Z	d�Z
d�Zeejee
d�d�d	���Zeed
���Zeejee
d�d�d
���Zeed���Zeejee
d�d�ed����Zeejee
d�d�d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zeje
j d �d!��Z!eje
j"d"�d#��Z#ejd$e
j$kd%�d&��Z%d'�Z&ejee
d(�d)�d*��Z'd+�Z(d,�Z)eje
j*d-�d.��Z+eje
j*d/�d0��Z,d1�Z-eje
j.d2�d3��Z/d4�Z0d5�Z1e2d6��Z3e2d7��Z4e2d8��Z5e2d9��Z6d:�Z7RS(;cCs�tjrtjjd�nxatD]Y}|tjtjfkrGq#ntj	|�}|j
t�t||dt
dt
�q#WdS(s2Basic test of an SSL client connecting to a servers
RNR[N(RRRRRRbRR�tPROTOCOL_TLSv1_1RER�R�R�Rk(R'RcR4((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt	test_echo{s	

c	Cs�tjrtjjd�ntjtj�}tj|_	|j
t�|jt�t
d|dt�}|�x|jtj�dt�}|jt|jf�|jt��|j�WdQX|j�|j�}|j|d�|j�}tjr:tjjtj|�d�tjjdt|�d�nd|krc|jd	tj|��nd|dkr�|jd�n|jd
|�|jd|�tj|d
�}tj|d�}|j ||�|j!�WdQXdS(Ns
R4RNRsCan't get peer certificate.sConnection cipher is s.
R�s$No subject field in certificate: %s.R�sPython Software FoundationskMissing or invalid 'organizationName' field in certificate subject; should be 'Python Software Foundation'.R�R�(R�sPython Software Foundation((R�sPython Software Foundation("RRRRRRRERRgRoR�R�R�R:RlR�R"R�R�R-RwR�RRR�RQR�R�R�R�RiRNR�R�(R'R4R<R�R�RQtbeforetafter((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_getpeercert�sB	

	
	!	

s!verify_flags need OpenSSL > 0.9.8cCstjrtjjd�ntjtj�}|jt	�tjtj�}tj
|_|jt
�ttdd�}|j|jtj|B�td|dt�}|�[t|jtj����9}|jt|jf�|j�}|j|d�WdQXWdQX|jtjO_td|dt�}|�[t|jtj����9}|jtjd��|jt|jf�WdQXWdQXWdQX|jt�td|dt�}|�[t|jtj����9}|jt|jf�|j�}|j|d�WdQXWdQXdS(Ns
RqiR4RNsCan't get peer certificate.scertificate verify failed( RRRRRRRER�R�tSIGNED_CERTFILERgRoR�R�RrR�RsRtR:RkRR�R"R�R�R-RR�RuR�RFtCRLFILE(R'R�R4RxR<R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_crl_check�s:	


(
cCs�tjrtjjd�ntjtj�}|jt	�tjtj�}tj
|_t|_
|jt�td|dt�}|�at|jtj�dd���9}|jt|jf�|j�}|j|d�WdQXWdQXtd|dt�}|�at|jtj�dd���9}|jtjd��|jt|jf�WdQXWdQXWdQXtd|dt�}|�Fttj���-}|jtd	��|j|�WdQXWdQXWdQXdS(
Ns
R4RNRR�sCan't get peer certificate.tinvalids.hostname 'invalid' doesn't match u?'localhost's'check_hostname requires server_hostname(RRRRRRRER�R�R�RgRoRkR�R�R�R:RR�R"R�R�R-RR�R�RR�(R'R�R4R<R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR��s8	
	

(	
cCsWtjjtjjt�p!tjd�}ttdtj	dt
dtdt�}|��tt
j
����}ttj|d|dtj����}y|jt|jf�Wn�tjk
r�}tjrAtjjd|�qAn[t
jk
r3}|jtjkr�ntjrAtjjd	|�qAnX|jd
�WdQXWdQXWdQXdS(s�Connecting when the server rejects the client's certificate

            Launch a server with CERT_REQUIRED, and check that trying to
            connect to it with a wrong client certificate fails.
            skeycert.pemRiRjRNR[R�R�s
SSLError is %r
s
socket.error is %r
s'Use of invalid cert should have failed!N(RRRRR	R�R:R�RRgR�RlRR"R�R�R�R�R-RFRRRRRR�R%RJR�(R'R�R<R�R�R(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_wrong_cert�s,!						cs�tj��tj��tj��tj�t�����fd�}����fd�}tjd|�}|j�z|�Wd|j�XdS(s|A brutal shutdown of an SSL server should raise an OSError
            in the client when attempting handshake.
            csK�jd��j��j�\}}|j��j��j�dS(Ni(RR%R�R�(tnewsockR>(t
listener_gonetlistener_readyR�(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytlistener.	s



c	s}�j�ttj���[}|jt�f��j�ytj|�}Wntjk
renX�jd�WdQXdS(Ns2connecting to closed SSL socket should have failed(	RoRR"R�R�RR�R�R�(Rtssl_sock(R�R�R-R'(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt	connector6	s

ttargetN(	R@RnR"RReR�RARmR(R'R�R�R�((R�R�R-R�R's2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_rude_shutdown 	s
RBs)OpenSSL is compiled without SSLv2 supportcCstjrtjjd�nttjtjt�ttjtjttj	�ttjtjttj
�ttjtjt�ttjtj
t�ttjtjt�t�r�ttjtjtdtj�nttjtjtdtj�ttjtjtdtj�dS(s9Connecting to an SSLv2 server with various client optionss
R�N(RRRRRR�RRBRkRfRgRRltPROTOCOL_SSLv3R�R/RmRnRo(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_protocol_sslv2I	s		

cCs!tjrtjjd�nttd�r�yttjtj	t
�Wq�tjk
r�}tjr�tjjdt
|��q�q�Xnttd�r�ttjtjt�nttjtjt
�ttjtjd�ttd�r	ttjtjttj�nttjtjt
tj�ttjtjdtj�ttd�rottjtjttj�nttjtjt
tj�ttjtjdtj�ttd�r�ttjtjtdtj�nttjtjt
dtjtjB�ttjtjtdtj�dS(s:Connecting to an SSLv23 server with various client optionss
RBs; SSL2 client to SSL23 server test unexpectedly failed:
 %s
R�tTLSv1R�N(RRRRRRORR�RRBRkR"R�R�R�RlR�RfRgRnRmRo(R'R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_protocol_sslv23`	s:			
R�s)OpenSSL is compiled without SSLv3 supportcCs�tjrtjjd�nttjtjd�ttjtjdtj�ttjtjdtj	�t
td�r�ttjtjt�nttjtj
tdtj�ttjtjt�t�r�ttjtj
tdtj�ndS(s9Connecting to an SSLv3 server with various client optionss
tSSLv3RBR�N(RRRRRR�RR�RfRgRORBRlRRnR�R/Rm(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_protocol_sslv3�	s	
	cCs�tjrtjjd�nttjtjd�ttjtjdtj�ttjtjdtj	�t
td�r�ttjtjt�nt
td�r�ttjtj
t�nttjtjtdtj�dS(s8Connecting to a TLSv1 server with various client optionss
R�RBR�R�N(RRRRRR�RR�RfRgRORBRlR�RRo(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_protocol_tlsv1�	s	R�sTLS version 1.1 not supported.cCs�tjrtjjd�nttjtjd�ttd�rZttjtj	t
�nttd�r�ttjtjt
�nttjtjt
dtj
�ttjtjd�ttjtjt
�ttjtjt
�dS(snConnecting to a TLSv1.1 server with various client options.
               Testing against older TLS versions.s
sTLSv1.1RBR�R�N(RRRRRR�RR�RORBRlR�RRqR�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_protocol_tlsv1_1�	s	
tPROTOCOL_TLSv1_2sTLS version 1.2 not supported.c	Cs3tjrtjjd�nttjtjddtjtj	Bdtjtj	B�t
td�rzttjtjt�nt
td�r�ttjtj
t�nttjtjtdtj�ttjtjd�ttjtjt�ttjtjt�ttjtjt�ttjtjt�dS(snConnecting to a TLSv1.2 server with various client options.
               Testing against older TLS versions.s
sTLSv1.2R�R�RBR�N(RRRRRR�RR�RnRmRORBRlR�RRrR�R�(R'((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_protocol_tlsv1_2�	s 	
c	
Cs8d}ttd	tjd
tdtdt�}t}|��tj�}|jd
�|jt	|j
f�tjr�t
jjd�nxJ|D]B}tjr�t
jjd|�n|r�|j|�|j�}n|j|�|jd�}|j�j�}|dkr^|jd�r^tjr=t
jjd|�ntj|d	tj�}t}q�|dkr�|jd�r�tjr�t
jjd|�n|j�}t}q�tjr�t
jjd|�q�q�Wtjr�t
jjd�n|r|jd�n
|jd�|r$|j�n
|j�WdQXdS(s6Switching from clear text to encrypted and back again.smsg 1sMSG 2RUsMSG 3smsg 4RVsmsg 5smsg 6R�RYRNR[is
s client:  sending %r...
iRs/ client:  read %r from server, starting TLS...
s- client:  read %r from server, ending TLS...
s client:  read %r from server
s client:  closing connection.
sover
N(smsg 1sMSG 2RUsMSG 3smsg 4RVsmsg 5smsg 6(R:R�RR�RkRlR"RR�R�R-RRRRRR�R�R�RZRZR�R�R\R�(	R'tmsgsR<twrappedR�R�R|R�R]((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
test_starttls�	s`			
	
		

									

cCs9t|dt�}tjr.tjjd�nttd��}|j�}WdQXd}d|j	t
jjt�df}t
jdt�}tj|d	|�}zu|j�jd
�}|rt|�dkr|jt|��}tjrtjjdt|�|f�qnWd|j�X|j||�dS(
s:Using a SocketServer to create and manage SSL connections.R�s
trbNRDshttps://localhost:%d/%siRR4scontent-lengthis/ client: read %d bytes from remote server '%s'
(R9R�RRRRRRXR�R-RRtsplitRR�turllib2turlopentinfot	getheaderR�RR�R�(R'R<RNR�R�turlR4tdlen((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_socketserver
s(	 		cCs^tjrtjjd�nd}tt�}|�$tjt	j	��}|j
d|jf�tjr�tjjd|�n|j|�|j�}tjr�tjjd|�n||j
�kr|jd|d t|�|d j
�t|�f�n|jd�tjr.tjjd	�n|j�tjrTtjjd
�nWdQXdS(s'Check the example asyncore integration.s
sFOO
s	127.0.0.1s client:  sending %r...
s client:  read %r
s4bad data <<%r>> (%d) received; expected <<%r>> (%d)
isover
s client:  closing connection.
s client:  connection closed.
N(RRRRRRvR�RR�R"R�R-R�RZR�RR�(R'R�R<R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_asyncore_server/
s2			
	!
	
	cs=tjrtjjd�nttdtjdtj	dtdt
dt�}|��tjt
j
�dtdtd	td
tjdtj	���jt|jf��fd�}�fd�}d
�jt
gfd�jtdgfd�jt
gfg}d�jt
gfd�jtdgfd|t
gfd|tgfg}d}x|D]\}}}	}
||jd�}yw|||
��j�}||j�kr�|jdjd|d|d dt|�d|d dt|���nWqWtk
ra}
|	r'|jdjd|��nt|
�j|�sb|jdjd|d |
��qbqWXqWWx|D]\}}}	}
||jd�}yw�j|�||
�}||j�kr|jd!jd|d|d dt|�d|d dt|���nWqmtk
r�}
|	r=|jd"jd|��nt|
�j|�st|jdjd|d |
��n�j�qmXqmWd#}�j|�tt|��}|j �jd$|�t|��|j ||�|j!t"�j#��jd%�|j!t�jd$�|j!t�jd$��j$�Wd&QXd&S('s Test recv(), send() and friends.s
RiR�RjRNR[R�R�RRJcs'tdd�}�j|�}|| S(Nsid(R�R�(tbR)(R�(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
_recv_into`
scs-tdd�}�j|�\}}|| S(Nsid(R�R�(R�R)R>(R�(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt_recvfrom_intoe
sR�R�ssome.addresstsendallR�R�R�R�uPREFIX_RspWhile sending with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d})
R
R�itnoutR�tnins>Failed to send with method <<{name:s}>>; expected to succeed.
sFMethod <<{name:s}>> failed with unexpected exception message: {exp:s}
texpsrWhile receiving with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d})
sAFailed to receive with method <<{name:s}>>; expected to succeed.
R_i����sover
N(%RRRRRR:R�RReR�RkRlR�R"R�R�R-R�R�R�R�R�RR�RZR�R�RR�R�R�R�R�RwR�R�R�(R'R<R�R�tsend_methodstrecv_methodstdata_prefixt	meth_namet	send_methR�RKR�R�R(t	recv_methR_tbuffer((R�s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_recv_sendL
s�						
	!	
	
	!	
	
"
cCstt�}|j�|j|jdd�tjt|j	f�}|j|j
�tj|dt
�}|j|j
�|jd�|j|jd�d�|j|jd�d�|j|j�d�|jt
�|j|jd�d�|j|jt��d�dS(Ntsuppress_ragged_eofsR_iRD(R:R�RpR�RqR�R"tcreate_connectionR�R-R�RR�RlR�R�R�R�RR�R�(R'R<R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_recv_zero�
s


cs\tjtj��d}tj��}tj��t����fd�}tjd|�}|j��j	�z�zRtjtj�}|j
d�|j||f�|jt
jdt
j|�Wd|j�XzTtjtj�}t
j|�}|j
d�|jt
jd|j||f�Wd|j�XWdt�|j��j�XdS(Ns	127.0.0.1cs��jd��j�g}xT�sstj�gggd�\}}}�|kr |j�j�d�q q Wx|D]}|j�q{WdS(Nig�������?i(RR%RRFR�R�(tconnsRTtwR(R�(tfinishR<tstarted(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytserve�
s

	$
R�g�������?s	timed out(R"R#RReR@RnRlRARmRoR�R�R�RRFR�R�RkR(R'R,R-R�R�R((R�R<R�s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_handshake_timeout�
s6





csvtjtj�}tj|_|jt�|jt�tjtj	��d}t
j��}|j�dt
��tj��dg�dg�����fd�}tjd|�}|j��j�|jtj��}|j||f�|jd�|j�|j�}|j�|j��dj��j�|j�dtj�|j�d|�dS(Ns	127.0.0.1R�csS�jd��j��j�\�d<�d<�dj�djd��dS(Niii(RR%R�R�R�((tevttpeerR2R<(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�s

R�R_i(RRERRgRoR�R�R�R"R#RReR�RkR@RnR�RARmRoR�R�R�RR�RR�R}R�(R'R4R,R-R�R�tclienttclient_addr((R�R�R2R<s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_server_accepts4

		






c	Csxtjtj�}t|jtj����E}|jtj��}|j�WdQX|j	|j
jtj�WdQXdS(N(
RRERRR�R"RwR�RR�R�R%tENOTCONN(R'R4R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_getpeercert_enotconn/s
c	Csxtjtj�}t|jtj����E}|jtj��}|j�WdQX|j	|j
jtj�WdQXdS(N(
RRERRR�R"RwR�RR�R�R%R�(R'R4R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_do_handshake_enotconn6s
cCs�tjtj�}|jt�tjtj�}tj|_t|_|j	tj
O_	|jd�|jd�td|��Q}|j
tj�dd�}|jtj��|jt|jf�WdQXWdQX|jdt|jd��dS(NtAES128tAES256R4RR�sno shared cipheri(RRERR�R�RgRoRkR�RlRpRiR:R�R"RwRFR�R�R-RiR�RM(R'R�R�R<R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_no_shared_ciphers=s
	

	"cCs�tjtj�}ttdtjdt���}t|jtj����I}|j	|j
�d�|jt
|jf�|j|j
�d�WdQX|j	|j
�d�WdQXdS(s�
            Basic tests for SSLSocket.version().
            More tests are done in the test_protocol_*() methods.
            R�RNsTLSv1.3N(RRER�R:R�RlRR�R"R�R�R�R�R�R-R�(R'R4R<R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_version_basicQs		s%test requires TLSv1.3 enabled OpenSSLc
Cs�tjtj�}|jt�|jtjtjBtjBO_t	d|��h}|j
tj��}t|��>|j
t|jf�|j|j�ddddg�WdQXWdQXdS(NR4itTLS_AES_256_GCM_SHA384tTLS_CHACHA20_POLY1305_SHA256tTLS_AES_128_GCM_SHA256(RRER�R�R�RlRoRqRrR:R�R"RR�R�R-RiRQ(R'R4R<R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_tls1_3`s

s"test requires ECDH-enabled OpenSSLcCs�tjtj�}|jt�|jtjO_tjdkrP|jd�nt	d|��[}t
|jtj����7}|j
t|jf�|jd|j�d�WdQXWdQXdS(Niis
ECCdraft:ECDHR4tECDH(iii(RRERR�R�RlRpR.RiR:RR�R"R�R�R-RiRQ(R'R4R<R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_default_ecdh_curvess
s
tls-uniques*'tls-unique' channel binding not availablecCs�tjrtjjd�nttdtjdtj	dtdt
dt�}|�Gtjt
j
�dtdtd	td
tjdtj	�}|jt|jf�|jd�}tjr�tjjdj|��n|j|�|j�d
kr|jt|�d�n|jt|�d�|jd�|j�j�}|j|t|�jd��|j�tjt
j
�dtdtd	td
tjdtj	�}|jt|jf�|jd�}tjr�tjjdj|��n|j||�|j|�|j�d
kr7|jt|�d�n|jt|�d�|jd�|j�j�}|j|t|�jd��|j�WdQXdS(s Test tls-unique channel binding.s
RiR�RjRNR[R�R�RRJs
tls-uniques! got channel binding data: {0!r}
sTLSv1.3i0isCB tls-unique
sus-asciis) got another channel binding data: {0!r}
N(RRRRRR:R�RReR�RkRlR�R"R�R�R-RR�tassertIsNotNoneR�R�RR�RZRORR�tassertNotEqual(R'R<R�tcb_datatpeer_data_reprtnew_cb_data((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�sd							


	
		


	cCs�tjtj�}|jt�t||dtdt�}tjrct	j
jdj|d��n|j
|ddddh�dS(NRNR[s got compression: {!r}
R�tZLIBtRLE(RRER�R�R�R�RkRRRRRR�RiR�(R'R4R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_compression�s
	 Rs*ssl.OP_NO_COMPRESSION needed for this testcCsdtjtj�}|jt�|jtjO_t||dtdt�}|j	|dd�dS(NRNR[R�(RRER�R�R�RlRR�RkR�R�(R'R4R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_compression_disabled�s
cCs�tjtj�}|jt�|jt�|jd�t||dt	dt	�}|dd}|j
d�}d|kr�d|kr�d	|kr�|jd
|d�ndS(NtkEDHRNR[RQit-tADHtEDHtDHEsNon-DH cipher: (RRER�R�R�R�R�RiR�RkR�R�(R'R4R�RQtparts((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_dh_params�s


$cCsRtjtj�}|jt�t||dtdt�}|j|dd�dS(NRNR[R�(	RRER�R�R�R�RkR�R�(R'R4R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_selected_alpn_protocol�s

sALPN support requiredcCs�tjtj�}|jt�tjtj�}|jt�|jddg�t||dtdt�}|j	|dd�dS(NRutbarRNR[R�(RRER�R�R�R�RdR�RkR�R�(R'R�R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt/test_selected_alpn_protocol_if_server_uses_alpn�s

s!ALPN support needed for this testcCs�dddg}ddgdfddgdfdgdfddgdfg}xn|D]f\}}tjtj�}|jt�|j|�tjtj�}|jt�|j|�yt||dtdt�}Wntj	k
r�}|}nX|dkr.t
r.tjdkr.|j|tj	�qUdt
|�t
|�t
|�f}	|d}
|j|
||	|
d
f�t|d�r�|ddnd}|j|||	|df�qUWdS(NRuRt	milkshakeshttp/3.0shttp/4.0RNR[iiisKfailed trying %s (s) and %s (c).
was expecting %s, but got %%s from the %%sR�R�R�i����tnothingR<(iiii(R�RRER�R�R�RdR�RkRFtIS_OPENSSL_1_1R.R�R�R�R(R'tserver_protocolstprotocol_teststclient_protocolsR@R�R�R�R(R]t
client_resultt
server_result((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_alpn_protocols�s>






$cCsRtjtj�}|jt�t||dtdt�}|j|dd�dS(NRNR[R�(	RRER�R�R�R�RkR�R�(R'R4R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_selected_npn_protocol's

s NPN support needed for this testcCsiddg}ddgdfddgdfddgdfddgdfg}x|D]\}}tjtj�}|jt�|j|�tjtj�}|jt�|j|�t||dtdt�}dt|�t|�t|�f}|d	}	|j	|	|||	d
f�t
|d�r>|ddnd
}
|j	|
|||
df�qUWdS(Nshttp/1.1sspdy/2ttesttabctdefRNR[sKfailed trying %s (s) and %s (c).
was expecting %s, but got %%s from the %%sR�R�R�i����RR<(RRER�R�R�RcR�RkR�R�R(R'RRRR@R�R�R�R]RR((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_npn_protocols/s*




$cCsvtjtj�}|jt�tjtj�}|jt�tjtj�}tj|_|jt	�|||fS(N(
RRER�R�R�tSIGNED_CERTFILE2RgRoR�R�(R'R�t
other_contextR�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytsni_contextsLs


cCs+|d}|jd|ff|d�dS(NR�R�R�(Ri(R'R�R
R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytcheck_common_nameVs
csg�|j�\}�}��fd�}|j|�t||dtdd�}|j�d|fg�|j|d�g�t||dtdd�}|j�d|fg�|j|d�g�|jd�t||dtdd�}|j|d�|j�g�dS(Ncs/�j||f�|dk	r+�|_ndS(N(RFR�R4(R�tserver_nametinitial_context(tcallsR(s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
servername_cb_sRNR�tsupermessagetfakehostnameR�tnotfunny(RR�R�RkR�RR�(R'R�R�R#R�((R"Rs2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�Zs,
		
	cCs{|j�\}}}d�}|j|�|jtj��"}t||dtdd�}WdQX|j|jj	d�dS(NcSstjS(N(RtALERT_DESCRIPTION_ACCESS_DENIED(R�R R!((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytcb_returning_alert�sRNR�R$tTLSV1_ALERT_ACCESS_DENIED(
RR�RwRRFR�RlR�R�R�(R'R�RR�R(R�R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_sni_callback_alert�s	
cCs�|j�\}}}d�}|j|�|jtj��7}tj��"}t||dtdd�}WdQXWdQX|j	|j
jd�|jd|j
��dS(NcSsdddS(Ng�?g((R�R R!((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt
cb_raising�sRNR�R$tSSLV3_ALERT_HANDSHAKE_FAILUREtZeroDivisionError(RR�RwRRFRtcaptured_stderrR�RlR�R�R�Ritgetvalue(R'R�RR�R+R�tstderrR�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyttest_sni_callback_raising�s	
cCs�|j�\}}}d�}|j|�|jtj��7}tj��"}t||dtdd�}WdQXWdQX|j	|j
jd�|jd|j
��dS(NcSsdS(NRu((R�R R!((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pytcb_wrong_return_type�sRNR�R$tTLSV1_ALERT_INTERNAL_ERRORRx(RR�RwRRFRR.R�RlR�R�R�RiR/(R'R�RR�R2R�R0R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt#test_sni_callback_wrong_return_type�s	
cCs�tjtj�}tj|_|jt�|jt�td|dt	�}|�f|j
tj��}|jt
|jf�|j�|jt|jd�|jt|jd�WdQXdS(NR4RNithello(RRERRgRoR�R�R�R:RlR�R"R�R�R-R�RwR�R�R(R'R4R<R�((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt,test_read_write_after_close_raises_valuerror�s


(8R*R+RRR�R�RIR^R0R�R�R�R�RORR�RcR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�tHAS_TLSv1_3R�RhR�R_RRRR
RtHAS_ALPNR
RRtHAS_NPNRRRR�R�R*R1R4R6(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyR�ysp
	&*	&	!	)(	:			w		1	'				A				
	*		
	'c
Cs�tjr�itjd6tjd6tjd6}xY|j�D]9\}}|�}|r:|dr:d||f}Pq:q:Wttj��}dtj	tj
fGHd|GHdtjGHd	tjGHyd
tj
GHWq�tk
r�q�Xnx]tttttttttttttg
D].}tjj|�stjd|��qqWt t!t"t#g}tj$d�rw|j%t&�nt'r�tj(�}|r�|j%t)�q�nztj*|�Wdt'r�tj+|�nXdS(
NtLinuxtMactWindowsis%s %rstest_ssl: testing with %r %rs          under %ss          HAS_SNI = %rs          OP_ALL = 0x%8xs          OP_NO_TLSv1_1 = 0x%8xsCan't read certificate file %rtnetwork(,RRRGRHtmac_vert	win32_vertitemsRORR�R.RjRkRqtAttributeErrorR�RR�R�R�R�R�R�RR�R�tBADKEYR�RRtexistst
TestFailedRaR RdR�tis_resource_enabledRFR
t
_have_threadstthreading_setupR�trun_unittesttthreading_cleanup(RtplatsR
RMtplatR�tteststthread_info((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt	test_main�sL	


		
		t__main__(mRRIRRRttest.script_helperRRxR"RR1R:R�RR%R�R�R�RR�RGRYRPt
contextlibRt
import_moduleRtsortedt_PROTOCOL_NAMESRbR�R�R�R�R.RRURR�RR�R�R�R�R�R�R�R�R}RR�R�R�R�R�RR�R�R
RR�R�R�RBR�R�R�R�R�RrRRRRRRRtTestCaseR R-R/R0R7RARRRcR^RjR�RdRaR�R
R@tImportErrorRlRFRkttest.ssl_serversR9RAR:RvR�R�R�R�RNR*(((s2D:/a/msys64/mingw64/lib/python2.7/test/test_ssl.pyt<module>s�										 ��m��*)�/

�u.;����N0