HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/asyncio/__pycache__/sslproto.cpython-310.opt-2.pyc
o

�iCk�@s�ddlZddlZzddlZWneydZYnwddlmZddlmZddlmZddlm	Z	dd�Z
d	Zd
ZdZ
dZGd
d�de�ZGdd�dejej�ZGdd�dej�ZdS)�N�)�	constants)�	protocols)�
transports)�loggercCs"|rtd��t��}|sd|_|S)Nz(Server side SSL needs a valid SSLContextF)�
ValueError�sslZcreate_default_contextZcheck_hostname)�server_side�server_hostname�
sslcontext�r�-/usr/local/lib/python3.10/asyncio/sslproto.py�_create_transport_contextsrZ	UNWRAPPEDZDO_HANDSHAKEZWRAPPEDZSHUTDOWNc@s|eZdZ	dZddd�Zedd��Zedd��Zed	d
��Zedd��Z	dd
d�Z
ddd�Zdd�Zddd�Z
ddd�ZdS)�_SSLPipeiNcCsJ	||_||_||_t|_t��|_t��|_d|_	d|_
d|_d|_dS�NF)
�_context�_server_side�_server_hostname�
_UNWRAPPED�_staterZ	MemoryBIO�	_incoming�	_outgoing�_sslobj�
_need_ssldata�
_handshake_cb�_shutdown_cb)�self�contextr	r
rrr
�__init__7s



z_SSLPipe.__init__cC�	|jS�N)r�rrrr
rMsz_SSLPipe.contextcCrr )rr!rrr
�
ssl_objectRsz_SSLPipe.ssl_objectcCrr )rr!rrr
�need_ssldataZsz_SSLPipe.need_ssldatacCs	|jtkSr )r�_WRAPPEDr!rrr
�wrapped`s
z_SSLPipe.wrappedcCsT	|jtkr
td��|jj|j|j|j|jd�|_	t
|_||_|jddd�\}}|S)Nz"handshake in progress or completed)r	r
�T)�only_handshake)
rr�RuntimeErrorrZwrap_biorrrrr�
_DO_HANDSHAKEr�feed_ssldata�r�callback�ssldata�appdatarrr
�do_handshakeis
�z_SSLPipe.do_handshakecCsD	|jtkr
td��|jtkrtd��t|_||_|�d�\}}|S)Nzno security layer presentzshutdown in progressr&)rrr(�	_SHUTDOWNrr*r+rrr
�shutdown~s

z_SSLPipe.shutdowncCs	|j��|�d�\}}dS)Nr&)rZ	write_eofr*)rr-r.rrr
�feed_eof�s
z_SSLPipe.feed_eofFc
Cs�	|jtkr|r|g}g|fSg}g|fSd|_|r |j�|�g}g}zZ|jtkrA|j��t|_|j	r:|�	d�|rA||fWS|jtkrX	|j�
|j�}|�|�|sVnqGn%|jt
krp|j��d|_t|_|jro|��n
|jtkr}|�|j�
��Wn:tjtjfy�}z*t|dd�}|tjtjtjfvr�|jtkr�|j	r�|�	|��|tjk|_WYd}~nd}~ww|jjr�|�|j�
��||fS)NFT�errno)rrrr�writer)rr/r$r�read�max_size�appendr0�unwraprr�SSLError�CertificateError�getattr�SSL_ERROR_WANT_READ�SSL_ERROR_WANT_WRITE�SSL_ERROR_SYSCALLr�pending)r�datar'r.r-�chunk�exc�	exc_errnorrr
r*�sj
�





�

�
��
��z_SSLPipe.feed_ssldatarc
Cs	|jtkr|t|�kr||d�g}ng}|t|�fSg}t|�}	d|_z|t|�kr9||j�||d��7}Wn5tjyo}z(t	|dd�}|j
dkrTtj}|_|tjtj
tjfvr_�|tjk|_WYd}~nd}~ww|jjr||�|j���|t|�ks�|jr�	||fSq#)NTFr3ZPROTOCOL_IS_SHUTDOWN)rr�len�
memoryviewrrr4rr9r;�reasonr<r3r=r>rr?r7r5)rr@�offsetr-�viewrBrCrrr
�feed_appdata�s@
�
����z_SSLPipe.feed_appdatar )F)r)�__name__�
__module__�__qualname__r6r�propertyrr"r#r%r/r1r2r*rIrrrr
r#s"








Krc@s�eZdZejjZdd�Zd$dd�Zdd�Z	dd	�Z
d
d�Zdd
�Ze
jfdd�Zdd�Zdd�Zdd�Zd%dd�Zdd�Zdd�Zedd��Zdd�Zd d!�Zd"d#�ZdS)&�_SSLProtocolTransportcCs||_||_d|_dSr)�_loop�
_ssl_protocol�_closed)r�loopZssl_protocolrrr
r s
z_SSLProtocolTransport.__init__NcCs	|j�||�Sr )rP�_get_extra_info�r�name�defaultrrr
�get_extra_info&sz$_SSLProtocolTransport.get_extra_infocCs|j�|�dSr )rP�_set_app_protocol)r�protocolrrr
�set_protocol*sz"_SSLProtocolTransport.set_protocolcCs|jjSr )rP�
_app_protocolr!rrr
�get_protocol-sz"_SSLProtocolTransport.get_protocolcCs|jSr )rQr!rrr
�
is_closing0sz _SSLProtocolTransport.is_closingcCs	d|_|j��dS�NT)rQrP�_start_shutdownr!rrr
�close3sz_SSLProtocolTransport.closecCs*|js|d|��t|d�|��dSdS)Nzunclosed transport )�source)rQ�ResourceWarningr`)r�_warnrrr
�__del__>s�z_SSLProtocolTransport.__del__cCs |jj}|durtd��|��S)Nz*SSL transport has not been initialized yet)rP�
_transportr(�
is_reading)r�trrrr
rfCsz _SSLProtocolTransport.is_readingcC�	|jj��dSr )rPre�
pause_readingr!rrr
riI�z#_SSLProtocolTransport.pause_readingcCrhr )rPre�resume_readingr!rrr
rkQrjz$_SSLProtocolTransport.resume_readingcCs	|jj�||�dSr )rPre�set_write_buffer_limits)r�high�lowrrr
rlYsz-_SSLProtocolTransport.set_write_buffer_limitscC�	|jj��Sr )rPre�get_write_buffer_sizer!rrr
rpnsz+_SSLProtocolTransport.get_write_buffer_sizecCror )rPre�get_write_buffer_limitsr!rrr
rqrsz-_SSLProtocolTransport.get_write_buffer_limitscCs
|jjjSr )rPre�_protocol_pausedr!rrr
rrxs
z&_SSLProtocolTransport._protocol_pausedcCs>	t|tttf�stdt|�j����|sdS|j�|�dS)Nz+data: expecting a bytes-like instance, got )	�
isinstance�bytes�	bytearrayrE�	TypeError�typerJrP�_write_appdata�rr@rrr
r4}s�z_SSLProtocolTransport.writecCs	dSrrr!rrr
�
can_write_eof�sz#_SSLProtocolTransport.can_write_eofcCs	|j��d|_dSr^)rP�_abortrQr!rrr
�abort�s

