§
    (ê[fý   ã                  óR  — d dl mZ d dlZd dlZd dlmZmZmZ d dlm	Z	 d dl
mZ ej        rd dlmZ  G d„ dej        ¬	¦  «        Z G d
„ deej        ¬	¦  «        Z G d„ deej        ¬	¦  «        Z G d„ deej        ¬	¦  «        Z ej        dej        ej                 d¬¦  «        Z G d„ dej        e         ¦  «        Zeej        ej        ej        dej        ej        f                  Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de e¦  «        Z! G d„ de e¦  «        Z"dS )é    )ÚannotationsN)ÚAlreadyFinalizedÚAlreadyUpdatedÚNotYetFinalized)ÚCipherAlgorithm)Úmodes)Ú_CipherContextc                  ót   — e Zd Zej        d
d„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         Zd	S )ÚCipherContextÚdataÚbytesÚreturnc                ó   — dS )zk
        Processes the provided bytes through the cipher and returns the results
        as bytes.
        N© ©Úselfr   s     ú_/var/www/piapp/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/ciphers/base.pyÚupdatezCipherContext.update   ó   € € € ó    ÚbufÚintc                ó   — dS )z“
        Processes the provided bytes and writes the resulting data into the
        provided buffer. Returns the number of bytes written.
        Nr   ©r   r   r   s      r   Úupdate_intozCipherContext.update_into    r   r   c                ó   — dS )zM
        Returns the results of processing the final block as bytes.
        Nr   ©r   s    r   ÚfinalizezCipherContext.finalize'   r   r   N©r   r   r   r   ©r   r   r   r   r   r   ©r   r   )Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodr   r   r   r   r   r   r   r      s~   € € € € € ØÔðð ð ñ Ôðð 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð ð r   r   )Ú	metaclassc                  ó0   — e Zd Zej        dd„¦   «         ZdS )ÚAEADCipherContextr   r   r   ÚNonec                ó   — dS )z3
        Authenticates the provided bytes.
        Nr   r   s     r   Úauthenticate_additional_dataz.AEADCipherContext.authenticate_additional_data/   r   r   N©r   r   r   r*   )r"   r#   r$   r%   r&   r,   r   r   r   r)   r)   .   s6   € € € € € ØÔðð ð ñ Ôðð ð r   r)   c                  ó0   — e Zd Zej        dd„¦   «         ZdS )ÚAEADDecryptionContextÚtagr   r   c                ó   — dS )zŠ
        Returns the results of processing the final block as bytes and allows
        delayed passing of the authentication tag.
        Nr   )r   r0   s     r   Úfinalize_with_tagz'AEADDecryptionContext.finalize_with_tag7   r   r   N©r0   r   r   r   )r"   r#   r$   r%   r&   r2   r   r   r   r/   r/   6   s6   € € € € € ØÔðð ð ñ Ôðð ð r   r/   c                  ó@   — e Zd Zeej        dd„¦   «         ¦   «         ZdS )ÚAEADEncryptionContextr   r   c                ó   — dS )zb
        Returns tag bytes. This is only available after encryption is
        finalized.
        Nr   r   s    r   r0   zAEADEncryptionContext.tag@   r   r   Nr!   )r"   r#   r$   Úpropertyr%   r&   r0   r   r   r   r5   r5   ?   s@   € € € € € ØØÔðð ð ñ Ôñ „Xðð ð r   r5   ÚModeT)ÚboundÚ	covariantc                  ó¶   — e Zd Z	 ddd
