%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/test/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/test/test_ssl.pyc


Nac@sddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZejdZeejZejZejj dZ!e!o]ej"dddfkZ#d	Z$e$d
Z%e%j&ej'Z(e$dZ)e$dZ*e)j&ej'Z+e*j&ej'Z,e$d
Z-e$dZ.dZ/e$dZ0e0j&ej'Z1e$ddZ2e$ddZ3e$dZ4e$dZ5e$dZ6e$dZ7e$dZ8dZ9e$dZ:e$dZ;e$dZ<e$dZ=e$dZ>e$dZ?e$dZ@e$d ZAe$d!ZBeBj&ej'ZCeDed"dZEeDed#dZFeDed$dZGeDed%dZHeDed&dZId'ZJd(ejKfd)YZLd*ZMd+ZNd,ZOd-ZPd.ZQd/ZRd0ZSejTejUd1ZVd2ejKfd3YZWd4ejKfd5YZXd6ejKfd7YZYd8ejKfd9YZZyddl[Z[Wne\k
rIe]Z^nXe_Z^dd:l`maZad;e[jbfd<YZcd=e[jbfd>YZdd?e_e]eed@ZfeedddAZgdBejKfdCYZhe]dDZiejdEkreindS(FiN(ttest_support(tassert_python_ok(tclosingtssltLibreSSLiicGstjjtjjt|S(N(tostpathtjointdirnamet__file__(tname((s)/usr/local/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_COMPATcCsBdjtjtj}tjr>tjj||ndS(Nt (	Rt	tracebacktformat_exceptiontsystexc_infotsupporttverbosetstdouttwrite(tprefixt
exc_format((s)/usr/local/lib/python2.7/test/test_ssl.pythandle_errorYs	t
BasicTestscBseZdZRS(cCsytjtjtjWn(tk
rG}|jdkrAqHnXy tjtjtjjWn(tk
r}|jdkrqnXdS(Ni (Rtsslwrap_simpletsockettAF_INETtIOErrorterrnot_sock(tselfte((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_sslwrap_simpleas (t__name__t
__module__R((((s)/usr/local/lib/python2.7/test/test_ssl.pyR_scCs
tjdkS(Nii	ii
i(ii	ii
i(Rt_OPENSSL_API_VERSION(((s)/usr/local/lib/python2.7/test/test_ssl.pytcan_clear_optionssscCs
tjdkS(Nii	iii(ii	iii(RtOPENSSL_VERSION_INFO(((s)/usr/local/lib/python2.7/test/test_ssl.pytno_sslv2_implies_sslv3_hellowscCs
tjdkS(Nii	ii(ii	iii(RR-(((s)/usr/local/lib/python2.7/test/test_ssl.pythave_verify_flags{scCs.tjr&tjjdkr&tjStjS(Ni(ttimetdaylightt	localtimettm_isdsttaltzonettimezone(((s)/usr/local/lib/python2.7/test/test_ssl.pyt
utc_offsetscCs{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((s)/usr/local/lib/python2.7/test/test_ssl.pytasn1timescs9ttdr1tjfd}|SSdS(NtPROTOCOL_SSLv2cskytjtjWnGtjk
r]tjd	kr^tjd
kr^tjdq^nX||S(Nii	iitdebianssqueeze/sidts'Patched Ubuntu OpenSSL breaks behaviour(ii	iii(RBssqueeze/sidRC(	Rt
SSLContextRAtSSLErrorR-tplatformtlinux_distributiontunittesttSkipTest(targstkwargs(tfunc(s)/usr/local/lib/python2.7/test/test_ssl.pytfs(thasattrRt	functoolstwraps(RLRM((RLs)/usr/local/lib/python2.7/test/test_ssl.pytskip_if_broken_ubuntu_ssls	cs"tjfd}|S(sySkip a test if the OpenSSL config MinProtocol is > TLSv1.
    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	stjjdd}yt|dj}x`|D]X}tjd|}|r1|jd}|dkrtjd||fqq1q1WWdQXWn?t	t
