HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/site-packages/M2Crypto/__pycache__/SMIME.cpython-36.opt-1.pyc
3

YݧZ#�@s<ddlmZddlmZmZmZmZmZmZej	rFddl
mZmZm
Z
ejZejZejZejZejZejZejZejZejZejZejZejZejZGdd�de�Zeje�Gdd�de�Zdd	�Z d
d�Z!dd
�Z"dd�Z#dd�Z$dd�Z%Gdd�de�Z&Gdd�de�Z'ej(e'�Gdd�de�Z)dd�Z*dd�Z+dS)�)�absolute_import)�BIO�EVP�Err�X509�m2�util)�AnyStr�Callable�Optionalc@seZdZdS)�PKCS7_ErrorN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.6/SMIME.pyrsrc@sPeZdZejZddd�Zdd�Zdd�Zdd	d
�Z	dd�Z
d
d�Zddd�ZdS)�PKCS7NrcCs*|dk	r||_||_ntj�|_d|_dS)zlPKCS7 object.

        :param pkcs7: binary representation of
               the OpenSSL type PKCS7
        N�)�pkcs7�_pyfreerZ	pkcs7_new)�selfrrrrr�__init__%s

zPKCS7.__init__cCst|dd�r|j|j�dS)Nrr)�getattr�
m2_pkcs7_freer)rrrr�__del__3sz
PKCS7.__del__cCs|jS)N)r)rrrr�_ptr8sz
PKCS7._ptrcCs |rtj|j�Stj|j�SdS)N)rZ
pkcs7_type_snrZpkcs7_type_nid)rZ	text_namerrr�type;sz
PKCS7.typecCstj|j|j��S)N)rZpkcs7_write_biorr)r�biorrr�writeBszPKCS7.writecCstj|j|j��S)N)rZpkcs7_write_bio_derrr)rrrrr�	write_derFszPKCS7.write_dercCstjtj|j|j|�d�S)Nr)rZ
X509_StackrZpkcs7_get0_signersr�stack)rZcerts�flagsrrr�get0_signersJszPKCS7.get0_signers)Nr)r)r)
r
rrrZ
pkcs7_freerrrrrrrr"rrrrr!s

rc
Cs.tj|d��}tj|j�}WdQRXt|d�S)N�rr)r�openfiler�pkcs7_read_biorr)�p7filer�p7_ptrrrr�
load_pkcs7Psr(c
Cs.tj|d��}tj|j�}WdQRXt|d�S)N�rbr)rr$r�pkcs7_read_bio_derrr)r&rr'rrr�load_pkcs7_derXsr+cCstj|j��}t|d�S)Nr)rr%rr)�p7_bior'rrr�load_pkcs7_bio`sr-cCstj|j��}t|d�S)Nr)rr*rr)r,r'rrr�load_pkcs7_bio_derfsr.cCs\tj|d�}ztj|�\}}Wdtj|�X|dkrBt|d�dfSt|d�tj|d�fSdS)Nr#r)rZbio_new_file�smime_read_pkcs7Zbio_freerr)r&rr'�bio_ptrrrr�smime_load_pkcs7lsr1cCsVtj|j��\}}|dkr&ttj���|dkr<t|d�dfSt|d�tj|d�fSdS)Nr)rr/r�SMIME_Errorr�	get_errorrr)r,r'r0rrr�smime_load_pkcs7_bio{sr4c@s eZdZdZdd�Zdd�ZdS)�CipherzVObject interface to EVP_CIPHER without all the frills of
    M2Crypto.EVP.Cipher.
    cCs*tt|d�}|dkrtd|��|�|_dS)Nzunknown cipher)rr�
ValueError�cipher)r�algor7rrrr�s
zCipher.__init__cCs|jS)N)r7)rrrrr�szCipher._ptrN)r
rr�__doc__rrrrrrr5�sr5c@seZdZdS)r2N)r
rrrrrrr2�sr2c@s�eZdZdejfdd�Zdejfdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
d dd�Zd!dd�Zd"dd�Zd#dd�Zd$dd�ZdS)%�SMIMENcCs*|dkr|}tj||�|_tj|�|_dS)N)r�load_key�pkeyrZ	load_cert�x509)rZkeyfileZcertfile�callbackrrrr;�szSMIME.load_keycCs*|dkr|}tj||�|_tj|�|_dS)N)r�load_key_bior<rZ
load_cert_bior=)rZkeybioZcertbior>rrrr?�szSMIME.load_key_biocCs
||_dS)N)�
x509_stack)rr rrr�set_x509_stack�szSMIME.set_x509_stackcCs
||_dS)N)�
x509_store)rZstorerrr�set_x509_store�szSMIME.set_x509_storecCs
||_dS)N)r7)rr7rrr�
set_cipher�szSMIME.set_ciphercCs|`|`dS)N)r<r=)rrrr�	unset_key�szSMIME.unset_keycCs|`dS)N)r@)rrrr�unset_x509_stack�szSMIME.unset_x509_stackcCs|`dS)N)rB)rrrr�unset_x509_store�szSMIME.unset_x509_storecCs|`dS)N)r7)rrrr�unset_cipher�szSMIME.unset_cipherrcCsNt|d�std��t|d�s$td��tj|jj�|j�|jj�|�}t|d�S)Nr7zno cipher: use set_cipher()r@z(no recipient certs: use set_x509_stack()r)�hasattrr2rZ
pkcs7_encryptr@rr7r)r�data_bior!rrrr�encrypt�s