„Zej        dd„¦   «         Zej        d d„¦   «         Zd„ Zej        d!d„¦   «         Zej        d d„¦   «         Zd„ Zd"d„ZdS )#ÚCipherNÚ	algorithmr   Úmoder8   Úbackendú
typing.Anyr   r*   c                óÐ   — t          |t          ¦  «        st          d¦  «        ‚|�1t          |t          j        ¦  «        sJ ‚|                     |¦  «         || _        || _        d S )Nz&Expected interface of CipherAlgorithm.)Ú
isinstancer   Ú	TypeErrorr   r8   Úvalidate_for_algorithmr=   r>   )r   r=   r>   r?   s       r   Ú__init__zCipher.__init__O   sl   € õ ˜)¥_Ñ5Ô5ð 	FÝÐDÑEÔEÐEàÐõ ˜d¥E¤JÑ/Ô/Ð/Ð/Ð/Ø×'Ò'¨	Ñ2Ô2Ð2à"ˆŒØˆŒ	ˆ	ˆ	r   r   ú'Cipher[modes.ModeWithAuthenticationTag]r5   c                ó   — d S ©Nr   r   s    r   Ú	encryptorzCipher.encryptora   ó	   € ð 	ˆr   Ú_CIPHER_TYPEr   c                ó   — d S rH   r   r   s    r   rI   zCipher.encryptorg   rJ   r   c                óð   — t          | j        t          j        ¦  «        r| j        j        �t          d¦  «        ‚ddlm} |                     | j	        | j        ¦  «        }|  
                    |d¬¦  «        S )Nz0Authentication tag must be None when encrypting.r   ©r?   T©Úencrypt)rB   r>   r   ÚModeWithAuthenticationTagr0   Ú
ValueErrorÚ,cryptography.hazmat.backends.openssl.backendr?   Úcreate_symmetric_encryption_ctxr=   Ú	_wrap_ctx©r   r?   Úctxs      r   rI   zCipher.encryptorm   sƒ   € Ý�d”i¥Ô!@ÑAÔAð 	ØŒyŒ}Ð(Ý ØFñô ð ð 	IÐHÐHÐHÐHÐHà×5Ò5ØŒN˜DœIñ
ô 
ˆð �~Š~˜c¨4ˆ~Ñ0Ô0Ð0r   r/   c                ó   — d S rH   r   r   s    r   Ú	decryptorzCipher.decryptorz   rJ   r   c                ó   — d S rH   r   r   s    r   rY   zCipher.decryptor€   rJ   r   c                ó|   — ddl m} |                     | j        | j        ¦  «        }|                      |d¬¦  «        S )Nr   rN   FrO   )rS   r?   Úcreate_symmetric_decryption_ctxr=   r>   rU   rV   s      r   rY   zCipher.decryptor†   sJ   € ØHÐHÐHÐHÐHÐHà×5Ò5ØŒN˜DœIñ
ô 
ˆð �~Š~˜c¨5ˆ~Ñ1Ô1Ð1r   rW   Ú_BackendCipherContextrP   Úboolú=AEADEncryptionContext | AEADDecryptionContext | CipherContextc                óž   — t          | j        t          j        ¦  «        r |rt	          |¦  «        S t          |¦  «        S t          |¦  «        S rH   )rB   r>   r   rQ   Ú_AEADEncryptionContextÚ_AEADDecryptionContextr	   )r   rW   rP   s      r   rU   zCipher._wrap_ctxŽ   sM   € õ �d”i¥Ô!@ÑAÔAð 	'Øð 3Ý-¨cÑ2Ô2Ð2å-¨cÑ2Ô2Ð2å! #Ñ&Ô&Ð&r   rH   )r=   r   r>   r8   r?   r@   r   r*   )r   rF   r   r5   )r   rK   r   r   )r   rF   r   r/   )rW   r]   rP   r^   r   r_   )	r"   r#   r$   rE   ÚtypingÚoverloadrI   rY   rU   r   r   r   r<   r<   N   sì   € € € € € ð
 #ð	ð ð ð ð ð$ „_ðð ð ñ „_ðð
 „_ðð ð ñ „_ðð
1ð 1ð 1ð „_ðð ð ñ „_ðð
 „_ðð ð ñ „_ðð
