
    Ng                     L   d dl Z d dlmZ d dlmZ d dlmZ 	 d dlmZ n# e	$ r	 d dlmZ Y nw xY wd dl
mZ d dlmZ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__)padding)AES)ARC4)Cipher)CBCECB)	CryptBasecryptographyc                   >    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                 L    t          t          |          d           | _        d S N)mode)r   r   cipherselfr   s     `/var/www/html/ai-engine/env/lib/python3.11/site-packages/pypdf/_crypt_providers/_cryptography.py__init__zCryptRC4.__init__0   s     T#YYT222    datac                     | j                                         }|                    |          |                                z   S N)r   	encryptorupdatefinalize)r   r   r   s      r   encryptzCryptRC4.encrypt3   :    K))++	%%	(:(:(<(<<<r   c                     | j                                         }|                    |          |                                z   S r   )r   	decryptorr   r   )r   r   r"   s      r   decryptzCryptRC4.decrypt7   r    r   __name__
__module____qualname__bytesr   r   r#    r   r   r   r   /   sz        3E 3d 3 3 3 3=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                 .    t          |          | _        d S r   )r   algr   s     r   r   zCryptAES.__init__=   s    s88r   r   c                    t          j        d          }t          j        d                                          }|                    |          |                                z   }t          | j        t          |                    }|
                                }||                    |          z   |                                z   S )N      )secretstoken_bytesr   PKCS7padderr   r   r   r-   r   r   )r   r   ivpadr   r   s         r   r   zCryptAES.encrypt@   s     $$mC  ''))zz$#,,..0#b''**$$&&	I$$T***Y-?-?-A-AAAr   c                    |d d         }|dd          }|s|S t          |          dz  dk    rPt          j        d                                          }|                    |          |                                z   }t          | j        t          |                    }|	                                }|                    |          |                                z   }|d |d                   S )Nr/   r   r0   )
lenr   r3   r4   r   r   r   r-   r   r"   )r   r   r5   r6   r   r"   ds          r   r#   zCryptAES.decryptI   s    #2#YBCCy 	K t99r>Q-$$++--C::d##cllnn4D#b''**$$&&	T""Y%7%7%9%99AbE6{r   r$   r)   r   r   r+   r+   <   s        E d    BE Be B B B BE e      r   r+   r   r   r   c                     t          t          |           d                                           }|                    |          |                                z   S r   )r   r   r   r   r   r   r   r   s      r   rc4_encryptr=   [   K    tCyyt,,,6688ID!!I$6$6$8$888r   c                     t          t          |           d                                           }|                    |          |                                z   S r   )r   r   r"   r   r   r   r   r"   s      r   rc4_decryptrA   `   r>   r   c                     t          t          |           t                                                                }|                    |          |                                z   S r   )r   r   r	   r   r   r   r<   s      r   aes_ecb_encryptrC   e   O    s3xxcee,,,6688ID!!I$6$6$8$888r   c                     t          t          |           t                                                                }|                    |          |                                z   S r   )r   r   r	   r"   r   r   r@   s      r   aes_ecb_decryptrF   j   rD   r   r5   c                     t          t          |           t          |                                                    }|                    |          |                                z   S r   )r   r   r   r   r   r   )r   r5   r   r   s       r   aes_cbc_encryptrH   o   Q    s3xxc"gg...88::ID!!I$6$6$8$888r   c                     t          t          |           t          |                                                    }|                    |          |                                z   S r   )r   r   r   r"   r   r   )r   r5   r   r"   s       r   aes_cbc_decryptrK   t   rI   r   )r1   r   r   cryptography.hazmat.primitivesr   1cryptography.hazmat.primitives.ciphers.algorithmsr   /cryptography.hazmat.decrepit.ciphers.algorithmsr   ImportError+cryptography.hazmat.primitives.ciphers.baser   ,cryptography.hazmat.primitives.ciphers.modesr   r	   pypdf._crypt_providers._baser
   crypt_providerr   r+   r(   r=   rA   rC   rF   rH   rK   r)   r   r   <module>rT      s@  8  $ $ $ $ $ $ 2 2 2 2 2 2 A A A A A AGDDDDDDD G G GFFFFFFFFG > > > > > > A A A A A A A A 2 2 2 2 2 2 +.
= 
= 
= 
= 
=y 
= 
= 
=    y   >9U 9% 9E 9 9 9 9
9U 9% 9E 9 9 9 9
9 9e 9 9 9 9 9
9 9e 9 9 9 9 9
9 9E 9 95 9 9 9 9
9 9E 9 95 9 9 9 9 9 9s    --