z
SMIME.encryptcCsHt|d�std��t|d�s$td��tj|j�|jj�|jj�|�}|S)Nr<zno private key: use load_key()r=z,no certificate: load_key() used incorrectly?)rIr2rZ
pkcs7_decryptrr<r=)rrr!�blobrrr�decrypt�s

z
SMIME.decrypt�sha1cCs�t|d�std��tt|d�}|dkr2td|��t|d�rrtj|jj�|jj�|jj�|j�|�|�}t	|d�Stj
|jj�|jj�|j�|�|�}t	|d�SdS)Nr<zno private key: use load_key()zno such hash algorithm %sr@r)rIr2rrZpkcs7_sign1r=rr<r@rZpkcs7_sign0)rrJr!r8�hashrrrr�sign�s


z
SMIME.signcCsxt|d�std��t|d�s$td��|j�}|dkrRtj||jj�|jj�|�}n"tj||jj�|jj�|j�|�}|S)Nr@z%no signer certs: use set_x509_stack()rBz(no x509 cert store: use set_x509_store())rIr2rrZ
pkcs7_verify0r@rBZ
pkcs7_verify1)rrrJr!Zp7rLrrr�verify�s

zSMIME.verifycCs>|dkrtj|j�|j�|�Stj|j�|j�|j�|�SdS)N)rZsmime_write_pkcs7rZsmime_write_pkcs7_multi)rZout_biorrJr!rrrr	szSMIME.write)r)r)rrN)Nr)Nr)r
rrrZpassphrase_callbackr;r?rArCrDrErFrGrHrKrMrPrQrrrrrr:�s 




r:cCs>tj|�}tj�}tj|j�|j��r.|j�Sttj���dS)N)	r�MemoryBufferr�smime_crlf_copyr�readr2rr3)�text�bio_in�bio_outrrr�	text_crlfs

rXcCs0tj�}tj|j�|j��r |Sttj���dS)N)rrRrrSrr2rr3)rVrWrrr�
text_crlf_biosrYN),Z
__future__rZM2CryptorrrrrrZpy27plusZtypingr	r
rZ
PKCS7_TEXTZ
PKCS7_NOCERTSZPKCS7_NOSIGSZ
PKCS7_NOCHAINZPKCS7_NOINTERNZPKCS7_NOVERIFYZPKCS7_DETACHEDZPKCS7_BINARYZPKCS7_NOATTRZPKCS7_SIGNEDZPKCS7_ENVELOPEDZPKCS7_SIGNED_ENVELOPEDZ
PKCS7_DATA�	ExceptionrZ
pkcs7_init�objectrr(r+r-r.r1r4r5r2Z
smime_initr:rXrYrrrr�<module>s> 
/
v