Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
3 M”ªjÝ­ã@slddlZddlZddlZddlZddlZddlmZddlmZ m Z m Z ddlZddlmZmZmZddlmZmZmZddlmZmZmZmZmZmZddlmZmZddlmZm Z m!Z!m"Z"ydd lm#Z#Wne$k räYnXdd lm%Z%m&Z&m'Z'm(Z(m)Z)dd lm*Z*dd lm+Z+e j,d e-dd„ed�e j,de-dd„ed�e j,de-dd„ed�e j,de-dd„ed�e j,de-dd„ed�e j,de-dd„ed�e.j/Z0e._0dd„e.j1j2ƒDƒZ3e4e.ddƒZ5ej6dk�ræddlm7Z7m8Z8dd l9m9Z9m:Z:m;Z;mZ>ddl?Z?ddl@Z@ddlAZAeBZCejD�r:d"gZEngZEe*ZFGd#d$„d$eGƒZHdQd&d'„ZId(d)„ZJd*d+„ZKed,d-ƒZLd.d/„ZMGd0d1„d1ed1d2ƒƒZNGd3d4„d4eNe ƒZOGd5d6„d6eƒZPeOjQfdddd7œd8d9„ZRe/feSd:eOjQdddddd;œdd?„d?ƒZWGd@dA„dAe9ƒZXddd:eSe/ddBdBdf dCdD„ZYdEdF„ZZdGZ[dHZ\dIdJ„Z]dKdL„Z^e/dfdMdN„Z_dOdP„Z`dS)RéN)Ú namedtuple)ÚEnumÚIntEnumÚIntFlag)ÚOPENSSL_VERSION_NUMBERÚOPENSSL_VERSION_INFOÚOPENSSL_VERSION)Ú _SSLContextÚ MemoryBIOÚ SSLSession)ÚSSLErrorÚSSLZeroReturnErrorÚSSLWantReadErrorÚSSLWantWriteErrorÚSSLSyscallErrorÚ SSLEOFError)Útxt2objÚnid2obj)Ú RAND_statusÚRAND_addÚ RAND_bytesÚRAND_pseudo_bytes)ÚRAND_egd)ÚHAS_SNIÚHAS_ECDHÚHAS_NPNÚHAS_ALPNÚ HAS_TLSv1_3)Ú_DEFAULT_CIPHERS)Ú_OPENSSL_API_VERSIONÚ _SSLMethodcCs|jdƒo|dkS)NZ PROTOCOL_ÚPROTOCOL_SSLv23)Ú startswith)Úname©r$ú/usr/lib64/python3.6/ssl.pyÚ}sr&)ÚsourceÚOptionscCs |jdƒS)NZOP_)r")r#r$r$r%r&‚sZAlertDescriptioncCs |jdƒS)NZALERT_DESCRIPTION_)r")r#r$r$r%r&‡sZSSLErrorNumbercCs |jdƒS)NZ SSL_ERROR_)r")r#r$r$r%r&ŒsÚ VerifyFlagscCs |jdƒS)NZVERIFY_)r")r#r$r$r%r&‘sÚ VerifyModecCs |jdƒS)NZCERT_)r")r#r$r$r%r&–scCsi|]\}}||“qSr$r$)Ú.0r#Úvaluer$r$r%ú ›sr-ZPROTOCOL_SSLv2Úwin32)Úenum_certificatesÚ enum_crls)ÚsocketÚAF_INETÚ SOCK_STREAMÚcreate_connection)Ú SOL_SOCKETÚSO_TYPEz tls-uniquec@s eZdZdS)ÚCertificateErrorN)Ú__name__Ú __module__Ú __qualname__r$r$r$r%r7µsr7éc Csæg}|s dS|jdƒ^}}|jdƒ}||kr|jdƒsx|jdƒrŠ|jtj|ƒƒn|jtj|ƒj ddƒƒx|D]}|jtj|ƒƒq¨Wtj d d j |ƒd tj ƒ}|j |ƒS) NFÚ.Ú*z,too many wildcards in certificate DNS name: z[^.]+zxn--z\*z[^.]*z\Az\.z\Z)ÚsplitÚcountr7ÚreprÚlowerÚappendr"ÚreÚescapeÚreplaceÚcompileÚjoinÚ IGNORECASEÚmatch) ZdnÚhostnameZ max_wildcardsZpatsZleftmostZ remainderZ wildcardsZfragZpatr$r$r%Ú_dnsname_match¹s&   rKcCstj|jƒƒ}||kS)N)Ú ipaddressÚ ip_addressÚrstrip)ZipnameÚhost_ipZipr$r$r%Ú_ipaddress_matchêsrPcCsP|s tdƒ‚ytj|ƒ}Wntk r2d}YnXg}|jdfƒ}xb|D]Z\}}|dkr||dkrpt||ƒrpdS|j|ƒqJ|dkrJ|dk ršt||ƒršdS|j|ƒqJW|sôxF|jdfƒD]6}x0|D](\}}|dkrÄt||ƒrâdS|j|ƒqÄWqºWt|ƒdk�r td|d j t t |ƒƒfƒ‚n,t|ƒdk�rDtd ||d fƒ‚ntd ƒ‚dS) Nztempty or no certificate, match_hostname needs a SSL socket or SSL context with either CERT_OPTIONAL or CERT_REQUIREDZsubjectAltNameZDNSz IP AddressZsubjectZ commonNamer;z&hostname %r doesn't match either of %sz, zhostname %r doesn't match %rrz=no appropriate commonName or subjectAltName fields were found) Ú ValueErrorrLrMÚgetrKrBrPÚlenr7rGÚmapr@)ÚcertrJrOZdnsnamesZsanÚkeyr,Úsubr$r$r%Úmatch_hostnameõs>    rXÚDefaultVerifyPathszQcafile capath openssl_cafile_env openssl_cafile openssl_capath_env openssl_capathcCsdtjƒ}tjj|d|dƒ}tjj|d|dƒ}ttjj|ƒrF|ndtjj|ƒrX|ndf|žŽS)Nrr;éé) Ú_sslÚget_default_verify_pathsÚosÚenvironrRrYÚpathÚisfileÚisdir)ÚpartsÚcafileÚcapathr$r$r%r]-s r]cs@eZdZfZ‡fdd„Ze‡fdd„ƒZe‡fdd„ƒZ‡ZS)Ú _ASN1Objectcstƒj|ft|dd�žŽS)NF)r#)ÚsuperÚ__new__Ú_txt2obj)ÚclsÚoid)Ú __class__r$r%rh@sz_ASN1Object.__new__cstƒj|ft|ƒžŽS)N)rgrhÚ_nid2obj)rjZnid)rlr$r%ÚfromnidCsz_ASN1Object.fromnidcstƒj|ft|dd�žŽS)NT)r#)rgrhri)rjr#)rlr$r%ÚfromnameIsz_ASN1Object.fromname) r8r9r:Ú __slots__rhÚ classmethodrnroÚ __classcell__r$r$)rlr%rf;s rfznid shortname longname oidc@seZdZdZdZdS)ÚPurposez1.3.6.1.5.5.7.3.1z1.3.6.1.5.5.7.3.2N)r8r9r:Ú SERVER_AUTHZ CLIENT_AUTHr$r$r$r%rsPsrscsÐeZdZd!Zd"Zefdd„Zefdd„Zd#d d „Zd$dd„Z dd„Z dd„Z dd„Z e jfdd„Ze‡fdd„ƒZej‡fdd„ƒZe‡fdd„ƒZej‡fdd„ƒZe‡fdd„ƒZej‡fd d„ƒZ‡ZS)%Ú SSLContextÚprotocolÚ __weakref__ÚCAÚROOTcOstj||ƒ}|S)N)r rh)rjrvÚargsÚkwargsÚselfr$r$r%rh^s zSSLContext.__new__cCs ||_dS)N)rv)r|rvr$r$r%Ú__init__bszSSLContext.__init__FTNc Cst|||||||d�S)N)ÚsockÚ server_sideÚdo_handshake_on_connectÚsuppress_ragged_eofsÚserver_hostnameÚ_contextÚ_session)Ú SSLSocket)r|r~rr€r�r‚Úsessionr$r$r%Ú wrap_socketes zSSLContext.wrap_socketcCs|j||||d�}t||d�S)N)rr‚)r†)Z _wrap_bioÚ SSLObject)r|ZincomingZoutgoingrr‚r†Ússlobjr$r$r%Úwrap_bioos zSSLContext.wrap_biocCsdtƒ}xN|D]F}t|dƒ}t|ƒdks2t|ƒdkr:tdƒ‚|jt|ƒƒ|j|ƒq W|j|ƒdS)NÚasciiréÿz(NPN protocols must be 1 to 255 in length)Ú bytearrayÚbytesrSr rBÚextendZ_set_npn_protocols)r|Ú npn_protocolsÚprotosrvÚbr$r$r%Úset_npn_protocolsus  zSSLContext.set_npn_protocolscCsdtƒ}xN|D]F}t|dƒ}t|ƒdks2t|ƒdkr:tdƒ‚|jt|ƒƒ|j|ƒq W|j|ƒdS)Nr‹rrŒz)ALPN protocols must be 1 to 255 in length)r�rŽrSr rBr�Z_set_alpn_protocols)r|Zalpn_protocolsr‘rvr’r$r$r%Úset_alpn_protocols€s  zSSLContext.set_alpn_protocolsc Csztƒ}y@x:t|ƒD].\}}}|dkr|dks6|j|kr|j|ƒqWWntk rdtjdƒYnX|rv|j|d�|S)NZx509_asnTz-unable to enumerate Windows certificate store)Úcadata)r�r/rkr�ÚPermissionErrorÚwarningsÚwarnÚload_verify_locations)r|Ú storenameÚpurposeZcertsrUÚencodingZtrustr$r$r%Ú_load_windows_store_certs‹s z$SSLContext._load_windows_store_certscCsDt|tƒst|ƒ‚tjdkr8x|jD]}|j||ƒq$W|jƒdS)Nr.)Ú isinstancerfÚ TypeErrorÚsysÚplatformÚ_windows_cert_storesr�Zset_default_verify_paths)r|r›ršr$r$r%Úload_default_certs™s    zSSLContext.load_default_certscs ttƒjƒS)N)r(rgÚoptions)r|)rlr$r%r¤¡szSSLContext.optionscstttƒjj||ƒdS)N)rgrur¤Ú__set__)r|r,)rlr$r%r¤¥scs ttƒjƒS)N)r)rgÚ verify_flags)r|)rlr$r%r¦©szSSLContext.verify_flagscstttƒjj||ƒdS)N)rgrur¦r¥)r|r,)rlr$r%r¦­sc s*tƒj}yt|ƒStk r$|SXdS)N)rgÚ verify_moder*rQ)r|r,)rlr$r%r§±s zSSLContext.verify_modecstttƒjj||ƒdS)N)rgrur§r¥)r|r,)rlr$r%r§¹s)rvrw)rxry)FTTNN)FNN)r8r9r:rpr¢Ú PROTOCOL_TLSrhr}r‡rŠr“r”r�rsrtr£Úpropertyr¤Úsetterr¦r§rrr$r$)rlr%ruWs(      ru)rdrer•cCsdt|tƒst|ƒ‚ttƒ}|tjkr0t|_d|_ |s<|s<|rL|j |||ƒn|jt kr`|j |ƒ|S)NT) ržrfrŸrur¨rsrtÚ CERT_REQUIREDr§Úcheck_hostnamer™Ú CERT_NONEr£)r›rdrer•Úcontextr$r$r%Úcreate_default_context¾s     r¯F)Ú cert_reqsr¬r›ÚcertfileÚkeyfilerdrer•c Cs–t|tƒst|ƒ‚t|ƒ} |s$d| _|dk r2|| _|rd?„Z$d@dA„Z%dBdC„Z&dDdE„Z'd`dFdG„Z(dHdI„Z)dJdK„Z*dLdM„Z+dNdO„Z,dadQdR„Z-dSdT„Z.‡Z/S)br…NFTrc6Cs:d|_|r||_nª|r$| r$tdƒ‚|r6| r6tdƒ‚|rD| rD|}t|ƒ|_||j_|rf|jj|ƒ|rx|jj||ƒ|rˆ|jj|ƒ|r˜|jj|ƒ||_ ||_ ||_ ||_ ||_ ||_|jttƒtkrÔtdƒ‚|rô|rätdƒ‚|dk rôtdƒ‚|jj�r| �rtdƒ‚||_||_||_||_| |_|dk �rftj||j|j|j|jƒd�|j ƒ}|j!ƒn,| dk �r€tj|| d�ntj|| | | d �y |j"ƒWnüt#k �rš}zÞ|j$t$j%k�r‚d }|j ƒd k}|j&d ƒy|j'd ƒ}Wn>t#k �r(}z |j$t$j%t$j(fk�r‚d }WYdd}~XnX|j&|ƒ|�rŠd}t)|j$|ƒ}||_*d|_+y |j,ƒWnt#k �rxYnXz|‚Wdd}XWYdd}~XnXd}|j-|ƒd |_.d|_||_/|�r6yN|jj0|||ƒ}t1|||jd�|_|�r|j ƒ}|dk�rtdƒ‚|j2ƒWn$t#tfk �r4|j,ƒ‚YnXdS)Nz5certfile must be specified for server-side operationszcertfile must be specifiedz!only stream sockets are supportedz4server_hostname can only be specified in client modez,session can only be specified in client modez'check_hostname requires server_hostname)ÚfamilyÚtypeÚprotoÚfileno)rÕ)rÒrÓrÔFrr;óz5Closed before TLS handshake with data in recv buffer.T)r¶r†gzHdo_handshake_on_connect should not be specified for non-blocking sockets)3rµrƒrQrur§r™r³r“Z set_ciphersr²r±r°Ú ssl_versionÚca_certsÚciphersZ getsockoptr5r6r3rÌr¬r„rr‚r€r�r1r}rÒrÓrÔrÕÚ gettimeoutÚdetachÚ getpeernameÚOSErrorÚerrnoZENOTCONNZ setblockingÚrecvZEINVALr ÚreasonZlibraryÚcloseÚ settimeoutZ_closedÚ _connectedÚ _wrap_socketrˆrÇ)r|r~r²r±rr°r×rØr€rÒrÓrÔrÕr�r�rÙr‚rƒr„Z sock_timeoutÚeZ connectedZblockingZnotconn_pre_handshake_dataràZ notconn_pre_handshake_data_errorr‰Útimeoutr$r$r%r}­sÀ                      zSSLSocket.__init__cCs|jS)N)rƒ)r|r$r$r%r®0szSSLSocket.contextcCs||_||j_dS)N)rƒrµr®)r|r·r$r$r%r®4scCs|jdk r|jjSdS)N)rµr†)r|r$r$r%r†9s zSSLSocket.sessioncCs||_|jdk r||j_dS)N)r„rµr†)r|r†r$r$r%r†?s cCs|jdk r|jjSdS)N)rµr¸)r|r$r$r%r¸Es zSSLSocket.session_reusedcCstd|jjƒ‚dS)NzCan't dup() %s instances)rÌrlr8)r|r$r$r%ÚdupKsz SSLSocket.dupcCsdS)Nr$)r|Úmsgr$r$r%Ú _checkClosedOszSSLSocket._checkClosedcCs|js|jƒdS)N)rãrÜ)r|r$r$r%Ú_check_connectedSszSSLSocket._check_connectedécCst|jƒ|jstdƒ‚y|jj||ƒStk rn}z.|jdtkr\|jr\|dk rVdSdSn‚WYdd}~XnXdS)Nz'Read on closed or unwrapped SSL socket.rrÖ)rérµrQrºr rzZ SSL_ERROR_EOFr�)r|rSr»Úxr$r$r%rº[szSSLSocket.readcCs"|jƒ|jstdƒ‚|jj|ƒS)Nz(Write on closed or unwrapped SSL socket.)rérµrQr½)r|r¾r$r$r%r½mszSSLSocket.writecCs|jƒ|jƒ|jj|ƒS)N)rérêrµrÀ)r|r¿r$r$r%rÀvszSSLSocket.getpeercertcCs*|jƒ|j stj rdS|jjƒSdS)N)rérµr\rrÁ)r|r$r$r%rÁ€szSSLSocket.selected_npn_protocolcCs*|jƒ|j stj rdS|jjƒSdS)N)rérµr\rrÂ)r|r$r$r%r‡sz SSLSocket.selected_alpn_protocolcCs |jƒ|jsdS|jjƒSdS)N)rérµrÃ)r|r$r$r%rÃŽszSSLSocket.ciphercCs|jƒ|jsdS|jjƒS)N)rérµrÄ)r|r$r$r%rÄ•szSSLSocket.shared_cipherscCs |jƒ|jsdS|jjƒSdS)N)rérµrÅ)r|r$r$r%rÅ›szSSLSocket.compressioncCsB|jƒ|jr0|dkr$td|jƒ‚|jj|ƒStj|||ƒSdS)Nrz3non-zero flags not allowed in calls to send() on %s)rérµrQrlr½r1Úsend)r|r¾Úflagsr$r$r%rí¢s  zSSLSocket.sendcCsH|jƒ|jrtd|jƒ‚n&|dkr4tj|||ƒStj||||ƒSdS)Nz%sendto not allowed on instances of %s)rérµrQrlr1Úsendto)r|r¾Z flags_or_addrÚaddrr$r$r%rï­s zSSLSocket.sendtocOstd|jƒ‚dS)Nz&sendmsg not allowed on instances of %s)rÌrl)r|rzr{r$r$r%Úsendmsg·szSSLSocket.sendmsgcCs–|jƒ|jr„|dkr$td|jƒ‚d}t|ƒ�L}|jdƒ�6}t|ƒ}x&||krl|j||d…ƒ}||7}qHWWdQRXWdQRXntj |||ƒSdS)Nrz6non-zero flags not allowed in calls to sendall() on %sÚB) rérµrQrlÚ memoryviewÚcastrSrír1Úsendall)r|r¾rîr?ZviewZ byte_viewZamountr¼r$r$r%rõ½s  "zSSLSocket.sendallcs,|jdkrtƒj|||ƒS|j|||ƒSdS)N)rµrgÚsendfileZ_sendfile_use_send)r|ÚfileÚoffsetr?)rlr$r%röÍs zSSLSocket.sendfilecCs@|jƒ|jr.|dkr$td|jƒ‚|j|ƒStj|||ƒSdS)Nrz3non-zero flags not allowed in calls to recv() on %s)rérµrQrlrºr1rß)r|Úbuflenrîr$r$r%rß×s  zSSLSocket.recvcCsf|jƒ|r|dkrt|ƒ}n |dkr*d}|jrR|dkrFtd|jƒ‚|j||ƒStj||||ƒSdS)Nirz8non-zero flags not allowed in calls to recv_into() on %s)rérSrµrQrlrºr1Ú recv_into)r|r»Únbytesrîr$r$r%rúâs    zSSLSocket.recv_intocCs0|jƒ|jrtd|jƒ‚ntj|||ƒSdS)Nz'recvfrom not allowed on instances of %s)rérµrQrlr1Úrecvfrom)r|rùrîr$r$r%rüñs  zSSLSocket.recvfromcCs2|jƒ|jrtd|jƒ‚ntj||||ƒSdS)Nz,recvfrom_into not allowed on instances of %s)rérµrQrlr1Ú recvfrom_into)r|r»rûrîr$r$r%rýùs  zSSLSocket.recvfrom_intocOstd|jƒ‚dS)Nz&recvmsg not allowed on instances of %s)rÌrl)r|rzr{r$r$r%ÚrecvmsgszSSLSocket.recvmsgcOstd|jƒ‚dS)Nz+recvmsg_into not allowed on instances of %s)rÌrl)r|rzr{r$r$r%Ú recvmsg_intoszSSLSocket.recvmsg_intocCs |jƒ|jr|jjƒSdSdS)Nr)rérµrÆ)r|r$r$r%rÆ s zSSLSocket.pendingcCs|jƒd|_tj||ƒdS)N)rérµr1rÈ)r|Zhowr$r$r%rÈszSSLSocket.shutdowncCs.|jr|jjƒ}d|_|Stdt|ƒƒ‚dS)NzNo SSL wrapper around )rµrÉrQÚstr)r|Úsr$r$r%rÉs  zSSLSocket.unwrapcCs$|jr|jjƒStdt|ƒƒ‚dS)NzNo SSL wrapper around )rµrÑrQr)r|r$r$r%rÑs z&SSLSocket.verify_client_post_handshakecCsd|_tj|ƒdS)N)rµr1Ú _real_close)r|r$r$r%r#szSSLSocket._real_closec CsF|jƒ|jƒ}z$|dkr(|r(|jdƒ|jjƒWd|j|ƒXdS)Ng)rêrÚrârµrÇ)r|Úblockrær$r$r%rÇ's  zSSLSocket.do_handshakec Cs¤|jrtdƒ‚|jrtdƒ‚|jj|d|jƒ}t|||jd�|_y>|rTt j ||ƒ}nd}t j ||ƒ|s|d|_|j r||j ƒ|Sttfk ržd|_‚YnXdS)Nz!can't connect in server-side modez/attempt to connect already-connected SSLSocket!F)r¶r†T)rrQrãr®rär‚rˆr„rµr1Ú connect_exÚconnectr€rÇrÝ)r|rðrr‰Zrcr$r$r%Ú _real_connect2s(  zSSLSocket._real_connectcCs|j|dƒdS)NF)r)r|rðr$r$r%rKszSSLSocket.connectcCs |j|dƒS)NT)r)r|rðr$r$r%rPszSSLSocket.connect_excCs.tj|ƒ\}}|jj||j|jdd�}||fS)NT)r€r�r)r1Úacceptr®r‡r€r�)r|Znewsockrðr$r$r%rUs zSSLSocket.acceptú tls-uniquecCs|jdkrdS|jj|ƒS)N)rµrÏ)r|rÎr$r$r%rÏas zSSLSocket.get_channel_bindingcCs|jdkrdS|jjƒS)N)rµrÐ)r|r$r$r%rÐjs zSSLSocket.version)N)rëN)F)r)N)r)rN)rër)Nr)rër)Nr)F)r)0r8r9r:r­r¨r2r3r}r©r®rªr†r¸rçrérêrºr½rÀrÁrÂrÃrÄrÅrírïrñrõrörßrúrürýrþrÿrÆrÈrÉrÑrrÇrrrrrÏrÐrrr$r$)rlr%r…¨s^|             r…Tc Cst|||||||||| d� S)N) r~r²r±rr°r×rØr€r�rÙ)r…) r~r²r±rr°r×rØr€r�rÙr$r$r%r‡ts r‡c Cs–ddlm}ddlm}d}d}y|j|dd…jƒƒd}Wn$tk rbtd||fƒ‚Yn0X||dd…|ƒ}||d|f|dd…ƒSdS)Nr)Ústrptime)ÚtimegmÚJanÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecz %d %H:%M:%S %Y GMTr[r;z*time data %r does not match format "%%b%s"rZé) r r r rrrrrrrrr)Ztimer Zcalendarr ÚindexÚtitlerQ)Z cert_timer r ZmonthsZ time_formatZ month_numberZttr$r$r%Úcert_time_to_secondsƒs  rz-----BEGIN CERTIFICATE-----z-----END CERTIFICATE-----cCs2ttj|ƒddƒ}tdtj|dƒdtdS)NÚASCIIÚstrictÚ é@)rÚbase64Zstandard_b64encodeÚ PEM_HEADERÚtextwrapZfillÚ PEM_FOOTER)Zder_cert_bytesÚfr$r$r%ÚDER_cert_to_PEM_cert¤sr$cCs\|jtƒstdtƒ‚|jƒjtƒs0tdtƒ‚|jƒttƒttƒ …}tj|j ddƒƒS)Nz(Invalid PEM encoding; must start with %sz&Invalid PEM encoding; must end with %srr) r"r rQÚstripÚendswithr"rSrZ decodebytesÚencode)Zpem_cert_stringÚdr$r$r%ÚPEM_cert_to_DER_cert­s r)c Csd|\}}|dk rt}nt}t|||d�}t|ƒ�&}|j|ƒ�}|jdƒ} WdQRXWdQRXt| ƒS)N)r°rdT)r«r­Ú_create_stdlib_contextr4r‡rÀr$) rðr×rØÚhostZportr°r®r~ZsslsockZdercertr$r$r%Úget_server_certificateºs  r,cCs tj|dƒS)Nz )Ú_PROTOCOL_NAMESrR)Z protocol_coder$r$r%Úget_protocol_nameÍsr.)r;)arLr!rCr r^Ú collectionsrÚenumrZ_EnumrZ_IntEnumrZ_IntFlagr\rrrr r r r r rrrrrrirrmrrrrrÚ ImportErrorrrrrrrrÚ_convertr8r r¨r!Ú __members__Úitemsr-ÚgetattrZ_SSLv2_IF_EXISTSr¡r/r0r1r2r3r4r5r6rrÞr—rÝZ socket_errorZHAS_TLS_UNIQUErËZ_RESTRICTED_SERVER_CIPHERSrQr7rKrPrXrYr]rfrsrurtr¯r­r´Z_create_default_https_contextr*rˆr…r‡rr r"r$r)r,r.r$r$r$r%Ú]s¾        1 4g(O