HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/oscrypto/__pycache__/_ffi.cpython-39.pyc
a

�,�hF/�@s.dZddlmZmZmZmZddlZddlZddlm	Z	ddl
mZddlm
Z
mZmZmZgd�Ze�d	k�rfdd
lmZiZe�Zdd�Zd
d�Zdd�Zdd�Zdgdd�Zdd�Zdd�Zdd�Zdhdd�Zdd�Zdd �Zd!d"�Z d#d$�Z!d%d&�Z"d'd(�Z#d)d*�Z$did+d,�Z%djd-d.�Z&d/d0�Z'd1d2�Z(d3d4�Z)d5d6�Z*d7d8�Z+d9d:�Z,d;d<�Z-d=d>�Z.d	Z/�n�ddl0Z0dd?l0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6ee3e0�7e0j8�fZ9d@d@d@d@dA�Z:e5e6e3e0�7e3�e2e4e0j;e0j<dB�Z=ejdCk�r6ddDl0m>Z>e:�?d@d@d@d@dE��e=�?e0j8e3e6e3e6e>j@e>jAe0�7e0j8�e0�7e0�7e0j8��dF�	�dGdH�ZBdId�ZdJd�ZdKd�ZdkdLd�ZdMd�ZdNd�ZdOd�ZdldPd�ZdQd�ZdRd �ZdSd"�Z dTd$�Z!dUd&�Z"dVd(�Z#dWd*�Z$dmdXd,�Z%dndYd.�Z&dZd0�Z'd[d2�Z(d\d4�Z)d]d6�Z*d^d8�Z+d_d:�Z,d`d<�Z-dad>�Z.dbZ/dcdd�ZCGdedf�dfeD�ZEdS)ozK
Exceptions and compatibility shims for consistently using ctypes and cffi
�)�unicode_literals�division�absolute_import�print_functionN)�find_library�)�ffi)�str_cls�byte_cls�	int_types�
bytes_to_list)�array_from_pointer�	array_set�buffer_from_bytes�buffer_from_unicode�buffer_pointer�
byte_array�byte_string_from_buffer�bytes_from_buffer�callback�cast�deref�errno�FFIEngineError�get_library�is_null�native�new�null�pointer_set�ref�register_ffi�sizeof�struct�struct_bytes�struct_from_buffer�unwrap�write_to_buffer�cffi)�FFIcCs|t|<dS�N)�
_ffi_registry��library�ffi_obj�r/�>/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/oscrypto/_ffi.pyr!8sr!cCs|tvrt|StSr*)r+r)r-r/r/r0�_get_ffi;sr1cCs"tjdkrt�d|�St�d|�S)N�win32zunsigned char[]zchar[])�sys�platformrr��initializerr/r/r0r@s
rcCst�d|�S)Nz
wchar_t []�rrr5r/r/r0rEsrcCs||||t|��<dSr*)�len��buffer�data�offsetr/r/r0r'Hsr'cCst�d|g�S)Nzchar *[]r7�r:r/r/r0rKsrcCst|�}|�||�Sr*)r1r)r-�type_�valuer.r/r/r0rNsrcCst|�}|�|�Sr*)r1r")r-r?r.r/r/r0r"Rsr"cCs.|durt�||�dd�St�|�dd�Sr*�rr:�r:�maxlenr/r/r0rVsrcCs
t�|�Sr*)r�stringr=r/r/r0r[srcCs|Sr*r/�Zbyte_stringr/r/r0r^srcCs||d<dS�Nrr/�Zpointer_r?r/r/r0rasrcCst|�D]\}}|||<qdSr*��	enumerate��arrayr?�index�valr/r/r0rdsrcCstjSr*)r�NULLr/r/r/r0rhsrcCsH|durdS|tjkrdSt�t�|��dkr2dS|dtjkrDdSdS)NT�void *Fr)rrMZgetctypeZtypeof��pointr/r/r0rks
rcCstjSr*)rrr/r/r/r0rvsrcCsLt|�}g}|dur|�|�|tddg�vr:|�|d�S|j|g|�R�S)NZBCRYPT_KEY_HANDLEZBCRYPT_ALG_HANDLEr)r1�append�setrr)r-r>r?r.�paramsr/r/r0rys
rcCs||Sr*r/�r?r<r/r/r0r �sr cCs4|tkrt�|�S|tkr,t�|�dd�S||�Sr*)r	rrCr
r:�r>r?r/r/r0r�s

rcCs|dSrEr/rOr/r/r0r�srcCs|dSrEr/rOr/r/r0r&�sr&cCst|�}|�d|�S)N�%s *)r1r)r-�namer.r/r/r0r#�sr#cCst�|�dd�Sr*r@�Zstruct_r/r/r0r$�sr$cCsRt|�}|�d|�}|d}t||�}|�|�}|�||�dd�|dd�<|S)NrVr)r1rr"r:)r-rWr:r.Znew_struct_pointerZ
new_structZstruct_sizeZ
struct_bufferr/r/r0r%�s

