
    Ng                         d dl mZ d dlmZ dZd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dS )    )	CryptBase)DependencyErrorz/cryptography>=3.1 is required for AES algorithm)local_crypt_fallbackz0.0.0c                   >    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dS )CryptRC4keyreturnNc                    t          t          d                    | _        d}t          d          D ]Y}|| j        |         z   ||t          |          z           z   dz  }| j        |         | j        |         c| j        |<   | j        |<   Zd S )N   r   )	bytearrayrangeslen)selfr   jis       \/var/www/html/ai-engine/env/lib/python3.11/site-packages/pypdf/_crypt_providers/_fallback.py__init__zCryptRC4.__init__&   s    5::&&s 	8 	8ATVAYQS\!22c9A#'6!9dfQi DF1Itvayy	8 	8    datac                    t          | j                  }d t          t          |                    D             }d\  }}t          t          |                    D ]W}|dz   dz  }|||         z   dz  }||         ||         c||<   ||<   |||         ||         z   dz           }||         |z  ||<   Xt	          t          |                    S )Nc                     g | ]}d S )r    ).0_s     r   
<listcomp>z$CryptRC4.encrypt.<locals>.<listcomp>/   s    +++Qq+++r   )r   r      r   )r   r   r   r   bytes)r   r   r   outr   r   kxs           r   encryptzCryptRC4.encrypt-   s    df++%D		**+++1s4yy!! 	! 	!AQ#AQqTS A1qtJAaD!A$1Q4!A$;#%&A!Wq[CFFYs^^$$$r   c                 ,    |                      |          S N)r"   r   r   s     r   decryptzCryptRC4.decrypt9   s    ||D!!!r   __name__
__module____qualname__r   r   r"   r&   r   r   r   r   r   %   sz        8E 8d 8 8 8 8
%E 
%e 
% 
% 
% 
%"E "e " " " " " "r   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dS )CryptAESr   r	   Nc                     d S r$   r   )r   r   s     r   r   zCryptAES.__init__>   s    r   r   c                 *    t          t                    r$   r   _DEPENDENCY_ERROR_STRr%   s     r   r"   zCryptAES.encryptA       3444r   c                 *    t          t                    r$   r/   r%   s     r   r&   zCryptAES.decryptD   r1   r   r'   r   r   r   r,   r,   =   sz        E d    5E 5e 5 5 5 55E 5e 5 5 5 5 5 5r   r,   r   r   r	   c                 F    t          |                               |          S r$   )r   r"   r   r   s     r   rc4_encryptr5   H       C==  &&&r   c                 F    t          |                               |          S r$   )r   r&   r4   s     r   rc4_decryptr8   L   r6   r   c                 *    t          t                    r$   r/   r4   s     r   aes_ecb_encryptr:   P       
/
0
00r   c                 *    t          t                    r$   r/   r4   s     r   aes_ecb_decryptr=   T   r;   r   ivc                 *    t          t                    r$   r/   r   r>   r   s      r   aes_cbc_encryptrA   X   r;   r   c                 *    t          t                    r$   r/   r@   s      r   aes_cbc_decryptrC   \   r;   r   N)pypdf._crypt_providers._baser   pypdf.errorsr   r0   crypt_providerr   r,   r   r5   r8   r:   r=   rA   rC   r   r   r   <module>rG      s  8 3 2 2 2 2 2 ( ( ( ( ( (I  3" " " " "y " " "05 5 5 5 5y 5 5 5'U '% 'E ' ' ' ''U '% 'E ' ' ' '1 1e 1 1 1 1 11 1e 1 1 1 1 11 1E 1 15 1 1 1 11 1E 1 15 1 1 1 1 1 1r   