z_SSLProtocolTransport.abortr )NN)rJrKrLrZ
_SendfileModeZFALLBACKZ_sendfile_compatiblerrWrZr\r]r`�warnings�warnrdrfrirkrlrprqrMrrr4rzr|rrrr
rNs(



rNc@s�eZdZ				d+dd�Zdd�Zd,dd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zd,dd�Zdd�Z
dd�Zdd�Zdd�Zd d!�Zd"d#�Zd-d%d&�Zd'd(�Zd)d*�ZdS).�SSLProtocolFNTc		Cs�tdurtd��|durtj}n|dkrtd|����|s"t||�}||_|r-|s-||_nd|_||_t	|d�|_
t��|_
d|_||_||_|�|�t|j|�|_d|_d|_d|_d|_d|_||_||_dS)Nzstdlib ssl module not availablerz7ssl_handshake_timeout should be a positive number, got )rF)rr(rZSSL_HANDSHAKE_TIMEOUTrrrr�_sslcontext�dict�_extra�collections�deque�_write_backlog�_write_buffer_size�_waiterrOrXrN�_app_transport�_sslpipe�_session_established�
_in_handshake�_in_shutdownre�_call_connection_made�_ssl_handshake_timeout)	rrR�app_protocolr�waiterr	r
Zcall_connection_madeZssl_handshake_timeoutrrr
r�sB���


zSSLProtocol.__init__cCs||_t|tj�|_dSr )r[rsrZBufferedProtocol�_app_protocol_is_buffer)rr�rrr
rX�s
�zSSLProtocol._set_app_protocolcCsD|jdurdS|j��s|dur|j�|�n|j�d�d|_dSr )r��	cancelled�
set_exception�
set_result�rrBrrr
�_wakeup_waiter�s


zSSLProtocol._wakeup_waitercCs(	||_t|j|j|j�|_|��dSr )rerr�rrr��_start_handshake)r�	transportrrr
�connection_made�s�zSSLProtocol.connection_madecCsp	|jrd|_|j�|jj|�n	|jdurd|j_d|_d|_t|dd�r+|j	�
�|�|�d|_d|_dS)NFT�_handshake_timeout_handle)
r�rO�	call_soonr[�connection_lostr�rQrer;r��cancelr�r�r�rrr
r��s



zSSLProtocol.connection_lostcC�	|j��dSr )r[�
pause_writingr!rrr
r��zSSLProtocol.pause_writingcCr�r )r[�resume_writingr!rrr
r�r�zSSLProtocol.resume_writingcCs	|jdurdSz
|j�|�\}}Wn"ttfy�ty4}z
|�|d�WYd}~dSd}~ww|D]}|j�|�q7|D]A}|r}z|jrRt	�
|j|�n|j�|�WqBttfyc�ty|}z|�|d�WYd}~dSd}~ww|�
�dSdS)NzSSL error in data receivedz/application protocol failed to receive SSL data)r�r*�
SystemExit�KeyboardInterrupt�
BaseException�_fatal_errorrer4r�rZ_feed_data_to_buffered_protor[�
data_receivedr_)rr@r-r.�erA�exrrr
r�sF
��������zSSLProtocol.data_receivedcCs~	z7|j��r
t�d|�|�t�|js)|j��}|r1t�	d�W|j
��dSW|j
��dSW|j
��dS|j
��w)Nz%r received EOFz?returning true from eof_received() has no effect when using ssl)rO�	get_debugr�debugr��ConnectionResetErrorr�r[�eof_received�warningrer`)rZ	keep_openrrr
r�2s


