
    @wg                         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y)    )	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y)CryptRC4keyreturnNc                    t        t        d            | _        d}t        d      D ]b  }|| j                  |   z   ||t        |      z     z   dz  }| j                  |   | j                  |   c| j                  |<   | j                  |<   d y )N   r   )	bytearrayrangeslen)selfr   jis       W/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/_crypt_providers/_fallback.py__init__zCryptRC4.__init__&   s~    5:&s 	8ATVVAYQS\!22c9A#'66!9dffQi DFF1Itvvay	8    datac                 \   t        | j                        }t        t        |            D cg c]  }d }}d\  }}t        t        |            D ]B  }|dz   dz  }|||   z   dz  }||   ||   c||<   ||<   |||   ||   z   dz     }||   |z  ||<   D t	        t        |            S c c}w )Nr   )r   r      r   )r   r   r   r   bytes)	r   r   r   _outr   r   kxs	            r   encryptzCryptRC4.encrypt-   s    dffD	*+Qq++1s4y! 	!AQ#AQqTS A1qtJAaD!A$1Q4!A$;#%&A!Wq[CF	! Ys^$$ ,s   	B)c                 $    | j                  |      S N)r   r   r   s     r   decryptzCryptRC4.decrypt9   s    ||D!!r   __name__
__module____qualname__r   r   r   r"    r   r   r   r   %   s;    8E 8d 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y)CryptAESr   r	   Nc                      y 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4r   c                      t        t              r    r,   r!   s     r   r"   zCryptAES.decryptD   r.   r   r#   r'   r   r   r)   r)   =   s;    E d 5E 5e 55E 5e 5r   r)   r   r   r	   c                 6    t        |       j                  |      S r    )r   r   r   r   s     r   rc4_encryptr2   H       C=  &&r   c                 6    t        |       j                  |      S r    )r   r"   r1   s     r   rc4_decryptr5   L   r3   r   c                      t        t              r    r,   r1   s     r   aes_ecb_encryptr7   P       
/
00r   c                      t        t              r    r,   r1   s     r   aes_ecb_decryptr:   T   r8   r   ivc                      t        t              r    r,   r   r;   r   s      r   aes_cbc_encryptr>   X   r8   r   c                      t        t              r    r,   r=   s      r   aes_cbc_decryptr@   \   r8   r   N)pypdf._crypt_providers._baser   pypdf.errorsr   r-   crypt_providerr   r)   r   r2   r5   r7   r:   r>   r@   r'   r   r   <module>rD      s   8 3 (I  3"y "05y 5'U '% 'E ''U '% 'E '1 1e 1 11 1e 1 11 1E 1 15 11 1E 1 15 1r   