MINI MINI MANI MO

Path : /usr/lib64/python3.6/asyncio/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/asyncio/__pycache__/sslproto.cpython-36.opt-2.pyc

3


 \e
@sddlZddlZyddlZWnek
r4dZYnXddlmZddlmZddlmZddlmZddl	m
Z
dd	Zd
dZdZ
d
ZdZdZGdddeZGdddejejZGdddejZdS)N)base_events)compat)	protocols)
transports)loggercCsj|rtdttdr*tj}|sfd|_n<tjtj}|jtjO_|jtj	O_|j
tj|_|S)Nz(Server side SSL needs a valid SSLContextcreate_default_contextF)
ValueErrorhasattrsslrcheck_hostnameZ
SSLContextZPROTOCOL_SSLv23ZoptionsZOP_NO_SSLv2ZOP_NO_SSLv3Zset_default_verify_pathsZ
CERT_REQUIREDverify_mode)server_sideserver_hostname
sslcontextr(/usr/lib64/python3.6/asyncio/sslproto.py_create_transport_contexts
rcCs
ttdS)N	MemoryBIO)r
rrrrr_is_sslproto_available%srZ	UNWRAPPEDZDO_HANDSHAKEZWRAPPEDZSHUTDOWNc@szeZdZdZdddZeddZedd	Zed
dZedd
Z	dddZ
dddZddZdddZ
dddZdS) _SSLPipeiNcCsH||_||_||_t|_tj|_tj|_d|_	d|_
d|_d|_dS)NF)
_context_server_side_server_hostname
_UNWRAPPED_staterr	_incoming	_outgoing_sslobj
_need_ssldata
_handshake_cb_shutdown_cb)selfcontextrrrrr__init__Ds

z_SSLPipe.__init__cCs|jS)N)r)r#rrrr$Zsz_SSLPipe.contextcCs|jS)N)r)r#rrr
ssl_object_sz_SSLPipe.ssl_objectcCs|jS)N)r )r#rrrneed_ssldatagsz_SSLPipe.need_ssldatacCs
|jtkS)N)r_WRAPPED)r#rrrwrappedmsz_SSLPipe.wrappedcCsR|jtkrtd|jj|j|j|j|jd|_	t
|_||_|jddd\}}|S)Nz"handshake in progress or completed)rrT)only_handshake)
rrRuntimeErrorrZwrap_biorrrrr
_DO_HANDSHAKEr!feed_ssldata)r#callbackssldataappdatarrrdo_handshakevs	
z_SSLPipe.do_handshakecCsB|jtkrtd|jtkr$tdt|_||_|jd\}}|S)Nzno security layer presentzshutdown in progressr*)rrr,	_SHUTDOWNr"r.)r#r/r0r1rrrshutdowns	

z_SSLPipe.shutdowncCs|jj|jd\}}dS)Nr*)rZ	write_eofr.)r#r0r1rrrfeed_eofs
z_SSLPipe.feed_eofFcCs|jtkr"|r|g}ng}g|fSd|_|r8|jj|g}g}y|jtkrx|jjt|_|j	rl|j	d|rx||fS|jtkrxn|jj
|j}|j||sPqWnJ|jt
kr|jjd|_t|_|jr|jn|jtkr|j|jj
Wnxtjtjfk
rl}zRt|ddtjtjtjfkrN|jtkrL|j	rL|j	||jtjk|_WYdd}~XnX|jjr|j|jj
||fS)NFerrno)rrr rwriter-rr2r(r!readmax_sizeappendr3Zunwrapr"rSSLErrorCertificateErrorgetattrSSL_ERROR_WANT_READSSL_ERROR_WANT_WRITESSL_ERROR_SYSCALLr6rpending)r#datar+r1r0chunkexcrrrr.sV











 
z_SSLPipe.feed_ssldatarcCs|jtkr6|t|kr&||dg}ng}|t|fSg}t|}xd|_y(|t|krp||jj||d7}Wn\tjk
r}z>|j	dkrtj
|_|jtj
tjtj
fkr|jtj
k|_WYdd}~XnX|jjr|j|jj|t|ks|jrDPqDW||fS)NFZPROTOCOL_IS_SHUTDOWN)rrlen
memoryviewr rr7rr;reasonr>r6r?r@rrAr:r8)r#rBoffsetr0ZviewrDrrrfeed_appdatas2


 z_SSLPipe.feed_appdatai)N)N)N)F)r)__name__
