Q{[J D SSKrSSKrSSKrSSKJr SSKJr SSKJr SSK J r SSK J r SSK J r SSK J r SS K Jr SS K Jr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK!r!SSK"r"SSK#r#SS K$J%r% SSK&r&\ RP"S 5r)SSK*r*SS K)J+r+J,r,J-r-J.r.J/r/ \R`=(a \RBS:Hr1\2"\)Rf5r4\ Rjr5\)RlS:r7\"Rp"S5r90r:SH(ur;r<\="\)\;5r;\="\)RX\<5r<\<\:\;'M* Sr?\?"S5r@\R"\@5rB\?"S5rC\?"S5rD\R"\C5rE\R"\D5rF\?"S5rG\?"S5rHSrI\?"S5rJ\R"\J5rK\?"SS5rL\?"SS5rMSSSSSS S!S".rN\?"S#5rO\?"S$5rP\?"S%5rQS&rRS'S(S)S*S+S,S-SS S!S.. rS\?"S/5rTS0rU\?"S15rVS2rW\?"S35rXS4rY\?"S55rZ\?"SS65r[\?"S75r\\?"S85r]\?"S95r^S&r_S:r`\?"S;5ra\?"S<5rb\?"S=5rc\?"S>5rd\?"S?5re\?"S@5rf\?"SA5rg\?"SB5rh\R"\h5ri\="\)SCS5rj\="\)SDS5rk\="\)SES5rl\="\)SFS5rm\="\)SGS5rnSHro\o"5(aSIrpOSJrpSKrq\#RSL5rsSMrtSNruSOrv\R"\xSP9ry\)RSSSSSQ.SRjr{SSq|Sq}\P4STSU.SVjjr~"SWSX\R5r"SYSZ\R5r"S[S\\R5r"S]S^\R5r"S_S`\R5r"SaSb\R5r\GR "Sc5"SdSe\R55rSSfjrSgrSShKJr "SiSj\R 5r"SkSl\R 5rSSmjrSSnjrSor"SpSq\R5r\GR$"\s"Sr5Ss5"StSu\R55r\"\)GR*Sv5r\GR$"\Sw5r"SxSy\R5rSzr"S{S|\R5r"S}S~\R5rSr\S:Xa\GR<"5 gg!\'a Sr&GNvf=f!\>a GMf=f)N) literal_eval)Thread)support) import_helper) os_helper) socket_helper)threading_helper)warnings_helper)asyncore) nullcontextssl)Purpose TLSVersion_TLSContentType_TLSMessageType _TLSAlertTypewin32)rrPY_SSL_DEFAULT_CIPHERS))PROTOCOL_SSLv3SSLv3)PROTOCOL_TLSv1TLSv1)PROTOCOL_TLSv1_1TLSv1_1c[RR"[RR[5S/UQ76$)Ncertdata)ospathjoindirname__file__names 4/opt/alt/python313/lib64/python3.13/test/test_ssl.py data_filer&Bs) 77<<1: E EEz keycert.pemz ssl_cert.pemz ssl_key.pemzkeycert.passwd.pemzssl_key.passwd.pemsomepasscapathz 4e1295a3.0z 5ed36f99.0)) countryNameXY) localityNamezCastle Anthrax)organizationNamezPython Software Foundation)) commonName localhostzJan 24 04:21:36 2043 GMTzNov 25 04:21:36 2023 GMT(53E14833F7546C29256DD0F034F776C5E983004C))DNSr2rissuernotAfter notBefore serialNumbersubjectsubjectAltNameversionzrevocation.crlz keycert3.pemz cert3.pemr2)z)http://testca.pythontest.net/testca/ocsp/)z0http://testca.pythontest.net/testca/pycacert.cer)z2http://testca.pythontest.net/testca/revocation.crl)r*))r0Python Software Foundation CA))r1z our-ca-serverzOct 28 14:23:16 2037 GMTzAug 29 14:23:16 2018 GMTCB2D80995A69525C) OCSP caIssuerscrlDistributionPointsr6r7r8r9r:r;r<z keycert4.pem fakehostnamezkeycertecc.pemz localhost-ecczleaf-missing-aki.keycert.pemz example.comzleaf-missing-aki.ca.pemz ceff1710.0z allsans.pemz idnsans.pemz nosan.pemzself-signed.pythontest.net nullcert.pem badcert.pemzXXXnonexisting.pem badkey.pemz nokia.pemznullbytecert.pemztalos-2019-0758.pemz ffdh3072.pemOP_NO_COMPRESSIONOP_SINGLE_DH_USEOP_SINGLE_ECDH_USEOP_CIPHER_SERVER_PREFERENCEOP_ENABLE_MIDDLEBOX_COMPATc[SSS9nSUR5;sSSS5 $!,(df  g=f![a gf=f)Nz/etc/os-releasezutf-8)encodingubuntuF)openreadFileNotFoundError)fs r% is_ubunturRsA#g 6!qvvx'7 6 6 s# :) : 7:: AAcUHcn[US5(dMUR[RR::dM@UR S:dMRUR S5 Me g)z@"Lower security level to '1' and allow all ciphers for TLS 1.0/1minimum_versionz@SECLEVEL=1:ALLN)hasattrrTr rrsecurity_level set_ciphers)ctxsctxs r%seclevel_workaroundr[sMC.//##s~~'='==""Q& 12 r'cgN)rYs r%r[r[s r'c[U[5(a[[US5nUcgU[R[R [R 1;agURn[U[S5S5$)ztCheck if a TLS protocol is available and enabled :param protocol: enum ssl._SSLMethod member or name :return: bool NFT PROTOCOL_) isinstancestrgetattrr PROTOCOL_TLSPROTOCOL_TLS_SERVERPROTOCOL_TLS_CLIENTr$has_tls_versionlen)protocolr$s r%has_tls_protocolrjsu (C  3$/   #11   ==D 4K 0 12 33r'cl[U[5(a[RRUn[ [SUR 35(dg[(aU[RR:ag[R[R5n[US5(a8UR[RR:waXR:ag[US5(a8UR[RR:waXR:agg)zoCheck if a TLS/SSL version is enabled :param version: TLS version name or ssl.TLSVersion member :return: bool HAS_FrTmaximum_versionT)rarbr r __members__rcr$IS_OPENSSL_3_0_0TLSv1_2 SSLContextrfrVrTMINIMUM_SUPPORTEDrmMAXIMUM_SUPPORTED)r<rZs r%rgrgs'3..,,W5 3$w||n- . .Gcnn&<&<< ..00 1C C* + +   3>>#C#C C )) )&'' s~~???%%% r'c^U4SjnU$)zDecorator to skip tests when a required TLS version is not available :param version: TLS version name or ssl.TLSVersion member :return: cJ>^[R"T5UU4Sj5nU$)Ncf>[T5(d[R"TS35eT"U0UD6$)Nz is not available.)rgunittestSkipTest)argskwfuncr<s r%wrapper8requires_tls_version..decorator..wrappers7"7++''7)3E(FGGT(R((r') functoolswraps)r{r|r<s` r% decorator'requires_tls_version..decorators%   )  ) r'r^)r<rs` r%requires_tls_versionrs  r'cSR[R"[R"555n[ R (a"[RRX-5 gg)N ) r tracebackformat_exceptionsys exceptionrverbosestdoutwrite)prefix exc_formats r% handle_errorrsB)44S]]_EFJ ,-r'c[R(a4[R"5RS:a[R*$[R *$Nr)timedaylight localtimetm_isdstaltzonetimezoner^r'r% utc_offsetrs5 }})22Q6 } MM>r')category) cert_reqsca_certscipherscertfilekeyfilec URS5(d-[US'[R[R5nO#[R[R 5nUb!U[R :XaSUlXlUbURU5 UcUbURXE5 UbURU5 UR"U40UD6$)N server_sideserver_hostnameF) getSIGNED_CERTFILE_HOSTNAMEr rqrfre CERT_NONEcheck_hostname verify_modeload_verify_locationsload_cert_chainrX wrap_socket)sockrrrrrkwargscontexts r%test_wrap_socketr!s ::m $ $$< !..!8!89..!8!89  %%*G "'%%h/w22G$   t .v ..r'FT server_chainc[(a [b[$U[:Xa[nO-U[:Xa[ nOU[ :Xa[nO [U5e[R[R5nUR[5 [R[R5nURU5 U(aUR[5 [(a [bX4U4qX4U4$)zMCreate context client_context, server_context, hostname = testing_context() )USE_SAME_TEST_CONTEXT _TEST_CONTEXTSIGNED_CERTFILErSIGNED_CERTFILE2SIGNED_CERTFILE2_HOSTNAME NOSANFILENOSAN_HOSTNAME ValueErrorr rqrfr SIGNING_CArer) server_certrhostnameclient_contextserver_contexts r%testing_contextr:s   $ o%+ ( (,  !!%%^^C$;$;;S5S5r Sr!Sr"\R:"\#RHS:HS5S5r%\R:"\#RHS:HS5S 5r&S!r'S"r(S#r)S$r*S%r+\R:"\,"5S&5S'5r-S(r.\R^"S)S*5S+5r0S,r1S-r2S.r3g/)0BasicSocketTestsi\c[R [R [R [R [R [R [R UR[RS5 UR[RS5 UR[RS5 UR[RS5 [R [R [R [R [R" [R$ UR[R&[R(5 g)NT)r r CERT_OPTIONAL CERT_REQUIREDrIrGrHrF assertEqualHAS_SNIHAS_ECDH HAS_TLSv1_2 HAS_TLSv1_3 OP_NO_SSLv2 OP_NO_SSLv3 OP_NO_TLSv1 OP_NO_TLSv1_3 OP_NO_TLSv1_1 OP_NO_TLSv1_2rdPROTOCOL_SSLv23selfs r%test_constantsBasicSocketTests.test_constants^s    ''    d+ t, $/ $/       ))3+>+>?r'c[[5HYnURS5(dMURUS9 [ [U5nUR USSU35 SSS5 M[ g!,(df  Mm=f)NOP_optionrssl.)dirr startswithsubTestrcassertGreaterEqual)rr$values r% test_optionsBasicSocketTests.test_optionsrseHD??5))T*T*''qD-@+*+*s 'A.. A= c[R[R[R[R[R [R /nUHAnURUS9 UR[S5 SUl SSS5 SSS5 MC [R"U[R5 g!,(df  N@=f!,(df  M=f)N)ssl_typezimmutable type) _ssl _SSLContext _SSLSocket MemoryBIO Certificate SSLSessionSSLErrorrassertRaisesRegex TypeErrorrrcheck_disallow_instantiation)r ssl_typesrs r%test_ssl_typesBasicSocketTests.test_ssl_types{s    OO NN    OO MM  "Hx0++I7GH%)HNI10" ,,T43C3CDIH10s$1CC C C C C* cUR[S5 [R"5n[R U5 SSS5 SSS5 g!,(df  N=f!,(df  g=fNzpublic constructor)rrsocketr SSLSocketrss r%test_private_init"BasicSocketTests.test_private_initsH  # #I/C DA a !E D E Ds"A%AA% A" A%% A3c2[RnUR[U5SUR-5 UR[ U5[ UR55 [R U5nURURU5 g)Nz$<_SSLMethod.PROTOCOL_TLS_CLIENT: %r>) r rfrreprrrbrqassertIsrirprotorZs r%test_str_for_enums#BasicSocketTests.test_str_for_enumssj'' e&Lu{{&Z[ US%56nnU# cllE*r'cn[R5n[R(a5[R R SX=(a S=(d S4-5 U(a1[RS5nUR[U5S5 O/UR[R[RS5 UR[[RS5 [RSS5 [RSS5 [R[S 5S5 g) Nz RAND_status is %d (%s) zsufficient randomnesszinsufficient randomnesszthis is a random stringgR@sthis is a random bytes objects!this is a random bytearray object)r RAND_statusrrrrr RAND_bytesrrh assertRaisesrrRAND_add bytearray)rvdatas r% test_randomBasicSocketTests.test_randoms OO  ?? JJ  : !$A*A$: 9 ;; < >>"%D   SY +   cllCNNB ? *cnnb9 .5 5t< YCDdKr'cjUR[RR[5[ 5 UR[RR[ 5[5 [RR[5n[R(a9[RRS[R"U5-S-5 URUSS5 URUSS5 URUSS5 URUSS 5 g) N r;))r4zprojects.developer.nokia.com)r4zprojects.forum.nokia.comr?)zhttp://ocsp.verisign.comr@)z0http://SVRIntl-G3-aia.verisign.com/SVRIntlG3.cerrA)z0http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl)rr r_test_decode_certCERTFILE CERTFILE_INFOrSIGNED_CERTFILE_INFO NOKIACERTrrrrrpprintpformatrps r%test_parse_cert BasicSocketTests.test_parse_certs  HH & &x 0    HH & & 7   HH & &y 1 ?? JJ  TFNN1$55< = +,?  6$AB ;N P 23N Pr'c [RR[5n[R (a9[ RRS[R"U5-S-5 URUSSSSSSSS .5 g) Nr ))r+UK))r1zcody-cazJun 14 18:00:58 2028 GMTzJun 18 18:00:58 2018 GMT02)r))r1#codenomicon-vm-2.test.lal.cisco.com))r4rrr5) r rr TALOS_INVALID_CRLDPrrrrrrrrrs r%test_parse_cert_CVE_2019_5010.BasicSocketTests.test_parse_cert_CVE_2019_5010sw HH & &': ; ?? JJ  TFNN1$55< =  L67 $H#E  r'c[RR[5n[R (a9[ RRS[R"U5-S-5 SnURUSU5 URUSU5 [RS:aSnOSnURUSU5 g) Nr )))r+US))stateOrProvinceNameOregon))r. Beavertonr/))organizationalUnitNamezPython Core Development))r1znull.python.orgexample.org)) emailAddresszpython-dev@python.orgr:r6)r )r4zaltnull.python.orgexample.comemailz null@python.orguser@example.orgURIz)http://null.python.orghttp://example.org IP Addressz 192.0.2.1)r-z2001:DB8:0:0:0:0:0:1)r'r(r*r,)r-z r;) r rr  NULLBYTECERTrrrrrrrr_OPENSSL_API_VERSION)rrr:sans r%test_parse_cert_CVE_2013_4238.BasicSocketTests.test_parse_cert_CVE_2013_4238s HH & &| 4 ?? JJ  TFNN1$55< =A 9w/ 8g.  # #y 0;C0C +,c2r'ct[RR[5nUR USS5 g)Nr;) )r4allsans othernamez r5)r)zuser@example.org)r4zwww.example.org)DirName)r*r-r/))r1zdirname example)r+zhttps://www.python.org/)r- 127.0.0.1)r-z0:0:0:0:0:0:0:1)z Registered IDz 1.2.3.4.5)r rr  ALLSANFILErrs r%test_parse_all_sans$BasicSocketTests.test_parse_all_sanss1 HH & &z 2 +,  r'c [[S5nUR5nSSS5 [R W5n[R U5n[R U5nUR X55 UR[RS-5(dURSU-5 URS[R-S-5(dURSU-5 gg!,(df  N=f)Nrr z-DER-to-PEM didn't include correct header: %r z-DER-to-PEM didn't include correct footer: %r ) rN CAFILE_CACERTrOr PEM_cert_to_DER_certDER_cert_to_PEM_certrr PEM_HEADERfailendswith PEM_FOOTER)rrQpemd1p2d2s r%test_DER_to_PEM BasicSocketTests.test_DER_to_PEMs - %&&(C&  % %c *  % %b )  % %b )  }}S^^d233 IIG"L M{{4#..04788 IIG"L M9& %s C55 DcR[Rn[Rn[RnUR U[ 5 UR U[ 5 UR U[5 URUS5 URUS5 UupEpgnURUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 S US 3n US :aS US S US S US 3n OS US S US S US 3n URURXS45X2[U545 g)Nii@rUr?z LibreSSL drzOpenSSL .zAWS-LC)r OPENSSL_VERSION_NUMBEROPENSSL_VERSION_INFOOPENSSL_VERSIONassertIsInstanceinttuplerbr assertLessassertLessEqual assertTruerhex) rntrmajorminorfixpatchstatus libressl_ver openssl_vers r%test_openssl_version%BasicSocketTests.test_openssl_versions  & &  $ $    a% a' a% :. :&+,(c& q) q! q) s# Q' S! q) UB' * VR("5), A:$U1IQuQiqq BK$U1IQuQiqQ@K  LL+X> ? 3q6N r'c*[R"[R5n[U5n[R"U5n[ R "S[45 ASSS5 URU"5S5 g!,(df  N&=f)N) rAF_INETrweakrefrefr check_warningsResourceWarningr)rrsswrs r% test_refcycleBasicSocketTests.test_refcycle?se MM&.. ) a  [[_  + +R,A BC t$C Bs "B Bc l[R"[R5n[U5nUR[UR S5 UR[UR [S55 UR[URS5 UR[UR[S5S5 UR[URS5 UR[URSS5 UR[UR5 UR[URS/SSS5 UR[URS5 UR[UR [S5/5 SSS5 g!,(df  g=f)NrUx)z0.0.0.0rr^rd)rrirrOSErrorrecv recv_intorrecvfrom recvfrom_intosendsendtoNotImplementedErrordupsendmsgrecvmsg recvmsg_intorrrns r%test_wrapped_unconnected)BasicSocketTests.test_wrapped_unconnectedJs- MM&.. ) a B   grww 2   gr||Yt_ E   gr{{A 6   gr'7'74! L   grww 5   gryy$ G   1266 :   12::#fb!^ =   12::s C   12??(~. 0! s E,F%% F3c SHkn[R"[R5nURU5 [U5nUR XR 55 SSS5 Mm g!,(df  M=f)N)Ng@)rri settimeoutrr gettimeout)rtimeoutrrns r% test_timeoutBasicSocketTests.test_timeout\s[(G fnn-A LL !!!$  --/:%$(%$s  A33 B cp[R[R[R[R/n[R [R [R[R/n[RR[RR[RR/nUHnURUS9 [R[R5nUR!["5nU=R$U-slSSS5 UR'S[)WR*55 SSS5 M UHn[-U5(dMURUS9 UR!["5n[RU5 SSS5 UR'SUR.S3[)WR*55 SSS5 M UHn[1U5(dMURUS9 [R[R5nUR!["5nXlSSS5 UR4R6<SUR.<3n UR'SU S3[)WR*55 SSS5 M g!,(df  GN=f!,(df  GM =f!,(df  GN>=f!,(df  GM=f!,(df  N=f!,(df  GM4=f)Nrz4ssl.OP_NO_SSL*/ssl.OP_NO_TLS* options are deprecated)rirz is deprecated)r<rQ)r rrrrrrPROTOCOL_TLSv1_2rdrrrrrrqrf assertWarnsDeprecationWarningoptionsrrbwarningrjr$rgrT __class____name__) rr protocolsversionsrrZcmrir< version_texts r%test_openssl111_deprecations-BasicSocketTests.test_openssl111_deprecationsesN OO                      NN NN NN " "  FV,nnS%<%<=%%&89RKK6)K:  J O -,"H#H--x0%%&89RNN8,:  8==/8 O10" G"7++g.nnS%<%<=%%&89R*1':*1*;*;*D*DgllS   <.7 O /. %:9-,:910:9/.sm9KK --K L"K/8;L%9L%L%AL% K K K, / K> 9L L  L" L%% L5 c[RR[RR[5=(d [R SU5n[ R "5nURUR5 UR[R5 [UUS9 SSS5 g!,(df  g=f)z;Check that trying to use the given client certificate failsrrN) rrr r!r"curdirr addCleanupcloserr rrrrrs r% bad_cert_testBasicSocketTests.bad_cert_testsw77<< 9 FRYY *H6}}  #   s|| , T&. 0- , ,s ) B== C c&URS5 g)z Wrapping with an empty cert filerCNrrs r%test_empty_cert BasicSocketTests.test_empty_certs >*r'c&URS5 g)z:Wrapping with a badly formatted certificate (syntax error)rDNrrs r%test_malformed_cert$BasicSocketTests.test_malformed_certs =)r'c&URS5 g)z2Wrapping with a badly formatted key (syntax error)rENrrs r%test_malformed_key#BasicSocketTests.test_malformed_keys <(r'c [R[R5n[R"5nUR [ UR USSS9 SSS5 g!,(df  g=f)NTz some.hostnamer)r rqrerrrr)rrZrs r%test_server_side!BasicSocketTests.test_server_sidesMnnS445 ]]_   j#//4.=  ?__s "A$$ A2c[R"S5n[R"[R5nURUR 55 [ USS9nUR [5 URS5 SSS5 SSS5 UR5 g!,(df  N'=f!,(df  N0=f)Nr8rFdo_handshake_on_connectz unknown-type) r create_serverriconnect getsocknamerrrget_channel_bindingr)rrcrns r%test_unknown_channel_binding-BasicSocketTests.test_unknown_channel_bindings  !1 2 MM&.. ) !--/" a ?2"":.&&~6/@  /.@ ?s$$B>:B- B>- B; 7B>> C  tls-unique*'tls-unique' channel binding not availablec[R"[R5n[U5nURUR S55 SSS5 [R"[R5n[US[ S9nURUR S55 SSS5 g!,(df  Nk=f!,(df  g=f)NrT)rr)rrir assertIsNonerr rs r%test_tls_unique_channel_binding0BasicSocketTests.test_tls_unique_channel_bindings MM&.. ) a B   b44\B C! MM&.. ) aTH E   b44\B CF E ! F Es!B6 !C6 C Ccd[[R"[R55n[U5nUR [ 5nSn[ R"5 SSS5 URU[WRRS55 g!,(df  NA=fr) rrrirrrmr gc_collectassertInrbrry)rrnr=rs r%test_dealloc_warn"BasicSocketTests.test_dealloc_warnss fmmFNN; < H   o ."B    / aRZZ__Q/01/ .s B!! B/c[R5nUR[U5S5 UR U[R 5 [ R"5n[US'[US'[R5nURUR[5 URUR[5 SSS5 g!,(df  g=f)N SSL_CERT_DIR SSL_CERT_FILE) r get_default_verify_pathsrrhrUDefaultVerifyPathsrEnvironmentVarGuardCAPATHr cafiler))rpathsenvs r%test_get_default_verify_paths.BasicSocketTests.test_get_default_verify_pathss,,. UQ' eS%;%;<  * * ,"(C #+C 002E   U\\8 4   U\\6 2 - , ,s %A'C C#rWindows specificc8UR[RS55 UR[RS55 UR[[R5 UR[ [RS5 [ 5nSHn[RU5nURU[5 UHnURU[5 UR[U5S5 UupVnURU[5 URUSS15 URU[[ [45 [!U[[ 45(dMUR#U5 M M SnURX5 g) NCAROOTrh)rrrx509_asn pkcs_7_asn1.3.6.1.5.5.7.3.1)rZr enum_certificatesrr WindowsErrorsetrUlistrWrrhbytesr frozensetboolraupdate) r trust_oids storenamestoreelementcertenctrust serverAuths r%test_enum_certificates'BasicSocketTests.test_enum_certificatess4 --d34 --f56 )S%:%:; ,(=(=rBU 'I)))4E  ! !% . %%gu5  Wq1#* 5%%dE2 cJ #=>%%eid-CDei%566%%e,!()  j-r'cUR[RS55 UR[[R5 UR[ [RS5 [RS5nUR U[5 UHdnUR U[5 UR[U5S5 UR US[5 URUSSS15 Mf g)NrrhrrUrr) rZr enum_crlsrrrrUrrWrrhrr)rcrlsrs r%test_enum_crlsBasicSocketTests.test_enum_crlss  d+, )S]]3 , r:}}T" dD)G  ! !'5 1   S\1 -  ! !'!*e 4 MM'!*z<&@ A r'cSn[RS5nURX!5 URURS5 URURS5 URUR S5 URUR S5 URU[R5 UR[[RS5 [RRS5nURX!5 URU[R5 UR[[RRS5 UR[S5 [RRS5 SSS5 [S 5Hn[RRU5nURUR[5 URUR[5 URUR [5 URUR [[S545 M [RR!S5nURX!5 URU[R5 UR[RR!S5U5 UR[RR!S5U5 UR[S 5 [RR!S 5 SSS5 g!,(df  GN=f![a GMf=f!,(df  g=f) N)rTLS Web Server Authenticationrrrrrzunknown NID 100000izunknown object 'serverauth' serverauth)r _ASN1Objectrnid shortnamelongnameoidrUrrfromnidrrangerVrbtypefromname)rexpectedvaliobjs r%test_asn1object BasicSocketTests.test_asn1object sp)oo12 ' #&  5 'FG "56 c3??3 *coo|Doo%%c* ' c3??3 *coo&=&=rB  # #J0D E OO # #F +FtA Boo--a0%%cggs3%%cmmS9%%cllC8%%cggT$Z/@Aoo&&'FG ' c3??3 11,?J 112EF! #  # #J0M N OO $ $\ 2O N'F E   O Ns*3 M*M M) M M&%M&) M7cP[RS5nUR[RR[R5 UR [RRU5 UR [RRR S5 UR [RRRS5 UR [RRRS5 [RS5nUR[RR[R5 UR [RRU5 UR [RRR S5 UR [RRRS5 UR [RRRS5 g)Nrrrz1.3.6.1.5.5.7.3.2 clientAuth) r rrUr SERVER_AUTHrrrr CLIENT_AUTH)rrs r%test_purpose_enum"BasicSocketTests.test_purpose_enum0sXoo12 ckk55sG 00#6 0044c: 00::LI 00441 3oo12 ckk55sG 00#6 0044c: 00::LI 00441 3r'c[R"[R[R5nURUR5 UR [ 5n[U[RS9 SSS5 UR[WR5S5 [R[R5nUR [ 5nURU5 SSS5 UR[UR5S5 g!,(df  N=f!,(df  NE=f)Nrz!only stream sockets are supported)rri SOCK_DGRAMrrrr|rr rrrbrrqrfr)rrcxrZs r%test_unsupported_dtls&BasicSocketTests.test_unsupported_dtlsAs MM&..&*;*; <    2 3r Q#-- 84 R\\*,OPnnS445   2 3r OOA 4 R\\*,OP 4 34 3s$D""D3" D03 EcNUR[RU5U5 gr])rr cert_time_to_seconds)r timestring timestamps r% cert_time_okBasicSocketTests.cert_time_okLs 11*=yIr'cUR[5 [RU5 SSS5 g!,(df  g=fr])rrr r)rrs r%cert_time_failBasicSocketTests.cert_time_failOs*   z *  $ $Z 0+ * *s 5 Az)local time needs to be different from UTCcLURSS5 URSS5 g)NzMay 9 00:00:00 2007 GMTgCAJan 5 09:34:43 2018 GMTѓA)rrs r%"test_cert_time_to_seconds_timezone3BasicSocketTests.test_cert_time_to_seconds_timezoneSs& 4lC 4lCr'cSnSnURX5 UR[RUS9U5 URSU5 URSU5 UR S5 UR S5 UR S5 UR S 5 UR S 5 UR S 5 UR S 5 S nURSU5 URSU5 URSS5 URSS5 URSS5 UR S5 URSS5 g)Nrr) cert_timezJan 05 09:34:43 2018 GMTzJaN 5 09:34:43 2018 GmTzJan 5 09:34 2018 GMTzJan 5 09:34:43 2018zJan 5 09:34:43 2018 UTCzJan 35 09:34:43 2018 GMTzJon 5 09:34:43 2018 GMTzJan 5 24:00:00 2018 GMTzJan 5 09:60:43 2018 GMTgWAzDec 31 23:59:60 2008 GMTzJan 1 00:00:00 2009 GMTzJan 5 09:34:59 2018 GMTiFOZzJan 5 09:34:60 2018 GMTiFOZzJan 5 09:34:61 2018 GMTiFOZzJan 5 09:34:62 2018 GMTzDec 31 23:59:59 9999 GMTg MB)rrr rr)rrts newyear_tss r%test_cert_time_to_seconds*BasicSocketTests.test_cert_time_to_seconds[s?/  *) 11J1GL 4b9 4b9 34 23 67 67 67 67 67!  4jA 4jA 4jA 4jA 4jA 67 4nEr'LC_ALLrhcSnU"5R5S:XaURS5 URSS5 URU"5S-5 g)Nc0[R"SS5$)Nz%b) rUrrrLrrrr)rstrftimer^r'r%local_february_nameNBasicSocketTests.test_cert_time_to_seconds_locale..local_february_names=='BC Cr'febz>locale-specific month name needs to be different from C localezFeb 9 00:00:00 2007 GMTg`rAz 9 00:00:00 2007 GMT)lowerskipTestrr)rr,s r% test_cert_time_to_seconds_locale1BasicSocketTests.test_cert_time_to_seconds_locale~sZ D  & & (E 1 MM4 5 4lC /14KKLr'c$[R"[R5nURUR5 [R "U5n[ [R"[R5[RS9nURUR5 UR[U45n[R[R[R[R4nUR!XE5 g)Nr)rrirrr bind_portrr r connect_exHOSTerrno ECONNREFUSED EHOSTUNREACH ETIMEDOUT EWOULDBLOCKr)rserverportrrcerrorss r%test_connect_ex_error&BasicSocketTests.test_connect_ex_errorsv~~.  %&&v. V]]6>>:&)&7&7 9  \\4, '    2 2EOO     b!r'c[5upn[US9nU UR[R"5US9nUR [ UR 45 URURS5S5 URURS5S5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)Nrrrr') rThreadedEchoServerrrrr6r=rrvrzrrrrr<rs r%test_read_write_zero%BasicSocketTests.test_read_write_zeros3B3D0#N; ++FMMO[R[R5nURS5 [ SUR 555n1SknUR U5nUR[U5SS[U5S[U535 g)NAESGCMc3*# UH oSv M g7f)r$Nr^).0rPs r% 0ContextTests.test_get_ciphers..s9'8!fI'8s>AES128-GCM-SHA256AES256-GCM-SHA384DHE-RSA-AES128-GCM-SHA256DHE-RSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384rz got: z expected: ) r rqrfrXrrf intersectionrrhsorted)rrZnamesrrys r%test_get_ciphersContextTests.test_get_cipherssnnS445 !9s'899  ))(3    qGF5M?,vhGWFX"Y r'c[R[R5n[R[R-[R -nU[ [-[-[-[--nURX!R5 [R"5 U=R[R-sl SSS5 URU[R-UR5 [R"5 UR[R)-Ul SSS5 URX!R5 SUl URSUR[R )-5 UR!["5 SUl SSS5 UR!["5 SS-Ul SSS5 UR![$5 SUl SSS5 g!,(df  GN@=f!,(df  N=f!,(df  N=f!,(df  Nh=f!,(df  g=f)Nrrrrtabc)r rqrfOP_ALLrrrFrIrGrHrJrrr rlrr OverflowErrorr)rrZdefaults r%rContextTests.test_optionssnnS445::/#//A%(CC$%'9:./ 0 ++. + + - KK3?? *K. 3??2CKK@ + + -;;#//)99CK. ++.  CKK3??*::;  } -CK.   } -s(CK.   y )CK* )'. - . -. - - - ) )s<+$H$H*H+ H<7I  H H(+ H9< I  Ic[R"5 [R[R5nSSS5 UR WR [R5 [RUlUR UR [R5 [RUlUR UR [R5 [RUlUR UR [R5 UR[5 SUlSSS5 UR[5 SUlSSS5 [R[R5nUR UR [R5 URUR5 [R[R 5nUR UR [R5 UR#UR5 g!,(df  GN=f!,(df  GN=f!,(df  GN=fNrT)r rlr rqrdrrrrrrrrre assertFalserrfrZr]s r%test_verify_mode_protocol&ContextTests.test_verify_mode_protocols  + + -..!1!12C. #--8++ #*;*;<++ #*;*;<-- #--8   y )"CO*   z * CO+nnS445 #--8 ++,nnS445 #*;*;< **++. -* ) * *s#$I>I#I( I I%( I7c[R[R5nURUR5 [R (agSUlURUR5 SUlUR UR5 SUlURUR5 gUR[5 SUlSSS5 g!,(df  g=fNTF) r rqrfrZhostname_checks_common_nameHAS_NEVER_CHECK_COMMON_NAMErrAttributeErrorr]s r% test_hostname_checks_common_name-ContextTests.test_hostname_checks_common_namesnnS445 778  * *.2C + OOC;; <.3C +   S<< =.2C + OOC;; <"">226/322s C!! C/c [R[R5n[RR[RR [RR 1n[RR[RR1nURURU5 URURU5 [RRUl [RR Ul URUR[RR5 URUR[RR 5 [RRUl [RR Ul URUR[RR5 URUR[RR 5 [RRUl URUR[RR5 [RRUl URUR[RR [RR[RR15 [RRUl URUR[RR [RR15 UR[ 5 SUl SSS5 [#[R$5(a[R[R$5nURURU5 URUR[RR5 UR[ 5 [RRUl SSS5 UR[ 5 [RR Ul SSS5 gg!,(df  GN=f!,(df  N_=f!,(df  g=fr)r rqrerrrrrprsTLSv1_3rrTrmrrrrrrjr)rrZ minimum_range maximum_ranges r%test_min_max_version!ContextTests.test_min_max_version&s1nnS445 NN , , NN NN " "   NN , , NN " "          "nn44!nn44    !7!7     !7!7 "nn>>!nn22    !A!A     !5!5 "nn>>    !A!A "nn>>    ^^ ! !3>>#9#93>>;O;O P "nn>>    ^^ # #S^^%;%; <   z *"$C + C00 1 1..!5!56C MM##]    ##S^^%E%E "":.&)nn&F&F#/"":.&)nn&:&:#/. 2+ */...s$R!: R37 S! R03 S SrWzrequires OpenSSL >= 1.1.0c[R[R5n1SknURURU5 g)N>rrUrrrLr*)r rqrfrrW)rrZsecurity_level_ranges r%test_security_level ContextTests.test_security_levelus7 nnS445  c((*>?r'c[R[R5n[[SS5nUR UR [R U-5 [RUlUR UR [R5 [RUlUR UR [R5 [R UlUR UR [R 5 [RUlUR UR [R5 [R[R-UlUR UR [R[R-5 UR[5 SUlSSS5 g!,(df  g=f)NVERIFY_X509_TRUSTED_FIRSTr) r rqrercr verify_flagsVERIFY_DEFAULTVERIFY_CRL_CHECK_LEAFVERIFY_CRL_CHECK_CHAINVERIFY_ALLOW_PROXY_CERTSVERIFY_X509_STRICTrr)rrZtfs r%test_verify_flagsContextTests.test_verify_flagssTnnS445 S5q 9 ))3+=+=+BC44 ))3+D+DE55 ))3+E+EF-- ))3+=+=>77 ))3+G+GH44s7M7MM ))22S5K5KK M   y )#C * ) )s G%% G3c8[R[R5nUR[SS9 UR[[S9 UR [ UR[S9 UR [5nUR[5 SSS5 URWRR[R5 URS5 UR[5 SSS5 URS5 UR[ 5 SSS5 [R[R5nUR["[$5 UR["[$S9 UR[&[(S9 URS5 UR["5 SSS5 URS5 UR[$5 SSS5 URS5 UR[$["S9 SSS5 [R[R5n[*R,"S[*R.5nURU5 UR[0[$5 SSS5 UR[2[4S9 UR[2[4R75S9 UR[2[9[4R755S9 UR["[:[45 UR["[:[4R755 UR["[:[9[4R7555 UR[ S5 UR[2SS9 SSS5 UR [R5 UR[2SS9 SSS5 UR[<S 5 UR[2S S -S9 SSS5 S nS nSnSnSnSn Sn "SS5n UR[2US9 UR[2US9 UR[2US9 UR[2U "5S9 UR[2U "5R>S9 UR [R5 UR[2US9 SSS5 UR[<S 5 UR[2US9 SSS5 UR[ S5 UR[2U S9 SSS5 UR[@S5 UR[2U S9 SSS5 UR[U S9 g!,(df  GN=f!,(df  GN)=f!,(df  GN=f!,(df  GNd=f!,(df  GN8=f!,(df  GN =f!,(df  GN=f!,(df  GN=f!,(df  GNV=f!,(df  GN2=f!,(df  GNq=f!,(df  GNP=f!,(df  GN/=f!,(df  GN=f)N)rPEM (lib|routines)rrz|( key values mismatch # OpenSSL | KEY_VALUES_MISMATCH # AWS-LC ))passwordzshould be a stringTbadpasszcannot be longeraic[$r] KEY_PASSWORDr^r'r%getpass_unicode:ContextTests.test_load_cert_chain..getpass_unicodes r'c*[R5$r])rencoder^r'r% getpass_bytes8ContextTests.test_load_cert_chain..getpass_bytess&&( (r'c<[[R55$r])rrrr^r'r%getpass_bytearray.getpass_bytearrays\0023 3r'cg)Nrr^r^r'r%getpass_badpass:ContextTests.test_load_cert_chain..getpass_badpasssr'c SS-$)Nrir^r^r'r% getpass_huge7ContextTests.test_load_cert_chain..getpass_huges ;' 'r'cg)Nr%r^r^r'r%getpass_bad_type;ContextTests.test_load_cert_chain..getpass_bad_typesr'c[S5e)N getpass error) Exceptionr^r'r%getpass_exception.getpass_exceptions O, ,r'c \rSrSrSrSrSrg):ContextTests.test_load_cert_chain..GetPassCallableic[$r]rrs r%__call__CContextTests.test_load_cert_chain..GetPassCallable.__call__##r'c[$r]rrs r%getpassBContextTests.test_load_cert_chain..GetPassCallable.getpassrr'r^N)rrHrIrJrrrPr^r'r%GetPassCallablers  $ $r'rzmust return a stringr)!r rqrerr rrruNONEXISTINGCERTrrr7ENOENTrrBADCERT EMPTYCERTONLYCERTONLYKEYBYTES_ONLYCERT BYTES_ONLYKEYrecompileXr>CERTFILE_PROTECTEDrrrONLYKEY_PROTECTEDrrr) rrZrregexrrrrrrrrs r%test_load_cert_chain!ContextTests.test_load_cert_chains#nnS445 Hd3 Hh7 )S%8%8(K   w '2    0( ++U\\:  # #CLL2F G    (H  # #CLL2F G    *HnnS445 Hg. Xw? ^]K  # #CLL2F G    )H  # #CLL2F G    (H  # #CLL2F G   (  CHnnS445  dd   # #CLL% 8    w 79 .F .9L9L9NO .%.|/B/B/D%E  G H&7F H&79L9L9NO H&7%l&9&9&;< >  # #I/C D    2T  BE   s|| ,    2Y  G-  # #J0B C    2TF]  K D   ) 4  (  - $ $ .I .G .9JK .9JK .%4%6%>%>  @   s|| ,    2_  M-  # #J0B C    2\  JD  # #I/E F    2=M  NG  # #I ?    2=N  O@ H/@Ac( 'H G G GH G G G G G9 8E D , , C C>- , C C F F ? ?sX :X28Y#Y!Y(Y:(Z Z Z0?[[[&;[8.\  X/2 Y Y Y%( Y7: Z  Z Z-0 Z? [ [#& [58 \ \c[R[R5nUR[5 UR[SS9 UR[ 5 UR[ SS9 UR [UR5 UR [URSSS5 UR [5nUR[5 SSS5 URWRR[R5 UR[RS5 UR[ 5 SSS5 UR[["5 UR[[$S9 UR [URSS5 g!,(df  N=f!,(df  Nt=f)N)rr)rr)T)r rqrerr BYTES_CERTFILErrrurrrr7rrrrr BYTES_CAPATHrrZrs r%test_load_verify_locations'ContextTests.test_load_verify_locationssFnnS445 !!(+ !!$!? !!.1 !!!E )S%>%>? )S%>%>dDQ   w '2  % %o 6( ++U\\:  # #CLL2F G  % %g .H !!(F3 !!(<!@ )S%>%>dK( 'H GsF3G3 G Gc[[5nUR5nSSS5 [R W5n[[ 5nUR5nSSS5 [R W5n[R [R5nURUR5SS5 URUS9 URUR5SS5 URUS9 URUR5SS5 URUS9 URUR5SS5 [R [R5nSRX$45nURUS9 URUR5SS5 [R [R5nSUSUS US /nURSRU5S9 URUR5SS5 [R [R5nURUS9 URUS9 URUR5SS5 URUS9 URUR5SS5 [R [R5nS RX545nURUS9 URUR5SS5 [R [R5nUR[UR[S9 UR[R S 5 URS S9 SSS5 UR[R S5 URSS9 SSS5 UR[R 5 URUS-S9 SSS5 g!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N~=f!,(df  g=f)Nx509_carcadatarUrr headotheragaintailr'z4no start line: cadata does not contain a certificatebrokenz6not enough data: cadata does not contain a certificatesbrokenA)rNr>rOr r?CAFILE_NEURONIOrqrfrcert_store_statsrr rrobjectrr)rrQ cacert_pem cacert_der neuronio_pem neuronio_derrZcombineds r%test_load_verify_cadata$ContextTests.test_load_verify_cadatas - AJ!--j9 / "a668L#// = nnS445 --/ :A> !!!4 --/ :A> !!!6 --/ :A> !!!6 --/ :A>nnS44599j78 !!!2 --/ :A>nnS445Jw &* !!8)<!= --/ :A>nnS445 !!!4 !!!6 --/ :A> !!!4 --/ :A>nnS44588Z67 !!!2 --/ :A>nnS445 )S%>%>vN  # # LL B   % %X % 6   # # LL D   % %Y % 7    s|| ,  % %Z$-> % ?- ,y! # "^    - ,s;P P+P=Q=Q P(+ P:= Q  Q Q-c,[R[R5nUR[5 [RS:waUR[5 UR[UR5 UR[URS5 UR[5nUR[5 SSS5 URWR R"["R$5 UR[R&5nUR[(5 SSS5 g![ a [ (aURS5 ef=f!,(df  N=f!,(df  g=f)N"not supported on Win32 debug buildnt)r rqreload_dh_paramsDHFILE RuntimeErrorPy_DEBUG_WIN32r0rr$ BYTES_DHFILErrrPrrrr7rrr rs r%test_load_dh_params ContextTests.test_load_dh_paramsIsnnS445    v & 77d?   | , )S%7%78 )S%7%7>   0 1R    /2 ++U\\:   s|| ,   x (- , ~ BC  2 1- ,s#E 9E4*F (E14 F Fc[R[R1HDn[RU5nUR UR 5SSSSSSSSSSSS. 5 MF g)Nr) numberr connect_goodconnect_renegotiateaccept accept_goodaccept_renegotiatehitsmissestimeouts cache_full)r rfrerqr session_statsrs r%test_session_statsContextTests.test_session_stats[sk--s/F/FGE..'C   S..0 !'( &' 3 Hr'cj[R[R5nUR5 gr])r rqrfset_default_verify_pathsr]s r%test_set_default_verify_paths*ContextTests.test_set_default_verify_pathsls$nnS445 $$&r'z#ECDH disabled on this OpenSSL buildc[R[R5nURS5 URS5 UR [ UR5 UR [ URS5 UR [ URS5 UR [ URS5 g)N prime256v1s prime256v1foofoo)r rqreset_ecdh_curverrrr]s r%test_set_ecdh_curve ContextTests.test_set_ecdh_curversnnS445 <( =) )S%7%78 )S%7%7> *c&8&8%@ *c&8&8&Ar'c[R[R5nUR[UR 5 UR[UR S5 UR[UR S5 UR[UR U5 SnUR S5 UR U5 g)NrLrhcgr]r^)r servernamerZs r% dummycallback5ContextTests.test_sni_callback..dummycallback r')r rqrerrset_servername_callback)rrZr s r%test_sni_callbackContextTests.test_sni_callback|snnS445 )S%@%@A )S%@%@!D )S%@%@"E )S%@%@#F  ##D) ##M2r'c[R[R5nU4SjnURU5 [R "U5nAA[ R"5 URU"5S5 g)Ncgr]r^)rrrZcycles r%r >ContextTests.test_sni_callback_refcycle..dummycallbackr"r') r rqrer#rjrkgccollectr)rrZr ros r%test_sni_callback_refcycle'ContextTests.test_sni_callback_refcyclesZnnS4457:  ##M2 [[    bdD!r'c[R[R5nURUR 5SSSS.5 UR [ 5 URUR 5SSSS.5 UR[ 5 URUR 5SSSS.5 UR[5 URUR 5SSSS.5 g)Nr)rcrlx509rUr) r rqrfrrrr rr>r]s r%test_cert_store_stats"ContextTests.test_cert_store_statssnnS445 --/!Q / 1 H% --/!Q / 1 !!(+ --/!Q / 1 !!-0 --/!Q / 1r'c P[R[R5nURUR 5/5 UR [ 5 URUR 5/5 UR [5 URUR 5SSSSSSSS./5 [[5nUR5nSSS5 [RW5nURUR S5U/5 g!,(df  NF=f) N)))r0zRoot CA))r#zhttp://www.cacert.org))r1zCA Cert Signing Authority))r$zsupport@cacert.orgzMar 29 12:29:49 2033 GMTzMar 30 12:29:49 2003 GMT00)z!https://www.cacert.org/revoke.crlr)r6r7r8r9rAr:r<T) r rqrfr get_ca_certsrr r>rNrOr?)rrZrQrEders r%test_get_ca_certsContextTests.test_get_ca_certssnnS445 ))+R0 !!(+ ))+R0 !!-0 ))+D55"'ME   - A&&(C!&&s+ ))$/#7! s D D%c[R[R5nUR5 [R[R5nUR[RR 5 UR5 [R[R5nUR[RR 5 [R[R5nUR[URS5 UR[URS5 g)Nr ) r rqrfload_default_certsrr r rrr]s r%test_load_default_certs$ContextTests.test_load_default_certssnnS445  nnS445 s{{667  nnS445 s{{667nnS445 )S%;%;TB )S%;%;]Kr'rznot-Windows specificc4[R[R5n[R"5n[ US'[ US'UR5 URUR5SSSS.5 SSS5 g!,(df  g=f)NrrrrU)r/r0r) r rqrfrrrr r:rr)rrZrs r%test_load_default_certs_env(ContextTests.test_load_default_certs_envsqnnS445  * * ,"(C #+C  " " $   S113QVW5X Y - , ,s AB  Brz3Debug build does not share environment between CRTsc[R[R5nUR5 UR 5n[R[R5n[ R "5n[US'[US'UR5 US==S- ss'URUR 5U5 SSS5 g!,(df  g=f)Nrrr0rU) r rqrfr:rrrrr r)rrZstatsrs r%#test_load_default_certs_env_windows0ContextTests.test_load_default_certs_env_windowssnnS445  $$&nnS445  * * ,"(C #+C  " " $ &MQ M   S113U ; - , ,s '>? #*;*;< ))C,I,II66 8 ))C,B,BB** , **+ $$S) * VVXF(( 606)8 s'>'>? #*;*;< $$S)(()@)@A s'>'>? #--8 $$S) s I Ic[R5nURUR[R5 URUR [R 5 URUR5 URU5 [[R5(a[R"5 [R[R5nSSS5 URUR[R5 URUR [R 5 URU5 [R"5 [R[R[RSS9nSSS5 URUR[R5 URUR [R5 UR!UR5 URU5 [R[R"R$S9nURUR[R&5 URUR [R 5 URU5 g!,(df  GN=f!,(df  GN2=f)NT)rrpurpose)r _create_stdlib_contextrrirfrrrrrFrjrr rlrrrZrr rer]s r%test__create_stdlib_context(ContextTests.test__create_stdlib_contexts((* s'>'>? #--8 ++, $$S) C.. / / //1001C1CD2   S\\3+=+= >   S__cmm <  ( ( -  + + -,,$$++#-C. s';';< #*;*;< **+ $$S)((1H1H(I s'>'>? #--8 $$S))21 . -s$J9.2K 9 K Kc[R"5 [R[R5nSSS5 UR WR 5 URUR[R5 SUlURUR 5 URUR[R5 SUl[RUlUR UR 5 URUR[R5 SUl[RUlSUlUR UR 5 URUR[R5 SUlURUR 5 URUR[R5 SUl[RUlSUlUR UR 5 URUR[R5 SUlURUR 5 URUR[R5 UR[5 [RUlSSS5 SUlUR UR 5 [RUlURUR[R5 g!,(df  GN=f!,(df  N=fr)r rlr rqrdrrrrrrZrrrrr]s r%test_check_hostname ContextTests.test_check_hostname0s;  + + -..!1!12C. ++, #--8" **+ #*;*;<"++ ++, #*;*;<#--" ++, #--8! **+ #*;*;<"++" ++, #*;*;<! **+ #*;*;<  z *!mmCO+" ++,-- #--8S. -H+ *s$L11M1 M Mc[R[R5nURUR5 UR UR [R5 [R[R5nURUR5 UR UR [R5 gr]) r rqrfrZrrrrrerrr]s r%test_context_client_server'ContextTests.test_context_client_server\snnS445 **+ #*;*;<nnS445 ++, #--8r'c"SS[R5n"SS[R5n[R[R5nXlX#lUR[R"5SS9nURXA5 SSS5 UR[R5[R5SS9nURXR5 g!,(df  NU=f)Nc\rSrSrSrg);ContextTests.test_context_custom_class..MySSLSocketihr^NrrHrIrJrPr^r'r% MySSLSocketr[h r'r]c\rSrSrSrg);ContextTests.test_context_custom_class..MySSLObjectikr^Nr\r^r'r% MySSLObjectr`kr^r'raTr) r r SSLObjectrqresslsocket_classsslobject_classrrrUwrap_bior)rr]rarZrrs r%test_context_custom_class&ContextTests.test_context_custom_classgs #--  #-- nnS445)) __V]]_$_ ?4  ! !$ 4@ll3==?CMMOlN c/@ ?s C&& C4c[R[R5nURURS5 SUlURURS5 SUlURURS5 UR [ 5 SUlSSS5 UR [5 SUlSSS5 [R[R5nURURS5 UR [ 5 SUlSSS5 g!,(df  N=f!,(df  N=f!,(df  g=f)NrrUrr) r rqrer num_ticketsrrrrfr]s r%test_num_tickestContextTests.test_num_tickestwsnnS445 !, !, !,   z * CO+   y )"CO*nnS445 !,   z *CO+ *+ * ) ) + *s$D5E$E5 E E E%r^N)1rrHrIrJrVr^rwrLrrir|rrrignore_deprecationrrVr rqrrrrrrrrrrr$r,r1r7r;skipIfrrNr>rPy_DEBUGrBrFrKrQrTrWrgrkrPr^r'r%rRrRs :0/14FH +H + &  D,0 7L;L;\ 01# @  @$(WBrL&?@B)$"' 'LMBNB 3 " 188 L__S\\W,.DEZFZ02DE __W%%JL <LF <R"*2*<*9X 90  r'rRc,\rSrSrSrSrSrSrSrg) SSLErrorTestsic8[RSS5nUR[U5S5 URURS5 [R SS5nUR[U5S5 URURS5 g)NrUr)r rrrbr7SSLZeroReturnError)res r%test_strSSLErrorTests.test_strst LLE " Q' !$  " "1e , Q' !$r'c.[R[R5nUR[R5nUR [ 5 SSS5 URWRRS5 SnURURRU5 [UR5nUR!SU;U5 g!,(df  N=f![a [(aURS5 ef=f)NrPEMz+(NO_START_LINE|UNSUPPORTED_PUBLIC_KEY_TYPE) NO_START_LINE)r rqrfrrrr rrr0rrlibrary assertRegexreasonrbrZ)rrZrrrs r%test_lib_reasonSSLErrorTests.test_lib_reasonsnnS445 ""3<<0B""8,1 --u5= ,,e4   1,a010 ~ BC  s)C,CC, C)%C,)C,,(Dc[R[R5nSUl[RUl[ R"S5n[ R"UR55nURS5 URUSSS9nUR[R5nUR5 SSS5 [WR 5nUR#UR%S5U5 UR'UR R([R*5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f)NFrrz%The operation did not complete (read))r rqrfrrrrrcreate_connectionr setblockingrrSSLWantReadError do_handshakerbrrZrrr7SSL_ERROR_WANT_READ)rrZrrrs r% test_subclassSSLErrorTests.test_subclasssnnS445"--  ! !"2 3q((9A MM% E5IQ&&s';';<NN$= % -T UWXY  !3!3S5L5LM J4 3=<JI4 3s>AE3 E"=EA2E"E3 E E"" E0 ,E33 Fc[R5nUR[5 UR [R 5[R 5SS9 SSS5 UR[5 UR [R 5[R 5SS9 SSS5 UR[ 5 UR [R 5[R 5SS9 SSS5 g!,(df  N=f!,(df  Ns=f!,(df  g=f)Nrhrz .example.orgzexample.orgevil.com)r rIrrrfrrr]s r%test_bad_server_hostname&SSLErrorTests.test_bad_server_hostnames((*   z * LL#--/)+  -+  z * LL#--/)7  9+  y ) LL#--/)B  D* ) + *+ ** )s#6D=6D 6D1 D D.1 D?r^N) rrHrIrJrur}rrrPr^r'r%rqrqs%1"N$ Dr'rqc2\rSrSrSrSrSrSrSrSr g) MemoryBIOTestsicz[R5nURS5 URUR 5S5 URUR 5S5 URS5 URS5 URUR 5S5 URUR 5S5 URS5 URUR S5S5 URUR S5S 5 URUR S5S5 g) Nrr'barsfoobarbazrsbarUz)r rrrrOrbios r%test_read_writeMemoryBIOTests.test_read_writesmmo & V, S) & & Y/ S) & !e, !d+ !c*r'c[R5nURUR5 UR UR 5S5 URUR5 UR S5 URUR5 UR5 URUR5 UR UR S5S5 URUR5 UR UR S5S5 URUR5 UR UR 5S5 URUR5 g)Nr'rrsforUo) r rreofrrOr write_eofrZrs r%test_eofMemoryBIOTests.test_eofsmmo ! S) ! & !  ! !e, ! !d+   S)  r'c$[R5nURURS5 UR S5 URURS5 [ S5H6nUR S5 URURSU- S- 5 M8 [ S5H3nUR S5 URURUS-5 M5 UR 5 URURS5 g)NrrrrUrs)r rrpendingrrrO)rrrs r% test_pendingMemoryBIOTests.test_pendingsmmo a( & a(qA HHQK   S[[!A#a% 0qA IIdO   S[[!A# .   a(r'c@[R5nURS5 URUR 5S5 UR[ S55 URUR 5S5 UR[ S55 URUR 5S5 [ [ S55nUSSS2nUR[5 UR[ U55 SSS5 g!,(df  g=f)Nrrrs noncontig) r rrrrOr memoryviewr BufferError)rrmnoncontig_writables r%test_buffer_types MemoryBIOTests.test_buffer_typessmmo & V, )F#$ V, *V$% V, y. /ttW   { + IIj!34 5, + +s +D Dc4[R5nUR[URS5 UR[URS5 UR[URS5 UR[URS5 g)NrTrU)r rrrrrs r%test_error_typesMemoryBIOTests.test_error_typessemmo )SYY6 )SYY5 )SYY5 )SYY2r'r^N) rrHrIrJrrrrrrPr^r'r%rrs +! ) 63r'rc \rSrSrSrSrSrg)SSLObjectTestsic[R5nUR[S5 [R X5 SSS5 g!,(df  g=fr)r rrrrcrs r%r SSLObjectTests.test_private_init s7mmo  # #I/C D MM# #E D Ds A  Ac$[5upn[R5n[R5n[R5n[R5nURXEUS9nURXgSS9n [ S5Hn UR 5 UR(aURUR55 U R 5 UR(dMhURUR55 M UR 5 U R 5 UR[R 5 UR5 SSS5 URUR55 U R5 URUR55 UR5 g![R a GNEf=f![R a GNf=f!,(df  N=f)NrTrbr*) rr rrfrrrrrrOrunwrap) r client_ctx server_ctxrc_inc_outs_ins_outclientr<_s r% test_unwrapSSLObjectTests.test_unwraps+:+<( }} }} $$T($K$$Td$CqA ##%}} 5::<( ##%}}} 5::<(   s33 4 MMO5 5::<   5::<  7''   ''  5 4s0 G G&H G#"G#&G>=G> Hr^N)rrHrIrJrrrPr^r'r%rrs $ (r'rc\rSrSrSrSrSrSrSrSr Sr S r S r S r \R"\R"S :HS 5S5rSrSrSrSrSrSrSrSrSrSrSrSrSrg)SimpleBackgroundTestsi8z?Tests that connect to a simple server running in the backgroundc[R[R5UlURR [ 5 [ URS9nURU5 [UR4Ul g)NrC) r rqrerrrrD enterContextr6r= server_addr)rr<s r%setUpSimpleBackgroundTests.setUp;s\!nnS-D-DE ++O<#D,?,?@ &! &++.r'c[[R"[R5[RS9nUR UR 5 UR0UR55 URUR5 SSS5 [[R"[R5[R[S9nUR UR 5 URUR55 URUR5 SSS5 g!,(df  N=f!,(df  g=f)Nrrr)rrrir rrrr getpeercertrrrrrZrs r% test_connect"SimpleBackgroundTests.test_connectBs fmmFNN;&)mm589 IId&& '   R 1   Q]] + 5fmmFNN;&)&7&7%/145 IId&& ' OOAMMO ,   Q]] + 115511sAD8AE 8 E Ecd[[R"[R5[RS9nUR UR 5 [R"S[R5nUR[RUURUR5 g)Nr|( certificate verify failed # OpenSSL | CERTIFICATE_VERIFY_FAILED # AWS-LC ))rrrir rrrrrrrrrr)rrrs r%test_connect_fail'SimpleBackgroundTests.test_connect_failQsy V]]6>>:&)&7&7 9    dd  s||U yy$*:*: >:&)&7&7%/ 1   ALL)9)9:;  (r'c[[R"[R5[R[ SS9nUR UR5 URS5 URUR5nURUS[R[R45 [R"/U//S5 UR!5 UR'UR)55 g![R"a [R"U///S5 O3[R$a [R"/U//S5 Of=fM)NF)rrrrr)rrrir rrrrrr5rrr7 EINPROGRESSr;selectrrSSLWantWriteErrorrZrrrr>s r%test_non_blocking_connect_ex2SimpleBackgroundTests.test_non_blocking_connect_exjs V]]6>>:&)&7&7%/49 ;   e \\$** + b1e//1B1BCD b1#r3' 0   ( '' 0 qc2r3/(( 0 b1#r3/ 0 sD.E&6-E&%E&c[R[R5nSUl[RUlUR [R"[R55nURUR5 UR0UR55 SSS5 UR [R"[R5SS9nURUR5 SSS5 [RUlUR[5 UR [R"[R55nURUR5 UR5nUR!U5 SSS5 g!,(df  GN=f!,(df  N=f!,(df  g=f)NFdummyr)r rqrfrrrrrrirrrrrrrrZrrZrrs r%test_connect_with_context/SimpleBackgroundTests.test_connect_with_contexts6nnS445"-- __V]]6>>: ;q IId&& '   R 1<__V]]6>>:,3589 IId&& '5++ !!*- __V]]6>>: ;q IId&& '==?D OOD !< ;< ;55 < ;s$3>:-EGJK IId&& '==?D OOD ! GnnS445 !!!6 __V]]6>>:-EGJK IId&& '==?D OOD ! GGGGGGs-=E$=E5$ E25 Fc[[5nUR5nSSS5 [R W5n[R [R 5nURUS9 UR[R"[R5[S9nURUR5 UR5nURU5 SSS5 [R [R 5nURUS9 UR[R"[R5[S9nURUR5 UR5nURU5 SSS5 g!,(df  GN=f!,(df  N=f!,(df  g=f)Nrr)rNrrOr r?rqrfrrrrirrrrrZ)rrQrEr6rZrrs r%test_connect_cadata)SimpleBackgroundTests.test_connect_cadatasM * &&(C&&s+nnS445 !!!- __V]]6>>:-EGJK IId&& '==?D OOD ! GnnS445 !!!- __V]]6>>:-EGJK IId&& '==?D OOD ! GG  GGGGs#F&=F+=F< F(+ F9< G rz*Can't use a socket as a file under Windowsc`[[R"[R55nURUR5 UR 5nUR 5nUR5 [R"US5 UR5 [R"5 UR[5n[R"US5 SSS5 URWRR [ R"5 g!,(df  NC=fr)rrrirrfilenomakefilerrrOr*r+rrurrr7EBADF)rrnfdrQrts r%test_makefile_close)SimpleBackgroundTests.test_makefile_closes fmmFNN; < 4##$ YY[ KKM   A     w '1 GGBN( **EKK8( 's D D-cv[R"[R5nURUR5 UR S5 [ U[ RSS9nURUR5 SnUS- nUR5 [R(a#[ R"R%SU-5 gg![ Ra [R"U///5 O2[ Ra [R"/U//5 Of=fM)NFrrrrUz9 Needed %d calls to do_handshake() to establish session. )rrirrrrr rrrrrrrrrrrr)rrcounts r%test_non_blocking_handshake1SimpleBackgroundTests.test_non_blocking_handshakes MM&.. ) $""# e Q&)mm49 ;   +   ?? JJ  Z]bb c  '' + qc2r*(( + b1#r* +s C-D6,D65D6c>[U/URQ7S[06 g)Nr)_test_get_server_certificaterrrs r%test_get_server_certificate1SimpleBackgroundTests.test_get_server_certificates$TND,<,<N:Nr'c ^URup/mU4SjnURRU5 [R X45nU(dUR SU<SU<S35 [R X4[ S9nU(dUR SU<SU<S35 [R(a,[RRSU<SU<SU<S35 URTX/5 g) Nc(>TRU5 gr])append)ssl_sock server_nameinitial_context server_namess r% servername_cbLSimpleBackgroundTests.test_get_server_certificate_sni..servername_cbs    ,r'No server certificate on :!r Verified certificate for  is r ) rrr#r get_server_certificaterBrrrrrrr)rhostr=rrErs @r%test_get_server_certificate_sni5SimpleBackgroundTests.test_get_server_certificate_snis%%   - 33MB(($6 II4F G(($ (K II4F G ?? JJ  DRVX[\ ] |4r'c0[U/URQ76 gr])!_test_get_server_certificate_failrrs r% test_get_server_certificate_fail6SimpleBackgroundTests.test_get_server_certificate_fails *$B1A1ABr'cSnURRU5 UR[R5 [ R UR[SS9 SSS5 g!,(df  g=f)Nc0[R"S5 g)N皙?)rsleeprrrs r%rPSimpleBackgroundTests.test_get_server_certificate_timeout..servername_cbs JJsOr'皙?)rr) rr#rrrr rrr)rrs r%#test_get_server_certificate_timeout9SimpleBackgroundTests.test_get_server_certificate_timeoutsY  33MB   v~~ .  & &t'7'7*/2 ' 4/ . .s $A++ A9c[[R"[R5[RSS9nUR UR 5 SSS5 [[R"[R5[RSS9nUR UR 5 SSS5 UR[RS5 [R"[R5n[U[RSS9nUR UR 5 SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  N9=f!,(df  g=f)NrY)rrrZr[r\) rrrir rrrrr)rrrs r%r^"SimpleBackgroundTests.test_ciphers%s  fmmFNN;'*}}eEHI IId&& 'EfmmFNN;'*}}iILM IId&& 'I # #CLL2M Nv~~.$$T.1mmEWY $**+/O NEEII /.O Ns;E E%E=5E,9E= E E), E: 6E== F c[R[R5nUR[S9 UR UR 5/5 UR[R"[R5SS9nURUR5 UR5nURU5 SSS5 UR [UR 55S5 g!,(df  N8=f)Nrr2rrU)r rqrfrrrr5rrrirrrrZrhrs r%test_get_ca_certs_capath.SimpleBackgroundTests.test_get_ca_certs_capath3snnS445 !!!0 ))+R0 __V]]6>>:-8:=> IId&& '==?D OOD ! : S--/0!4 ::s =C88 Dc[R[R5nUR[S9 [R[R5nUR[S9 [ R "[ R 5nURUSS9nURUR5 URURU5 URURRU5 X$l URURU5 URURRU5 SSS5 g!,(df  g=f)Nrr2r) r rqrfrrrrirrrrr_sslobj)rctx1ctx2rrns r%test_context_setget)SimpleBackgroundTests.test_context_setget?s~~c556 ""&"1~~c556 ""&"1 MM&.. )   a  = JJt'' ( MM"**d + MM"**,,d 3J MM"**d + MM"**,,d 3 > = =s !B&E EcURS[R5nSn[R"U5Hn Sn US- nU"U6n UR5n URU 5 U c OUU [R:XdMLURS5n U (aURU 5 MwUR5 M [R(a-[R RSXR"4-5 W $![R aFn U R [R[R4;aeU R n Sn A GNSn A ff=f)NrrrUiz"Needed %d calls to complete %s(). )rr SHORT_TIMEOUT busy_retryr rr7rSSL_ERROR_WANT_WRITErOsendallrvrrrrrr)rrincomingoutgoingr{ryrrrrr7retrtbufs r% ssl_io_loop!SimpleBackgroundTests.ssl_io_loopNs **Y(=(=>##G,AE QJE Dk--/C LL }#111ii&NN3'&&(/-0 ?? JJ  B %}}56 7 -<< 773#:#:#&#;#;#==  sDE";EE"c[R"[R5nURUR5 UR UR 5 [ R5n[ R5n[ R[ R5nURUR5 URUR[ R5 UR[ 5 UR#X#S[$5nUR'UR(R*U5 UR-UR/55 UR-UR155 UR-UR355 UR5[6UR85 S[ R:;a4UR15S:wa UR-UR=S55 UR?XX5R@5 URUR/55 UR-UR355 URCUR155 URUR955 S[ R:;a4UR15S:wa URUR=S55 UR?XX5RD5 UR5[ RHURJS5 g![ RFa NBf=f)NFrTLSv1.3r)&rrirrrrr rrqrfrZrrrrrrrfrrrownerrcipherr<shared_ciphersrrrrMrr%rassertIsNotNonerSSLSyscallErrorrr)rrr!r"rZsslobjs r%test_bio_handshake(SimpleBackgroundTests.test_bio_handshakepsA}}V^^,  # T%%&==?==?nnS445 **+ #*;*;< !!*-h%68 fnn**F3 &--/* &..*+ &//12 *f&8&89 344 49IY9V   f88F G 3F3FG  ( &//12 V^^-. **,- 344 49IY9V OOF66|D E    TX}} E #,, f= ""   s#L++MMc[R"[R5nURUR5 UR UR 5 [ R5n[ R5n[ R[ R5nSUl [ RUl URX#S5nURXX5R5 SnURXX5R U5 URXX5R"S5nUR%US5 URXX5R&5 g)NFFOO sfoo )rrirrrrr rrqrfrrrrfr%rrrOrr)rrr!r"rZr.reqr$s r%test_bio_read_write_data.SimpleBackgroundTests.test_bio_read_write_datas}}V^^,  # T%%&==?==?nnS445"--h%8 3F3FG <<EtxdK h' ==Ar'c[5upn[R"[R5nURUR5 [ R 5n[ R 5nURXVUS9nURXEXgR5 UR5 UR[ RUR5 SSS5 g!,(df  g=f)Nr)rrrirrr rrfr%rrr SSLEOFErrorrO)rrrrrr!r"r.s r%test_transport_eof(SimpleBackgroundTests.test_transport_eofs3B3D0 ]]6>> *d LL)) *}}H}}H#,,X=E-GF   TX7J7J K      coov{{ ;+ * *s B*C%% C3)rrN) rrHrIrJ__doc__rrrrrrrrrrwrnrr$rrrrrrr^rrr%r/r5r9rPr^r'r%rr8sI/ ,< ))4"(=&"."*__RWW_&RS9T9$d*O5*C 4 , 5 4 D">HB" rz!REMOTE_HOST responded too quicklyzNetwork unreachable.)rtransient_internet REMOTE_HOSTrrrir rrrrr5r0r7 ENETUNREACHrEAGAINr;rs r%test_timeout_connect_ex&NetworkedTests.test_timeout_connect_exs - -k : v~~!>*-*;*;8=?A OOAGG $ LL #{C01BQw ABu((( 45 MM"u||U->->? @; : :s C,D Dz Needs IPv6walltimec[R"S5 [USS5 [USS5 SSS5 g!,(df  g=f)Nzipv6.google.comr@)rrArrrs r% test_get_server_certificate_ipv6/NetworkedTests.test_get_server_certificate_ipv6s: - -.? @ (/@# F -d4Es KA @ @s ; A r^N) rrHrIrJrErwrLr IPV6_ENABLEDrrequires_resourcerIrPr^r'r%r>r>sEA 33\B z*L+CLr'r>c b[RX45nU(dURSU<SU<S35 [RX4US9nU(dURSU<SU<S35 [R(a-[ R RSU<SU<SU<S35 gg)Nrrrrrrr )r rrBrrrrr)testrr=rrEs r%rrsy $ $d\ 2C  tTBC $ $d\D $ AC  tTBC dTWXYr'c [R"U5 [RX4[S9nUR SU<SU<SU<S35 SSS5 g![R aAn[R(a"[RRSU-5 SnANYSnAff=f!,(df  g=f)NrzGot server certificate z for rrz%s ) r check_no_resource_warningr rr rBrrrrrr)rNrr=rExs r%rrs  2 24 8 R,,d\H,MC IIT4P Q 9 8|| -   !, - 9 8s3B1AB1B.-7B)$B1)B..B11 B?)make_https_servercz\rSrSr"SS\R 5rS SjrSrSr SSjr S r S r S r S rg)rDic<\rSrSrSrSrSrSrSrSr Sr S r g ) $ThreadedEchoServer.ConnectionHandlerizA 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.cXlSUlX lX0lURR S5 SUl[ RRU5 SUl gNFT) r<runningraddrrsslconn threadingr__init__daemon)rr<connsockrYs r%r\-ThreadedEchoServer.ConnectionHandler.__init__sL K DL II II ! !$ 'DL    % %d +DKr'cURRRURSS9UlURR R URR55 URRR URR55 URRR[R:XGaURR5n[R(aTURR(a9[ R"R%S[&R("U5-S-5 URRS5n[R(ajURR(aOUc [ R"R%S5 O,[ R"R%S[+U5S35 URR-5n[R(aIURR(a.[ R"R%S[/U5-S-5 g![0[2[44anURR6R [/U55 URR(a$[9S [;UR<5-S -5 S UlURA5 SnAg SnAf[RB[D4anURR6R [/U55 URR(a$[9S [;UR<5-S -5 URF[FRH:wa+[ RJS :waS UlURA5 SnAg SnAff=f) NTrbz client cert is r z client did not provide a cert z cert binary is zb z" server: connection cipher is now z' server: bad connection attempt from z: Fdarwin)&r<rrrrZselected_alpn_protocolsrselected_alpn_protocolr+rr rrrrchattyrrrrrrhr*rbConnectionResetErrorBrokenPipeErrorConnectionAbortedError conn_errorsrrrYrXrrrur7 EPROTOTYPErN)rr cert_binaryr*rts r% wrap_conn.ThreadedEchoServer.ConnectionHandler.wrap_conns: #{{22>>II4 ? 1  33::4<<;^;^;`aR **11$,,2M2M2OP;;&&22c6G6GG<<335D4;;+=+= (();fnnT>R)RUY)YZ"&,,":":4"@K4;;+=+=&.JJ,,-OPJJ,,/?K@P?QQT-UV,,.??t{{'9'9JJ$$%ICPVK%WZ^%^_m)/;QR  ''..s1v6;;%% !KdSWS\S\o!]`e!ef$  LL'*  ''..s1v6;;%% !KdSWS\S\o!]`e!ef 77e...3<<83K#(DLJJL+ s&A0I88O3 BLO33B6O..O3cUR(aURR5$URRS5$)Nr3)rZrOrrvrs r%rO)ThreadedEchoServer.ConnectionHandler.read7 s/||||((**yy~~d++r'cUR(aURRU5$URRU5$r])rZrrrz)rrs r%r*ThreadedEchoServer.ConnectionHandler.write= s1||||))%00yy~~e,,r'cUR(aURR5 gURR5 gr])rZrrrs r%r*ThreadedEchoServer.ConnectionHandler.closeC s'|| ""$ !r'c SUlURR(dUR5(dgUR(GaUR 5nUR 5nU(d@SUlUR R5UlSUlUR5 GOUS:Xa`[R(a:URR(a[RR!S5 UR5 gURR(a~US:Xax[R(a:URR(a[RR!S5 UR!S5 UR5(dgGOURR(aUR (aUS:Xa[R(a:URR(a[RR!S 5 UR!S5 UR R5UlSUl[R(a:URR(a[RR!S 5 GOUS :Xa[R(a:URR(a[RR!S 5 UR R#S 5nUR![%U5R'S5S-5 GOuUS:Xa}[R(a:URR(a[RR!S5 UR R)5 UR!S5 GOUS:XaAUR R/5bUR!S5 GOUR!S5 GOUS:XaHUR R/5nUR![%U5R'S5S-5 GO]US:XaSUR R0R35nUR![5U5R7SS5S-5 GOUS:XaRUR R0R95nUR![5U5R7SS5S-5 O[R(awURR(a\UR =(a S=(d Sn[RR!SU<SU<SUR;5<SU<S3 5 UR!UR;55 UR(aGMgg![a GNPf=f![*R,a6nUR![%U5R'S5S-5 SnANlSnAff=f![an[=U[>5(adURR@(a-[R(a[CS URD35 UR5 SUlSnAgURR@(a [R(a [GS!5 UR!S"5 O![a Of=fUR5 SUlSnAGNrSnAff=f)#NTFsoverz" server: client closed connection STARTTLSz2 server: read STARTTLS from client, sending OK... OK ENDTLSz0 server: read ENDTLS from client, sending OK... z* server: connection is now unencrypted... s CB tls-uniquez@ server: read CB tls-unique from client, sending our CB data... rus-ascii PHAz( server: initiating post handshake auth HASCERTTRUE FALSE GETCERTs VERIFIEDCHAINrUbigsUNVERIFIEDCHAIN encrypted unencryptedz server: read z (z), sending back z)... z Connection reset by peer: zTest server failure: sERROR )$rXr<starttls_serverrkrOstriprZrrrurrrconnectionchattyrrrrrrverify_client_post_handshaker rrrget_verified_chainrhto_bytesget_unverified_chainr/raConnectionErrorrdprintrYr)rmsgstrippedrrtrcertsctypes r%run(ThreadedEchoServer.ConnectionHandler.runI sDL;;..~~'',,,[)))+C"yy{H#', 0(, (;(;(=DI,0DL !W,"??t{{/K/KJJ,,-RS ++55"k1"??t{{/K/KJJ,,-bc 7+#~~//" 0++55$,,&)3"??t{{/K/KJJ,,-`a 7+$(LL$7$7$9 '+ "??t{{/K/KJJ,,-Z[!%55"??t{{/K/KJJ,,-pq#||?? M 4:#4#4Z#@5#HI!V+"??t{{/K/KJJ,,-XY0 LLEEG!JJw/!Z/<<335A JJy1 JJz2!Z/#||779 4:#4#4Z#@5#HI!%55 $ 4 4 G G I 3u:#6#6q%#@5#HI!%77 $ 4 4 I I K 3u:#6#6q%#@5#HI#OO KK88%)\\%Ak$SmEJJ,,03UCIIK.PQ 399;/Q,,, '!! !N #||K JJtAw~~j'AE'IJJK2)!!_55 ;;--'//!$? {"KL ', {{))goo$%=> :."JJL#(DLL')s .Y;W$Y3A%YBY2DY;BYAY/W5 Y2YY#A Y1AY AY"B+Y$ W2.Y1W22Y5X? ,X:5Y:X??Y ] A4];]\] \ ]\  ]])rYr]rXr<rrZN) rrHrIrJr;r\rkrOrrrrPr^r'r%ConnectionHandlerrUs' 8 ; z ,  -  " a )r'rNc U (aXlO[RUbUO[R5UlUbUO[RURlU(aURR U5 U(aURRU5 U(aURRU5 U (aURRU 5 XPl X`l Xpl [R"5Ul[R "UR5UlSUlSUl/Ul/Ul/Ul[.R0R3U5 SUlSUlgrW)rr rqrerrrrset_alpn_protocolsrXrdrrrrrr4r=flagactiverbr+rhr[rr\r] _in_context) r certificate ssl_versioncertreqscacertsrdrralpn_protocolsrrs r%r\ThreadedEchoServer.__init__ s "L>>-8-D+6/2/F/FHDL5=4H-0]] LL $ 227; ,,[9 //? ((1 0.MMO !++DII6   ')$ !!$'  r'cUR(a [S5eSUlUR[R"55 UR R 5 U$)Nz&Re-entering ThreadedEchoServer contextT)rrstartr[Eventrwaitrs r% __enter__ThreadedEchoServer.__enter__ sE   EF F 9??$%  r'cRSUlUR5 UR5 gNF)rstopr rrys r%__exit__ThreadedEchoServer.__exit__ s   r'cUR(d [S5eXl[RR U5 g)N4ThreadedEchoServer must be used as a context manager)rrrr[rrrrs r%rThreadedEchoServer.start s6FH H t$r'c\UR(d [S5eURRS5 URR S5 SUlUR (aUR R5 UR (aURR5up[R(a?UR(a.[RRS[U5-S-5 UR!XU5nUR#5 UR%5 UR (aMUR/5 g![&aCn[R(a$[RRSU<S35 SnANlSnAf[(a UR+5 N[,a^n[R(a?UR(a.[RRS[U5-S-5 SnANSnAff=f) Nrg?r*Tz server: new connection from r z connection timeout z connection handling failed: )rrrrlistenrrrrrrrdrrrrrrr TimeoutErrorKeyboardInterruptr BaseExceptionr)rnewconnconnaddrhandlerrts r%rThreadedEchoServer.run ssFH H S!  99 IIMMOkk J$(II$4$4$6!??t{{JJ$$%E'+H~&68<&=>00I  kkk&   E??JJ$$';A5%CD$    J??t{{JJ$$7$q'ADHJ Js,B"E H+'9F%%H+ H+ AH&&H+cbURb"URR5 SUlggr])rrrs r%rThreadedEchoServer.close s& 99 IIOO DI !r'cSUlgr)rrs r%rThreadedEchoServer.stop s  r') rrrdrhrrr]rr=rbr+rr) NNNNTFFNNNr])rrHrIrJr[rrr\rrrrrrrPr^r'r%rDrDsL@)I,,@)D6:(,FK $'+ !!F %> r'rDcl\rSrSr"SS\R 5rSrSrSr Sr S S jr S r S r S rg)AsyncoreEchoServeri cP\rSrSr"SS\R 5rSrSrSr Sr g) AsyncoreEchoServer.EchoServeri c8\rSrSrSrSrSrSrSrSr Sr g ) /AsyncoreEchoServer.EchoServer.ConnectionHandleri c[USUSS9Ul[RR XR5 SUlUR 5 g)NTF)rrr)rrr dispatcher_with_sendr\_ssl_accepting_do_ssl_handshake)rconnrs r%r\8AsyncoreEchoServer.EchoServer.ConnectionHandler.__init__ sG.t7?FKM --66t[[I&*#&&(r'c[UR[R5(aNURR 5S:a0UR 5 URR 5S:aM0g)NrT)rarr rrhandle_read_eventrs r%readable8AsyncoreEchoServer.EchoServer.ConnectionHandler.readable sRdkk3==99++--/!3..0++--/!3r'cURR5 SUlg![R[R 4a g[R a UR5s$[Ra e[a@nURS[R:XaUR5sSnA$SnAgSnAff=f)NFr) rrrr rrr8 handle_closerruryr7 ECONNABORTEDrerrs r%rAAsyncoreEchoServer.EchoServer.ConnectionHandler._do_ssl_handshake! s 0KK,,.+0D',,c.C.CD/,,..||3xx{e&8&88#002293s'$$C  #C /C  0C<C C cXUR(aUR5 gURS5n[R(a+[ R RS[U5-5 U(dUR5 gURUR55 g)Nr3z server: read %s from client ) rrrvrrrrrrrrzr/)rrs r% handle_read;AsyncoreEchoServer.EchoServer.ConnectionHandler.handle_read0 sf&&**,99T?D (()JTRVZ)WX  $**,/r'cUR5 [R(a-[RR SUR -5 gg)Nz server: closed connection %s )rrrrrrrrs r%r)rrr<rs r%__str__AsyncoreEchoServer.__str__[ s NN33T[[AAr'cUR[R"55 URR 5 U$r])rr[rrrrs r%rAsyncoreEchoServer.__enter__^ s( 9??$%  r'c[R(a[RR S5 UR 5 [R(a[RR S5 UR 5 [R(a[RR S5 [R"SS9 g)Nz cleanup: stopping server. z! cleanup: joining server thread. z cleanup: successfully joined. T) ignore_all) rrrrrrr r close_allrs r%rAsyncoreEchoServer.__exit__c sp ?? JJ  ; < ?? JJ  A B ?? JJ  ? @d+r'NcNXl[RRU5 gr])rr[rrrs r%rAsyncoreEchoServer.starto s t$r'cSUlUR(aURR5 UR(a+[R"S5 UR(aM*gg! N=f)NTrU)rrrr looprs r%rAsyncoreEchoServer.runs sJ 99 IIMMOkk  a kkk s A00A4cFSUlURR5 gr)rr<rrs r%rAsyncoreEchoServer.stop} s  r')rr]rr=r<r])rrHrIrJr rrr\rrrrrrrPr^r'r%rr s;Bh))BHB ,%r'rc 0n[UUSS9nU UR[R"5XVS9n U R[UR 45 U[ U5[U54Hn U(a7[R(a"[RRSU-5 U RU 5 U R5n U(a7[R(a"[RRSU -5 XR5:wdM[SU SS[!U 5USSR5[!U54-5e U RS 5 U(a4[R(a[RRS 5 UR#U R%5U R'5U R)5U R+5U R-5U R.U R0S .5 U R35 SSS5 UR4US 'UR6US 'SSS5 U$!,(df  N6=f!,(df  U$=f)zK Launch a server, connect a client to it and try various reads and writes. Frrdr)rsession client: sending %r...  client: read %r 4bad data <<%r>> (%d) received; expected <<%r>> (%d) Nover  client: closing connection. ) compressionr*peercertclient_alpn_protocolr<session_reusedrserver_alpn_protocolsserver_shared_ciphers)rDrrrr6r=rrrrrrrrOr/AssertionErrorrhrrr*rrcr<rrrrbr+) rrindatardrsni_namerrAr<rargoutdatas r%server_params_testr  s E '-168F   ' '  ((;>? IItV[[) * & 1:f3EF# ((7&@B &&(# (()>)HIlln,(O"3B<W!#2;,,.F ==>>G GGI ??JJ$$%FG LL }}((*MMO()(@(@(B99;"#"2"299  GGI?;@*0)G)G%&)/)>)>%&E F LE;; F Ls*$I,C*I"D I+&I, I) %I,, I;c Uc[Rn[RS[RS[RS0Un[R (a_U=(a S=(d Sn[ RRU[RU5[RU5U4-5 [R"5 [RU5nU=RU-sl [RU5n U =RU-sl SSS5 [RUS5n U bY[!W S5(aHU[R":Xa4U R$U :a$[R"5 XlSSS5 WR&[R":XaUR)S5 [+W U5 X4H3n X;lU R/[05 U R3[45 M5 [7XS S S 9n U(d:[9S [RU5<S [RU5<S 35eUSLaX,S:wa[9SU<SU S<35egg!,(df  GNh=f!,(df  GN=f![R:a U(aeg[<a0n U(dU R>[>R@:waeSn A gSn A ff=f)a$ 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. Nrrrz %s->%s %s z {%s->%s} %s rTrYF)rdrzClient protocol z succeeded with server protocol rTr<zversion mismatch: expected z, got )!r rrrrrrrrget_protocol_namer rlrqrPROTOCOL_TO_TLS_VERSIONrrVrdrTrirXr[rrrrrr rrrur7 ECONNRESET)server_protocolclient_protocolexpect_success certsreqsserver_optionsclient_optionscerttype formatstrrr min_versionrZrArts r%try_protocol_combor sMM  { ? ? H #6K;K  //@//@"$$ %  ' ' )8.08.0 **--otDK N$5 6 6 s// /  * *[ 8 + + --8 *. #"2"22""5)7/# O, !!*-0G">*/%I ((9((9;< <D( )$44 $2E)4D"FG G5)c * )". -( <<     QWW(8(88 9s7AJJ J, J J),L L&K>>LcbUR5HnUHnSU3US;dM g M g)NzKx= descriptionTF)rf)rZaliasesr*aliass r%supports_kx_aliasr s8//#EUG}} 55$ r'c\rSrSr\R "S5S5r\R"\RS5S5r Sr Sr Sr \R"\RS 5S 5rS r\R"\S 5S 5rSrSPSjrSr\"S5S5rSrSrSr\"S5S5r\"S5S5r\"S5S5r\"S5S5rSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,\"S5S+5r-\"S5\"S5\.S,555r/\"S5\.S-55r0\"S5\"S5\.S.555r1\"S5S/5r2S0r3\R"S1\Rh;S25S35r5S4r6\R"\7"\S55S65S75r8S8r9S9r:S:r;S;rS>r?S?r@S@rASArBSBrCSCrDSDrESErFSFrGSGrHSHrISIrJSJrK\"S5\R"\RSK5SL55rM\"S5\R"\RSK5SM55rNSNrOgO)Q ThreadedTestsi rGc d[R(a[RR S5 [ 5upnUR [R[RS9 [UUSSUS9 SSS5 SUl UR [R[RS9 UR[R5n[UUSSUS9 SSS5 URS[WR 55 SSS5 UR [R[RS9 UR[R5n[UUSSS9 SSS5 URS[WR 55 SSS5 UR [R[RS9 UR[R5n[UUSSS9 SSS5 URS[WR 55 SSS5 g!,(df  GN=f!,(df  GNk=f!,(df  GNP=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  g=f) z2Basic test of an SSL client connecting to a serverr )rr<T)rrrdrrNFz@Cannot create a client socket with a PROTOCOL_TLS_SERVER context)rrrdr)rrrrrrrr rfrer rrrrrbr)rrrrrts r% test_echoThreadedTests.test_echo s ?? JJ  T "3B3D0 \\!8!8AXAX\ Y n.<&*T(0 2Z ).% \\!8!8AXAX\ Y""3<<0A".2@*.,461 MMRAKK   Z\\!8!8AXAX\ Y""3<<0A".2@*.G1 MMRAKK   Z\\!8!8AXAX\ Y""3<<0A".2@*.G1 MMRAKK  " Z Y9Z Y10Z Y10Z Y10Z Ysx.H77 II %-I I?& I-3-I? J!4 J-J!7 I I I I*- I< 7I?? J  J J!! J/z*test is only useful if the GIL is disabledc /nSqURURURUR[ R "URSS9URUR4HEn[S5H3nURX#S9 UR[US95 SSS5 M5 MG [R"5nUH+nURUS9 UR!5 SSS5 M- UH+nURUS9 UR#5 SSS5 M- UR$b5['UR$[(R*5(d UR$eSSS5 Sqg!,(df  GM=f!,(df  M=f!,(df  M=f!,(df  NH=f!Sqf=f)NTF)warnings_filtersr*)r{numtarget)thread)rr test_alpn_protocolstest_getpeercerttest_crl_checkr~partialtest_check_hostname_idntest_wrong_cert_tls12test_wrong_cert_tls13rrrrr catch_threading_exceptionrr exc_valuerarwrx)rthreadsr{r$rr's r%test_ssl_in_multiple_threads*ThreadedTests.test_ssl_in_multiple_threads6 st!% *((%%##!!00%***** !8C49vT':;:9$ $";;=%FV4 54&&FV4 54&<<+%bllH4E4EFF ll*>%* !!:9 5454 >=%* !smBF>E6!%F>F-F , F- FAF-+F>6 F F> F F- F* %F-- F;7F>>Gc[R(a[RR S5 [ 5upn[ USS9nU UR[R"5SUS9nUR[UR45 UR[5 UR5 SSS5 UR5 UR5nUR!US5 UR#5n[R(ad[RR [$R&"U5S-5 [RR S[)U5-S-5 SU;a(UR+S [$R&"U5-5 S US;aUR+S 5 UR-S U5 UR-S U5 [.R1US 5n[.R1US 5n UR3X5 SSS5 SSS5 g!,(df  GN=f!,(df  N)=f!,(df  g=f)Nr Frrd)rrCan't get peer certificate.zConnection cipher is z. r:z$No subject field in certificate: %s.r/zkMissing or invalid 'organizationName' field in certificate subject; should be 'Python Software Foundation'.r8r7)rrrrrrrDrrrr6r=rrrrrZr*rrrbrBrr rrX) rrrrr<rrr*beforeafters r%r)ThreadedTests.test_getpeercert_ s ?? JJ  T "3B3D0#N5I ++FMMODIH&H II/H1I I G) $G,, G;> H H H H  H.1 H? ;I I I I!z)test requires hostname_checks_common_namec[5upnSUl[USS9nU UR[R"5US9nUR [ UR45 SSS5 SSS5 [[5upnSUl[USS9nU UR[R"5US9nUR[R5 UR [ UR45 SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  NA=f!,(df  NJ=f!,(df  g=f)NFTr5r) rrrDrrrr6r=rrr SSLCertVerificationErrorrEs r%r.ThreadedTests.test_hostname_checks_common_name s(4C3D05:2$N4H ++FMMO? FVFFVs%$E8A;E3E E E E#z2test requires RFC 5280 check added in OpenSSL 3.0+c[R5nUR[5 [n[R[ R S9nUR[5 [USS9nU UR[R"5US9nUR[R5 UR[UR 45 SSS5 SSS5 SSS5 [R5nUR[5 U=R"[R$)-sl[R[ R S9nUR[5 [USS9nU UR[R"5US9nUR[UR 45 UR'5nUR)US5 SSS5 SSS5 g!,(df  GN'=f!,(df  GN1=f!,(df  GN;=f!,(df  NM=f!,(df  g=f)NrNTr5rr6)r rIrLEAF_MISSING_AKI_CA"LEAF_MISSING_AKI_CERTFILE_HOSTNAMErr rLEAF_MISSING_AKI_CERTFILErDrrrrrr6r=rrrrZ)rrrrr<rrs r%test_verify_strict ThreadedTests.test_verify_strict s335,,-@A533G(>'>>#33G? FVFFVs%$F ,A;E8'F 8 F F  Fc[R(a[RR S5 [ R [ R5nUR[5 [ R [ R5n[ RUl SUl UR[5 /SQnUHupV[!USS9nU UR#[$R$"5US9nUR'UR(U5 UR+[,UR.45 UR15n UR'UR(U5 UR3U S5 SSS5 SSS5 M [!USS9nU UR#[$R$"5SS9nUR5[ R65 UR+[,UR.45 SSS5 SSS5 SSS5 [!USS9nU(a[8R:"U5O [=5 UR5[>5 UR#[$R$"5SS9 SSS5 SSS5 SSS5 [!USS9nU(a[8R:"U5O [=5 UR5[@5 UR#[$R$"5S S9 SSS5 SSS5 SSS5 g!,(df  GN=f!,(df  GMz=f!,(df  GNM=f!,(df  GNW=f!,(df  GNa=f!,(df  N=f!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  g=f) Nr T))ukönig.idn.pythontest.netxn--knig-5qa.idn.pythontest.net)rYrY)sxn--knig-5qa.idn.pythontest.netrY)u(königsgäßchen.idna2003.pythontest.net.xn--knigsgsschen-lcb0w.idna2003.pythontest.net)rZrZ)s.xn--knigsgsschen-lcb0w.idna2003.pythontest.netrZ).xn--knigsgchen-b4a3dun.idna2008.pythontest.netr[)s.xn--knigsgchen-b4a3dun.idna2008.pythontest.netr[r5rr6zpython.example.orgz.pythontest.netsknig.idn.pythontest.net)!rrrrrr rqrer IDNSANSFILErfrrrrrrDrrrrrr6r=rrZrr?r rPr UnicodeErrorUnicodeDecodeError) rr#rr idn_hostnamesrexpected_hostnamer<rrs r%r,%ThreadedTests.test_check_hostname_idn< s ?? JJ  T "(?(?@&&{3..!8!89!//!%%%j1 .3@ .O'tLF((9H)JMN$$Q%6%68IJIItV[[12==?D$$Q%6%68IJOOD*GH J3@$N4H $$V]]_5I%KNO&&s';';<IItV[[12=K ~d Cv$ 99$? ]#   l +    AR  S , # D ~d Cv$ 99$? ]#   0 1     >   2 # D C7JJ=<KKV , + ## D C" 2 1 ## D Cs$L1MM( (NN $M:N  N$(O O"$N/OO L. )L11 M  M M M% M(( M7: N N  N N N,/ N= 9O O O Oc^[5upnUR[5 [RUl[R RUl[USSS9nU UR[R"5US9nUR[UR45 URS5 SSS5 SSS5 g![R aAn["R$(a"[&R(R+SU-5 SnANaSnAf[,a`nUR.[.R0:wae["R$(a"[&R(R+SU-5 SnANSnAff=f!,(df  N=f!,(df  g=f)zConnecting 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. Trrz'Use of invalid cert should have failed!z SSLError is %r Nz socket.error is %r )rrr r rrrrprmrDrrrr6r=rBrrrrrrrur7r rrrrr<rrts r%r-#ThreadedTests.test_wrong_cert_tls12 s< 4C3D0&&x0%(%6%6"),)?)?&#"4$ **6==?;C+EHI E 4-. CD!EV<< ???JJ$$%9A%=> C77e...??JJ$$%=%AB  CEEVsa$$FF  !C +F <F F !7DF  F *AFF F  F  F F F,rc[5upnUR[5 [RUl[R RUl[R RUl[USSS9nU UR[R"5USS9nUR[UR45 UR[ S5 UR#S5 UR%S5 UR#S5 UR%S5 SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f) NTrFrsuppress_ragged_eofszsalert unknown ca|EOF occurred|TLSV1_ALERT_UNKNOWN_CA|closed by the remote host|Connection reset by peer|Broken pipedatarsshould have failed already)rrr r rrrrrTrDrrrr6r=rrurrOrEs r%r.#ThreadedTests.test_wrong_cert_tls13 s3B3D0&&x0%(%6%6"),)?)?&),)?)?&#"4$   ' ' 8@=B(DGH IItV[[) *'' t 56t  DV  DDVs=%E (8E AD>%E-E > E E E E  E.c^^^^^[R"5m[R"5m[R"5m[R"T[ 5mUUU4SjnUUUU4Sjn[R "US9nUR5 U"5 UR5 g!UR5 f=f)zdA brutal shutdown of an SSL server should raise an OSError in the client when attempting handshake. c>TR5 TR5 TR5upUR5 TR5 TR5 gr])rrrr)newsockrY listener_gonelistener_readyrs r%listener2ThreadedTests.test_rude_shutdown..listener sC HHJ    HHJMG MMO GGI    r'c,>TR5 [R"5nUR[T45 TR5 [ U5nTR S5 SSS5 g![ a Nf=f!,(df  g=f)Nz2connecting to closed SSL socket should have failed)rrrr6rrBru)rrrmrnr=rs r% connector3ThreadedTests.test_rude_shutdown..connector sx    !A 4,'""$T/2HIIRS!  !s/(B A5B5 B?BBB Br%N) r[rrrr4r6rrr )rrorrr]rmrnr=rs` @@@@r%test_rude_shutdown ThreadedTests.test_rude_shutdown s#*!) MMO&&q$/   T T   H -    K FFHAFFHs B..Cc[R(a[RR S5 [ R [ R5nUR[5 [ R [ R5n[USS9nU UR[R"5[S9nUR[ UR"45 UR%S5 SSS5 SSS5 g![ R&anSnUR)U[ R*5 UR-UR.S5 UR-UR0U5 SUS 3nUR3[5U5U5 [6R8"S [6R:5nUR3[5U5U5 SnANSnAff=f!,(df  N=f!,(df  g=f) Nr Tr5rzExpected connection failurez&unable to get local issuer certificater(z|CERTIFICATE_VERIFY_FAILED)z( certificate verify failed # OpenSSL | CERTIFICATE_VERIFY_FAILED # AWS-LC ))rrrrrr rqrerrrfrDrrrrr6r=rBrrUrBr verify_codeverify_messager{rrrr)rrrr<rrtrrs r%test_ssl_cert_verify_error(ThreadedTests.test_ssl_cert_verify_error s~ ?? JJ  T "(?(?@&&7..!8!89#N4H $$V]]_5M%ORS5IItV[[12II;< OV || 5BC))!S-I-IJ$$Q]]B7$$Q%5%5s;u$?@E$$T!We4JJ($$  E $$T!We44 5 OOVsI(G6G%2D 8G6 G"B;GG%G""G%% G3 /G66 Hcj[R(a[RR S5 [ S5(a)[ [R[RS5 [ [R[RS5 [ S5(a)[ [R[RS5 [ S5(a8[ [R[RS[R5 [ [R[RS[R5 [ S5(a8[ [R[RS[R5 [ S5(a8[ [R[RS[R5 [ [R[RS[R5 [ S5(a8[ [R[RS[R5 [ S5(a6[ [R[RS[RS9 [ [R[RS[R[R-S9 [ S5(a7[ [R[RS[RS9 gg)z:Connecting to an SSLv23 server with various client optionsr rFTr)rN)rrrrrrgrr rdrrrrrrrrs r%test_PROTOCOL_TLSThreadedTests.test_PROTOCOL_TLS s ?? JJ  T " 7 # # s//1C1CU K3++S-=-=tD 7 # # s//1C1CW M 7 # # s//1C1CUCL]L] ^3++S-=-=tSEVEVW 7 # # s//1C1CWcN_N_ ` 7 # # s//1C1CUCL]L] ^3++S-=-=tSEVEVW 7 # # s//1C1CWcN_N_ ` 7 # # s//1C1CU*-// ; 3++S-=-=t*-//COO*K M 7 # # s//1C1CU.1oo ? $r'rc\[R(a[RR S5 [ [ R[ RS5 [ [ R[ RS[ R5 [ [ R[ RS[ R5 [ [ R[ RS[ RS9 [ [ R[ RS5 g)z9Connecting to an SSLv3 server with various client optionsr rFrN) rrrrrrr rrrrdrrrs r%test_protocol_sslv3!ThreadedTests.test_protocol_sslv37 s ?? JJ  T "3--s/A/A7K3--s/A/A7CL]L]^3--s/A/A7CL]L]^3--s/?/?*-// ;3--s/A/A5Ir'rc|[R(a[RR S5 [ [ R[ RS5 [ [ R[ RS[ R5 [ [ R[ RS[ R5 [S5(a)[ [ R[ RS5 [ [ R[ RS[ RS9 g)z8Connecting to a TLSv1 server with various client optionsr rrFrN)rrrrrrr rrrrgrrdrrs r%test_protocol_tlsv1!ThreadedTests.test_protocol_tlsv1C s ?? JJ  T "3--s/A/A7K3--s/A/A7CL]L]^3--s/A/A7CL]L]^ 7 # # s1133E3Eu M3--s/?/?*-// ;r'rc[R(a[RR S5 [ [ R[ RS5 [S5(a)[ [ R[ RS5 [ [ R[ RS[ RS9 [ [ R[ RS5 [ [ R[ RS5 [ [ R[ RS5 g)z_Connecting to a TLSv1.1 server with various client options. Testing against older TLS versions.r TLSv1.1rFrN) rrrrrrr rrgrrdrrrs r%test_protocol_tlsv1_1#ThreadedTests.test_protocol_tlsv1_1P s ?? JJ  T "3//1E1EyQ 7 # # s33S5G5G O3//1A1A5*-*;*; = 3++S-A-A9M3//1E1EuM3//1E1EuMr'rpc,[R(a[RR S5 [ [ R[ RS[ R[ R-[ R[ R-S9 [S5(a)[ [ R[ RS5 [ [ R[ RS[ RS9 [ [ R[ RS5 [[ R5(aR[ [ R[ RS5 [ [ R[ RS5 [[ R 5(aS[ [ R[ R S5 [ [ R [ RS5 gg)z_Connecting to a TLSv1.2 server with various client options. Testing against older TLS versions.r TLSv1.2)rrrFrN)rrrrrrr rrrrgrrdrrjrrrs r%test_protocol_tlsv1_2#ThreadedTests.test_protocol_tlsv1_2` sA ?? JJ  T "3//1E1Ey*-//#//*I*-//#//*I L 7 # # s33S5G5G O3//1A1A5*-*;*; = 3++S-A-A9M C.. / / s33S5G5G O s1133G3G O C00 1 1 s33S5I5I5 Q s33S5I5I5 Q 2r'cSn[[SSSS9nSnU [R"5nURS5 UR [ UR 45 [R(a[RRS5 UGHn[R(a"[RRSU-5 U(a"WRU5 UR5nO"URU5 URS5nUR5R!5nUS:Xa]UR#S 5(aG[R(a"[RRS U-5 [%U5nSnGMUS :XabUR#S 5(aL[R(a"[RRS U-5 WR'5nSnGMo[R(dGM[RRS U-5 GM [R(a[RRS5 U(aWRS5 OURS5 U(aWR)5 OUR)5 SSS5 g!,(df  g=f)z6Switching from clear text to encrypted and back again.)smsg 1sMSG 2rtsMSG 3smsg 4rvsmsg 5smsg 6T)rrdrFr rr3rtsokz/ client: read %r from server, starting TLS... rvz- client: read %r from server, ending TLS... z client: read %r from server rrN)rDr rrrr6r=rrrrrrOrzrvrr/rrrr) rmsgsr<wrappedrrrrrs r% test_starttlsThreadedTests.test_starttlsv sc#H48+/59;  A MM$  IItV[[) *   &??JJ$$3f<>JJv&"iikGFF6NffTlGmmo++-[(S^^E-B-B ((N!"#,A.D"Gy(S^^E-B-B ((L!"# A#G ((=CE;>   !BC 9%y!  ]VVsHKB-K K c[U[S9n[R(a[R R S5 [[S5nUR5nSSS5 SnSURS3n[R[S9n[RR!XVS 9nUR#5R%S 5nU(ak['U5S :a\UR['U55n[R(a-[R R S [)U5U4-5 UR+5 UR-WU5 g!,(df  GN =f!UR+5 f=f) z8Using socketserver to create and manage SSL connections.rr rbNrhzhttps://localhost:z /test_ssl.pyrrCzcontent-lengthrz/ client: read %d bytes from remote server '%s' )rRrrrrrrrNr"rOr=r rIrurllibrequesturlopeninforrVrhrr)rr<rQrFrHurlrdlens r%test_socketserverThreadedTests.test_socketserver s"4/B ?? JJ  T " (D !QB" "6;;-|<,,J,? NN " "3 " 8 668<< 01DTQVVCI&??JJ$$Jr7F+,- GGI R #" ! GGIsE'3BE9' E69F c [R(a[RR S5 Sn[ [ 5nU [[R"55nURSUR45 [R(a"[RR SU-5 UR U5 UR5n[R(a"[RR SU-5 XAR5:wa>URSUSS[U5USSR5[U54-5 UR S 5 [R(a[RR S 5 UR5 [R(a[RR S 5 SSS5 g!,(df  g=f) z'Check the example asyncore integration.r r2r8rrrNrrrz client: connection closed. )rrrrrrr rrrr=rOr/rBrhr)rrr<rrs r%test_asyncore_server"ThreadedTests.test_asyncore_server sI ?? JJ  T "#H-  1A II{FKK0 1   /&8: GGFOffhG   !6!@A,,.( Ks|S\cr{((*CK99: GGI    !BC GGI   !AB)VVs F%G66 Hc  ^[R(a[RR S5 [ [ [R[R[ SSS9nU [[R"5S[ [ [RS9mTR[UR45 U4SjnU4SjnSTRS/[ 4S TR"SS /[ 4S TR$S/S 4/nS TR&S/4STR(SS /4SUS/4SUS/4/nSnUHupxpn Xg-R+S5n U"U /U Q76n SR-U5nUR/X"U 5US9 TR15nXR35:wa;UR5SR-XSS[!U5U SS[!U 5S95 MM UHunnpXg-R+S5n TRU 5 U"U 6nXR35:wa;UR5SR-XSS[!U5U SS[!U 5S95 MM SnTRU5 [=[!U55nUR/TR1S U5[!U55 UR/UU5 [>b^[>R@[!U5-nURCU5nTR%U5 UR/TR15U5 URE[FTRH5 URE[FTRJS/5 URE[FTRLS!5 URE[FTRN[=S!5/5 TR S"5 URE[6TR&S 5 URE[6TR0S 5 TRQ5 SSS5 g![6avnU (aUR5SR-US95 [9U5R;U5(d&UR5SR-UUS95 SnAGMiSnAGMpSnAff=f![6anU (aUR5SR-US95 [9U5R;U5(dUR5SR-UUS95 TR15 SnAGMMSnAff=f!,(df  g=f)#z Test recv(), send() and friends.r TFrrrrdrrrrrcF>[S5nTRU5nUSU$Nsd)rrw)brrs r% _recv_into0ThreadedTests.test_recv_send.._recv_into s&i( A%y r'cJ>[S5nTRU5upUSU$r)rry)rrrYrs r%_recvfrom_into4ThreadedTests.test_recv_send.._recvfrom_into s)i(ooa0 %y r'rzr{z some.addressr cgr]r^)rQs r%.ThreadedTests.test_recv_send..s4r'rvrxrwryPREFIX_asciizsending with {}rzpWhile sending with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d}) Nr)r$rnoutrninz>Failed to send with method <<{name:s}>>; expected to succeed. r#zFMethod <<{name:s}>> failed with unexpected exception message: {exp:s} )r$expzrWhile receiving with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d}) zAFailed to receive with method <<{name:s}>>; expected to succeed. rhrrtr))rrrrrrDr r rrerrrr6r=rzrhr{r rvrxrformatrrOr/rBrrbrrctypesc_ubytefrom_buffer_copyrr|r}r~rrr)rr<rr send_methods recv_methods data_prefix meth_name send_methrry ret_val_methrr#rrrt recv_methrbufferubyte byteslikers @r%test_recv_sendThreadedTests.test_recv_send s ?? JJ  T "#H-0]]030G0G,4+/5: <  ,1)1)1*--- 9A IItV[[) * !  !r3/188U^,C$HffhG,,.0 BBH&%. %(\'-cr{F CIC1&2>?K: 9n%199'BFF6N'.G,,.0 BBH&%. %(\'-cr{F CIC1 ?K@D FF4Ls4y)F   QVVB/T ;   VT *!T2!2248  )$  40   1155 9   1199wi H   1199c B   1nny~.> @ GGI    j!&&" 5   j!&&" 5 GGIwVf" % 55;VV5Kq6,,Y77 ;;A6%.A.BicSS- gNrUrr^rs r%__len__CThreadedTests.test_recv_into_buffer_protocol_len..B.__len__s !r'r^N)rrHrIrJrrPr^r'r%Brs r'rrsdata)rDr rrrr6r=rrrrzarrayrrwrr)rr<rr$rs r%"test_recv_into_buffer_protocol_len0ThreadedTests.test_recv_into_buffer_protocol_lens#H- &!  $ $dFKK%8 9  QU ;   wkk#1v& S)1- sBQ1    wd S)1- s[1r'c :^^[[[R[R[SSS9nU [ [ R "5S[[[RS9mTR[UR45 TRS5 [S5mUU4SjnUR[R[R4U5 TRS5 TR5 SSS5 g!,(df  g=f)NTFrri c,>TRT5 Mr])rz)r$rsr% fill_buffer8ThreadedTests.test_nonblocking_send..fill_buffersFF3Kr')rDr r rrerrrr6r=rrrrrr)rr<rr$rs @@r%test_nonblocking_send#ThreadedTests.test_nonblocking_sends#H-0]]030G0G,4+/5: <  ,1)1)1*--- 9A IItV[[) * MM% D/C    s44"3356A C MM$  GGI)VVs C D  Dc^^^[R"[R5mSn[R"T5n[R "5mSmUUU4Sjn[R "US9nUR5 TR5 [R"[R5nURS5 URX45 UR[S[U5 UR5 [R"[R5n[U5nURS5 UR[SURX45 UR5 SmUR5 TR5 g!WR5 f=f!UR5 f=f!SmUR5 TR5 f=f)Nr8Fc&>TR5 TR5 /nT(dN[R"T///S5upnTU;a"URTR 5S5 T(dMNUHnUR 5 M g)Nrr)rrrrrr)connsr=wrtrfinishr<starteds r%serve3ThreadedTests.test_handshake_timeout..servess MMO KKME --"b#>aQ;LL!34 f  r'r%r z timed outT)rrirr4r[rrrrrrrrrrr ) rrr=rr]rrr<rs @@@r%test_handshake_timeout$ThreadedTests.test_handshake_timeoutsZv~~.&&v.//#    E *     MM&..1 S! 4,'&&|['7<  MM&..1$Q' S!&&|['(yy4,@ F FFH LLN  F FFH LLNs8A#F 8G A#F5,G F22G 5GG $G.cP^ ^ ^ ^ [5upn[R"[R5m Sn[R"T 5nUR T SS9m UR T R5 [R"5m Sm Sm U U U U 4Sjn[R"US9nUR5 T R5 UR [R"5US9nURX545 URS5 UR5 UR!5n UR#5 UR%5 T R#5 T R#5 UR'T [(R*5 UR-T U 5 g)Nr8Trbc>TR5 TR5 TR5ummTRTR S55 g)NrL)rrrrzrv)evtpeerremoter<sr%r/ThreadedTests.test_server_accept..serves8 MMO GGI!==?LFD KK A 'r'r%rrh)rrrirr4rrZrr[rrrrrrzrvrrr rUr rr)rrrrrr=rr]r client_addrrrrr<s @@@@r%test_server_accept ThreadedTests.test_server_accepts@,;+<( v~~.&&v.''D'A **+oo ( (   E *    '' MMOX(  '( G ((*      fcmm4 {+r'c[R[R5nSUlUR [ R "55nUR [5nUR5 SSS5 URWRR[R5 SSS5 g!,(df  NK=f!,(df  g=fr) r rqrfrrrrrurrrr7ENOTCONNrrrrs r%test_getpeercert_enotconn'ThreadedTests.test_getpeercert_enotconn s..!8!89!&   1T""7+r  ",   R\\// @2 1++2 1$C %B;6[5upn[RRUlUR S5 UR S5 [ US9nUR[R"5US9nUR[5 UR[UR45 SSS5 SSS5 SSS5 URSWRS5 g!,(df  N>=f!,(df  NG=f!,(df  NP=f)NAES128AES256rCrNO_SHARED_CIPHERr)rr rrprmrXrDrrrrurr6r=rrhrEs r%test_no_shared_ciphers$ThreadedTests.test_no_shared_cipherss3B3D0),)?)?&""8,""8,  76++FMMOE AE E E E,c[5upn[RRUl[ US9nUR [R"5US9nUR[UR45 URUR5S1Sk5 URUR5S5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)NrCrr>TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256r()rr rrrTrDrrrr6r=rr*rr<rEs r% test_tls1_3ThreadedTests.test_tls1_3=s3B3D0),)?)?&  76++FMMO :C Crrc[R(a[RR S5 [ 5upn[ RRUl [USSS9nU UR[R"5US9nUR[UR45 UR!S5n[R(a.[RR SR#U55 UR%U5 UR'5S:XaUR)[+U5S 5 OUR)[+U5S 5 UR S 5 UR-5R/5nUR)U[1U5R3S 55 S S S 5 UR[R"5US9nUR[UR45 UR!S5n[R(a.[RR SR#U55 UR5WU5 UR%U5 UR'5S:XaUR)[+U5S 5 OUR)[+U5S 5 UR S 5 UR-5R/5nUR)U[1U5R3S 55 S S S 5 S S S 5 g !,(df  GN=f!,(df  N)=f!,(df  g =f)z Test tls-unique channel binding.r TFrrrz! got channel binding data: {0!r} r(0 sCB tls-unique rwNz(got another channel binding data: {0!r} )rrrrrrr rrprmrDrrrr6r=rrr,r<rrhrOrrrassertNotEqual) rrrrr<rcb_datapeer_data_repr new_cb_datas r%r-ThreadedTests.test_tls_unique_channel_bindings ?? JJ  T "3B3D0*-)?)?&#N+/5:<++MMO$,,.12 4-.// =??JJ$$<CCGLN$$W-99;)+$$S\26$$S\26*+!"!1  !%g!5!5j!AC).0 ++MMO$,,.12 4-.33LA ??JJ$$CJJ') ##G[9$$W-99;)+$$S\26$$S\26*+!"!1  !%k!2!9!9*!EG'.3V..0..3Vs>.$MD+L6=+M(D=M%M6 M M M M M'c[5upn[XSSUS9n[R(a1[R R SRUS55 URUS1Sk5 g)NTrdrrz got compression: {!r} r>NRLEZLIB) rr rrrrrrrrrrrrAs r%test_compressionThreadedTests.test_compressionsc3B3D0">*.,46 ?? JJ  7>>u]?ST U eM*,CDr'rFz*ssl.OP_NO_COMPRESSION needed for this testc[5upnU=R[R-slU=R[R-sl[ XSSUS9nUR USS5 g)NTrr)rrr rFr rr"s r%test_compression_disabled'ThreadedTests.test_compression_disabledsi4C3D0#"7"77#"7"77">*.,46 eM*D1r'c|[5upnU=R[R-sl[ XSSUS9 gNTrrrr rEr rrrrs r%test_legacy_server_connect(ThreadedTests.test_legacy_server_connects83B3D0#">">>>*.,4 6r'c~[5upnU=R[R)-sl[ XSSUS9 gr)r*r+s r%test_no_legacy_server_connect+ThreadedTests.test_no_legacy_server_connects;3B3D03#?#?"??>*.,4 6r'cN[5upn1Skn[X5(a[X$5(dURS5 [RR UlUR[5 URS5 [RR Ul[XSSUS9nUSSnURS 5nURU5(dURS US-5 gg![a [(aURS5 ef=f) N>ADHDHEEDHz#libssl doesn't support ephemeral DHrkEDHTrr*rrFzNon-DH key exchange: )rrr0r rrprmrrrrrXr rKryrB)rrrr dhe_aliasesrAr*partss r%test_dh_paramsThreadedTests.test_dh_paramss4C3D0+ !.>>%nBB MM? @),)?)?&   ) )& 1 ""6*),)?)?&">*.,46x# S!''.. II-q 9 :/ ~ BC  s #C<<(D$c [5upnURS5 URS5 [RR Ul[XSSUS9n[5upnURS5 URS5 [RR Ul[XSSUS9n[5upnURS5 URS5 URS5 [RR UlUR[R5 [XSSUS9 SSS5 g!,(df  g=f)N secp384r1zECDHE:!eNULL:!aNULLTrr) rrrXr rrprTr rrr"s r%test_ecdh_curveThreadedTests.test_ecdh_curves"3B3D0%%k2""#89),)?)?&">*.,46 4C3D0%%k2""#89),)?)?&">*.,46 4C3D0%%l3%%k2""#89),)?)?&   s|| , ~&*T(0 2- , ,s 3 E  Ec`[5upn[XSSUS9nURUSS5 g)NTrr)rr rr"s r%test_selected_alpn_protocol)ThreadedTests.test_selected_alpn_protocol<s93B3D0">*.,46 e23T:r'c[5upnURSS/5 [XSSUS9nURUSS5 g)NrbarTrr)rrr rr"s r%/test_selected_alpn_protocol_if_server_uses_alpn=ThreadedTests.test_selected_alpn_protocol_if_server_uses_alpnDsK3B3D0))5%.9">*.,46 e23T:r'c /SQnSS/S4SS/S4S/S4SS/S4/nUHup4[5upVnURU5 URU5 [UUSSUS9nS [ U5<S [ U5<S [ U5<S 3n US n UR XXS4-5 [US5(aUSSOSn UR XXS4-5 M g![Ra n U nSn A NSn A ff=f)N)rrB milkshakerrBrFzhttp/3.0zhttp/4.0Trzfailed trying z (s) and z (c). was expecting z, but got %s from the %srrrrnothingr<)rrr r rrbrrh) rserver_protocolsprotocol_testsclient_protocolsrrrrrArtr client_result server_results r%r(!ThreadedTests.test_alpn_protocolsMsA6U^U #U^U #]K (* %t ,   +9 & 7F7H 4NH  - -.> ?  - -.> ? *>+926<@4< >+,c2B.CH 'C""89M   ] 8#<< >u4566""9:2>/+9<<  s CC;/C66C;cgr]r^rs r%test_npn_protocols ThreadedTests.test_npn_protocolsosr'cZ[R[R5nUR[5 [R[R5nUR[ 5 [R[R 5nUR[5 XU4$r]) r rqrerrrrfrr)rr other_contextrs r% sni_contextsThreadedTests.sni_contextsrst(?(?@&&7s'>'>? %%&67(?(?@,,Z8n<USnURSU44US5 g)Nrr1r:)r)rrAr$rs r%check_common_nameThreadedTests.check_common_name{s&Z  d+-tI?r'c^^/mUR5unmnSUlUU4SjnURU5 [X!SSS9nUR TSU4/5 UR US5 /m[X!SSS9nUR TSU4/5 UR U[ 5 /mURS5 [X!SSS9nUR U[ 5 UR T/5 g)NFc@>TRX45 UbTUlggr])rr)rrrcallsrRs r%r6ThreadedTests.test_sni_callback..servername_cbs% LL+7 8� 'r'T supermessagerdrrBnotfunny)rSrr#r rrVr)rrrrrArZrRs @@r%r$ThreadedTests.test_sni_callbacks8<8I8I8K5 ~(-% 1 ..}=">*.,:< ..!A BC un5">*.,02 $!7 89 u&>?..t4">*.,68 u&>? #r'c&UR5upnSnURU5 UR[R5n[ X1SSS9nSSS5 UR WRRS5 g!,(df  N5=f)Nc"[R$r])r ALERT_DESCRIPTION_ACCESS_DENIEDr s r%cb_returning_alertAThreadedTests.test_sni_callback_alert..cb_returning_alerts66 6r'Fr\r]TLSV1_ALERT_ACCESS_DENIED) rSr#rr rr rrr|)rrrRrrcrrAs r%test_sni_callback_alert%ThreadedTests.test_sni_callback_alerts{8<8I8I8K5~ 7../AB   s|| ,&~.30>@E- ,,.IJ - ,s  B Bc UR5upnSnURU5 [R"5nUR [ R 5n[X1SSS9nSSS5 SnURWRRU5 URURR[5 SSS5 g!,(df  Ni=f!,(df  g=f)NcSS- grr^r s r% cb_raising;ThreadedTests.test_sni_callback_raising..cb_raisings aCr'Fr\r]z0(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE))rSr#rcatch_unraisable_exceptionrr rr r{rr|r unraisableexc_typeZeroDivisionError) rrrRrrjcatchrrArs r%test_sni_callback_raising'ThreadedTests.test_sni_callback_raisings8<8I8I8K5~ ..z:  / / 1U""3<<0B*>274BD1 GE   R\\00% 8   U--668I J2 1002 1s$ C C )AC C C C+c UR5upnSnURU5 [R"5nUR [ R 5n[X1SSS9nSSS5 URWRRS5 URURR[5 SSS5 g!,(df  Ng=f!,(df  g=f)Ncg)Nrr^r s r%cb_wrong_return_typeOThreadedTests.test_sni_callback_wrong_return_type..cb_wrong_return_typesr'Fr\r]TLSV1_ALERT_INTERNAL_ERROR)rSr#rrlrr rr rrr|rmrnr)rrrRrrurprrAs r%#test_sni_callback_wrong_return_type1ThreadedTests.test_sni_callback_wrong_return_types9=8I8I8K5~ ../CD  / / 1U""3<<0B*>274BD1   R\\002N O   U--66 B2 1002 1s$ C C )AC C C C)c8^ [5upnURS5 URS5 /SQn[XUS9nUSSnUR[ U5S5 UH3um px[ U 4SjU55(aM"UR T 5 M5 g)Nz AES128:AES256z AES256:eNULL)rzAES-256 TLS_CHACHA20TLS_AESrrrc3,># UH oT;v M g7fr]r^)rnalgr$s r%ro4ThreadedTests.test_shared_ciphers..s2 #>,46/03 3w<+'. #D+$E",46 "  # 7<<+ 7??A. **+ 777; /01"002  8,a0 6*A.#>+2G"002  8,a0 6*A. ./0# gjj1 + +  w||<  0 0'//B#>,46 /01# HKK4 H."002  8,a0 6*A.#>+2G ./0# gjj1 +  w||<  0 0'//B"002  8,a0 6*A.r'c[5upn[5un n[RRUl[RRUl[ USS9nU UR [R"5US9nURURS5 URURS5 UR[UR45 URnURU5 UR[ 5n ["Ul SSS5 UR[%W R&5S5 SSS5 UR [R"5US9nUR[UR45 UR[(5n WUl SSS5 UR[%W R&5S5 SSS5 UR [R"5US9nWUl UR[UR45 URURR*UR*5 URURU5 URURS5 SSS5 UR [R"5US9nUR[(5n WUl UR[UR45 SSS5 UR[%W R&5S5 SSS5 SSS5 g!,(df  GN/=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  g=f)NFr5rzValue is not a SSLSession.z#Cannot set session after handshake.Tz)Session refers to a different SSLContext.)rr rrprmrDrrrrrrr6r=rZrrrrbrrr) rrrrclient_context2rr<rrrts r%test_session_handling#ThreadedTests.test_session_handlingAs3B3D0 / 1A*-)?)?&*-..*@*@'#N5I ++FMMOO Oz&TLS-PSK disabled on this OpenSSL buildc^^^^ ^ [RS5m [R[R5nSUl[R Ul[RRUl URS5 URU 4Sj5 [R[R5n[RRUl URS5 URU 4Sj5 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 [RS5m URU 4Sj5 [US9nU UR!["R""55nTR+[R,5 UR%[&UR(45 SSS5 SSS5 SSS5 S mS mUUU U4S jnUU U4S jnURU5 URUT5 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 TR/[R,S 5 URUT5 SSS5 TR/[R,S5 URU5 SSS5 SmSmURU5 URUT5 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 g!,(df  GNd=f!,(df  GNn=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GNp=f!,(df  GNz=f!,(df  GNQ=f!,(df  GN)=f!,(df  N=f!,(df  g=f)NdeadbeefFrac >ST4$r]r^)hintpsks r%r(ThreadedTests.test_psk..}s T3Kr'c>T$r]r^)identityrs r%rrsr'rCcafebabec >ST4$r]r^)r incorrect_psks r%rrs T=TRUT5 TT4$r]r)rclient_identity identity_hintrrs r%client_callback/ThreadedTests.test_psk..client_callbacks   T= 1"C' 'r'c,>TRUT5 T$r]rrrrrs r%server_callback/ThreadedTests.test_psk..server_callback   X 7Jr'zCannot add PSK server callbackzCannot add PSK client callbacku 身份暗示u 客户身份)rfromhexr rqrfrrrrrprmrXset_psk_client_callbackreset_psk_server_callbackrDrrrr6r=rrr) rrrr<rrrrrrrs ` @@@@r%test_pskThreadedTests.test_pskss mmJ'(?(?@(-%%(]]"),)?)?&""5)../GH(?(?@),)?)?&""5)../CD$N; ++FMMO< 4-.=  j1 ../QR#N; ++FMMO<&&s||4IItV[[125= ( + ( (  ..?.. N#N; ++FMMO< 4-.=  # #CLL2R S  2 2?M RT  # #CLL2R S  2 2? CT' (..?.. N#N; ++FMMO< 4-.=VY=<V54=<V*=<V T S S S=<Vs%O7"N6O%O> O,#"OO, O> %P""P'P"P4Q%Q)"Q%Q)6 O O O O) $O,, O; 6O>> P  P P"" P14 Q Q Q& "Q)) Q7c,^^^ [RS5m SnSmUU U4SjnUU U4Sjn[R[R5nSUl[R Ul[RRUl URS5 URU5 [R[R5n[RRUl URS5 URX15 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 g!,(df  N=f!,(df  g=f) Nrrrc.>TRU5 TT4$r])r)rrrrs r%r6ThreadedTests.test_psk_tls1_3..client_callbacks   d #"C' 'r'c,>TRUT5 T$r]rrs r%r6ThreadedTests.test_psk_tls1_3..server_callbackrr'FrarC)rrr rqrfrrrrrrTrXrrerrDrrrr6r=) rrrrrrr<rrrs ` @@r%test_psk_tls1_3ThreadedTests.test_psk_tls1_3smmJ'' + (  (?(?@(-%%(]]"),)?)?&""5)..?(?(?@),)?)?&""5)..N#N; ++FMMO< 4-.=V<<Vs$%F"E4#F4 F >F Fr^N)T)PrrHrIrJrrLr rwrLPy_GIL_DISABLEDr2r)r*rTr rrrMrorSrVr,r-rr.rtrzr}rrrrrrrrrrrrrrrrrrrmrr r rrrMrr#rVr&r,r/r8r<r?rCr(rOrSrVr$rfrqrxrrrrrHAS_PSKrrrPr^r'r%rr s z**"+*"X002^_&*`&*P"/H+EZ#2J '')T33*@*)MOEOE<@4N`#EJ)$%8'R5>?B'" J# J'" ;# ;)$ N% N)$R%R*7r!4C:FP6&2*:/b&,PAA A-&)$ 9% 9)$'" 9#% 9)$ 9% 9)$'"D#%D '" 7# 75")B)BBEG<GG<G|E&9:EG2G266;42>;; >D=@&$P KK&C& $ = >7/r0Nd)$ &NO@/P%@/D)$ &NO/P%/r'rrzTest needs TLS 1.3c\\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrg)TestPostHandshakeAuthic[R[R/nUGHbn[RU5nUR UR S5 SUlUR UR S5 [R UlUR UR[R 5 UR UR S5 SUlUR UR[R 5 UR UR S5 [RUlSUlUR UR[R5 UR UR S5 GMe grW) r rerfrqrpost_handshake_authrrr)rrrirZs r%test_pha_setter%TestPostHandshakeAuth.test_pha_setters"  # #S%<%< "H..*C   S44e <&*C #   S44d ;!//CO   S__c.?.? @   S44d ;&+C #   S__c.?.? @   S44e <!//CO&*C #   S__c.?.? @   S44d ;%"r'c[5upnSUl[RUlSUlUR [ 5 [USS9nU UR[R"5US9nUR[UR45 URS5 URURS5S5 URS5 URURS5S 5 URS5 URURS5S 5 URS5 URURS5S 5 URS 5 URS 5R!S 5nUR#SU5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)NTFr5rrzr3r|ryrur{r}irwr=)rrr rrrrrDrrrr6r=rrrvdecoder)rrrrr<r cert_texts r%test_pha_required'TestPostHandshakeAuth.test_pha_requiredsd3B3D0-1*%(%6%6"-1*&&7#N5I ++FMMOG Gc[5upnSUl[RUlSUlSnXBlXAl[ USS9nU UR[R"5USS9nUR[UR45 URS5 UR[S5 URS5nUR!US 5 URS 5 URS5 SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f) NTc[R(a?U[R:Xa*XX#XE4n[R R SU<S35 ggg)NzTLS: r )rrrALERTrrr)r directionr< content_typemsg_typerrs r%msg_cb>TestPostHandshakeAuth.test_pha_required_nocert..msg_cbsE %D;1A D*:ADD*D; D' #D** D8 4D;; E cT[R(a[RR S5 [ 5upnSUl[RUl SUlUR[5 [RUl [USS9nU UR[R"5US9nUR!["UR$45 UR S5 UR'UR)S5S5 UR S 5 UR'UR)S5S 5 UR S5 UR'UR)S5S 5 SSS5 SSS5 g!,(df  N=f!,(df  g=f) Nr TFr5rrzr3r|ryrur{)rrrrrrrr rrrrrrDrrrr6r=rrvrEs r%test_pha_optional'TestPostHandshakeAuth.test_pha_optional5s7 ?? JJ  T "3B3D0-1*%(%6%6"-1*&&7&)%6%6"#N5I ++FMMO#J ,D1r'rkeylog_filenamez0test requires OpenSSL 1.1.1 with keylog callbackc\rSrSr\R 4Sjr\S5r\S5r \\ R"\ RRS5S55rSrSrS rS rg ) TestSSLDebugicv[U5n[[U55sSSS5 $!,(df  g=fr])rNrhr)rfnamerQs r% keylog_linesTestSSLDebug.keylog_liness %[AtAw<[[s* 8cUR[R[R5 [R [R 5nURURS5 UR[RR[R55 [RUlURUR[R5 UR![RR[R55 URUR#5S5 SUlURURS5 UR%[&[(45 [RR+[RR-[R55UlSSS5 UR%[.5 SUlSSS5 g![a [(aURS5 ef=f!,(df  N_=f!,(df  g=f)NrrU)rrrrr rqrfrrrrrisfilerrr0rZr rIsADirectoryErrorPermissionErrorr!abspathrr]s r%test_keylog_defaults!TestSSLDebug.test_keylog_defaultss  (()*:*:;nnS445 ,,d3  (8(89: "+"2"2C  ,,i.>.>? y'7'789 **,a0" ,,d3    1?C D"$''// 0 01#3C E   y )"#C * )! ~ BC  E D * )s%+HAH-1H>(H*- H;> I cUR[R[R5 [ 5upn[RUl[USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 URUR!5S5 SUl[RUl[USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 UR#UR!5S5 [RUl[RUl[USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 UR#UR!5S5 SUlSUlg![ a [(aURS5 ef=f!,(df  GN=f!,(df  GN=f!,(df  GNA=f!,(df  GNK=f!,(df  N=f!,(df  N=f)NrFr5rr )rrrrrrrrr0rDrrrr6r=rr rrEs r%test_keylog_filename!TestSSLDebug.test_keylog_filename9s*  (()*:*:;3B3D0 -6-=-=N * $N5I ++FMMOMM"FG 2 1s&&BF)9E> A(F)>(F&&F)) F7c[5upnSnURURS5 XAlURURU5 UR[5 [ 5UlSSS5 g!,(df  g=f)Ncgr]r^rrr<rrrs r%r.TestSSLDebug.test_msg_callback..msg_cb|r"r')rrrrrr)rrrrrs r%test_msg_callbackTestSSLDebug.test_msg_callbackysh3B3D0  n22D9'-$ n22F;   y )+18N (* ) )s $A== B c^^[5upn[RRUl/mUU4SjnXAl[ USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 TRS[R[R[R 4T5 TRS[R[R"[R"4T5 g!,(df  N=f!,(df  N=f)Nc>TRU[R5 TRU[5 TR USS15 TR XX445 g)NrOr)rUr rrrr)rrr<rrrrrs r%r4TestSSLDebug.test_msg_callback_tls12..msg_cbsK  ! !$ 6  ! !$ . MM)fg%6 7 JJ LC Dr'Fr5rrOr)rr rrprmrrDrrrr6r=rr HANDSHAKErSERVER_KEY_EXCHANGECHANGE_CIPHER_SPEC)rrrrrr<rrs` @r%test_msg_callback_tls12$TestSSLDebug.test_msg_callback_tls12s3B3D0),)?)?& E (.$#N5I ++FMMO.msg_cbr"r'c>TUlgr]rC)rrrZserver_context2s r%sni_cb@TestSSLDebug.test_msg_callback_deadlock_bpo43577..sni_cbs *DLr'Fr5r) rr sni_callbackrDrrrr6r=) rrrrrr4r<rr3s @r%#test_msg_callback_deadlock_bpo435770TestSSLDebug.test_msg_callback_deadlock_bpo43577s3B3D0)+A.  +(.$&,##N5I ++FMMO/r'r c UR[R[R[R "SSS55 g)NiirUr) setsockoptr SOL_SOCKET SO_LINGERstructpackrs r%)set_socket_so_linger_on_with_zero_timeoutrDs+OOF%%v'7'7T1a9PQr'cZ\rSrSrSr"SS\R 5rSrSr Sr Sr S r g ) TestPreHandshakeCloseizQVerify behavior of close sockets with received data before to the handshake. cN^\rSrSrSS.U4SjjrSrSrU4SjrSrS r U=r $) 6TestPreHandshakeClose.SingleConnectionTestServerThreadiN)rc>X lSUlSUlSUlSUlUc[ R UlOX0l[TU]%US9 g)Nr'r#) call_after_accept received_data wrap_errorror=rrrsuperr\)rr$rJrrs r%r\?TestPreHandshakeClose.SingleConnectionTestServerThread.__init__sM%6 "!$D "DO DMDI&44 & G $  'r'c&UR5 U$r])rrs r%r@TestPreHandshakeClose.SingleConnectionTestServerThread.__enter__s JJLKr'cUR(aURR5 UR5 SUlg![a N$f=fr])rorrur rLrs r%r?TestPreHandshakeClose.SingleConnectionTestServerThread.__exit__sD ==MM'') IIK"DO  s+A AAc@>[R[RR5Ul[R URlURR[S9 URR[[S9 [R"5Ul [R"UR5UlURR!UR"5 URR%S5 [&TU]Q5 g)NrrrU)r rIrr ssl_ctxrrrrrrrrorr4r=rrrrMr)rrs r%rDI MM $ $T\\ 2 MM  # GMOr'c<URR5upURR5 U UR U5(a SSS5 gUR R USS9nURS5UlSSS5 g![a URR5 gf=f!URR5 f=f![a N^f=f![anX@l SnANwSnAff=f!,(df  g=f)NTrb) rorrrrJrTrrvrKrurL)rraddress tls_socketrs r%r:TestPreHandshakeClose.SingleConnectionTestServerThread.runs & $ 4 4 6 g  ##%))$//!%!9!9$D!9!QJ-7__S-A*    ##%   ##%# *&)OO* spBD C08C  B>!C=B>>CC C-*D ,C--D 0 D :DD D  D  D)rJror=rKrTrrL) rrHrIrJr\rrrrrP __classcell__)rs@r% SingleConnectionTestServerThreadrHs)?C ( (  #   r'r\c [RS;ag[U[5(dr[U[5(aUR [ R :Xd?[R"S[[USS55[R5(a*URS[RSU<35 Sngg!Snf=f)N)linuxandroidzwrong.version.numberr|rhz!Could not recreate conditions on z: err=) rrNrarerur7EINVALrsearchrbrcrr0rs r%"non_linux_skip_if_other_okay_error8TestPreHandshakeClose.non_linux_skip_if_other_okay_errors <</ /  s0 1 1 W % %#))u||*C II,c'#x2L.Mrtt T T  A#,,P'"%)* Us &CC c(^^[R"5m[R"5mUU4SjnURUSS9nURU5 [R"5nUR UR R55 [U5 URS5 TR5 URS5 UR5 SSS5 TR5 UR5 URnSUlUR!SUR"5 UR%U[&5 UR)U5 UR%U[*R,5 UR/SUR0S5 UR/SUR25 UR5S UR0S 5 UR7UR8S S 9 SnSng!,(df  GN=f!SnSnf=f) Nc>TR5 TR[R5(d [ S5eg)Nz+wrap_socket event never set, test may fail.F)rrrrr)unusedready_for_server_wrap_socketserver_accept_calleds r%rJPTestPreHandshakeClose.test_preauth_data_to_tls_server..call_after_accepts5 $ $ &/44W5J5JKK"#PQQr'preauth_data_to_tls_serverrJr$FsDELETE /data HTTP/1.0 r'before TLS handshake with datarUrattr must existr)r[rr\rrrrorrDrrrzrrr rLrrKrUrurbr rrryr|rrrz)rrJr<rrLrgrhs @@r%test_preauth_data_to_tls_server5TestPreHandshakeClose.test_preauth_data_to_tls_servers(0'0'8$  66"3173 &! ]]_ NN6??668 9 5f =   u % % % ' KK8 9 LLN %((* &&      S&"6"6 7  ! !*g 6  3 3J ?  ! !*cll ; MM:JOOAR@"U5 SnSSS5 Sng![&anUnSnSnAGNSnAff=f!,(df  GN-=f!,(df  N?=f![>R@"U5 SnSSS5 Snf!,(df  Snf=f=f)Nc>TR[R5(d [S5 [ U5 UR S5 UR 5 TR5 g)Nz ERROR: test client took too longsWHTTP/1.0 307 Temporary Redirect Location: https://example.com/someone-elses-server T)rrrrrDrzrr)conn_to_client$client_can_continue_with_wrap_socket$server_can_continue_with_wrap_sockets r%rJPTestPreHandshakeClose.test_preauth_data_to_tls_client..call_after_acceptHs]7<\rSrSrU4SjrSrg)eTestPreHandshakeClose.test_https_client_non_tls_response_ignored..SynchronizedHTTPSConnectionicn>[RRRU5 TR [ R 5(d4[ R(a[RRS5 URRURURS9Ul g)Nz"server_responding event never set.r)httprHTTPConnectionrrrrrrrr_contextrrr)rserver_respondings r%rmTestPreHandshakeClose.test_https_client_non_tls_response_ignored..SynchronizedHTTPSConnection.connectsw **2248)--g.C.CDDJJ$$%IJ MM55 4996> r'rCN)rrHrIrJrrP)rsr%SynchronizedHTTPSConnectionr|s  > >r'rc~>[U5 URS5 UR5 TR5 g)Ns!HTTP/1.0 402 Payment Required T)rDrzrr)rrrs r%rJ[TestPreHandshakeClose.test_https_client_non_tls_response_ignored..call_after_accepts; 5n E      "  ! ! #r'g@non_tls_http_RST_responder)rJr$rr)r=rrHEADz/testHostr2)headers)r[rr~rHTTPSConnectionr\rrDrorr=r rIr rPrrur getresponser )rrrJrr< connectionresponsers @r%*test_https_client_non_tls_response_ignored@TestPreHandshakeClose.test_https_client_non_tls_response_ignoreds%OO- >$++*E*E > 66"317! &!1&//B0++-a0[[224   6 6t <!!'*   vw8M  N!--/H+=  +*= ($D- D>- D; 7D>> E r^N) rrHrIrJr;r[rr\rbrnrxrrPr^r'r%rFrFs0:9+;+;:x2*X9v3r'rFcP\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg )TestEnumerationsicl"SS[R5n[R"U[5 g)Nc\rSrSr\R r\Rr\Rr \Rr \Rr\Rr\R"rSrg);TestEnumerations.test_tlsversion..CheckedTLSVersionir^N)rrHrIrJrPROTO_MINIMUM_SUPPORTEDrr PROTO_SSLv3r PROTO_TLSv1r PROTO_TLSv1_1r PROTO_TLSv1_2rp PROTO_TLSv1_3rPROTO_MAXIMUM_SUPPORTEDrsrPr^r'r%CheckedTLSVersionrsQ $ < < $$E$$E((G((G((G $ < < r'r)enumIntEnum_test_simple_enumr)rrs r%test_tlsversion TestEnumerations.test_tlsversions% =  = 0*=r'cl"SS[R5n[R"U[5 g)Nc0\rSrSrSrSrSrSrSrSr Sr S r g ) DTestEnumerations.test_tlscontenttype..Checked_TLSContentTypeiz8Content types (record layer) See RFC 8446, section B.1 rrrMr^N) rrHrIrJr;r,rr*APPLICATION_DATAHEADERINNER_CONTENT_TYPErPr^r'r%Checked_TLSContentTypers* "$ EI! F!& r'r)rrrr)rrs r%test_tlscontenttype$TestEnumerations.test_tlscontenttypes% 'T\\ ' 5Gr'cl"SS[R5n[R"U[5 g)Nc\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'g&)'@TestEnumerations.test_tlsalerttype..Checked_TLSAlertTypeizIAlert types for TLSContentType.ALERT messages See RFC 8466, section B.2 r rrr()rT+,-./r123<FGPVZrtmnopqrstxr^N)(rrHrIrJr; CLOSE_NOTIFYUNEXPECTED_MESSAGEBAD_RECORD_MACDECRYPTION_FAILEDRECORD_OVERFLOWDECOMPRESSION_FAILUREHANDSHAKE_FAILURENO_CERTIFICATEBAD_CERTIFICATEUNSUPPORTED_CERTIFICATECERTIFICATE_REVOKEDCERTIFICATE_EXPIREDCERTIFICATE_UNKNOWNILLEGAL_PARAMETER UNKNOWN_CA ACCESS_DENIED DECODE_ERROR DECRYPT_ERROREXPORT_RESTRICTIONPROTOCOL_VERSIONINSUFFICIENT_SECURITYINTERNAL_ERRORINAPPROPRIATE_FALLBACK USER_CANCELEDNO_RENEGOTIATIONMISSING_EXTENSIONUNSUPPORTED_EXTENSIONCERTIFICATE_UNOBTAINABLEUNRECOGNIZED_NAMEBAD_CERTIFICATE_STATUS_RESPONSEBAD_CERTIFICATE_HASH_VALUEUNKNOWN_PSK_IDENTITYCERTIFICATE_REQUIREDNO_APPLICATION_PROTOCOLrPr^r'r%Checked_TLSAlertTypers L!# N "  O$& ! " N O&( #"$ "$ "$  " JMLM!# ! $& !N%' "M"  # $' !'* $ # .1 +), &#& #& &) #r'r)rrrr)rrs r%test_tlsalerttype"TestEnumerations.test_tlsalerttypes&& *4<<& *N 3]Cr'cl"SS[R5n[R"U[5 g)Ncp\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrg)DTestEnumerations.test_tlsmessagetype..Checked_TLSMessageTypeiz>Message types (handshake protocol) See RFC 8446, section B.3 rrUrrrLr*rr&rr rOrrrrrCrr^N)rrHrIrJr; HELLO_REQUEST CLIENT_HELLO SERVER_HELLOHELLO_VERIFY_REQUESTNEWSESSION_TICKETEND_OF_EARLY_DATAHELLO_RETRY_REQUESTENCRYPTED_EXTENSIONS CERTIFICATEr+CERTIFICATE_REQUEST SERVER_DONECERTIFICATE_VERIFYCLIENT_KEY_EXCHANGEFINISHEDCERTIFICATE_URLCERTIFICATE_STATUSSUPPLEMENTAL_DATA KEY_UPDATE NEXT_PROTO MESSAGE_HASHr,rPr^r'r%Checked_TLSMessageTypers MLL#$ !  ! "# #$ K"$ "$ K!# "$ H O!#  " JJL!' r'r )rrrr)rr s r%test_tlsmessagetype$TestEnumerations.test_tlsmessagetypes% (T\\ (6 5Gr'c[R"[RSSS[RS9nUR Ul[R"U[R5 g)N _SSLMethodr c<URS5=(a US:g$)Nr`rrr#s r%r1TestEnumerations.test_sslmethod..sT__[9WdFW>WWr'source) r _old_convert_rr rrdrrr)rChecked_SSLMethods r%test_sslmethodTestEnumerations.test_sslmethodsN .. lEWxx ->,J,J) 0#..Ar'c[R"[RSSS[RS9n[R "U[R 5 g)NOptionsr c$URS5$)Nrrr#s r%r/TestEnumerations.test_options..&s T__U3r'r)rrIntFlagr rrr)rCheckedOptionss r%rTestEnumerations.test_options#s=++ i3xx ~s{{;r'c[R"[RSSS[RS9n[R "U[R 5 g)NAlertDescriptionr c$URS5$)NALERT_DESCRIPTION_rr#s r%r8TestEnumerations.test_alertdescription...sT__-ABr'r)rrrr rrr#)rCheckedAlertDescriptions r%test_alertdescription&TestEnumerations.test_alertdescription+sB"&"4"4 0%Bxx# 68L8LMr'c[R"[RSSS[RS9n[R "U[R 5 g)NSSLErrorNumberr c$URS5$)N SSL_ERROR_rr#s r%r6TestEnumerations.test_sslerrornumber..6s T__\:r'r)rrrr rrr+)rChecked_SSLErrorNumbers r%test_sslerrornumber$TestEnumerations.test_sslerrornumber3sB!%!3!3 .:xx" 5s7I7IJr'c[R"[RSSS[RS9n[R "U[R 5 g)N VerifyFlagsr c$URS5$)NVERIFY_rr#s r%r3TestEnumerations.test_verifyflags..>s T__Y7r'r)rrrr rrr3)rCheckedVerifyFlagss r%test_verifyflags!TestEnumerations.test_verifyflags;s?!// mU7xx 13??Cr'c[R"[RSSS[RS9n[R "U[R 5 g)N VerifyModer c$URS5$)NCERT_rr#s r%r2TestEnumerations.test_verifymode..Fs T__W5r'r)rrrr rrr;)rCheckedVerifyModes r%test_verifymode TestEnumerations.test_verifymodeCs? .. lE5xx 0#..Ar'r^N)rrHrIrJrrrrrrr(r0r8r@rPr^r'r%rrs= > H(DTH<B<NKDBr'rc [R(Ga[R[RS.nUR 5H*upU"5nU(dMUS(dM!U<SU<3n O [ [R"55n[S[R<S[R<35 [SU-5 [S[R-5 [S[R-5 [S[R-5 [[ ["[$[&[([*[,[.[0[2[44 H@n[6R8R;U5(aM)[R<"S U-5e [>R@"5n[BRD"[>RF/UQ76 g![a Nf=f) N)MacWindowsrrztest_ssl: testing with z under %sz HAS_SNI = %rz OP_ALL = 0x%8xz OP_NO_TLSv1_1 = 0x%8xzCan't read certificate file %r)$rrrNmac_ver win32_veritemsrrr rTrSrrrrr rrrrrrrrrBADKEYrrrexists TestFailedr threading_setuprwaddModuleCleanupthreading_cleanup)platsr$r{platfilename thread_infos r% setUpModulerRLsl##))  ++-JD6DtQ"&- ( ))+,D  #":":< = "T)* &45 (3::56  3c6G6GG H .'>=): $ ww~~h''$$%E%PQ Q $#224K .@@O;O   s G## G0/G0__main__r])r2TFNN)Nrr)rrw unittest.mockastrr[rrNr test.supportrrrr r r rrrrrArrr* http.clientr~rr7rurllib.requestrrrjrN sysconfigr~ contextlibr r ImportError import_moduler rrrrrrrorrz_PROTOCOL_NAMESrUr6rSroget_config_varrr rverrcrr&r fsencoderrrrrrrrrrrr>r r;rrrrrrrJrIrRrQrPrr9r\rrrBrrrrHrr.rrrrFrGrHrIrJrRr[rj lru_cachergrrrignore_warningsrrmrrrrrTestCaserrRrqrrrrLr>rrtest.ssl_serversrRrDrr rrrrLrrVrq HAS_KEYLOGr9r rDrFrrRrmainr^r'r%rgs &"&)(!  " !!%( TT!!=cllg&= 3&& ' ++y8"112JKJE3 U#cnnc*&)E"F ] #X& ^ $ M "X& G$ 3423 8 {{6" Hl3(L1 /++>-. " $ %N+ -& ;FT0++&-.$^,* 01. &&DE%2" 9:x . } %  & k " * n % M "01 <  k " +,  56 > "{{6" C!4a83 2A6S"6:%c+H!L$S*FJ ;;3 4* !!H". %44  #}}t!D$/, /44DJ 1x((J 1Z]  8$$]  @9DH%%9Dx@3X&&@3F.X&&.`y