
    j:j                        S SK r S SKJr  S SKJr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\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)    N)__version__)AESARC4)padunpad)	CryptBase)logger_warning)PdfStreamErrorpycryptodomec                   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)CryptRC4)   keyreturnNc                     Xl         g Nr   selfr   s     Z/var/www/website/venv/lib/python3.13/site-packages/pypdf/_crypt_providers/_pycryptodome.py__init__CryptRC4.__init__*           datac                 `    [         R                  " U R                  5      R                  U5      $ r   )r   
ARC4Cipherr   encrypt)r   r   s     r   r   CryptRC4.encrypt-        txx(0066r   Tstrictr"   c                `    [         R                  " U R                  5      R                  U5      $ r   )r   r   r   decrypt)r   r   r"   s      r   r$   CryptRC4.decrypt0   r    r   r   
__name__
__module____qualname____firstlineno__bytesr   r   boolr$   __static_attributes__ r   r   r   r   )   sL    E d 7E 7e 7 6: 7E 7d 7e 7 7r   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)CryptAES4   r   r   Nc                     Xl         g r   r   r   s     r   r   CryptAES.__init__5   r   r   r   c                     [         R                  " S5      n[        US5      n[        R                  " U R
                  [        R                  U5      nX$R                  U5      -   $ )N   )secretstoken_bytesr   r   newr   MODE_CBCr   )r   r   ivpadded_dataaess        r   r   CryptAES.encrypt8   sI      $$mggdhhb1KK,,,r   Tr!   r"   c                   US S nUSS  nU(       d  U$ U(       d,  [        U5      S-  S:w  a  [        S[        S9  [        US5      n[        R
                  " U R                  [        R                  U5      n UR                  U5      n [        US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)Nr5   r   zAdding missing padding.)sourcez%Ignoring padding error: %(exception)s)r?   	exception)lenr	   r'   r   r   r8   r   r9   r$   
ValueErrorr
   r   )r   r   r"   r:   r<   r;   r@   s          r   r$   CryptAES.decrypt>   s    #2YBCyK#d)b.A-4XFtR=Dggdhhb1	,++d+K
	3b))  	, ++	,  	3$Y//B8_hi1+b/!122		3s6   8B 
B3 
B0 B++B03
C1=)C,&C1,C1r   r&   r.   r   r   r0   r0   4   sL    E d -E -e - 6: 3E 3d 3e 3 3r   r0   r   r   r   c                 L    [         R                  " U 5      R                  U5      $ r   )r   r   r   r   r   s     r   rc4_encryptrG   Y       ??3''--r   c                 L    [         R                  " U 5      R                  U5      $ r   )r   r   r$   rF   s     r   rc4_decryptrJ   ]   rH   r   c                 j    [         R                  " U [         R                  5      R                  U5      $ r   )r   r8   MODE_ECBr   rF   s     r   aes_ecb_encryptrM   a   "    773%--d33r   c                 j    [         R                  " U [         R                  5      R                  U5      $ r   )r   r8   rL   r$   rF   s     r   aes_ecb_decryptrP   e   rN   r   r:   c                 l    [         R                  " U [         R                  U5      R                  U5      $ r   )r   r8   r9   r   r   r:   r   s      r   aes_cbc_encryptrS   i   $    773b)11$77r   c                 l    [         R                  " U [         R                  U5      R                  U5      $ r   )r   r8   r9   r$   rR   s      r   aes_cbc_decryptrV   m   rT   r   )r6   Cryptor   Crypto.Cipherr   r   Crypto.Util.Paddingr   r   pypdf._crypt_providers._baser   pypdf._utilsr	   pypdf.errorsr
   crypt_providerr   r0   r+   rG   rJ   rM   rP   rS   rV   r.   r   r   <module>r^      s   8   # * 2 ' ' +.7y 7"3y "3J.U .% .E ..U .% .E .4 4e 4 44 4e 4 48 8E 8 85 88 8E 8 85 8r   