
    Z?i                     T   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 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__)AES)PKCS7)logger_warning)PdfStreamError)ARC4)Cipher)CBCECB)	CryptBasecryptographyc                   F    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y)CryptRC4keyreturnNc                 :    t        t        |      d       | _        y N)mode)r	   r   cipherselfr   s     Z/var/www/html/qr/venv/lib/python3.12/site-packages/pypdf/_crypt_providers/_cryptography.py__init__zCryptRC4.__init__3   s    T#YT2    datac                 z    | j                   j                         }|j                  |      |j                         z   S N)r   	encryptorupdatefinalize)r   r   r   s      r   encryptzCryptRC4.encrypt6   3    KK))+	%	(:(:(<<<r   Tstrictr$   c                z    | j                   j                         }|j                  |      |j                         z   S r   )r   	decryptorr   r    )r   r   r$   r&   s       r   decryptzCryptRC4.decrypt:   r"   r   __name__
__module____qualname__bytesr   r!   boolr'    r   r   r   r   2   sG    3E 3d 3=E =e = 6: =E =d =e =r   r   c                   F    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y)CryptAESr   r   Nc                 $    t        |      | _        y r   )r   algr   s     r   r   zCryptAES.__init__@   s    s8r   r   c                 J   t        j                  d      }t        d      j                         }|j	                  |      |j                         z   }t        | j                  t        |            }|j                         }||j	                  |      z   |j                         z   S )N      )
secretstoken_bytesr   padderr   r    r	   r2   r
   r   )r   r   ivr8   padded_datar   r   s          r   r!   zCryptAES.encryptC   s      $s""$mmD)FOO,==#b'*$$&	I$$[11I4F4F4HHHr   Tr#   r$   c                   |d d }|dd  }|s|S t        | j                  t        |            }|j                         }|j	                  |      |j                         z   }t        d      j                         }	 |j	                  |      |j                         z   S # t        $ r4}|rt        |      t        d| t               |d |d     cY d }~S d }~ww xY w)Nr4   r5   zIgnoring padding error: )src)r	   r2   r
   r&   r   r    r   unpadder
ValueErrorr   r   r)   )	r   r   r$   r9   r   r&   r:   r>   	exceptions	            r   r'   zCryptAES.decryptL   s    #2YBCyK#b'*$$&	&&t,y/A/A/CC:&&(	3??;/(2C2C2EEE 	3$Y//5i[AxP1+b/!122		3s   :!B 	C%)CCCr(   r.   r   r   r0   r0   ?   sJ    E d IE Ie I 6: 3E 3d 3e 3r   r0   r   r   r   c                     t        t        |       d       j                         }|j                  |      |j	                         z   S r   )r	   r   r   r   r    r   r   r   s      r   rc4_encryptrC   a   :    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_decryptrG   f   rD   r   c                     t        t        |       t                     j                         }|j	                  |      |j                         z   S r   )r	   r   r   r   r   r    rB   s      r   aes_ecb_encryptrI   k   <    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    rF   s      r   aes_ecb_decryptrL   p   rJ   r   r9   c                     t        t        |       t        |            j                         }|j	                  |      |j                         z   S r   )r	   r   r
   r   r   r    )r   r9   r   r   s       r   aes_cbc_encryptrN   u   >    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   r9   r   r&   s       r   aes_cbc_decryptrQ   z   rO   r   )r6   r   r   1cryptography.hazmat.primitives.ciphers.algorithmsr   &cryptography.hazmat.primitives.paddingr   pypdf._utilsr   pypdf.errorsr   /cryptography.hazmat.decrepit.ciphers.algorithmsr   ImportError+cryptography.hazmat.primitives.ciphers.baser	   ,cryptography.hazmat.primitives.ciphers.modesr
   r   pypdf._crypt_providers._baser   crypt_providerr   r0   r,   rC   rG   rI   rL   rN   rQ   r.   r   r   <module>r\      s  8  $ A 8 ' 'GD ? A 2 +.
=y 
=3y 3D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 9e  GFGs   B B'&B'