ó
    |ñ:i3  ã                  óÎ   • S SK Jr  S SKrS SKrS SKrS SKr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JrJr  S SKJr   " S	 S
\5      rSr " S S5      r " S S5      rg)é    )ÚannotationsN)ÚIterable)Úutils)ÚInvalidSignature)ÚhashesÚpadding)ÚCipherÚ
algorithmsÚmodes)ÚHMACc                  ó   • \ rS rSrSrg)ÚInvalidTokené   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚV/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cryptography/fernet.pyr   r      s   † Úr   r   é<   c                  óÚ   • \ rS rSr S     SS jjr\SS j5       rSS jrSS jr        SS jr	SSS jjr
        SS	 jrSS
 jr\SS j5       rSS jr        SS jrSrg)ÚFerneté   Nc                óÞ   •  [         R                  " U5      n[        U5      S:w  a  [	        S5      eUS S U l        USS  U l        g ! [        R                   a  n[	        S5      UeS nAff = f)Nz4Fernet key must be 32 url-safe base64-encoded bytes.é    é   )Úbase64Úurlsafe_b64decodeÚbinasciiÚErrorÚ
ValueErrorÚlenÚ_signing_keyÚ_encryption_key)ÚselfÚkeyÚbackendÚexcs       r   Ú__init__ÚFernet.__init__   s{   € ð
	Ü×*Ò*¨3Ó/ˆCô
 ˆs‹8�r‹>ÜØFóð ð    ˜HˆÔØ" 2 3˜xˆÕøô �~‰~ó 	ÜØFóàðûð	ús   ‚A ÁA,ÁA'Á'A,c                óV   • [         R                  " [        R                  " S5      5      $ )Nr   )r   Úurlsafe_b64encodeÚosÚurandom)Úclss    r   Úgenerate_keyÚFernet.generate_key0   s   € ä×'Ò'¬¯
ª
°2«Ó7Ð7r   c                ó^   • U R                  U[        [        R                  " 5       5      5      $ ©N©Úencrypt_at_timeÚintÚtime)r'   Údatas     r   ÚencryptÚFernet.encrypt4   s    € Ø×#Ñ# D¬#¬d¯iªi«kÓ*:Ó;Ð;r   c                óR   • [         R                  " S5      nU R                  XU5      $ )Nr   )r/   r0   Ú_encrypt_from_parts)r'   r:   Úcurrent_timeÚivs       r   r7   ÚFernet.encrypt_at_time7   s"   € Ü�ZŠZ˜‹^ˆØ×'Ñ'¨¸BÓ?Ð?r   c                ó¾  • [         R                  " SU5        [        R                  " [        R
                  R                  5      R                  5       nUR                  U5      UR                  5       -   n[        [        R
                  " U R                  5      [        R                  " U5      5      R                  5       nUR                  U5      UR                  5       -   nSUR                  SSS9-   U-   U-   n[!        U R"                  [$        R&                  " 5       5      n	U	R                  U5        U	R                  5       n
[(        R*                  " XŠ-   5      $ )Nr:   ó   €é   Úbig)ÚlengthÚ	byteorder)r   Ú_check_bytesr   ÚPKCS7r
   ÚAESÚ
block_sizeÚpadderÚupdateÚfinalizer	   r&   r   ÚCBCÚ	encryptorÚto_bytesr   r%   r   ÚSHA256r   r.   )r'   r:   r?   r@   rL   Úpadded_datarP   Ú
ciphertextÚbasic_partsÚhÚhmacs              r   r>   ÚFernet._encrypt_from_parts;   s  € ô 	×Ò˜6 4Ô(ä—’œzŸ~™~×8Ñ8Ó9×@Ñ@ÓBˆØ—m‘m DÓ)¨F¯O©OÓ,=Ñ=ˆÜÜ�NŠN˜4×/Ñ/Ó0Ü�IŠI�b‹Mó
÷ ‰)‹+ð 	ð ×%Ñ% kÓ2°Y×5GÑ5GÓ5IÑIˆ
ð Ø×#Ñ#¨1¸Ð#Ð>ñ?àñð ñð 	ô �×"Ñ"¤F§M¢M£OÓ4ˆØ	�‰�ÔØ�z‰z‹|ˆÜ×'Ò'¨Ñ(:Ó;Ð;r   c                ó    • [         R                  U5      u  p4Uc  S nO U[        [        R                  " 5       5      4nU R	                  XCU5      $ r5   )r   Ú_get_unverified_token_datar8   r9   Ú_decrypt_data)r'   ÚtokenÚttlÚ	timestampr:   Ú	time_infos         r   ÚdecryptÚFernet.decryptT   sF   € Ü ×;Ñ;¸EÓB‰ˆ	Ø‰;Ø‰Iàœc¤$§)¢)£+Ó.Ð/ˆIØ×!Ñ! $°9Ó=Ð=r   c                ór   • Uc  [        S5      e[        R                  U5      u  pEU R                  XTX#45      $ )Nz6decrypt_at_time() can only be used with a non-None ttl)r#   r   rZ   r[   )r'   r\   r]   r?   r^   r:   s         r   Údecrypt_at_timeÚFernet.decrypt_at_time\   sC   € ð ‰;ÜØHóð ô !×;Ñ;¸EÓB‰ˆ	Ø×!Ñ! $°CÐ3FÓGÐGr   c                óV   • [         R                  U5      u  p#U R                  U5        U$ r5   )r   rZ   Ú_verify_signature)r'   r\   r^   r:   s       r   Úextract_timestampÚFernet.extract_timestampf   s(   € Ü ×;Ñ;¸EÓB‰ˆ	à×Ñ˜tÔ$ØÐr   c                óN  • [        U [        [        45      (       d  [        S5      e [        R
                  " U 5      nU(       a	  US   S:w  a  [        e[        U5      S:  a  [        e[        R                  USS SS9nX!4$ ! [        [        R                  4 a    [        ef = f)Nztoken must be bytes or strr   é€   é	   é   rE   )rG   )Ú
isinstanceÚstrÚbytesÚ	TypeErrorr   r    r!   r"   r   r$   r8   Ú
from_bytes)r\   r:   r^   s      r   rZ   Ú!Fernet._get_unverified_token_datal   sš   € ä˜%¤#¤u ×.Ñ.ÜÐ8Ó9Ð9ð	Ü×+Ò+¨EÓ2ˆDö �t˜A‘w $“ÜÐäˆt‹9�q‹=ÜÐä—N‘N 4¨¨! 9¸�NÐ>ˆ	ØˆÐøô œ8Ÿ>™>Ð*ó 	ÜÐð	ús   ¨B Â!B$c                óÐ   • [        U R                  [        R                  " 5       5      nUR	                  US S 5         UR                  USS  5        g ! [         a    [        ef = f)Néàÿÿÿ)r   r%   r   rR   rM   Úverifyr   r   )r'   r:   rV   s      r   rf   ÚFernet._verify_signature   sX   € Ü�×"Ñ"¤F§M¢M£OÓ4ˆØ	�‰��d�s�Ôð	Ø�H‰H�T˜#˜$�ZÕ øÜó 	ÜÐð	ús   ¿A ÁA%c                ó|  • Ub%  Uu  pEX$-   U:  a  [         eU[        -   U:  a  [         eU R                  U5        USS nUSS n[        [        R
                  " U R                  5      [        R                  " U5      5      R                  5       nUR                  U5      n	 X˜R                  5       -  n	[        R                  " [        R
                  R                  5      R!                  5       n
U
R                  U	5      n XºR                  5       -  nU$ ! [         a    [         ef = f! [         a    [         ef = f)Nrk   é   rt   )r   Ú_MAX_CLOCK_SKEWrf   r	   r
   rJ   r&   r   rO   Ú	decryptorrM   rN   r#   r   rI   rK   Úunpadder)r'   r:   r^   r_   r]   r?   r@   rT   rz   Úplaintext_paddedr{   Úunpaddeds               r   r[   ÚFernet._decrypt_data‡   s/  € ð Ñ Ø )ÑˆCØ‰ Ó-Ü"Ð"àœoÑ-°	Ó9Ü"Ð"à×Ñ˜tÔ$à�!�BˆZˆØ˜"˜S�\ˆ
ÜÜ�NŠN˜4×/Ñ/Ó0´%·)²)¸B³-ó
ç
‰)‹+ð 	ð %×+Ñ+¨JÓ7Ðð	Ø× 2Ñ 2Ó 4Ñ4Ðô —=’=¤§¡×!:Ñ!:Ó;×DÑDÓFˆà—?‘?Ð#3Ó4ˆð	Ø×)Ñ)Ó+Ñ+ˆHð ˆøô ó 	ÜÐð	ûô ó 	ÜÐð	ús   Â"D ÄD* ÄD'Ä*D;)r&   r%   r5   )r(   úbytes | strr)   z
typing.AnyÚreturnÚNone)r€   ro   )r:   ro   r€   ro   )r:   ro   r?   r8   r€   ro   )r:   ro   r?   r8   r@   ro   r€   ro   )r\   r   r]   ú
int | Noner€   ro   )r\   r   r]   r8   r?   r8   r€   ro   )r\   r   r€   r8   )r\   r   r€   ztuple[int, bytes])r:   ro   r€   r�   )r:   ro   r^   r8   r_   ztuple[int, int] | Noner€   ro   )r   r   r   r   r+   Úclassmethodr2   r;   r7   r>   r`   rc   rg   ÚstaticmethodrZ   rf   r[   r   r   r   r   r   r      sä   † ð #ð(àð(ð ð(ð 
õ	(ð& ó8ó ð8ô<ô@ð<Øð<Ø),ð<Ø27ð<à	ô<ö2>ðHØ ðHØ'*ðHØ:=ðHà	ôHôð óó ðô$ð!àð!ð ð!ð *ð	!ð
 
÷!r   r   c                  ón   • \ rS rSrSS jrSS jrSS jrSS jrSSS jjr        SS jr	SS	 jr
S
rg)ÚMultiFerneté«   c                óJ   • [        U5      nU(       d  [        S5      eXl        g )Nz1MultiFernet requires at least one Fernet instance)Úlistr#   Ú_fernets)r'   Úfernetss     r   r+   ÚMultiFernet.__init__¬   s%   € Ü�w“-ˆÞÜØCóð ð  �r   c                ó^   • U R                  U[        [        R                  " 5       5      5      $ r5   r6   )r'   Úmsgs     r   r;   ÚMultiFernet.encrypt´   s    € Ø×#Ñ# C¬¬T¯YªY«[Ó)9Ó:Ð:r   c                ó>   • U R                   S   R                  X5      $ )Nr   )rŠ   r7   )r'   rŽ   r?   s      r   r7   ÚMultiFernet.encrypt_at_time·   s   € Ø�}‰}˜QÑ×/Ñ/°ÓBÐBr   c                ó  • [         R                  U5      u  p#U R                   H  n UR                  X2S 5      n  O   [        e[
        R                  " S5      nU R                  S   R                  XRU5      $ ! [         a     Mb  f = f)Nr   r   )r   rZ   rŠ   r[   r   r/   r0   r>   )r'   rŽ   r^   r:   ÚfÚpr@   s          r   ÚrotateÚMultiFernet.rotateº   s   € Ü ×;Ñ;¸CÓ@‰ˆ	Ø—”ˆAðØ—O‘O D°TÓ:�Ùñ ô Ðä�ZŠZ˜‹^ˆØ�}‰}˜QÑ×3Ñ3°AÀ"ÓEÐEøô  ó Úðús   ¨A9Á9
BÂBNc                óz   • U R                    H  n UR                  X5      s  $    [        e! [         a     M,  f = fr5   )rŠ   r`   r   )r'   rŽ   r]   r“   s       r   r`   ÚMultiFernet.decryptÈ   s@   € Ø—”ˆAðØ—y‘y Ó*Ò*ñ ô
 Ðøô  ó Úðúó   ‘,¬