2ð 2ð 2ð	'ð 	'ð 	'ð 	'ð 	'ð 	'r   r<   c                  ó:   — e Zd ZU ded<   dd„Zdd
„Zdd„Zdd„ZdS )r	   ú_BackendCipherContext | NoneÚ_ctxrW   r]   r   r*   c                ó   — || _         d S rH   )rg   ©r   rW   s     r   rE   z_CipherContext.__init__¨   s   € ØˆŒ	ˆ	ˆ	r   r   r   c                ób   — | j         €t          d¦  «        ‚| j                              |¦  «        S ©NúContext was already finalized.)rg   r   r   r   s     r   r   z_CipherContext.update«   s/   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØŒy×Ò Ñ%Ô%Ð%r   r   r   c                ód   — | j         €t          d¦  «        ‚| j                              ||¦  «        S rk   )rg   r   r   r   s      r   r   z_CipherContext.update_into°   s1   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØŒy×$Ò$ T¨3Ñ/Ô/Ð/r   c                ór   — | j         €t          d¦  «        ‚| j                              ¦   «         }d | _         |S rk   )rg   r   r   r   s     r   r   z_CipherContext.finalizeµ   s8   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØŒy×!Ò!Ñ#Ô#ˆØˆŒ	Øˆr   N©rW   r]   r   r*   r   r    r!   )r"   r#   r$   Ú__annotations__rE   r   r   r   r   r   r   r	   r	   ¥   sr   € € € € € € Ø&Ð&Ð&Ñ&ðð ð ð ð&ð &ð &ð &ð
0ð 0ð 0ð 0ð
ð ð ð ð ð r   r	   c                  óT   — e Zd ZU ded<   ded<   dd	„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dS )Ú_AEADCipherContextrf   rg   zbytes | NoneÚ_tagrW   r]   r   r*   c                óL   — || _         d| _        d| _        d | _        d| _        d S )Nr   F)rg   Ú_bytes_processedÚ_aad_bytes_processedrs   Ú_updatedri   s     r   rE   z_AEADCipherContext.__init__Á   s+   € ØˆŒ	Ø !ˆÔØ$%ˆÔ!ØˆŒ	ØˆŒˆˆr   Ú	data_sizer   c                ó  — | j         €t          d¦  «        ‚d| _        | xj        |z  c_        | j        | j         j        j        k    rAt          d                     | j         j        j        | j         j        j        ¦  «        ¦  «        ‚d S )Nrl   Tz+{} has a maximum encrypted byte limit of {})	rg   r   rw   ru   Ú_modeÚ_MAX_ENCRYPTED_BYTESrR   ÚformatÚname)r   rx   s     r   Ú_check_limitz_AEADCipherContext._check_limitÈ   sŠ   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØˆŒØÐÔ Ñ*ÐÔØÔ  4¤9¤?Ô#GÒGÐGÝØ=×DÒDØ”I”OÔ(¨$¬)¬/Ô*Nñô ñô ð ð HÐGr   r   r   c                óŒ   — |                       t          |¦  «        ¦  «         | j        €J ‚| j                             |¦  «        S rH   )r~   Úlenrg   r   r   s     r   r   z_AEADCipherContext.updateÔ   s@   € Ø×Ò�#˜d™)œ)Ñ$Ô$Ð$àŒyÐ$Ð$Ð$ØŒy×Ò Ñ%Ô%Ð%r   r   c                óŽ   — |                       t          |¦  «        ¦  «         | j        €J ‚| j                             ||¦  «        S rH   )r~   r€   rg   r   r   s      r   r   z_AEADCipherContext.update_intoÚ   sB   € Ø×Ò�#˜d™)œ)Ñ$Ô$Ð$àŒyÐ$Ð$Ð$ØŒy×$Ò$ T¨3Ñ/Ô/Ð/r   c                ó”   — | j         €t          d¦  «        ‚| j                              ¦   «         }| j         j        | _        d | _         |S rk   )rg   r   r   r0   rs   r   s     r   r   z_AEADCipherContext.finalizeà   sC   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØŒy×!Ò!Ñ#Ô#ˆØ”I”MˆŒ	ØˆŒ	Øˆr   c                ó‚  — | j         €t          d¦  «        ‚| j        rt          d¦  «        ‚| xj        t          |¦  «        z  c_        | j        | j         j        j        k    rAt          d 	                    | j         j        j
        | j         j        j        ¦  «        ¦  «        ‚| j                              |¦  «         d S )Nrl   z'Update has been called on this context.z%{} has a maximum AAD byte limit of {})rg   r   rw   r   rv   r€   rz   Ú_MAX_AAD_BYTESrR   r|   r}   r,   r   s     r   r,   z/_AEADCipherContext.authenticate_additional_dataè   s¸   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØŒ=ð 	LÝ Ð!JÑKÔKÐKàÐ!Ô!¥S¨¡Y¤YÑ.Ð!Ô!ØÔ$ t¤y¤Ô'EÒEÐEÝØ7×>Ò>Ø”I”OÔ(¨$¬)¬/Ô*Hñô ñô ð ð 	Œ	×.Ò.¨tÑ4Ô4Ð4Ð4Ð4r   Nro   )rx   r   r   r*   r   r    r!   r-   )