��zSSLProtocol.eof_receivedcCs0||jvr
|j|S|jdur|j�||�S|Sr )r�rerWrTrrr
rSHs



zSSLProtocol._get_extra_infocCs0|jrdS|jr|��dSd|_|�d�dS)NTr&)r�r�r{rxr!rrr
r_PszSSLProtocol._start_shutdowncCs.|j�|df�|jt|�7_|��dS)Nr)r�r7r�rD�_process_write_backlogryrrr
rxYszSSLProtocol._write_appdatacCs\|j��rt�d|�|j��|_nd|_d|_|j�d�|j�	|j
|j�|_|�
�dS)Nz%r starts SSL handshakeT)r&r)rOr�rr��time�_handshake_start_timer�r�r7Z
call_laterr��_check_handshake_timeoutr�r�r!rrr
r�^s

��zSSLProtocol._start_handshakecCs.|jdurd|j�d�}|�t|��dSdS)NTz$SSL handshake is taking longer than z! seconds: aborting the connection)r�r�r��ConnectionAbortedError)r�msgrrr
r�ms
���z$SSLProtocol._check_handshake_timeoutc
Csd|_|j��|jj}z|dur|�|��}Wn-ttfy"�tyE}zt	|t
j�r2d}nd}|�||�WYd}~dSd}~ww|j
��r\|j
��|j}t�d||d�|jj||��|��|d�|jrt|j�|j�|��d|_|j
�|j�dS)NFz1SSL handshake failed on verifying the certificatezSSL handshake failedz%r: SSL handshake took %.1f msg@�@)�peercert�cipher�compressionr"T)r�r�r�r�r"Zgetpeercertr�r�r�rsrr:r�rOr�r�r�rr�r��updater�r�r�r[r�r�r�r�r�r�)rZ
handshake_excZsslobjr�rBr�Zdtrrr
�_on_handshake_completevs<
��
�z"SSLProtocol._on_handshake_completec
CsL|jdus
|jdurdSzgtt|j��D]\}|jd\}}|r)|j�||�\}}n|r5|j�|j�}d}n	|j�|j	�}d}|D]}|j�
|�q@|t|�krc||f|jd<|jjr_|j��WdS|jd=|j
t|�8_
qWdSttfy}�ty�}z|jr�|�|�n
|�|d�WYd}~dSWYd}~dSd}~ww)NrrzFatal error on SSL transport)rer��rangerDr�rIr/r�r1�	_finalizer4Z_pausedrkr�r�r�r�r�r�)r�ir@rGr-rArBrrr
r��sB�
����z"SSLProtocol._process_write_backlog�Fatal error on transportcCsZt|t�r|j��rtjd||dd�n|j�|||j|d��|jr+|j�|�dSdS)Nz%r: %sT)�exc_info)�message�	exceptionr�rY)	rs�OSErrorrOr�rr�Zcall_exception_handlerreZ_force_close)rrBr�rrr
r��s

���zSSLProtocol._fatal_errorcCs"d|_|jdur|j��dSdSr )r�rer`r!rrr
r��s
�zSSLProtocol._finalizecCs<z|jdur|j��W|��dSW|��dS|��wr )rer|r�r!rrr
r{�s
�zSSLProtocol._abort)FNTNr )r�)rJrKrLrrXr�r�r�r�r�r�r�rSr_rxr�r�r�r�r�r�r{rrrr
r�s0
�.

&
		)
+r)r�r}r�ImportError�rrr�logrrrr)r$r0�objectrZ_FlowControlMixinZ	TransportrNZProtocolrrrrr
�<module>s,�y�~