
    @wg                     <   d dl Z d dlmZ d dlmZ d dlmZ 	 d dlmZ 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y# e	$ r	 d dlmZ Y |w xY w)    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y)CryptRC4keyreturnNc                 :    t        t        |      d       | _        y N)mode)r   r   cipherselfr   s     [/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/_crypt_providers/_cryptography.py__init__zCryptRC4.__init__0   s    T#YT2    datac                 z    | j                   j                         }|j                  |      |j                         z   S N)r   	encryptorupdatefinalize)r   r   r   s      r   encryptzCryptRC4.encrypt3   3    KK))+	%	(:(:(<<<r   c                 z    | j                   j                         }|j                  |      |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   /   s;    3E 3d 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y)CryptAESr   r   Nc                 $    t        |      | _        y r   )r   algr   s     r   r   zCryptAES.__init__=   s    s8r   r   c                 ^   t        j                  d      }t        j                  d      j	                         }|j                  |      |j                         z   }t        | j                  t        |            }|j                         }||j                  |      z   |j                         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      $mmC '')zz$#,,.0#b'*$$&	I$$T**Y-?-?-AAAr   c                 ~   |d d }|dd  }|s|S t        |      dz  dk7  rEt        j                  d      j                         }|j	                  |      |j                         z   }t        | j                  t        |            }|j                         }|j	                  |      |j                         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    #2YBCyK t9r>Q--$++-C::d#clln4D#b'*$$&	T"Y%7%7%99AbE6{r   r$   r)   r   r   r+   r+   <   s>    E d BE Be BE e r   r+   r   r   r   c                     t        t        |       d       j                         }|j                  |      |j	                         z   S r   )r   r   r   r   r   r   r   r   s      r   rc4_encryptr=   [   :    tCyt,668ID!I$6$6$888r   c                     t        t        |       d       j                         }|j                  |      |j	                         z   S r   )r   r   r"   r   r   r   r   r"   s      r   rc4_decryptrA   `   r>   r   c                     t        t        |       t                     j                         }|j	                  |      |j                         z   S r   )r   r   r	   r   r   r   r<   s      r   aes_ecb_encryptrC   e   <    s3xce,668ID!I$6$6$888r   c                     t        t        |       t                     j                         }|j	                  |      |j                         z   S r   )r   r   r	   r"   r   r   r@   s      r   aes_ecb_decryptrF   j   rD   r   r5   c                     t        t        |       t        |            j                         }|j	                  |      |j                         z   S r   )r   r   r   r   r   r   )r   r5   r   r   s       r   aes_cbc_encryptrH   o   >    s3xc"g.88:ID!I$6$6$888r   c                     t        t        |       t        |            j                         }|j	                  |      |j                         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 AGD ? A 2 +.
=y 
=y >9U 9% 9E 9
9U 9% 9E 9
9 9e 9 9
9 9e 9 9
9 9E 9 95 9
9 9E 9 95 9_  GFGs   B BB