r"   r#   r$   rp   rE   r~   r   r   r   r,   r   r   r   rr   rr   ½   s¦   € € € € € € Ø&Ð&Ð&Ñ&ØÐÐÑðð ð ð ð
ð 
ð 
ð 
ð&ð &ð &ð &ð0ð 0ð 0ð 0ðð ð ð ð5ð 5ð 5ð 5ð 5ð 5r   rr   c                  ó   — e Zd Zdd„ZdS )rb   r0   r   r   c                óÌ   — | j         €t          d¦  «        ‚| j         j        �t          d¦  «        ‚| j                              |¦  «        }| j         j        | _        d | _         |S )Nrl   z^tag provided both in mode and in call with finalize_with_tag: tag should only be provided once)rg   r   rs   rR   r2   r0   )r   r0   r   s      r   r2   z(_AEADDecryptionContext.finalize_with_tagú   sh   € ØŒ9ÐÝ"Ð#CÑDÔDÐDØŒ9Œ>Ð%Ýð4ñô ð ð Œy×*Ò*¨3Ñ/Ô/ˆØ”I”MˆŒ	ØˆŒ	Øˆr   Nr3   )r"   r#   r$   r2   r   r   r   rb   rb   ù   s(   € € € € € ðð ð ð ð ð r   rb   c                  ó&   — e Zd Zedd„¦   «         ZdS )ra   r   r   c                óN   — | j         �t          d¦  «        ‚| j        €J ‚| j        S )Nz4You must finalize encryption before getting the tag.)rg   r   rs   r   s    r   r0   z_AEADEncryptionContext.tag	  s7   € àŒ9Ð Ý!ØIñô ð ð ŒyÐ$Ð$Ð$ØŒyÐr   Nr!   )r"   r#   r$   r7   r0   r   r   r   ra   ra     s2   € € € € € Øðð ð ñ „Xðð ð r   ra   )#Ú
__future__r   r%   rc   Úcryptography.exceptionsr   r   r   Ú/cryptography.hazmat.primitives._cipheralgorithmr   Ú&cryptography.hazmat.primitives.ciphersr   ÚTYPE_CHECKINGÚ,cryptography.hazmat.backends.openssl.ciphersr	   r]   ÚABCMetar   r)   r/   r5   ÚTypeVarÚOptionalr8   ÚGenericr<   ÚUnionÚModeWithNonceÚModeWithTweakÚECBÚModeWithInitializationVectorrK   rr   rb   ra   r   r   r   ú<module>r˜      sÎ  ðð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€ðð ð ð ð ð ð ð ð ð ð
 LÐ KÐ KÐ KÐ KÐ KØ 8Ð 8Ð 8Ð 8Ð 8Ð 8à	Ôð ðð ð ð ð ð ð
ð ð ð ð ˜cœkð ñ ô ð ð,ð ð ð ð ˜°´ð ñ ô ð ðð ð ð ð Ð-¸¼ð ñ ô ð ðð ð ð ð Ð-¸¼ð ñ ô ð ð €v„~Ø
�&”/ %¤*Ô-¸ðñ ô €ð
I'ð I'ð I'ð I'ð I'ˆVŒ^˜DÔ!ñ I'ô I'ð I'ðX Ø
„LØÔØÔØØŒ	ØÔ*ð		,ôô€ðð ð ð ð �]ñ ô ð ð095ð 95ð 95ð 95ð 95Ð*ñ 95ô 95ð 95ðxð ð ð ð Ð/Ð1Fñ ô ð ðð ð ð ð Ð/Ð1Fñ ô ð ð ð r   