fk
r}tjrt
jjd||fqnX||S(	NtOPENSSL_CONFs/etc/ssl/openssl.cnftrsMinProtocol\s*=\s*(TLSv\d+\S*)itTLSv1s)%s has MinProtocol = %s which is > TLSv1.s(
 Could not scan %s for MinProtocol: %s
(RtenvirontgettopentretmatchtgroupRHRItEnvironmentErrortUnicodeDecodeErrorRRRRR(RJRKtopenssl_cnftconfigtlineRYttls_verterr(RL(s)/usr/local/lib/python2.7/test/test_ssl.pyRMs 
$	(RORP(RLRM((RLs)/usr/local/lib/python2.7/test/test_ssl.pyt'skip_if_openssl_cnf_minprotocol_gt_tls1ss SNI support needed for this testtBasicSocketTestscBseZdZdZdZdZdZdZdZdZ	e
jdZd	Z
d
ZdZdZd
ZdZdZdZdZdZejdejkddZdZejejdkddZejejdkddZ dZ!dZ"dZ#dZ$dZ%eje&d d!Z'd"Z(e
j)d#d$d%Z*RS(&cCstjtjtjtjtjtjr6tjntjdkrOtj	n|j
tjtt
h|j
tjtt
htjtjtjtjtjdkrtjtjndS(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&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_constantss$	

cCstj}tjr>tjjd||r0dp3dfnttdr|jt	tj
d|jt	tj
ddntjdddS(	Ns
 RAND_status is %d (%s)
ssufficient randomnesssinsufficient randomnesstRAND_egditfoosthis is a random stringgR@(RtRAND_statusRRRRRRNtassertRaisest	TypeErrorRstRAND_add(R&tv((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_randoms	cCsttjjt}tjr?tjjdt	j
|dn|j|dddd!d#f|j|dtd|j|d
td|j|dd|j|dd%d'd)d+f|j|dd-tjjt
}tjrtjjdt	j
|dn|j|dd.d/f|j|dd0|j|dd1|j|dd2dS(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}(R~sCastle Anthrax((R~sCastle Anthrax(RsPython Software Foundation((RsPython Software Foundation(RR((RR(R|R}((R|R}(R~sCastle Anthrax((R~sCastle Anthrax(RsPython Software Foundation((RsPython Software Foundation(RR((RR(RR((RR(Rsprojects.developer.nokia.com(Rsprojects.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_certtCERTFILERRRRRtpprinttpformattassertEqualR@t	NOKIACERT(R&tp((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_parse_certs8	$



	$



cCstjjt}tjr?tjjdt	j
|dn|j|iddfd6dd6d	d
6dd6ddfd6dd6dd6dS(Ns
R|tUKRscody-caR{sJun 14 18:00:58 2028 GMTRsJun 18 18:00:58 2018 GMTRt02Rs#codenomicon-vm-2.test.lal.cisco.comRRRitversion(R|R((R|R(Rscody-ca((Rscody-ca(R|R((R|R(Rs#codenomicon-vm-2.test.lal.cisco.com((Rs#codenomicon-vm-2.test.lal.cisco.com(Rs#codenomicon-vm-2.test.lal.cisco.com((Rs#codenomicon-vm-2.test.lal.cisco.com(RRRtTALOS_INVALID_CRLDPRRRRRRRR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_parse_cert_CVE_2019_5010
s	$

cCstjjt}tjr?tjjdt	j
|dnd!d#d%d'd)d+d-f}|j|d||j|d|tjd.krd/d0d1d2d3f}nd4d5d6d7d8f}|j|d|dS(9Ns
R|tUStstateOrProvinceNametOregonR~t	BeavertonRsPython Software FoundationtorganizationalUnitNamesPython Core DevelopmentRsnull.python.orgexample.orgtemailAddressspython-dev@python.orgRR{ii	iRsaltnull.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(RR((RR(R~R((R~R(RsPython Software Foundation((RsPython Software Foundation(RsPython Core Development((RsPython Core Development(Rsnull.python.orgexample.org((Rsnull.python.orgexample.org(Rspython-dev@python.org((Rspython-dev@python.org(ii	i(Rsaltnull.python.orgexample.com(Rs null@python.orguser@example.org(Rs)http://null.python.orghttp://example.org(s
IP Addresss	192.0.2.1(s
IP Addresss2001:DB8:0:0:0:0:0:1
(Rsaltnull.python.orgexample.com(Rs null@python.orguser@example.org(Rs)http://null.python.orghttp://example.org(s
IP Addresss	192.0.2.1(s
IP Addresss	<invalid>(
RRRtNULLBYTECERTRRRRRRRRR+(R&RRtsan((s)/usr/local/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(*NRRtallsanst	othernames
<unsupported>Rsuser@example.orgswww.example.orgtDirNameR|R}R~sCastle AnthraxRsPython Software FoundationRsdirname exampleRshttps://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(RR(Rs
<unsupported>(Rs
<unsupported>(Rsuser@example.org(Rswww.example.org(R|R}((R|R}(R~sCastle Anthrax((R~sCastle Anthrax(RsPython Software Foundation((RsPython Software Foundation(Rsdirname example((Rsdirname example(Rshttps://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(RRRt
ALLSANFILER(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_parse_all_sans?s 
	cCsttd}|j}WdQXtj|}tj|}tj|}|j|||jtjds|j	d|n|j
dtjds|j	d|ndS(NRSs
s-DER-to-PEM didn't include correct header:
%r
s-DER-to-PEM didn't include correct footer:
%r
(RWt
CAFILE_CACERTtreadRtPEM_cert_to_DER_certtDER_cert_to_PEM_certRt
startswitht
PEM_HEADERtfailtendswitht
PEM_FOOTER(R&RMtpemtd1tp2td2((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_DER_to_PEMTsc	Cstj}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|dtr`|j
|jdj|||t|fn.|j
|jd	j|||||fdS(
Nii0iiii?is
LibreSSL {:d}sOpenSSL {:d}.{:d}.{:d}(RtOPENSSL_VERSION_NUMBERR-tOPENSSL_VERSIONtassertIsInstancetinttlongttupletstrtassertGreaterEqualt
assertLesstassertLessEqualtIS_LIBRESSLt
assertTrueRtformatthex(	R&tntttstmajortminortfixtpatchtstatus((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_openssl_version`s0			!cCsJtjtj}tj|}tj|}~|j|ddS(N(R!R"Rtwrap_sockettweakreftrefRtNone(R&Rtsstwr((s)/usr/local/lib/python2.7/test/test_ssl.pyt
test_refcycles
c
Cstjtj}ttj|}|jtj|jd|jtj|jt	d|jtj|j
d|jtj|jt	dd|jtj|jd|jtj|j
dd|jt|jWdQXdS(Nitxs0.0.0.0i(s0.0.0.0i(R!R"RRRRvterrortrecvt	recv_intot	bytearraytrecvfromt
recvfrom_intotsendtsendtotNotImplementedErrortdup(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_wrapped_unconnecteds"cCshxadD]Y}tjtj}|j|ttj|}|j||jWdQXqWdS(Ngg@(Ngg@(	RR!R"t
settimeoutRRRRt
gettimeout(R&ttimeoutRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_timeouts


cCstj}|jtdtj|dt|jtdtj|dt|jtdtj|dtddttj|dtdt&}|jtd|jt	dfWdQX|j
t5}ttj}tj|dtWdQXWdQX|j
|jjtj|j
t;}ttj }tj|dtdtWdQXWdQX|j
|jjtj|j
t;}ttj }tj|dtdtWdQXWdQX|j
|jjtjdS(	Nscertfile must be specifiedtkeyfiles5certfile must be specified for server-side operationstserver_sidetcertfileRCs!can't connect in server-side modei(R!tassertRaisesRegexpt
ValueErrorRRRRjRtconnecttHOSTRvR#tNONEXISTINGCERTRt	exceptionR$tENOENT(R&tsockRtcm((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_errorss6			$c
Cstjjtjjtp!tj|}tj}|j|j|j	t
j!t
j|d|dt
j
WdQXdS(s;Check that trying to use the given client certificate failsRtssl_versionN(RRRRR	tcurdirR!t
addCleanuptcloseRvRRERtPROTOCOL_TLSv1(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyt
bad_cert_tests!	cCs|jddS(s Wrapping with an empty cert filesnullcert.pemN(R(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_empty_certscCs|jddS(s:Wrapping with a badly formatted certificate (syntax error)sbadcert.pemN(R(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_malformed_certscCs|jddS(s2Wrapping with a badly formatted key (syntax error)s
badkey.pemN(R(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_malformed_keyscsd}fd}idEd6}||d||d||d||d||d	||d
idHd6}||d||d
||d||d||didKd6}||d||d||d||d||didNd6}||d||d	||didQd6}||d
||d||d||didTd6}||d||d||ddjdjd}id|fffd6}|||idWd6}|||idZd6}|||d!jdjd}id|fffd6}||d"jdjd||d#jdjd||d$jdjd||d%jdjdid&d'6d]d6d^d_d`fd.6}||d*||d+||d-||d(id/d'6dbdddfdhdjfd6}||d8||d9||d3id/d'6dldndpdrfd6}||d8id:d'6dtdvdxdzfd6d|d.6}||d8id:d'6d~dddfd6dd.6}||d<jttjddjttjididd6}||d>idd6}||d>idd6}jtj}tj|dAWdQXjdBt	|j
dS(NcSstj||dS(N(Rtmatch_hostname(tcertthostname((s)/usr/local/lib/python2.7/test/test_ssl.pytokscs jtjtj||dS(N(RvRtCertificateErrorR(RR(R&(s)/usr/local/lib/python2.7/test/test_ssl.pyRsRsexample.comRsExAmple.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 GMTRslinuxfrz.orgRslinuxfr.orgslinuxfr.comRs
<unsupported>RsDec 18 23:59:59 2011 GMTR|RRt
CaliforniaR~s
Mountain ViewRs
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(Rsexample.com((Rsexample.com(((Rsexample.com(Rs*.a.com((Rs*.a.com(((Rs*.a.com(Rsf*.com((Rsf*.com(((Rsf*.com(Rsnull.python.orgexample.org((Rsnull.python.orgexample.org(((Rsnull.python.orgexample.org(Rs	*.*.a.com((Rs	*.*.a.com(((Rs	*.*.a.com(Rsa.*.com((Rsa.*.com(((Rsa.*.com(Rs
x*.python.org((Rs
x*.python.org(((Rs
x*.python.org(Rsxn--p*.python.org((Rsxn--p*.python.org(((Rsxn--p*.python.org(Rslinuxfrz.org((Rslinuxfrz.org(((Rslinuxfrz.org(Rslinuxfr.org(Rslinuxfr.com(Rs
<unsupported>(R|R((R|R(RR((RR(R~s
Mountain View((R~s
Mountain View(Rs
Google Inc((Rs
Google Inc(Rsmail.google.com((Rsmail.google.com(R|R((R|R(RR((RR(R~s
Mountain View((R~s
Mountain View(Rs
Google Inc((Rs
Google Inc(R|R((R|R(RR((RR(R~s
Mountain View((R~s
Mountain View(Rsmail.google.com((Rsmail.google.com(RR((RR(R|R((R|R(RR((RR(R~s
Mountain View((R~s
Mountain View(Rs
Google Inc((Rs
Google Inc(RR((RR(Rsa*b.com((Rsa*b.com(((Rsa*b.com(Rsa*b.co*((Rsa*b.co*(((Rsa*b.co*(Rsa*b*.com((Rsa*b*.com(((Rsa*b*.com(tencodetdecodeRvRRRRRRhRR(R&RRRRR((R&s)/usr/local/lib/python2.7/test/test_ssl.pyttest_match_hostnames	































































cCsPtjtj}ttj&}|jt|j|tddWdQXdS(Ntserver_hostnames
some.hostname(	RRDtPROTOCOL_SSLv23RR!RvRRRj(R&tctxR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_server_sideXsc
CsWtjtj}ttj|*}|jt|jdWdQXWdQXdS(Nsunknown-type(R!R"RRRRvRtget_channel_binding(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_unknown_channel_binding_ss
tls-uniques*'tls-unique' channel binding not availablecCstjtj}ttj|}|j|jdWdQXtjtj}ttj|dtdt}|j|jdWdQXdS(Ns
tls-uniqueRR(	R!R"RRRtassertIsNoneR
RjR(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_tls_unique_channel_bindingfs$cCstj}|jt|d|j|tjtjM}t|d<t	|d<tj}|j|j
t	|j|jtWdQXdS(NitSSL_CERT_DIRt
SSL_CERT_FILE(Rtget_default_verify_pathsRtlenRtDefaultVerifyPathsRtEnvironmentVarGuardtCAPATHRtcafileR
(R&tpathstenv((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_get_default_verify_pathsrs

twin32sWindows specificc	CsI|jtjd|jtjd|jttj|jttjdt}xdD]}tj|}|j|tx|D]}|j|t	|j
t|d|\}}}|j|t|j
|ddh|j|ttft|tr|j|qqWqeWd}|j
||dS(	NtCAtROOTRCitx509_asnt
pkcs_7_asns1.3.6.1.5.5.7.3.1(RR(RRtenum_certificatesRvRwtWindowsErrortsetRtlistRRRtbytesRhtboolt
isinstancetupdate(	R&t
trust_oidst	storenametstoretelementRtencttrustt
serverAuth((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_enum_certificates~s&	

cCs|jtjd|jttj|jttjdtjd}|j|txb|D]Z}|j|t|j	t
|d|j|dt|j|dddhqeWdS(NRRCiiiRR (
RRt	enum_crlsRvRwR"RR$RRRR%Rh(R&tcrlsR,((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_enum_crlss
cCsDd}tjd}|j|||j|jd|j|jd|j|jd|j|jd|j|tj|jt	tjdtjj
d}|j|||j|tj|jt	tjj
d|jt	dtjj
dWdQXxtdD]}ytjj
|}Wnt	k
rMqX|j|jt
|j|jt|j|jt|j|jttdfqWtjjd}|j|||j|tj|jtjjd||jtjjd||jt	d	tjjd
WdQXdS(NiR/sTLS Web Server Authentications1.3.6.1.5.5.7.3.1isunknown NID 100000iisunknown object 'serverauth't
serverauth(iR/sTLS Web Server Authentications1.3.6.1.5.5.7.3.1(Rt_ASN1ObjectRtnidt	shortnametlongnametoidRRvRtfromnidRtrangeRRttypeRtfromname(R&texpectedtvaltitobj((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_asn1objectsB
#cCstjd}|jtjjtj|jtjj||jtjjjd|jtjjjd|jtjjjdtjd}|jtjj	tj|jtjj	||jtjj	jd|jtjj	jd|jtjj	jddS(Ns1.3.6.1.5.5.7.3.1iR/s1.3.6.1.5.5.7.3.2it
clientAuth(
RR5RtPurposetSERVER_AUTHRR6R7R9tCLIENT_AUTH(R&R?((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_purpose_enumscCstjtjtj}|j|j|jt}tj|dtj	WdQX|j
t|jdtj
tj}|jt}|j|WdQX|j
t|jddS(Nt	cert_reqss!only stream sockets are supported(R!R"t
SOCK_DGRAMRRRvRRRRdRRRRDR
(R&RtcxR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_unsupported_dtlsscCs|jtj||dS(N(RRtcert_time_to_seconds(R&t
timestringt	timestamp((s)/usr/local/lib/python2.7/test/test_ssl.pytcert_time_okscCs'|jttj|WdQXdS(N(RvRRRL(R&RM((s)/usr/local/lib/python2.7/test/test_ssl.pytcert_time_failss)local time needs to be different from UTCcCs$|jdd|jdddS(NsMay  9 00:00:00 2007 GMTgCAsJan  5 09:34:43 2018 GMTgѓA(RO(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyt"test_cert_time_to_seconds_timezonescCs*d}d}|j|||jtjd|||jd||jd||jd|jd|jd|jd	|jd
|jd|jdd
}|jd||jd||jdd|jdd|jdd|jd|jdddS(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 GMTgWAsDec 31 23:59:60 2008 GMTsJan  1 00:00:00 2009 GMTsJan  5 09:34:59 2018 GMTiFOZsJan  5 09:34:60 2018 GMTiFOZsJan  5 09:34:61 2018 GMTiFOZsJan  5 09:34:62 2018 GMTsDec 31 23:59:59 9999 GMTg MB(RORRRLRP(R&RMttst
newyear_ts((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_cert_time_to_secondss*







tLC_ALLRCcCsVd}|jdkr.|jdn|jdd|j|ddS(NcSstjdd	S(
Ns%biiiiiii(	iiiiiiiii(R0R<(((s)/usr/local/lib/python2.7/test/test_ssl.pytlocal_february_namestfebs>locale-specific month name needs to be different from C localesFeb  9 00:00:00 2007 GMTg`rAs  9 00:00:00 2007 GMT(tlowertskipTestRORP(R&RV((s)/usr/local/lib/python2.7/test/test_ssl.pyt test_cert_time_to_seconds_locales
	(+R)R*RrRzRRRRRRRtcpython_onlyRRRRRRRRRRRRHt
skipUnlessRtCHANNEL_BINDING_TYPESRRRRFR0R3RBRGRKRORPR6RQRTtrun_with_localeRZ(((s)/usr/local/lib/python2.7/test/test_ssl.pyRcsB			(					
	
											$$	'					#tContextTestscBseZedZedZdZedZdZej	e
ddZdZdZ
d	Zd
ZedZdZej	ejd
dZedZedZdZdZdZejejdkdejeddZej	ejdkddZ dZ!dZ"dZ#dZ$dZ%dZ&RS( cCsaxtD]}tj|qW|jttj|jttjd|jttjddS(Nii*(t	PROTOCOLSRRDRvRwR(R&tprotocol((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_constructor-s

cCs7x0tD](}tj|}|j|j|qWdS(N(R`RRDRRa(R&tprotoR((s)/usr/local/lib/python2.7/test/test_ssl.pyt
test_protocol5s
cCsYtjtj}|jd|jd|jtjd|jdWdQXdS(NtALLtDEFAULTsNo cipher can be selecteds^$:,;?*'dorothyx(RRDRtset_ciphersRRE(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_ciphers;s


cCstjtj}tjtjBtjB}|ttBtBt	Bt
BO}|j||j|jtj
O_|j|tj
B|jtr|jtj
@|_|j||jd|_|jd|jtj@n|jtd|_WdQXdS(Ni(RRDRtOP_ALLRlRmRRRRRRtoptionsRnR,RvR(R&Rtdefault((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_optionsBs		cCstjtj}|j|jtjtj|_|j|jtjtj|_|j|jtjtj|_|j|jtj|jt	d|_WdQX|jtd|_WdQXdS(Ni*(RRDRRtverify_modeRdReRfRvRwRR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_verify_modeXss!verify_flags need OpenSSL > 0.9.8cCstjtj}ttdd}|j|jtj|Btj|_|j|jtjtj|_|j|jtjtj|_|j|jtjtjtj	B|_|j|jtjtj	B|j
td|_WdQXdS(NtVERIFY_X509_TRUSTED_FIRSTi(
RRDRtgetattrRtverify_flagstVERIFY_DEFAULTtVERIFY_CRL_CHECK_LEAFtVERIFY_CRL_CHECK_CHAINtVERIFY_X509_STRICTRvRwR(R&Rttf((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_verify_flagsgscCstjtj}|jtdd|jtdt|jt|jdt|jt}|jt	WdQX|j
|jjtj
|jtjd|jtWdQX|jtjd|jtWdQXtjtj}|jtt|jdtdt|jdtdt|jtjd|jtWdQX|jtjd|jtWdQX|jtjd|jdtdtWdQXtjtj}|jtjd|jttWdQX|jtdt|jtdtj|jtdttj|jttt|jtttj|jttttj|jtd|jtdtWdQX|jtj|jtddWdQX|jtd|jtdd	d
WdQXd}d}d
}d}d}d}d}	dddY}
|jtd||jtd||jtd||jtd|
|jtd|
j|jtj|jtd|WdQX|jtd|jtd|WdQX|jtd|jtd|WdQX|jtd|jtd|	WdQX|jtd|	dS(NRsPEM libRskey values mismatchtpasswordsshould be a stringtbadpassscannot be longertaicSstS(N(tKEY_PASSWORD(((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpass_unicodescSs
tjS(N(R{R(((s)/usr/local/lib/python2.7/test/test_ssl.pyt
getpass_bytesscSsttjS(N(RR{R(((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpass_bytearrayscSsdS(NRy((((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpass_badpassscSsddS(NRzii((((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpass_hugescSsdS(Ni	((((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpass_bad_typescSstddS(Ns
getpass error(t	Exception(((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpass_exceptionstGetPassCallablecBseZdZdZRS(cSstS(N(R{(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyt__call__scSstS(N(R{(R&((s)/usr/local/lib/python2.7/test/test_ssl.pytgetpasss(R)R*RR(((s)/usr/local/lib/python2.7/test/test_ssl.pyRs	smust return a strings
getpass error(( RRDRtload_cert_chainRRRvRwR#RRRR$RRREtBADCERTt	EMPTYCERTtONLYCERTtONLYKEYtBYTES_ONLYCERTt
BYTES_ONLYKEYRtCERTFILE_PROTECTEDR{RRtONLYKEY_PROTECTEDRjRRR(R&RRR|R}R~RRRRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_load_cert_chain{sz							
cCsjtjtj}|jt|jdtdd|jt|jdtdd|jdtjd|jt	|j|jt	|jddd|jt
}|jtWdQX|j|j
jtj|jt
|jdWdQX|jtjd|jtWdQX|jtt|jtdt|jt	|jdtdS(NRR
sutf-8usPEM lib(RRDRtload_verify_locationsRRtBYTES_CERTFILERRvRwR#RRRR$RRRERRtBYTES_CAPATHRj(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_load_verify_locationss$

c
Cstt}|jjd}WdQXtj|}tt}|jjd}WdQXtj|}tjtj}|j	|j
dd|jd||j	|j
dd|jd||j	|j
dd|jd||j	|j
ddtjtj}dj||f}|jd||j	|j
ddtjtj}d|d	|d
|dg}|jddj||j	|j
ddtjtj}|jd||jd||j	|j
dd|jd||j	|j
ddtjtj}dj||f}|jd||j	|j
ddtjtj}|j
t|jdt|jtjd
|jddWdQX|jtjd|jddWdQXdS(NRtx509_caitcadataiis
theadtothertagainttailRCs
no start lineubrokensnot enough datatbroken(RWRRRRRtCAFILE_NEURONIORDRRtcert_store_statsRRRvRwtobjectRRE(R&RMt
cacert_pemt
cacert_dertneuronio_pemtneuronio_derRtcombined((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_load_verify_cadatasNc	Csfd}tj}y|j|Wn(tk
rM|jd||fnXtjtj}|jt	t
jdkr|jtn|j
t|j|j
t|jd|j
t}|jtWdQX|j|jjtj|j
tj}|jtWdQXtj9}t
jj||}tjt	||j|WdQXdS(Nu
dhpäräm.pems;filename %r cannot be encoded to the filesystem encoding %rtnt(RtgetfilesystemencodingRtUnicodeEncodeErrorRYRRDRtload_dh_paramstDHFILERR
tBYTES_DHFILERvRwRR#RRRR$RRERRttemp_dirRRtshutiltcopy(R&tfilenametfs_encodingRRtdtfname((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_load_dh_paramss*

cCsxtD]x}tj|}|j|jidd6dd6dd6dd6dd6dd6dd6dd	6dd
6dd6dd6qWdS(
NitnumberRtconnect_goodtconnect_renegotiatetaccepttaccept_goodtaccept_renegotiatethitstmissesttimeoutst
cache_full(R`RRDRt
session_stats(R&RcR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_session_stats6s
cCs tjtj}|jdS(N(RRDRtset_default_verify_paths(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_set_default_verify_pathsHss#ECDH disabled on this OpenSSL buildcCstjtj}|jd|jd|jt|j|jt|jd|jt|jd|jt|jddS(Nt
prime256v1Rt(RRDRtset_ecdh_curveRvRwRR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_set_ecdh_curveNs

cCstjtj}|jt|j|jt|jd|jt|jd|jt|j|d}|jd|j|dS(NiRCcSsdS(N((Rt
servernameR((s)/usr/local/lib/python2.7/test/test_ssl.pyt
dummycallbackbs(RRDRRvRwtset_servername_callbackR(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_sni_callbackXs	
cCsatjtj}|d}|j|tj|}~~tj|j|ddS(NcSsdS(N((RRRtcycle((s)/usr/local/lib/python2.7/test/test_ssl.pyRls(
RRDRRRRtgctcollecttassertIsR(R&RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_sni_callback_refcyclegs

cCstjtj}|j|jidd6dd6dd6|jt|j|jidd6dd6dd6|jt|j|jidd6dd6dd6|jt|j|jidd6dd6dd6dS(NiRtcrltx509ii(	RRDRRRRRRR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_cert_store_statsts


cCstjtj}|j|jg|jt|j|jg|jt|j|jiddddfd	6td
d6tdd
6dd6dd6dd!d#d%fd6dd6gt	t}|j
}WdQXtj|}|j|jt|gdS(&NRsRoot CARshttp://www.cacert.orgRsCA Cert Signing AuthorityRssupport@cacert.orgR{sMar 29 12:29:49 2033 GMTRsMar 30 12:29:49 2003 GMTRt00Rs!https://www.cacert.org/revoke.crlRRiR(RsRoot CA((RsRoot CA(Rshttp://www.cacert.org((Rshttp://www.cacert.org(RsCA Cert Signing Authority((RsCA Cert Signing Authority(Rssupport@cacert.org((Rssupport@cacert.org(s!https://www.cacert.org/revoke.crl(RsRoot CA((RsRoot CA(Rshttp://www.cacert.org((Rshttp://www.cacert.org(RsCA Cert Signing Authority((RsCA Cert Signing Authority(Rssupport@cacert.org((Rssupport@cacert.org(
RRDRRtget_ca_certsRRRR@RWRRRj(R&RRMRtder((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_get_ca_certss.





cCstjtj}|jtjtj}|jtjj|jtjtj}|jtjjtjtj}|jt|jd|jt|jddS(NRE(
RRDRtload_default_certsRDRERFRvRwR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_load_default_certss

Rsnot-Windows specifics!LibreSSL doesn't support env varsc	Csttjtj}tjP}t|d<t|d<|j|j|j	idd6dd6dd6WdQXdS(NRRiRiRR(
RRDRRRRRRRR(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_load_default_certs_envs


sWindows specificcCstjtj}|j|j}tjtj}tjK}t|d<t|d<|j|dcd7<|j	|j|WdQXdS(NRRRi(
RRDRRRRRRRR(R&RtstatsR((s)/usr/local/lib/python2.7/test/test_ssl.pyt#test_load_default_certs_env_windowss



cCs|j|jtj@tjtdkrC|j|jt@tntdkri|j|jt@tntdkr|j|jt@tntdkr|j|jt@tndS(Ni(RRjRRlRRRR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyt_assert_context_optionss


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_contextRRaR
RmRfRtcheck_hostnameRRWt
SIGNING_CARRRRDRFRd(R&RRMR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_create_default_contexts 
	
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(NRHRtpurpose(Rt_create_stdlib_contextRRaR
RmRdtassertFalseRRRRfRjRRDRF(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest__create_stdlib_contexts(

		
cCstjd}|j|j|j|jdt|j|j|j|jdt|j|j|j|jdt|j|j|j|jdS(NRtenable(	Rtimport_fresh_moduleRt_create_default_https_contextRt_https_verify_certificatesRkt_create_unverified_contextRj(R&t	local_ssl((s)/usr/local/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-cR8RCt1tenabledRt(RCRRRt(RRt_https_verify_envvar(R&thttps_is_verifiedthttps_is_not_verifiedt	extra_envtsetting((s)/usr/local/lib/python2.7/test/test_ssl.pyttest__https_verify_envvars


cCstjtj}|j|j|jtt|_WdQXtj|_	|j|jt|_|j
|jtj|_	t|_|j
|j|jttj|_	WdQXt
|_|j|jdS(N(RRDRRRRvRRjRfRmRReRdRk(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_check_hostname6s			('R)R*RQRbRdRhRlRnRHR\R/RwRRRRRRRRgRt	needs_sniRRRRRtskipIfRRFRRRRRRRRR(((s)/usr/local/lib/python2.7/test/test_ssl.pyR_+s8			S		:		

				$					t
SSLErrorTestscBs#eZdZdZdZRS(cCsztjdd}|jt|d|j|jdtjdd}|jt|d|j|jddS(NiRt(RRERRR$tSSLZeroReturnError(R&R'((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_strOscCstjtj}|jtj}|jtWdQX|j|jj	d|j|jj
dt|j}|j|j
d|dS(NtPEMt
NO_START_LINEs"[PEM: NO_START_LINE] no start line(RRDRRvRERRRRtlibrarytreasonRRR(R&RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_lib_reasonYsc
Cstjtj}ttj}|jd|jdtj}|j|j|j	t
t|j|t
dt
m}|jtj
}|jWdQXt|j}|j|jd||j|jjtjWdQXWdQXdS(Ns	127.0.0.1iitdo_handshake_on_connects%The operation did not complete (read)(s	127.0.0.1i(RRDRRR!tbindtlistenRtgetsocknametsetblockingRkRRvtSSLWantReadErrortdo_handshakeRRRRRR$tSSL_ERROR_WANT_READ(R&RRtcR((s)/usr/local/lib/python2.7/test/test_ssl.pyt
test_subclasscs


!(R)R*RRR(((s)/usr/local/lib/python2.7/test/test_ssl.pyRMs	
	
tNetworkedTestscBseZdZdZdZdZdZdZdZdZ	e
jej
dkd	d
ZdZdZd
ZdZedZRS(c
Cs+tjttjtjtjdtj}z-|jtdf|j	i|j
Wd|jXtjtjtjdtj}|j
tjd|jtdf|jtjtjtjdtjdt}z*|jtdf|j|j
Wd|jXWdQXdS(NRHiscertificate verify failedtca_certs(Rttransient_internettREMOTE_HOSTRRR!R"RdRRtgetpeercertRRfRREtREMOTE_ROOT_CERTR(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_connectxs&
		c
Cstjtstjtjtjdtjdt}z6|j	d|j
tdf|j|jWd|j
XWdQXdS(NRHRii(RRR	RRR!R"RfRRt
connect_exRR
R(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_connect_exs		cCsAtjt,tjtjtjdtjdtdt	}z|j
t	|jtdf}|j|dt
jt
jftjg|ggdxutry|jPWqtjk
rtj|gggdqtjk
rtjg|ggdqXqW|j|jWd|jXWdQXdS(NRHRRiig@(RRR	RRR!R"RfRRkRR
RhR$tEINPROGRESStEWOULDBLOCKtselectRjRRtSSLWantWriteErrorRR
R(R&Rtrc((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_non_blocking_connect_exs(		
	
!cCstjttjtjtjdtjdtdt	}z^|j
d|jtdf}|dkr|jdn|j
|tjtjfWd|jXWdQXdS(NRHRRgHz>iis!REMOTE_HOST responded too quickly(RRR	RRR!R"RfRRkRR
RYRhR$tEAGAINRR(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_timeout_connect_exs		
 c
Cstjttjtjtjdtjdt}zG|j	tdf}t
jt
jt
j
t
jf}|j||Wd|jXWdQXdS(NRHRi(RRR	RRR!R"RfRR
R$tECONNREFUSEDtEHOSTUNREACHt	ETIMEDOUTRRhR(R&RRterrors((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_connect_ex_errors		c
Csytjtdtjtj}|jtjtj}|j	tdfz|j
i|jWd|jX|jtjtjdt}|j	tdf|jtj
|_|jtjtj}|jtjd|j	tdf|j|jt|jtjtj}|j	tdfz|j}|j|Wd|jXWdQXdS(NiR	scertificate verify failed(RRR	RRDR
RR!R"RRR
RRfRmRRERRR(R&RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_connect_with_contexts.	


cCs(tjttjtj}tj|_|jdt	|j
tjtj}|j
tdfz|j}|j|Wd|jXtjtj}tj|_|jdt|j
tjtj}|j
tdfz|j}|j|Wd|jXWdQXdS(NR
i(RRR	RRDR
RfRmRRRR!R"RR
RRR(R&RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_connect_capaths&c
Cs[tt}|jjd}WdQXtj|}tjt
tj	tj
}tj|_|j
d|t|jtjtj3}|jtdf|j}|j|WdQXtj	tj
}tj|_|j
d|t|jtjtj3}|jtdf|j}|j|WdQXWdQXdS(NRRi(RWRRRRRRRR	RDR
RfRmRRRR!R"RR
R(R&RMRRRRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_connect_cadatas$$$Rs*Can't use a socket as a file under WindowscCstjttjtjtj}|jtdf|j}|j	}|j
tj|d|j
t
j|jt}tj|dWdQX|j|jjtjWdQXdS(Nii(RRR	RRR!R"RtfilenotmakefileRRRRRRvtOSErrorRRR$tEBADF(R&RtfdRMR'((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_makefile_close0s


c
Cstjttjtj}|jtdf|jttj	|dtj
dt}d}xytry|d7}|jPWqitj
k
rtj|gggqitjk
rtjg|ggqiXqiW|jtjrtjjd|nWdQXdS(NiRHRiis9
Needed %d calls to do_handshake() to establish session.
(RRR	R!R"RRRkRRRdRjRRRRRRRRR(R&Rtcount((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_non_blocking_handshakeDs(
			


	cs?dfd}|tdttjr;|ddndS(Nc	s%tj|tj||f}|sEjd||fnytj||fdt}Wn6tjk
r}tjrtj	j
d|qnXjd|||ftj||fd|}|sjd||fntjrtj	j
d|||fnWdQXdS(NsNo server certificate on %s:%s!Rs%s
s$Got server certificate %s for %s:%s!s&
Verified certificate for %s:%s is
%s
(RRRtget_server_certificateRRRERRRR(thosttportRRR(R&(s)/usr/local/lib/python2.7/test/test_ssl.pyt_test_get_server_certificate[s"
			isipv6.google.com(RR	RRtIPV6_ENABLED(R&R*((R&s)/usr/local/lib/python2.7/test/test_ssl.pyttest_get_server_certificateZs	cCstdf}tj|dttjtjtjdtjdd}|j	|WdQXttjtjtjdtjdd}|j	|WdQX|j
tjdQttjtj2}tj|dtjdd}|j	|WdQXWdQXWdQXdS(	NiiRHtciphersReRfsNo cipher can be selecteds^$:,;?*'dorothyx(R	RRRRRR!R"RdRRRE(R&tremoteRR((s)/usr/local/lib/python2.7/test/test_ssl.pyRhuscCstjttjtj}tj|_|jdt	|j
|jg|jt
j
t
j}|jtdfz|j}|j|Wd|jX|j
t|jdWdQXdS(NR
ii(RRR	RRDR
RfRmRRRRRR!R"RR
RRR(R&RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_get_ca_certs_capathscCstjttjtj}tjtj}tjtj}t	|j
|u}|jtdf|j|j
||j|jj
|||_
|j|j
||j|jj
|WdQXWdQXdS(Ni(RRR	RRDRR
R!R"RRRRtcontextt_sslobj(R&tctx1tctx2RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_context_setgets	(R)R*RRRRRRRRRHRRR
R$R&R,RhR/RR4(((s)/usr/local/lib/python2.7/test/test_ssl.pyRvs								$				(tmake_https_servertThreadedEchoServercBs{eZdejfdYZddddeeedddddZdZ	dZ
ddZdZdZ
RS(	tConnectionHandlercBsDeZdZdZdZdZdZdZdZRS(sA 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|_||_||_|jjdd|_tj	j
|t|_dS(Ni(
tserverRktrunningRtaddrRRtsslconnt	threadingtThreadt__init__Rjtdaemon(R&R8tconnsockR:((s)/usr/local/lib/python2.7/test/test_ssl.pyR>s					cCsy]|jjj|jdt|_|jjj|jj|jj	j|jj
Wn)tjt
jtfk
r}|jtjtjtjfkr|jjjt||jjrtdt|jdnt|_|jtSt|tjr$|jtjkr$n|jjj||jjratdt|jdnt|_|jj|jtSn"X|jjjtj kr:|jj!}t"j#r|jjrt$j%j&dt'j(|dn|jj!t}t"j#r:|jjr:t$j%j&dtt)|dq:n|jj*}t"j#r|jjrt$j%j&dt|dt$j%j&d	t|jjdntSdS(
NRs'
 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 (+R8R0RRRjR;tselected_npn_protocolstappendtselected_npn_protocoltselected_alpn_protocolstselected_alpn_protocolRRER!RR!R$t
ECONNRESETtEPIPEt	ESHUTDOWNtconn_errorsRtchattyRtreprR:RkR9RR'tstopRmRfR
RRRRRRRRtcipher(R&R'Rtcert_binaryRM((s)/usr/local/lib/python2.7/test/test_ssl.pyt	wrap_connsH !	
%	

$*	!cCs*|jr|jjS|jjdSdS(Ni(R;RRR(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRs	
cCs-|jr|jj|S|jj|SdS(N(R;RRR(R&R%((s)/usr/local/lib/python2.7/test/test_ssl.pyRs	cCs*|jr|jjn
|jjdS(N(R;RR(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRs	cCst|_|jjs(|js(dSnx|jryE|j}|j}|skt|_|jn
|dkrt	j
r|jjrtj
jdn|jdS|jjr
|dkr
t	j
r|jjrtj
jdn|jd|jsxdSnk|jjr|jr|dkrt	j
rV|jjrVtj
jdn|jd|jj|_d|_t	j
rx|jjrxtj
jdqxn|d	krt	j
r|jjrtj
jd
n|jjd}|jt|jdd
nft	j
re|jjre|jr6dp9d}tj
jd|||j|fn|j|jWq+tjk
r|jjrtdn|jt|_|jjq+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:
(RjR9R8tstarttls_serverRORtstripRkRRRtconnectionchattyRRRR;tunwrapRRR
RKRRXRRERJRRL(R&tmsgtstrippedtdatatctype((s)/usr/local/lib/python2.7/test/test_ssl.pytrunsb		



	#	

	(	R)R*t__doc__R>RORRRR](((s)/usr/local/lib/python2.7/test/test_ssl.pyR7s	
	:			cCs`|r||_ntj|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(R0RRDRtPROTOCOL_TLSRdRmRRtset_npn_protocolstset_alpn_protocolsRgRJRWRUR!RRt	bind_portR)tflagRktactiveRARDRIR<R=R>RjR?(R&tcertificateRtcertreqstcacertsRJRWRUt
npn_protocolstalpn_protocolsR-R0((s)/usr/local/lib/python2.7/test/test_ssl.pyR>Bs:								cCs$|jtj|jj|S(N(tstartR<tEventRctwait(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyt	__enter__fs
cGs|j|jdS(N(RLR(R&RJ((s)/usr/local/lib/python2.7/test/test_ssl.pyt__exit__ks
cCs||_tjj|dS(N(RcR<R=Rj(R&Rc((s)/usr/local/lib/python2.7/test/test_ssl.pyRjos	cCs	|jjd|jjdt|_|jrB|jjnx|jryu|jj\}}tj	r|j
rtjj
dt|dn|j|||}|j|jWqEtjk
rqEtk
r|jqEXqEW|jjdS(Ng?is server:  new connection from s
(RRRRjRdRcR#RRRRJRRRRKR7RjRR!RtKeyboardInterruptRLR(R&tnewconntconnaddrthandler((s)/usr/local/lib/python2.7/test/test_ssl.pyR]ss&			

cCs
t|_dS(N(RkRd(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRLsN(R)R*R<R=R7RRjRkR>RmRnRjR]RL(((s)/usr/local/lib/python2.7/test/test_ssl.pyR6s	 			tAsyncoreEchoServercBsceZdejfdYZdZdZdZdZd	dZ
dZdZRS(
t
EchoServercBs<eZdejfdYZdZdZdZRS(R7cBs>eZdZdZdZdZdZdZRS(cCsQtj|dtd|dt|_tjj||jt|_|j	dS(NRRR(
RRRjRkR!tasyncoretdispatcher_with_sendR>t_ssl_acceptingt_do_ssl_handshake(R&tconnR((s)/usr/local/lib/python2.7/test/test_ssl.pyR>s	cCsBt|jtjr>x&|jjdkr:|jqWntS(Ni(R'R!Rt	SSLSockettpendingthandle_read_eventRj(R&((s)/usr/local/lib/python2.7/test/test_ssl.pytreadablescCsy|jjWntjtjfk
r1dStjk
rK|jStjk
ran?tjk
r}|j	dt
jkr|jSn
Xt|_
dS(Ni(R!RRRRtSSLEOFErrorthandle_closeRERRJR$tECONNABORTEDRkRw(R&Ra((s)/usr/local/lib/python2.7/test/test_ssl.pyRxs
cCsu|jr|jn[|jd}tjrKtjjdt|n|s^|j	n|j
|jdS(Nis server:  read %s from client
(RwRxRRRRRRRKRRRX(R&R[((s)/usr/local/lib/python2.7/test/test_ssl.pythandle_reads	
	
cCs1|jtjr-tjjd|jndS(Ns server:  closed connection %s
(RRRRRRR!(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRs
	cCsdS(N((R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRs(R)R*R>R}RxRRR(((s)/usr/local/lib/python2.7/test/test_ssl.pyR7s					cCsZ||_tjtjtj}tj|d|_tjj	|||j
ddS(NRCi(RR!R"tSOCK_STREAMRRbR)Rut
dispatcherR>R(R&RR((s)/usr/local/lib/python2.7/test/test_ssl.pyR>s
	cCsI|j\}}tjr2tjjd|n|j||jdS(Ns$ server:  new connection from %s:%s
(RRRRRRR7R(R&tsock_objR:((s)/usr/local/lib/python2.7/test/test_ssl.pyt
handle_accepts	cCsdS(N((R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRs(R)R*RuRvR7R>RR(((s)/usr/local/lib/python2.7/test/test_ssl.pyRts3		cCsPd|_t|_|j||_|jj|_tjj	|t
|_dS(N(RRcRkRdRtR8R)R<R=R>RjR?(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyR>s		cCsd|jj|jfS(Ns<%s %s>(t	__class__R)R8(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyt__str__scCs$|jtj|jj|S(N(RjR<RkRcRl(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRms
cGs|tjrtjjdn|jtjrBtjjdn|jtjrhtjjdntjdt	dS(Ns cleanup: stopping server.
s! cleanup: joining server thread.
s cleanup: successfully joined.
t
ignore_all(
RRRRRRLRRut	close_allRj(R&RJ((s)/usr/local/lib/python2.7/test/test_ssl.pyRns	
	
	cCs||_tjj|dS(N(RcR<R=Rj(R&Rc((s)/usr/local/lib/python2.7/test/test_ssl.pyRjs	cCsQt|_|jr"|jjnx(|jrLytjdWq%q%Xq%WdS(Ni(RjRdRcR#Rutloop(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyR]s		cCst|_|jjdS(N(RkRdR8R(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyRLs	N(
R)R*RuRRtR>RRmRnRRjR]RL(((s)/usr/local/lib/python2.7/test/test_ssl.pyRssE					
sFOO
cCsi}td|d|dt}|t|jtjd|}|jt|jfx|t|t	|gD]}	|rt
jrtj
jd|qn|j|	|j}
|rt
jrtj
jd|
qn|
|jkr~td|
d t|
|d jt|fq~q~W|jd	|rpt
jrptj
jd
qpn|ji|jd6|jd6|jd
6|jd6|jd6|jd6|jWdQX|j|d<|j|d<WdQX|S(sc
        Launch a server, connect a client to it and try various reads
        and writes.
        R0RJRWR	s client:  sending %r...
s client:  read %r
s4bad data <<%r>> (%d) received; expected <<%r>> (%d)
isover
s client:  closing connection.
tcompressionRMtpeercerttclient_alpn_protocoltclient_npn_protocolRNtserver_alpn_protocolstserver_npn_protocols(R6RkRRR!RRR)Rt
memoryviewRRRRRRRXtAssertionErrorRR(RRMR
RERCRRRDRA(tclient_contexttserver_contexttindataRJRWtsni_nameRR8Rtargtoutdata((s)/usr/local/lib/python2.7/test/test_ssl.pytserver_params_testsL	"		
	'
		





c
Cs|dkrtj}nidtj6dtj6dtj6|}tjr|rUdpXd}tjj	|tj
|tj
||fntj|}|j|O_tj|}	|	j|O_|j
tjkr|jdnx7||	fD])}
||
_|
jt|
jtqWyt||	dtdt}WnStjk
rf|rqntjk
r}|s|jtjkrqnkX|std	tj
|tj
|fn9|tk	r||d
krtd||d
fnd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.
        RdReRfs %s->%s %s
s
 {%s->%s} %s
ReRJRWs5Client protocol %s succeeded with server protocol %s!Rs%version mismatch: expected %r, got %rN(RRRdReRfRRRRRtget_protocol_nameRDRjRaR
RgRmRRRRRkRER!RR$RFRRj(
tserver_protocoltclient_protocoltexpect_successt	certsreqstserver_optionstclient_optionstcerttypet	formatstrRRRRR'((s)/usr/local/lib/python2.7/test/test_ssl.pyttry_protocol_combo/sR	


		
	
t
ThreadedTestscBseZedZdZejeddZdZ	dZ
dZeejee
ddd	Zeed
Zeejee
ddd
ZedZeejee
ddedZeejee
dddZdZdZdZdZdZdZdZdZdZdZdZeje
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/d0Z,d1Z-eje
j.d2d3Z/d4Z0d5Z1e2d6Z3e2d7Z4e2d8Z5e2d9Z6d:Z7RS(;cCsftjrtjjdnxCtD];}tj|}|jt	t
||dtdtq#WdS(s2Basic test of an SSL client connecting to a servers
RJRWN(RRRRRR`RRDRRRRj(R&RaR0((s)/usr/local/lib/python2.7/test/test_ssl.pyt	test_echoms	

c	Cstjrtjjdntjtj}tj|_	|j
t|jtt
d|dt}|x|jtjdt}|jt|jf|jt|jWdQX|j|j}|j|d|j}tjr:tjjtj|dtjjdt|dnd|krc|jd	tj|nd|dkr|jdn|jd
||jd|tj|d
}tj|d}|j |||j!WdQXdS(Ns
R0RJRsCan't get peer certificate.sConnection cipher is s.
Rs$No subject field in certificate: %s.RsPython Software FoundationskMissing or invalid 'organizationName' field in certificate subject; should be 'Python Software Foundation'.RR(RsPython Software Foundation((RsPython Software Foundation("RRRRRRRDR
RfRmRRRR6RkRR!RRR)RvRR
RRRMRRRRRhRLRR(R&R0R8RRRMtbeforetafter((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_getpeercertxsB	

	
	!	

s!verify_flags need OpenSSL > 0.9.8cCstjrtjjdntjtj}|jt	tjtj}tj
|_|jt
ttdd}|j|jtj|Btd|dt}|[t|jtj9}|jt|jf|j}|j|dWdQXWdQX|jtjO_td|dt}|[t|jtj9}|jtjd|jt|jfWdQXWdQXWdQX|jttd|dt}|[t|jtj9}|jt|jf|j}|j|dWdQXWdQXdS(Ns
RoiR0RJsCan't get peer certificate.scertificate verify failed( RRRRRRRDRRtSIGNED_CERTFILERfRmRRRpRRqRrR6RjRRR!RRR)R
RRsRREtCRLFILE(R&RR0RvR8RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_crl_checks:	


(
cCstjrtjjdntjtj}|jt	tjtj}tj
|_t|_
|jttd|dt}|at|jtjdd9}|jt|jf|j}|j|dWdQXWdQXtd|dt}|at|jtjdd9}|jtjd|jt|jfWdQXWdQXWdQXtd|dt}|Fttj-}|jtd	|j|WdQXWdQXWdQXdS(
Ns
R0RJR	RsCan't get peer certificate.tinvalids.hostname 'invalid' doesn't match u?'localhost's'check_hostname requires server_hostname(RRRRRRRDRRRRfRmRjRRRR6RRR!RRR)R
RRRR(R&RR0R8RR((s)/usr/local/lib/python2.7/test/test_ssl.pyRs8	
	

(	
cCsWtjjtjjtp!tjd}ttdtj	dt
dtdt}|tt
j
}ttj|d|dtj}y|jt|jfWntjk
r}tjrAtjjd|qAn[t
jk
r3}|jtjkrntjrAtjjd	|qAnX|jd
WdQXWdQXWdQXdS(sConnecting 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.pemRfRgRJRWRRs
SSLError is %r
s
socket.error is %r
s'Use of invalid cert should have failed!N(RRRRR	RR6RRRfRRkRR!RRRRR)RERRRRRRR$RFR(R&RR8RRR'((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_wrong_certs,!						cstjtjtjtjtfd}fd}tjd|}|jz|Wd|jXdS(s|A brutal shutdown of an SSL server should raise an OSError
            in the client when attempting handshake.
            csKjdjj\}}|jjjdS(Ni(RR#RR(tnewsockR:(t
listener_gonetlistener_readyR(s)/usr/local/lib/python2.7/test/test_ssl.pytlistener	s



c	s}jttj[}|jtfjytj|}Wntjk
renXjdWdQXdS(Ns2connecting to closed SSL socket should have failed(	RlRR!RRRRRR(Rtssl_sock(RRR)R&(s)/usr/local/lib/python2.7/test/test_ssl.pyt	connector&	s

ttargetN(	R<RkR!RRbRR=RjR(R&RRR((RRR)RR&s)/usr/local/lib/python2.7/test/test_ssl.pyttest_rude_shutdown	s
RAs)OpenSSL is compiled without SSLv2 supportcCstjrtjjdnttjtjtttjtjttj	ttjtjttj
ttjtjtttjtj
tttjtjttrttjtjtdtjnttjtjtdtjttjtjtdtjdS(s9Connecting to an SSLv2 server with various client optionss
RN(RRRRRRRRARjReRfR
RktPROTOCOL_SSLv3RR.RlRmRn(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_protocol_sslv29	s		

cCs!tjrtjjdnttdryttjtj	t
Wqtjk
r}tjrtjjdt
|qqXnttdrttjtjtnttjtjt
ttjtjdttdr	ttjtjttjnttjtjt
tjttjtjdtjttdrottjtjttjnttjtjt
tjttjtjdtjttdrttjtjtdtjnttjtjt
dtjtjBttjtjtdtjdS(s:Connecting to an SSLv23 server with various client optionss
RAs; SSL2 client to SSL23 server test unexpectedly failed:
 %s
RRTRN(RRRRRRNRRR
RARjR!RRRRkRReRfRmRlRn(R&R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_protocol_sslv23P	s:			
Rs)OpenSSL is compiled without SSLv3 supportcCstjrtjjdnttjtjdttjtjdtjttjtjdtj	t
tdrttjtjtnttjtj
tdtjttjtjttrttjtj
tdtjndS(s9Connecting to an SSLv3 server with various client optionss
tSSLv3RARN(RRRRRRRRReRfRNRARkR
RmRR.Rl(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_protocol_sslv3y	s	
	cCstjrtjjdnttjtjdttjtjdtjttjtjdtj	t
tdrttjtjtnt
tdrttjtj
tnttjtjtdtjdS(s8Connecting to a TLSv1 server with various client optionss
RTRARRN(RRRRRRRRReRfRNRARkRR
Rn(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_protocol_tlsv1	s	tPROTOCOL_TLSv1_1sTLS version 1.1 not supported.cCstjrtjjdnttjtjdttdrZttjtj	t
nttdrttjtjt
nttjtjt
dtj
ttjtjdttjtjt
ttjtjt
dS(snConnecting to a TLSv1.1 server with various client options.
               Testing against older TLS versions.s
sTLSv1.1RARRN(RRRRRRRRRNRARkRR
RpR(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_protocol_tlsv1_1	s	
tPROTOCOL_TLSv1_2sTLS version 1.2 not supported.c	Cs3tjrtjjdnttjtjddtjtj	Bdtjtj	Bt
tdrzttjtjtnt
tdrttjtj
tnttjtjtdtjttjtjdttjtjtttjtjtttjtjtttjtjtdS(snConnecting to a TLSv1.2 server with various client options.
               Testing against older TLS versions.s
sTLSv1.2RRRARN(RRRRRRRRRmRlRNRARkRR
RqRR(R&((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_protocol_tlsv1_2	s 	
c	
Cs8d}ttd	tjd
tdtdt}t}|tj}|jd
|jt	|j
ftjrt
jjdnxJ|D]B}tjrt
jjd|n|r|j||j}n|j||jd}|jj}|dkr^|jdr^tjr=t
jjd|ntj|d	tj}t}q|dkr|jdrtjrt
jjd|n|j}t}qtjrt
jjd|qqWtjrt
jjdn|r|jdn
|jd|r$|jn
|jWdQXdS(s6Switching from clear text to encrypted and back again.smsg 1sMSG 2RQsMSG 3smsg 4RRsmsg 5smsg 6RRURJRWis
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 2RQsMSG 3smsg 4RRsmsg 5smsg 6(R6RRRRjRkR!RRRR)RRRRRRRRRVRXRRRXR(	R&tmsgsR8twrappedRRRyRRY((s)/usr/local/lib/python2.7/test/test_ssl.pyt
test_starttls	s`			
	
		

									

cCs9t|dt}tjr.tjjdnttd}|j}WdQXd}d|j	t
jjtdf}t
jdt}tj|d	|}zu|jjd
}|rt|dkr|jt|}tjrtjjdt||fqnWd|jX|j||dS(
s:Using a SocketServer to create and manage SSL connections.Rs
trbNRCshttps://localhost:%d/%siRR0scontent-lengthis/ client: read %d bytes from remote server '%s'
(R5RRRRRRRWRR)RRtsplitRRturllib2turlopentinfot	getheaderRRRR(R&R8RMRRturlR0tdlen((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_socketserver
s(	 		cCs^tjrtjjdnd}tt}|$tjt	j	}|j
d|jftjrtjjd|n|j||j}tjrtjjd|n||j
kr|jd|d t||d j
t|fn|jdtjr.tjjd	n|jtjrTtjjd
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(RRRRRRsRRRR!RR)RRXRRR(R&RR8RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_asyncore_server
s2			
	!
	
	cs=tjrtjjdnttdtjdtj	dtdt
dt}|tjt
j
dtdtd	td
tjdtj	jt|jffd}fd}d
jt
gfdjtdgfdjt
gfg}djt
gfdjtdgfd|t
gfd|tgfg}d}x|D]\}}}	}
||jd}yw|||
j}||jkr|jdjd|d|d dt|d|d dt|nWqWtk
ra}
|	r'|jdjd|nt|
j|sb|jdjd|d |
qbqWXqWWx|D]\}}}	}
||jd}ywj|||
}||jkr|jd!jd|d|d dt|d|d dt|nWqmtk
r}
|	r=|jd"jd|nt|
j|st|jdjd|d |
njqmXqmWd#}j|tt|}|j jd$|t||j |||j!t"j#jd%|j!tjd$|j!tjd$j$Wd&QXd&S('s Test recv(), send() and friends.s
RfRRgRJRWRRRRHcs'tdd}j|}|| S(Nsid(RR(tbR%(R(s)/usr/local/lib/python2.7/test/test_ssl.pyt
_recv_intoO
scs-tdd}j|\}}|| S(Nsid(RR(RR%R:(R(s)/usr/local/lib/python2.7/test/test_ssl.pyt_recvfrom_intoT
sRRssome.addresstsendallRRRRuPREFIX_RspWhile sending with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d})
R
RitnoutRtnins>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[isover
N(%RRRRRR6RRRdRRjRkRR!RRR)RRRRRRRRXRRRRRRRRRvRRR(R&R8RRtsend_methodstrecv_methodstdata_prefixt	meth_namet	send_methRRJRRR't	recv_methR[tbuffer((Rs)/usr/local/lib/python2.7/test/test_ssl.pyttest_recv_send;
s						
	!	
	
	!	
	
"
cCstt}|j|j|jddtjt|j	f}|j|j
tj|dt
}|j|j
|jd|j|jdd|j|jdd|j|jd|jt
|j|jdd|j|jtddS(Ntsuppress_ragged_eofsR[iRC(R6RRmRRnRR!tcreate_connectionRR)RRRRkRRRRRRR(R&R8R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_recv_zero
s


cs\tjtjd}tj}tjtfd}tjd|}|jj	zzRtjtj}|j
d|j||f|jt
jdt
j|Wd|jXzTtjtj}t
j|}|j
d|jt
jd|j||fWd|jXWdt|jjXdS(Ns	127.0.0.1csjdjg}xTsstjgggd\}}}|kr |jjdq q Wx|D]}|jq{WdS(Nig?i(RR#RRBRR(tconnsRStwR'R(tfinishR8tstarted(s)/usr/local/lib/python2.7/test/test_ssl.pytserve
s

	$
Rg?s	timed out(R!R"RRbR<RkRkR=RjRlRRRRRERRRjR(R&R(R)RRR((RR8Rs)/usr/local/lib/python2.7/test/test_ssl.pyttest_handshake_timeout
s6





csvtjtj}tj|_|jt|jttjtj	d}t
j}|jdt
tjdgdgfd}tjd|}|jj|jtj}|j||f|jd|j|j}|j|jdjj|jdtj|jd|dS(Ns	127.0.0.1RcsSjdjj\d<d<djdjddS(Niii(RR#RRR((tevttpeerR.R8(s)/usr/local/lib/python2.7/test/test_ssl.pyRs

RR[i(RRDR
RfRmRRRR!R"RRbRRjR<RkRR=RjRlRRRRRRRRzR(R&R0R(R)RRtclienttclient_addr((RRR.R8s)/usr/local/lib/python2.7/test/test_ssl.pyttest_server_accept
s4

		






c	Csxtjtj}t|jtjE}|jtj}|jWdQX|j	|j
jtjWdQXdS(N(
RRDR
RRR!RvRR
RRR$tENOTCONN(R&R0RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_getpeercert_enotconns
c	Csxtjtj}t|jtjE}|jtj}|jWdQX|j	|j
jtjWdQXdS(N(
RRDR
RRR!RvRRRRR$R(R&R0RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_do_handshake_enotconn%s
cCstjtj}|jttjtj}tj|_t|_|j	tj
O_	|jd|jdtd|Q}|j
tjdd}|jtj|jt|jfWdQXWdQX|jdt|jddS(NtAES128tAES256R0R	Rsno shared cipheri(RRDR
RRRfRmRjRRjRoRgR6RR!RvRERRR)RhRRI(R&RRR8R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_no_shared_ciphers,s
	

	"cCstjtj}ttdtjdt}t|jtjI}|j	|j
d|jt
|jf|j|j
dWdQX|j	|j
dWdQXdS(s
            Basic tests for SSLSocket.version().
            More tests are done in the test_protocol_*() methods.
            RRJRTN(RRDRR6RRkRRR!RRRRRR)R(R&R0R8R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_version_basic@s		s%test requires TLSv1.3 enabled OpenSSLc
Cstjtj}|jt|jtjtjBtjBO_t	d|h}|j
tj}t|>|j
t|jf|j|jddddgWdQXWdQXdS(NR0itTLS_AES_256_GCM_SHA384tTLS_CHACHA20_POLY1305_SHA256tTLS_AES_128_GCM_SHA256(RRDR_RRRjRnRpRqR6RR!RRRR)RhRM(R&R0R8R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_tls1_3Os

s"test requires ECDH-enabled OpenSSLcCstjtj}|jt|jtjO_tjdkrP|jdnt	d|[}t
|jtj7}|j
t|jf|jd|jdWdQXWdQXdS(Niis
ECCdraft:ECDHR0tECDH(iii(RRDR
RRRjRoR-RgR6RRR!RRR)RhRM(R&R0R8R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_default_ecdh_curvebs
s
tls-uniques*'tls-unique' channel binding not availablecCsItjrtjjdnttdtjdtj	dtdt
dt}|tjt
j
dtdtd	td
tjdtj	}|jt|jf|jd}tjrtjjdj|n|j||jt|d
|jd|jj}|j|t|jd|jtjt
j
dtdtd	td
tjdtj	}|jt|jf|jd}tjrtjjdj|n|j|||j||jt|d
|jd|jj}|j|t|jd|jWdQXdS(s Test tls-unique channel binding.s
RfRRgRJRWRRRRHs
tls-uniques! got channel binding data: {0!r}
isCB tls-unique
sus-asciis) got another channel binding data: {0!r}
N(RRRRRR6RRRdRRjRkRR!RRR)R
RtassertIsNotNoneRRRRVRKRRtassertNotEqual(R&R8Rtcb_datatpeer_data_reprtnew_cb_data((s)/usr/local/lib/python2.7/test/test_ssl.pyRvs\							


	
		


	cCstjtj}|jtt||dtdt}tjrct	j
jdj|dn|j
|ddddhdS(NRJRWs got compression: {!r}
RtZLIBtRLE(RRDRRRRRjRRRRRRRhR(R&R0R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_compressions
	 Rs*ssl.OP_NO_COMPRESSION needed for this testcCsdtjtj}|jt|jtjO_t||dtdt}|j	|dddS(NRJRWR(RRDRRRRjRRRjRR(R&R0R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_compression_disableds
cCstjtj}|jt|jt|jdt||dt	dt	}|dd}|j
d}d|krd|krd	|kr|jd
|dndS(NtkEDHRJRWRMit-tADHtEDHtDHEsNon-DH cipher: (RRDRRRRRRgRRjRR(R&R0RRMtparts((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_dh_paramss


$cCsRtjtj}|jtt||dtdt}|j|dddS(NRJRWR(	RRDRRRRRjRR(R&R0R((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_selected_alpn_protocols

sALPN support requiredcCstjtj}|jttjtj}|jt|jddgt||dtdt}|j	|dddS(NRttbarRJRWR(RRDRRRRRaRRjRR(R&RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyt/test_selected_alpn_protocol_if_server_uses_alpns

s!ALPN support needed for this testcCsdddg}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
ft|dr|ddnd}|j|||	|dfqUWdS(NRtRt	milkshakeshttp/3.0shttp/4.0RJRWiiisKfailed trying %s (s) and %s (c).
was expecting %s, but got %%s from the %%sRRRitnothingR8(iiii(RRRDRRRRaRRjREtIS_OPENSSL_1_1R-RRRR(R&tserver_protocolstprotocol_teststclient_protocolsR>RRRR'RYt
client_resultt
server_result((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_alpn_protocolss>






$cCsRtjtj}|jtt||dtdt}|j|dddS(NRJRWR(	RRDRRRRRjRR(R&R0R((s)/usr/local/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
ft
|dr>|ddnd
}
|j	|
|||
dfqUWdS(Nshttp/1.1sspdy/2ttesttabctdefRJRWsKfailed trying %s (s) and %s (c).
was expecting %s, but got %%s from the %%sRRRiRR8(RRDRRRR`RRjRRR(R&R
RRR>RRRRYRR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_npn_protocolss*




$cCsvtjtj}|jttjtj}|jttjtj}tj|_|jt	|||fS(N(
RRDRRRtSIGNED_CERTFILE2RfRmRR(R&Rt
other_contextR((s)/usr/local/lib/python2.7/test/test_ssl.pytsni_contexts5s


cCs+|d}|jd|ff|ddS(NRRR(Rh(R&RR
R((s)/usr/local/lib/python2.7/test/test_ssl.pytcheck_common_name?s
csg|j\}}fd}|j|t||dtdd}|jd|fg|j|dgt||dtdd}|jd|fg|j|dg|jdt||dtdd}|j|d|jgdS(Ncs/j||f|dk	r+|_ndS(N(RBRR0(Rtserver_nametinitial_context(tcallsR(s)/usr/local/lib/python2.7/test/test_ssl.pyt
servername_cbHsRJRtsupermessagetfakehostnameRtnotfunny(RRRRjRRR(R&RRRR((RRs)/usr/local/lib/python2.7/test/test_ssl.pyRCs,
		
	cCs{|j\}}}d}|j||jtj"}t||dtdd}WdQX|j|jj	ddS(NcSstjS(N(RtALERT_DESCRIPTION_ACCESS_DENIED(RRR((s)/usr/local/lib/python2.7/test/test_ssl.pytcb_returning_alertosRJRR tTLSV1_ALERT_ACCESS_DENIED(
RRRvRRERRkRRR(R&RRRR$RR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_sni_callback_alertjs	
cCs|j\}}}d}|j||jtj7}tj"}t||dtdd}WdQXWdQX|j	|j
jd|jd|j
dS(NcSsdddS(Ng?g((RRR((s)/usr/local/lib/python2.7/test/test_ssl.pyt
cb_raising~sRJRR tSSLV3_ALERT_HANDSHAKE_FAILUREtZeroDivisionError(RRRvRRERtcaptured_stderrRRkRRRRhtgetvalue(R&RRRR'RtstderrR((s)/usr/local/lib/python2.7/test/test_ssl.pyttest_sni_callback_raisingys	
cCs|j\}}}d}|j||jtj7}tj"}t||dtdd}WdQXWdQX|j	|j
jd|jd|j
dS(NcSsdS(NRt((RRR((s)/usr/local/lib/python2.7/test/test_ssl.pytcb_wrong_return_typesRJRR tTLSV1_ALERT_INTERNAL_ERRORRw(RRRvRRERR*RRkRRRRhR+(R&RRRR.RR,R((s)/usr/local/lib/python2.7/test/test_ssl.pyt#test_sni_callback_wrong_return_types	
cCstjtj}tj|_|jt|jttd|dt	}|f|j
tj}|jt
|jf|j|jt|jd|jt|jdWdQXdS(NR0RJithello(RRDR
RfRmRRRR6RkRR!RRR)RRvRRR(R&R0R8R((s)/usr/local/lib/python2.7/test/test_ssl.pyt,test_read_write_after_close_raises_valuerrors


(8R)R*RQRRRHR\R/RRRRRNRRRbRRRRRRRRRRRRRRRRtHAS_TLSv1_3RRgRR]RRRRRtHAS_ALPNR	RRtHAS_NPNRRRRRR&R-R0R2(((s)/usr/local/lib/python2.7/test/test_ssl.pyRksn	&*	&	!	)(	:			w		1	'				;				
	*		
	'c
Cstjritjd6tjd6tjd6}xY|jD]9\}}|}|r:|dr:d||f}Pq:q:Wttj}dtj	tj
fGHd|GHdtjGHd	tjGHyd
tj
GHWqtk
rqXnx]tttttttttttttg
D].}tjj|stjd|qqWt t!t"t#g}tj$drw|j%t&nt'rtj(}|r|j%t)qnztj*|Wdt'rtj+|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(,RRRFRGtmac_vert	win32_vertitemsRKRRR-RiRiRptAttributeErrorRRRRRRRRRRRtBADKEYRRRtexistst
TestFailedR_RRcRtis_resource_enabledRBRt
_have_threadstthreading_setupRtrun_unittesttthreading_cleanup(RtplatsR
RLtplatRtteststthread_info((s)/usr/local/lib/python2.7/test/test_ssl.pyt	test_mainsL	


		
		t__main__(kRRHRRRttest.script_helperRRuR!RR0R9RRR$RRRRRRFRXROt
contextlibRt
import_moduleRtsortedt_PROTOCOL_NAMESR`RRRRR-RRRRRRRRRRRRR{RRRRRRRRRR	RRRRR>RRRRRRpRRRRRRtTestCaseRR,R.R/R6R@RQRbR\RiRRcR_RRR<tImportErrorRkRBRjttest.ssl_serversR5R=R6RsRRRRRJR)(((s)/usr/local/lib/python2.7/test/test_ssl.pyt<module>s										i$)/

u.;E0

Zerion Mini Shell 1.0