
    j:j                     b   S SK r S SKJr  S SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJr  S S	KJr   S S
KJr  S\4r " S S\5      r " S S\5      rS\S\S\4S jrS\S\S\4S jrS\S\S\4S jrS\S\S\4S jrS\S\S\S\4S jrS\S\S\S\4S jrg! \ a	    S S
KJr   Nof = f)    N)__version__)AES)Cipher)CBCECB)PKCS7)	CryptBase)logger_warning)PdfStreamError)ARC4cryptographyc                   V    \ rS rSrS\SS4S jrS\S\4S jrSS	.S\S
\S\4S jjrSr	g)CryptRC41   keyreturnNc                 4    [        [        U5      S S9U l        g N)mode)r   r   cipherselfr   s     Z/var/www/website/venv/lib/python3.13/site-packages/pypdf/_crypt_providers/_cryptography.py__init__CryptRC4.__init__2   s    T#YT2    datac                 z    U R                   R                  5       nUR                  U5      UR                  5       -   $ N)r   	encryptorupdatefinalize)r   r   r    s      r   encryptCryptRC4.encrypt5   3    KK))+	%	(:(:(<<<r   Tstrictr'   c                z    U R                   R                  5       nUR                  U5      UR                  5       -   $ r   )r   	decryptorr!   r"   )r   r   r'   r)   s       r   decryptCryptRC4.decrypt9   r%   r   )r   
__name__
__module____qualname____firstlineno__bytesr   r#   boolr*   __static_attributes__ r   r   r   r   1   sL    3E 3d 3=E =e = 6: =E =d =e = =r   r   c                   V    \ rS rSrS\SS4S jrS\S\4S jrSS	.S\S
\S\4S jjrSr	g)CryptAES>   r   r   Nc                 $    [        U5      U l        g r   )r   algr   s     r   r   CryptAES.__init__?   s    s8r   r   c                 J   [         R                  " S5      n[        S5      R                  5       nUR	                  U5      UR                  5       -   n[        U R                  [        U5      5      nUR                  5       nX&R	                  U5      -   UR                  5       -   $ )N      )
secretstoken_bytesr   padderr!   r"   r   r9   r   r    )r   r   ivr@   padded_datar   r    s          r   r#   CryptAES.encryptB   s      $s""$mmD)FOO,==#b'*$$&	$$[11I4F4F4HHHr   Tr&   r'   c                   US S nUSS  nU(       d  U$ U(       d[  [        U5      S-  S:w  aI  [        S[        S9  [        S5      R	                  5       nUR                  U5      UR                  5       -   n[        U R                  [        U5      5      nUR                  5       n UR                  U5      UR                  5       -   n[        S5      R                  5       n	 U	R                  U5      U	R                  5       -   $ ! [         a  n[        U5      eS nAff = f! [         a4  nU(       a  [        U5      e[        S[        US9  US US   *  s S nA$ S nAff = f)	Nr<   r   zAdding missing padding.)sourcer=   z%Ignoring padding error: %(exception)s)rE   	exception)lenr
   r-   r   r@   r!   r"   r   r9   r   r)   
ValueErrorr   unpadder)
r   r   r'   rA   r@   r   r)   rB   rF   rJ   s
             r   r*   CryptAES.decryptK   sC   #2YBCyK#d)b.A-4XF3Z&&(F==&)::D#b'*$$&		,#**4093E3E3GGK
 :&&(	3??;/(2C2C2EEE  	, ++	,  	3$Y//B8_hi1+b/!122		3s6   &"D "!D! 
DDD!
E+)EEE)r9   r,   r4   r   r   r6   r6   >   sO    E d IE Ie I 6: 3E 3d 3e 3 3r   r6   r   r   r   c                     [        [        U 5      S S9R                  5       nUR                  U5      UR	                  5       -   $ r   )r   r   r    r!   r"   r   r   r    s      r   rc4_encryptrN   i   :    tCyt,668ID!I$6$6$888r   c                     [        [        U 5      S S9R                  5       nUR                  U5      UR	                  5       -   $ r   )r   r   r)   r!   r"   r   r   r)   s      r   rc4_decryptrR   n   rO   r   c                     [        [        U 5      [        5       S9R                  5       nUR	                  U5      UR                  5       -   $ r   )r   r   r   r    r!   r"   rM   s      r   aes_ecb_encryptrT   s   <    s3xce,668ID!I$6$6$888r   c                     [        [        U 5      [        5       S9R                  5       nUR	                  U5      UR                  5       -   $ r   )r   r   r   r)   r!   r"   rQ   s      r   aes_ecb_decryptrW   x   rU   r   rA   c                     [        [        U 5      [        U5      S9R                  5       nUR	                  U5      UR                  5       -   $ r   )r   r   r   r    r!   r"   )r   rA   r   r    s       r   aes_cbc_encryptrY   }   >    s3xc"g.88:ID!I$6$6$888r   c                     [        [        U 5      [        U5      S9R                  5       nUR	                  U5      UR                  5       -   $ r   )r   r   r   r)   r!   r"   )r   rA   r   r)   s       r   aes_cbc_decryptr\      rZ   r   )r>   r   r   1cryptography.hazmat.primitives.ciphers.algorithmsr   +cryptography.hazmat.primitives.ciphers.baser   ,cryptography.hazmat.primitives.ciphers.modesr   r   &cryptography.hazmat.primitives.paddingr   pypdf._crypt_providers._baser	   pypdf._utilsr
   pypdf.errorsr   /cryptography.hazmat.decrepit.ciphers.algorithmsr   ImportErrorcrypt_providerr   r6   r1   rN   rR   rT   rW   rY   r\   r4   r   r   <module>rg      s  8  $ A > A 8 2 ' 'GD !+.
=y 
=(3y (3V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 9o  GFGs   B B.-B.