:¹:c                ó|   • U R                    H  n UR                  XU5      s  $    [        e! [         a     M-  f = fr5   )rŠ   rc   r   )r'   rŽ   r]   r?   r“   s        r   rc   ÚMultiFernet.decrypt_at_timeÐ   sF   € ð —”ˆAðØ×(Ñ(¨°<Ó@Ò@ñ ô
 Ðøô  ó Úðús   ‘-­
;º;c                óz   • U R                    H  n UR                  U5      s  $    [        e! [         a     M,  f = fr5   )rŠ   rg   r   )r'   rŽ   r“   s      r   rg   ÚMultiFernet.extract_timestampÚ   sB   € Ø—”ˆAðØ×*Ñ*¨3Ó/Ò/ñ ô
 Ðøô  ó Úðúr™   )rŠ   )r‹   zIterable[Fernet])rŽ   ro   r€   ro   )rŽ   ro   r?   r8   r€   ro   )rŽ   r   r€   ro   r5   )rŽ   r   r]   r‚   r€   ro   )rŽ   r   r]   r8   r?   r8   r€   ro   )rŽ   r   r€   r8   )r   r   r   r   r+   r;   r7   r•   r`   rc   rg   r   r   r   r   r†   r†   «   sG   † ô ô;ôCôFöðØðØ%(ðØ8;ðà	ô÷r   r†   )Ú
__future__r   r   r!   r/   r9   ÚtypingÚcollections.abcr   Úcryptographyr   Úcryptography.exceptionsr   Úcryptography.hazmat.primitivesr   r   Ú&cryptography.hazmat.primitives.ciphersr	   r
   r   Ú#cryptography.hazmat.primitives.hmacr   Ú	Exceptionr   ry   r   r†   r   r   r   Ú<module>r§      sX   ðõ
 #ã Û Û 	Û Û Ý $å Ý 4ß :ß LÑ LÝ 4ô	�9ô 	ð €÷Lñ L÷^5ò 5r   