
    є j                        d dl Z d dlmZ d dlmZmZ d dlmZmZ d dl	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dS )    N)__version__)AESARC4)padunpad)	CryptBase)logger_warning)PdfStreamErrorpycryptodomec                   H    e Zd ZdeddfdZdedefdZddded	edefd
ZdS )CryptRC4keyreturnNc                     || _         d S Nr   selfr   s     xC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pypdf/_crypt_providers/_pycryptodome.py__init__zCryptRC4.__init__*           datac                 Z    t          j        | j                                      |          S r   )r   
ARC4Cipherr   encrypt)r   r   s     r   r   zCryptRC4.encrypt-   "    tx((00666r   Tstrictr   c                Z    t          j        | j                                      |          S r   )r   r   r   decrypt)r   r   r   s      r   r!   zCryptRC4.decrypt0   r   r   __name__
__module____qualname__bytesr   r   boolr!    r   r   r   r   )   s        E d    7E 7e 7 7 7 7 6: 7 7 7E 7d 7e 7 7 7 7 7 7r   r   c                   H    e Zd ZdeddfdZdedefdZddded	edefd
ZdS )CryptAESr   r   Nc                     || _         d S r   r   r   s     r   r   zCryptAES.__init__5   r   r   r   c                     t          j        d          }t          |d          }t          j        | j        t          j        |          }||                    |          z   S )N   )secretstoken_bytesr   r   newr   MODE_CBCr   )r   r   ivpadded_dataaess        r   r   zCryptAES.encrypt8   sM     $$$mmgdhb11CKK,,,,r   Tr   r   c                .   |d d         }|dd          }|s|S |s<t          |          dz  dk    r&t          dt                     t          |d          }t	          j        | j        t          j        |          }	 |                    |          }n!# t          $ r}t          |          d }~ww xY w	 t          |d          S # t          $ rE}|rt          |          t          d| t                     |d |d                   cY d }~S d }~ww xY w)Nr-   r   zAdding missing padding.)srczIgnoring padding error: )lenr	   r#   r   r   r0   r   r1   r!   
ValueErrorr
   r   )r   r   r   r2   r4   r3   	exceptions          r   r!   zCryptAES.decrypt>   sQ   #2#YBCCy 	K 	!#d))b.A- 	!4(CCCCtR==Dgdhb11	,++d++KK 	, 	, 	, +++	,	3b))) 	3 	3 	3 0$Y///AiAAxPPPP1+b/!112222222		3s6   =B 
B1B,,B15C 
D:D	DDr"   r(   r   r   r*   r*   4   s        E d    -E -e - - - - 6: 3 3 3E 3d 3e 3 3 3 3 3 3r   r*   r   r   r   c                 P    t          j        |                               |          S r   )r   r   r   r   r   s     r   rc4_encryptr=   Y        ?3''---r   c                 P    t          j        |                               |          S r   )r   r   r!   r<   s     r   rc4_decryptr@   ]   r>   r   c                 f    t          j        | t           j                                      |          S r   )r   r0   MODE_ECBr   r<   s     r   aes_ecb_encryptrC   a   $    73%%--d333r   c                 f    t          j        | t           j                                      |          S r   )r   r0   rB   r!   r<   s     r   aes_ecb_decryptrF   e   rD   r   r2   c                 h    t          j        | t           j        |                              |          S r   )r   r0   r1   r   r   r2   r   s      r   aes_cbc_encryptrI   i   &    73b))11$777r   c                 h    t          j        | t           j        |                              |          S r   )r   r0   r1   r!   rH   s      r   aes_cbc_decryptrL   m   rJ   r   )r.   Cryptor   Crypto.Cipherr   r   Crypto.Util.Paddingr   r   pypdf._crypt_providers._baser   pypdf._utilsr	   pypdf.errorsr
   crypt_providerr   r*   r&   r=   r@   rC   rF   rI   rL   r(   r   r   <module>rT      s  8        # # # # # # # # * * * * * * * * 2 2 2 2 2 2 ' ' ' ' ' ' ' ' ' ' ' ' +.7 7 7 7 7y 7 7 7"3 "3 "3 "3 "3y "3 "3 "3J.U .% .E . . . ..U .% .E . . . .4 4e 4 4 4 4 44 4e 4 4 4 4 48 8E 8 85 8 8 8 88 8E 8 85 8 8 8 8 8 8r   