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: //usr/lib64/python3.6/site-packages/M2Crypto/__pycache__/SMIME.cpython-36.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)r�
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r2cCsVtj|j��\}}|dkr&ttj���|dkr<t|d�dfSt|d�tj|d�fSdS)Nr)rr0r�SMIME_Errorr�	get_errorrr)r-r(r1rrr�smime_load_pkcs7_bio{sr5c@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�algor8rrrr�s
zCipher.__init__cCs|jS)N)r8)rrrrr�szCipher._ptrN)r
rr�__doc__rrrrrrr6�sr6c@seZdZdS)r3N)r
rrrrrrr3�sr3c@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_biocCst|tj�st�||_dS)N)�
isinstancerr �AssertionError�
x509_stack)rr!rrr�set_x509_stack�szSMIME.set_x509_stackcCst|tj�st�||_dS)N)rArZ
X509_StorerB�
x509_store)rZstorerrr�set_x509_store�szSMIME.set_x509_storecCst|t�st�||_dS)N)rAr6rBr8)rr8rrr�
set_cipher�szSMIME.set_ciphercCs|`|`dS)N)r=r>)rrrr�	unset_key�szSMIME.unset_keycCs|`dS)N)rC)rrrr�unset_x509_stack�szSMIME.unset_x509_stackcCs|`dS)N)rE)rrrr�unset_x509_store�szSMIME.unset_x509_storecCs|`dS)N)r8)rrrr�unset_cipher�szSMIME.unset_cipherrcCsNt|d�std��t|d�s$td��tj|jj�|j�|jj�|�}t|d�S)Nr8zno cipher: use set_cipher()rCz(no recipient certs: use set_x509_stack()r)�hasattrr3rZ
pkcs7_encryptrCrr8r)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?)rLr3rZ
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 %srCr)rLr3rrZpkcs7_sign1r>rr=rCrZpkcs7_sign0)rrMr"r9�hashrrrr�sign�s


z
SMIME.signcCs�t|d�std��t|d�s$td��t|t�s6td��|j�}|dkrdtj||jj�|j	j�|�}n"tj
||jj�|j	j�|j�|�}|S)NrCz%no signer certs: use set_x509_stack()rEz(no x509 cert store: use set_x509_store()zpkcs7 not an instance of PKCS7)rLr3rArrBrrZ
pkcs7_verify0rCrEZ
pkcs7_verify1)rrrMr"Zp7rOrrr�verify�s

zSMIME.verifycCsLt|t�st�|dkr,tj|j�|j�|�Stj|j�|j�|j�|�SdS)N)rArrBrZsmime_write_pkcs7rZsmime_write_pkcs7_multi)rZout_biorrMr"rrrr	s
zSMIME.write)r)r)rrQ)Nr)Nr)r
rrrZpassphrase_callbackr<r@rDrFrGrHrIrJrKrNrPrSrTrrrrrr;�s 




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

r[cCs0tj�}tj|j�|j��r |Sttj���dS)N)rrUrrVrr3rr4)rYrZrrr�
text_crlf_biosr\N),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/r2r5r6r3Z
smime_initr;r[r\rrrr�<module>s> 
/
v