
    @wg5                         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e	      Z G d	 d
e	      ZdededefdZdededefdZdededefdZdededefdZdedededefdZdedededefdZy)    N)__version__)AESARC4)pad)	CryptBasepycryptodomec                   <    e Zd ZdeddfdZdedefdZdedefdZy)CryptRC4keyreturnNc                     || _         y Nr   selfr   s     [/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/_crypt_providers/_pycryptodome.py__init__zCryptRC4.__init__(   	        datac                 ^    t        j                  | j                        j                  |      S r   )r   
ARC4Cipherr   encryptr   r   s     r   r   zCryptRC4.encrypt+        txx(0066r   c                 ^    t        j                  | j                        j                  |      S r   )r   r   r   decryptr   s     r   r   zCryptRC4.decrypt.   r   r   __name__
__module____qualname__bytesr   r   r    r   r   r
   r
   '   s;    E d 7E 7e 77E 7e 7r   r
   c                   <    e Zd ZdeddfdZdedefdZdedefdZy)CryptAESr   r   Nc                     || _         y r   r   r   s     r   r   zCryptAES.__init__3   r   r   r   c                     t        j                  d      }t        |d      }t        j                  | j
                  t        j                  |      }||j                  |      z   S )N   )secretstoken_bytesr   r   newr   MODE_CBCr   )r   r   ivaess       r   r   zCryptAES.encrypt6   sK      $4}ggdhhb1CKK%%%r   c                     |d d }|dd  }|s|S t        |      dz  dk7  rt        |d      }t        j                  | j                  t        j
                  |      }|j                  |      }|d |d     S )Nr(   r   )lenr   r   r+   r   r,   r   )r   r   r-   r.   ds        r   r   zCryptAES.decrypt<   sw    #2YBCyK t9r>QtR=Dggdhhb1KKAbE6{r   r   r#   r   r   r%   r%   2   s;    E d &E &e &E e r   r%   r   r   r   c                 J    t        j                  |       j                  |      S r   )r   r   r   r   r   s     r   rc4_encryptr5   L       ??3''--r   c                 J    t        j                  |       j                  |      S r   )r   r   r   r4   s     r   rc4_decryptr8   P   r6   r   c                 h    t        j                  | t         j                        j                  |      S r   )r   r+   MODE_ECBr   r4   s     r   aes_ecb_encryptr;   T   "    773%--d33r   c                 h    t        j                  | t         j                        j                  |      S r   )r   r+   r:   r   r4   s     r   aes_ecb_decryptr>   X   r<   r   r-   c                 j    t        j                  | t         j                  |      j                  |      S r   )r   r+   r,   r   r   r-   r   s      r   aes_cbc_encryptrA   \   $    773b)11$77r   c                 j    t        j                  | t         j                  |      j                  |      S r   )r   r+   r,   r   r@   s      r   aes_cbc_decryptrD   `   rB   r   )r)   Cryptor   Crypto.Cipherr   r   Crypto.Util.Paddingr   pypdf._crypt_providers._baser   crypt_providerr
   r%   r"   r5   r8   r;   r>   rA   rD   r#   r   r   <module>rJ      s   8   # # 2 +.7y 7y 4.U .% .E ..U .% .E .4 4e 4 44 4e 4 48 8E 8 85 88 8E 8 85 8r   