o
    	&zh5  ã                   @   sô   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 defZ
G dd„ de	ƒZG d	d
„ d
e	ƒZdededefdd„Zdededefdd„Zdededefdd„Zdededefdd„Zdedededefdd„Zdedededefdd„ZdS )é    N)Ú__version__)ÚAESÚARC4)Úpad)Ú	CryptBaseÚpycryptodomec                   @   óB   e Zd Zdeddfdd„Zdedefdd„Zdedefd	d
„ZdS )ÚCryptRC4ÚkeyÚreturnNc                 C   ó
   || _ d S ©N©r
   ©Úselfr
   © r   ú_/var/www/html/kangema/venv/lib/python3.10/site-packages/pypdf/_crypt_providers/_pycryptodome.pyÚ__init__(   ó   
zCryptRC4.__init__Údatac                 C   ó   t  | j¡ |¡S r   )r   Ú
ARC4Cipherr
   Úencrypt©r   r   r   r   r   r   +   ó   zCryptRC4.encryptc                 C   r   r   )r   r   r
   Údecryptr   r   r   r   r   .   r   zCryptRC4.decrypt©Ú__name__Ú
__module__Ú__qualname__Úbytesr   r   r   r   r   r   r   r	   '   s    r	   c                   @   r   )ÚCryptAESr
   r   Nc                 C   r   r   r   r   r   r   r   r   3   r   zCryptAES.__init__r   c                 C   s4   t  d¡}t|dƒ}t | jtj|¡}|| |¡ S )Né   )ÚsecretsÚtoken_bytesr   r   Únewr
   ÚMODE_CBCr   )r   r   ÚivÚaesr   r   r   r   6   s   

zCryptAES.encryptc                 C   sh   |d d… }|dd … }|s|S t |ƒd dkrt|dƒ}t | jtj|¡}| |¡}|d |d  … S )Nr"   r   éÿÿÿÿ)Úlenr   r   r%   r
   r&   r   )r   r   r'   r(   Údr   r   r   r   <   s   

zCryptAES.decryptr   r   r   r   r   r!   2   s    r!   r
   r   r   c                 C   ó   t  | ¡ |¡S r   )r   r   r   ©r
   r   r   r   r   Úrc4_encryptL   ó   r.   c                 C   r,   r   )r   r   r   r-   r   r   r   Úrc4_decryptP   r/   r0   c                 C   ó   t  | t j¡ |¡S r   )r   r%   ÚMODE_ECBr   r-   r   r   r   Úaes_ecb_encryptT   ó   r3   c                 C   r1   r   )r   r%   r2   r   r-   r   r   r   Úaes_ecb_decryptX   r4   r5   r'   c                 C   ó   t  | t j|¡ |¡S r   )r   r%   r&   r   ©r
   r'   r   r   r   r   Úaes_cbc_encrypt\   ó   r8   c                 C   r6   r   )r   r%   r&   r   r7   r   r   r   Úaes_cbc_decrypt`   r9   r:   )r#   ÚCryptor   ÚCrypto.Cipherr   r   ÚCrypto.Util.Paddingr   Úpypdf._crypt_providers._baser   Úcrypt_providerr	   r!   r    r.   r0   r3   r5   r8   r:   r   r   r   r   Ú<module>   s   