__module____qualname__r9r%propertyr$r&r'r)r2r4r5r.rIrrrrr0s
	



Jrc@seZdZddZdddZddZdd	Zd
dZdd
Ze	j
rHddZddZddZ
dddZddZddZddZddZdS) _SSLProtocolTransportcCs||_||_d|_dS)NF)_loop
_ssl_protocol_closed)r#loopZssl_protocolrrrr%)sz_SSLProtocolTransport.__init__NcCs|jj||S)N)rP_get_extra_info)r#namedefaultrrrget_extra_info/sz$_SSLProtocolTransport.get_extra_infocCs||j_dS)N)rP
_app_protocol)r#protocolrrrset_protocol3sz"_SSLProtocolTransport.set_protocolcCs|jjS)N)rPrW)r#rrrget_protocol6sz"_SSLProtocolTransport.get_protocolcCs|jS)N)rQ)r#rrr
is_closing9sz _SSLProtocolTransport.is_closingcCsd|_|jjdS)NT)rQrP_start_shutdown)r#rrrclose<sz_SSLProtocolTransport.closecCs&|js"tjd|t|d|jdS)Nzunclosed transport %r)source)rQwarningswarnResourceWarningr])r#rrr__del__Ksz_SSLProtocolTransport.__del__cCs|jjjdS)N)rP
_transport
pause_reading)r#rrrrdQsz#_SSLProtocolTransport.pause_readingcCs|jjjdS)N)rPrcresume_reading)r#rrrreYsz$_SSLProtocolTransport.resume_readingcCs|jjj||dS)N)rPrcset_write_buffer_limits)r#ZhighZlowrrrrfasz-_SSLProtocolTransport.set_write_buffer_limitscCs|jjjS)N)rPrcget_write_buffer_size)r#rrrrgvsz+_SSLProtocolTransport.get_write_buffer_sizecCs<t|tttfs$tdjt|j|s,dS|jj	|dS)Nz/data: expecting a bytes-like instance, got {!r})

isinstancebytes	bytearrayrF	TypeErrorformattyperJrP_write_appdata)r#rBrrrr7zsz_SSLProtocolTransport.writecCsdS)NFr)r#rrr
can_write_eofsz#_SSLProtocolTransport.can_write_eofcCs|jjdS)N)rP_abort)r#rrrabortsz_SSLProtocolTransport.abort)N)NN)rJrKrLr%rVrYrZr[r]rZPY34rbrdrerfrgr7rorqrrrrrN&s


rNc@seZdZd'ddZd(ddZdd	Zd
dZdd
ZddZddZ	ddZ
d)ddZddZddZ
ddZddZddZd*d!d"Zd#d$Zd%d&ZdS)+SSLProtocolFNTcCstdkrtd|st||}||_|r6|r6||_nd|_||_t|d|_tj	|_
d|_||_||_
||_t|j
||_d|_d|_d|_d|_d|_||_dS)Nzstdlib ssl module not available)rrF)rr,rrr_sslcontextdict_extracollectionsdeque_write_backlog_write_buffer_size_waiterrOrWrN_app_transport_sslpipe_session_established
_in_handshake_in_shutdownrc_call_connection_made)r#rRZapp_protocolrZwaiterrrZcall_connection_maderrrr%s,


zSSLProtocol.__init__cCsD|jdkrdS|jjs:|dk	r.|jj|n|jjdd|_dS)N)rzZ	cancelledZ
set_exceptionZ
set_result)r#rDrrr_wakeup_waiters

zSSLProtocol._wakeup_waitercCs&||_t|j|j|j|_|jdS)N)rcrrsrrr|_start_handshake)r#	transportrrrconnection_mades

