HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //lib/python3.9/site-packages/rhn/__pycache__/SSL.cpython-39.pyc
a

ꑐc-+�@s�dZddlmZddlmZddlZddlZddlZddlmZddl	Z	dZ
eed�r^ejZ
nddlm
Z
Gd	d
�d
�Zdd�ZGd
d�dejej�ZdS)zK
rhn.SSL builds an abstraction on top of the objects provided by pyOpenSSL
�)�SSL)�cryptoN)�bstr�x�sslerror)�socket_errorc@s�eZdZdZd(dd�Zdd�Zdd�Zd)d	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zd*dd�Zd+dd�Zdd�Zd d!�Zd"d#�Zd$d%�ZeZeZd,d&d'�ZdS)-�	SSLSocketzM
    Class that wraps a pyOpenSSL Connection object, adding more methods
    NcCsjd|_d|_||_g|_|pg}|D]}|�|�q$tj|_tj|_	d|_
d|_td�|_
d|_d|_dS)Ni r�)�_ctx�_connection�_sock�_trusted_certs�add_trusted_certrZ
SSLv23_METHOD�_ssl_methodZVERIFY_PEER�_ssl_verify_flags�_buffer_size�_posr�_buffer�_makefile_called�_closed)�self�socketZ
trusted_certs�f�r�+/usr/lib/python3.9/site-packages/rhn/SSL.py�__init__/s
zSSLSocket.__init__cCs0t�|tj�std|��|j�|�d��dS)zh
        Adds a trusted certificate to the certificate store of the SSL context
        object.
        z"Unable to read certificate file %szutf-8N)�os�access�R_OK�
ValueErrorr
�append�encode)r�filerrrrLszSSLSocket.add_trusted_certcCs�|��t�|j�|_|j�tj�|j�tj�|jrR|jD]}|j�	|�q>nd|_
|j�|j
t�t
td�r�|j�tj�t�|j|j�|_|j��dS)z1
        Initializes the SSL connection.
        r�OP_DONT_INSERT_EMPTY_FRAGMENTSN)�
_check_closedrZContextrr
Zset_optionsZOP_NO_SSLv2ZOP_NO_SSLv3r
Zload_verify_locationsrZ
set_verify�ssl_verify_callback�hasattrr#Z
ConnectionrrZset_connect_state)rrrrr�init_sslUs

zSSLSocket.init_sslcCs|r
||_|jd|_|S)zG
        Returns self, since we are a file-like object already
        �)rr)r�mode�bufsizerrr�makefilesszSSLSocket.makefilecCs,|jr
dS|js|��dS|jd|_dS)z+
        Closes the SSL connection
        Nr()rr�
_really_close�rrrr�close�szSSLSocket.closecCsdS�Nrr-rrr�flush�szSSLSocket.flushcCs�|jdurdSd}zt|jd�}Wnty@t|jd�}Yn0|dur�tjddkrn|�dkr�|j��n|�dkr�|j��|j��d|_dS)NZstate_stringZget_state_stringr�s%SSL negotiation finished successfullyz%SSL negotiation finished successfullyr()r�getattr�AttributeError�sys�version_infoZshutdownr.r)rZ	get_staterrrr,�s




zSSLSocket._really_closecCs|jrtd��dS)NzI/O operation on closed file)rrr-rrrr$�szSSLSocket._check_closedcCs$t|j|�rt|j|�St|��dSr/)r&rr2r3)r�namerrr�__getattr__�szSSLSocket.__getattr__cCsdS)z'
        Returns false always.
        rrr-rrr�isatty�szSSLSocket.isattycCs|jSr/)rr-rrr�tell�szSSLSocket.tellrcCstd��dS)N�seek)�NotImplementedError)r�posr)rrrr:�szSSLSocket.seekcCsX|��|j}t|j�}||ks*|du�r|dur@t|||�}z>|j�|�}|j||_t|j�}|j��}|dkr|W�qWqtj	y�Y�qYqtj
y�t��d}t
d|j�Y�qYqtjy�|�tjd�Yqtj�y
|�tjd�Yq0q|�r4|jd|�}|j|d�|_n|j}td�|_|jt|�|_|S)z@
        Reads up to amt bytes from the SSL connection.
        Nrr(z
SSL exception�readr	)r$r�lenr�minr�recv�pendingr�ZeroReturnErrorZSysCallErrorr4�exc_info�print�args�WantWriteError�_poll�select�POLLOUT�
WantReadError�POLLINrr)r�amtZbuffer_sizeZ
buffer_length�datarA�e�retrrrr=�s<






zSSLSocket.readcCs|�t|��|dd�<t|�Sr/)r=r>)r�bufrrr�readinto�szSSLSocket.readintocCsBt��}|�|j|�|�|j��d�}|gkr>td|��dS)Ni�zConnection timed out on %s)rHZpoll�registerrZ
gettimeout�TimeoutException)rZfilter_typeZcaller_nameZpoller�resrrrrG�s
zSSLSocket._pollcCs�|��t|�}z,|j�|�}|t|�kr.Wq�||d�}Wqtjy^|�tjd�Yqtj	y~|�tj
d�Yq0q|S)z/
        Writes to the SSL connection.
        N�write)r$r>r�sendrrFrGrHrIrJrK)rrMZoriglen�sentrrrrU�szSSLSocket.writecCs
|�|�Sr/)r=)rrLrrrr@szSSLSocket.recvcCs:|��d}|j�td��}|dkr.|d}n|rDt|j�|krD|}|dur~|jd|�}|j|d�|_|jt|�|_|S|j}|r�t|j|t|j��}z|j�	|�}|j||_Wqt
jy�Y�qYqt
jy�|�
tjd�Yqt
j�y|�
tjd�Yq0q|j}d|_|jt|�|_|S)zg
        Reads a single line (up to `length' characters long) from the SSL
        connection.
        N�
rr(�readliner	)r$r�findrr>rrr?rr@rrBrFrGrHrIrJrK)r�lengthZ	charcount�irOr*rMrrrrYs8

zSSLSocket.readline)N)N)r)N)N)�__name__�
__module__�__qualname__�__doc__rrr'r+r.r0r,r$r7r8r9r:r=rQrGrUr@rVZsendallrYrrrrr+s*
	



3rcCs|S)zb
    Verify callback, which will be called for each certificate in the
    certificate chain.
    r)ZconnZcertZerrnum�depth�okrrrr%Ksr%c@seZdZdd�Zdd�ZdS)rScGs
||_dSr/)rE)rrErrrrUszTimeoutException.__init__cCsdS)NzTimeout Exceptionrr-rrr�__str__XszTimeoutException.__str__N)r]r^r_rrcrrrrrSSsrS)r`ZOpenSSLrrrrrHZrhn.i18nrr4ZDEFAULT_TIMEOUTr&rrZsslrr%�Error�timeoutrSrrrr�<module>s 
"