r%cCs�t|�}|�d||f|�}|�|�}|dkr2gSg}ddddddd�}||v}	td|�D]$}
||
}|	rt|�|�}|�|�qZ|S)Nz%s[%s]rT)�LPSTR�LPCSTR�LPWSTR�LPCWSTR�char *�	wchar_t *)r1rr"�rangerCrQ)r-rWrP�sizer.rJ�total_bytes�output�string_typesZstring_type�ir?r/r/r0r
�s(
�
r
cCst|�}|�||�Sr*)r1r)r-Zsignature_name�funcr.r/r/r0r�sr)�pointer�c_int�c_char_p�c_uint�c_void_p�	c_wchar_pT)rNr^r]�char **)rNr^r]rl�intzunsigned intZsize_tZuint32_tr2)�wintypes)rYr[rZr\)	ZBYTErYr[rZr\�ULONG�DWORDr]rlcCs�|dd�dk}|r |dd�}|dd�dko6|tv}|rH|dd�}|�d�dk}|r�||�d�d|�d��}|d	kr�d
}nt|�}|d|�d��}|tvr�t|}n
t||�}|r�t�|�}|||fS)N���z **������z *�[r�]�Tr)�_pointer_types�findrm�	_type_map�getattr�ctypes�POINTER)r-r>Zis_double_pointer�
is_pointer�is_arrayr/r/r0�
_type_info�s&


rcCsdSr*r/r,r/r/r0r!scCs
t�|�Sr*)r{�create_string_bufferr5r/r/r0rscCs
t�|�Sr*)r{�create_unicode_bufferr5r/r/r0rscCsPt|t�tj��r(t�||t|��dS|dkr8||_n|jd|�||_dSrE)�
isinstancer{r|�c_byte�memmover8r?�rawr9r/r/r0r'scCstt�|t��Sr*)rfr{rrhr=r/r/r0rscCs8t||�\}}}|r t�|�}n|r,||}t�||�Sr*)rr{r|r)r-r>r?r}r~r/r/r0rscCs
t�|�Sr*)r{r")r-r?r/r/r0r"(scCs2t|t�rt�||�S|dur,|jd|�S|jSrE)r��_pointer_int_typesr{�	string_atr�rAr/r/r0r+s

cCs|jSr*)r?r=r/r/r0r2scCstjt|�t|��Sr*)r{r�r8rrDr/r/r0r5scCs||j_dSr*)�contentsr?rFr/r/r0r8scCst|�D]\}}|||<qdSr*rGrIr/r/r0r;scCsdSr*r/r/r/r/r0r?scCs
t|�Sr*)�boolrOr/r/r0rBscCst��Sr*)r{�	get_errnor/r/r/r0rEscCs`t||�\}}}|r2|dur*||}d}n||}g}|durH|�|�||�}|r\t|�}|S)NT)rrQrf)r-r>r?r}r~rSrbr/r/r0rHs
cCs0|dkrt�|�St�t�|�|t�tj��SrE)r{�byrefr�	addressofr|r�rTr/r/r0r [s
cCsdt||�r|Stjdkr.|tkr.t|t�r.|St|tj�rZ|jtjkrZt�	t�
|�|j�S||j�S)N)�)
r�r3�version_informrr{�Array�_type_r�r�r��_length_r?rUr/r/r0r`s
cCs|dSrEr/rOr/r/r0riscCs|jSr*)r�rOr/r/r0r&lscCstt||���Sr*)rfrz)r-rWr/r/r0r#oscCst�|t�|j��Sr*)r{r�r"r�rXr/r/r0r$rscCs4t||�}|�}t�t�|�|t�|��t�|�Sr*)rzr{r�r�r"rf)r-r>r:�class_r?r/r/r0r%us
cCsHt||�\}}}t�|t�|��}g}td|�D]}|�||�q0|SrE)rr{rr|r_rQ)r-r>rPr`�_rJrbrdr/r/r0r
{scCst||�|�Sr*)rz)r-Zsignature_typerer/r/r0r�sr{cCspt|�}tjdkrld|}|�dd|�}tttt��d�d���}|sX|dkrX|}n|dkrl||krl|}|S)	a�
    Retrieve the C library path with special handling for Mac

    :param name:
        A unicode string of the library to search the system for

    :param dylib_name:
        Mac only - a unicode string of the unversioned dylib name

    :param version:
        Mac only - a unicode string of the dylib version to use. Used on macOS
        10.15+ when the unversioned dylib is found, since unversioned
        OpenSSL/LibreSSL are just placeholders, and a versioned dylib must be
        imported. Used on macOS 10.16+ when find_library() doesn't return a
        result, due to system dylibs not being present on the filesystem any
        longer.

    :return:
        A unicode string of the path to the library
    �darwinz/usr/lib/%sz.dylibz	.%s.dylibr�.)�
�)r��)	rr3r4�replace�tuple�maprm�mac_ver�split)rWZ
dylib_name�versionr-ZunversionedZ	versionedr�r/r/r0r�s
rc@seZdZdZdS)rz@
    An exception when trying to instantiate ctypes or cffi
    N)�__name__�
__module__�__qualname__�__doc__r/r/r/r0r�sr)r)N)N)r)r)N)N)r)Fr��
__future__rrrrr3r4Zctypes.utilrrvr�_typesr	r
rr�__all__r(r)r+r!r1rrr'rrr"rrrrrrrrrr rrr&r#r$r%r
rZenginer{rfrgrhrirjrkr|r�r�rw�c_size_t�c_uint32ryrn�updaterorprr�	Exceptionrr/r/r/r0�<module>s�




	 ��
�
�





	&