zSSLProtocol.connection_madecCs8|jrd|_|jj|jj|d|_d|_|j|dS)NF)r}rO	call_soonrWconnection_lostrcr{r)r#rDrrrrszSSLProtocol.connection_lostcCs|jjdS)N)rW
pause_writing)r#rrrrszSSLProtocol.pause_writingcCs|jjdS)N)rWresume_writing)r#rrrrszSSLProtocol.resume_writingcCs|jdkrdSy|jj|\}}WnHtjk
rj}z*|jjrTtjd||j|j	|j
dSd}~XnXx|D]}|jj|qrWx(|D] }|r|j
j|q|jPqWdS)Nz%r: SSL error %s (reason %s))r|r.rr;rO	get_debugrwarningr6rGrprcr7rW
data_receivedr\)r#rBr0r1erCrrrrs"



zSSLProtocol.data_receivedc
CsTzB|jjrtjd||jt|js@|jj}|r@tj	dWd|j
jXdS)Nz%r received EOFz?returning true from eof_received() has no effect when using ssl)rOrrdebugrConnectionResetErrorr~rWeof_receivedrrcr])r#Z	keep_openrrrrs


zSSLProtocol.eof_receivedcCs4||jkr|j|S|jdk	r,|jj||S|SdS)N)rurcrV)r#rTrUrrrrS!s



zSSLProtocol._get_extra_infocCs.|jr
dS|jr|jnd|_|jddS)NTr*)rr~rprn)r#rrrr\)s
zSSLProtocol._start_shutdowncCs.|jj|df|jt|7_|jdS)Nr)rxr:ryrE_process_write_backlog)r#rBrrrrn2szSSLProtocol._write_appdatacCsH|jjr$tjd||jj|_nd|_d|_|jjd|j	dS)Nz%r starts SSL handshakeTr*r)r*r)
rOrrrtime_handshake_start_timer~rxr:r)r#rrrr7s
zSSLProtocol._start_handshakecCsTd|_|jj}yF|dk	r||j}t|jdsR|jrR|jjtj	krRtj
||jWn~tk
r}zb|jj
rt|tjrtjd|ddntjd|dd|jjt|tr|j|dSWYdd}~XnX|jj
r|jj|j}tjd||d|jj||j|j|d	|jr4|jj|j |jd|_!|jj"|j#dS)
NFrz5%r: SSL handshake failed on verifying the certificateT)exc_infoz%r: SSL handshake failedz%r: SSL handshake took %.1f msg@@)peercertciphercompressionr&)$r~r|r&Zgetpeercertr
rsrr
rZ	CERT_NONEZmatch_hostname
BaseExceptionrOrrhr<rrrcr]	ExceptionrrrrruupdaterrrrWrr{r}rr)r#Z
handshake_excZsslobjrrDZdtrrr_on_handshake_completeCsD




z"SSLProtocol._on_handshake_completecCs>|jdks|jdkrdSyxtt|jD]}|jd\}}|rT|jj||\}}n*|rl|jj|j}d}n|jj|j	}d}x|D]}|jj
|qW|t|kr||f|jd<|jjr|jjP|jd=|j
t|8_
q*WWnRtk
r8}z4|jr|j|n|j|dt|ts(WYdd}~XnXdS)NrrzFatal error on SSL transport)rcr|rangerErxrIr2rr4	_finalizer7Z_pausedreryrr~_fatal_errorrhr)r#irBrHr0rCrDrrrrws8

z"SSLProtocol._process_write_backlogFatal error on transportcCsXt|tjr*|jjrBtjd||ddn|jj|||j|d|jrT|jj	|dS)Nz%r: %sT)r)messageZ	exceptionrrX)
rhrZ_FATAL_ERROR_IGNORErOrrrZcall_exception_handlerrcZ_force_close)r#rDrrrrrs

zSSLProtocol._fatal_errorcCsd|_|jdk	r|jjdS)N)r|rcr])r#rrrrs
zSSLProtocol._finalizec
Cs(z|jdk	r|jjWd|jXdS)N)rcrqr)r#rrrrps
zSSLProtocol._abort)FNT)N)N)r)rJrKrLr%rrrrrrrrSr\rnrrrrrrprrrrrrs$
"


	4,
rr)rvr_rImportErrorrrrrlogrrrrr-r(r3objectrZ_FlowControlMixinZ	TransportrNZProtocolrrrrrr<module>s*
wn

OHA YOOOO