File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/rsax931.cpython-310.pyc
Back
o ;j�# � @ s� d Z ddlZddlZddlZddlZddlZddlmZmZm Z m Z mZmZ ddl ZddlZdZdZdZdd� Zd d � Zdd� Ze� Zd ZG dd� d�ZG dd� d�ZdS )zE Create and verify ANSI X9.31 RSA signatures using OpenSSL libcrypto � N)�c_char_p�c_int�c_void_p�cdll�create_string_buffer�pointer� � � c C s� t j�d�r&d} t jD ]}t�tj�|d��} | r| d nd} | r# nq�n&tjj� � r�t�d�} | p7t�d�} t j }tj�|�rGtj�|�}tj� |�}tj�|�dkr[tj� |�}| pdt�|� d��} t�d d �}| pvt�tj�|d��} | p�t�tj�|d��} | p�t�d �} t�� d �d�dd� ddgkr�| p�t�d�} ttt| ���} ntt�� d �d�d �dk r�| p�dg} | r�| d nd} n�tt dd�r�tjj�� r�t�tj�tj� t j �d��} | r�| d nd} n`tj�d�} | �sLtjj�� �rt�d�} | �pt�d�} | �pt�d�} | �r| d nd} n1tjj�� �rLtj�d��s0tj�d��r>t�d�} | �p<t�d�} nt�d�} | �rJ| d nd} | �sStd ��| S )!z@ Find the path (or return the short name) of libcrypto. �winNzlibcrypto*.dllr z/opt/salt/lib/libcrypto.dylibzlib/libcrypto.dylib�binz/lib/libcrypto.dylibZHOMEBREW_PREFIXz /usr/localzopt/openssl/lib/libcrypto.dylibz!opt/openssl@*/lib/libcrypto.dylibz/opt/local/lib/libcrypto.dylib�.� �10Z15z/usr/lib/libcrypto.*.dylib� z/usr/lib/libcrypto.dylib�frozenFz libcrypto.so*Zcryptoz%/opt/saltstack/salt/run/libcrypto.so*z/opt/local/lib/libcrypto.so*z/opt/tools/lib/libcrypto.so*z/opt/saltstack/salt/runz /opt/salt/libz/opt/salt/lib/libcrypto.so*z/opt/freeware/lib/libcrypto.so*zCannot locate OpenSSL libcrypto)�sys�platform� startswith�path�glob�os�join�salt�utilsZ is_darwin� executable�islink�realpath�dirname�basename�getenv�mac_ver�split�list�reversed�sorted�int�getattrZ is_smartos�ctypes�utilZfind_libraryZis_sunosZis_aix�isdir�OSError)�libr Zpy_bin�targetZbrew_prefix� r. �F/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/rsax931.py�_find_libcrypto sl �� ��" � r0 c C s t �t� �S )z$ Attempt to load libcrypto. )r �LoadLibraryr0 r. r. r. r/ �_load_libcrypton s r2 c C s� t � } z| j}t|�r|� }|dk r| �� W n ty( | �� | �� Y nw d| j_t | j_ t f| j_t | j_ ttf| j_t | j_ t f| j_t t t t f| j_t | j_ t t t t f| j_t | j_ tttt tf| j_tttt tf| j_| S )z> Set up libcrypto argtypes and initialize the library i r. )r2 ZOpenSSL_version_num�callableZOPENSSL_init_crypto�AttributeErrorZOPENSSL_no_configZ!OPENSSL_add_all_algorithms_noconf�RSA_new�argtypesr �restype�RSA_free�RSA_sizeZargtyper r �BIO_new_mem_buf�BIO_free�PEM_read_bio_RSAPrivateKey�PEM_read_bio_RSA_PUBKEY�RSA_private_encrypt�RSA_public_decrypt)� libcryptoZopenssl_version_numr. r. r/ �_init_libcryptou sN �� ���rA � c @ �( e Zd ZdZdd� Zdd� Zdd� ZdS ) � RSAX931SignerzB Create ANSI X9.31 RSA signatures using OpenSSL libcrypto c C sT t jj�|d�}t�|t|��| _tt� � �| _ t�| jt| j �dd�s(t d��dS )zo Init an RSAX931Signer instance :param str keydata: The RSA private key in PEM format �asciiNzinvalid RSA private key)r r �stringutils�to_bytesr@ r: �len�_bior r5 �_rsar<