ó
    &ÝNj”"  ã                   ó’  • % S SK JrJr  S SKJr  S SKJrJr  S SK	J
r
  \R                  " 5       r\\S'   \R                  " 5       r\\S'   \R"                  " 5       r\\S'   \R&                  " 5       r\\S'   \R*                  " 5       r\\S	'   \R.                  " 5       r\\S
'   \R2                  " 5       r\\S'   \R6                  " 5       r\\S'   \R:                  " 5       r\\S'   SrSr S\S\!S\!S\!SS4
S jr"\SSS4S\!S\S\!S\!S\!S\!4S jjr#\" SSS9r$ " S S5      r%SSS\4S\!S\!S\!S\S\%4
S jjr&S\%S\!SS4S  jr'S\%S\!4S! jr(g)"é    )ÚNoReturnÚTypeVar)Ú
exceptions)ÚffiÚlib)ÚensureÚcrypto_generichash_BYTESÚcrypto_generichash_BYTES_MINÚcrypto_generichash_BYTES_MAXÚcrypto_generichash_KEYBYTESÚcrypto_generichash_KEYBYTES_MINÚcrypto_generichash_KEYBYTES_MAXÚcrypto_generichash_SALTBYTESÚ crypto_generichash_PERSONALBYTESÚcrypto_generichash_STATEBYTESz!{0} length greater than {1} bytesz{0} greater than {1}Údigest_sizeÚkeyÚsaltÚpersonÚreturnNc                 ó2  • [        [        U[        5      S[        R                  S9  [        [        U[        5      S[        R                  S9  [        [        U[        5      S[        R                  S9  [        [        U [
        5      S[        R                  S9  [        U [        :*  [        R                  S[        5      [        R                  S9  [        [        U5      [        :*  [        R                  S[        5      [        R                  S9  [        [        U5      [        :*  [        R                  S[        5      [        R                  S9  [        [        U5      [        :*  [        R                  S	[        5      [        R                  S9  g
)zCheck hash parameterszKey must be a bytes sequence©ÚraisingzSalt must be a bytes sequencezPerson must be a bytes sequencez%Digest size must be an integer numberÚDigest_sizeÚKeyÚSaltÚPersonN)r   Ú
isinstanceÚbytesÚexcÚ	TypeErrorÚintr   Ú_TOOBIGÚformatÚ
ValueErrorÚlenr   Ú	_OVERLONGr   r   )r   r   r   r   s       Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/nacl/bindings/crypto_generichash.pyÚ_checkparamsr)   )   s0  € ô Ü�3œÓØ&Ü—‘òô Ü�4œÓØ'Ü—‘òô Ü�6œ5Ó!Ø)Ü—‘òô Ü�;¤Ó$Ø/Ü—‘òô ØÔ3Ñ3Ü�‰�}Ô&BÓCÜ—‘òô ÜˆC‹Ô3Ñ3Ü×Ñ˜Ô ?Ó@Ü—‘òô ÜˆD‹	Ô1Ñ1Ü×Ñ˜Ô!=Ó>Ü—‘òô ÜˆF‹Ô7Ñ7Ü×Ñ˜Ô#CÓDÜ—‘óó    r*   Údatac           
      óF  • [        XX45        [        [        U [        5      S[        R
                  S9  [        R                  " SU5      n[        R                  " S[        5      n[        R                  " S[        5      n[        R                  " Xc[        U5      5        [        R                  " Xt[        U5      5        [        R                  " XQU [        U 5      U[        U5      Xg5      n[        US:H  S[        R                  S9  [        R                  " XQ5      SS $ )a  One shot hash interface

:param data: the input data to the hash function
:type data: bytes
:param digest_size: must be at most
                    :py:data:`.crypto_generichash_BYTES_MAX`;
                    the default digest size is
                    :py:data:`.crypto_generichash_BYTES`
:type digest_size: int
:param key: must be at most
            :py:data:`.crypto_generichash_KEYBYTES_MAX` long
:type key: bytes
:param salt: must be at most
             :py:data:`.crypto_generichash_SALTBYTES` long;
             will be zero-padded if needed
:type salt: bytes
:param person: must be at most
               :py:data:`.crypto_generichash_PERSONALBYTES` long:
               will be zero-padded if needed
:type person: bytes
:return: digest_size long digest
:rtype: bytes
ú#Input data must be a bytes sequencer   úunsigned char[]úunsigned char []r   úUnexpected failureN)r)   r   r   r   r    r!   r   Únewr   r   Úmemmover&   r   Ú(crypto_generichash_blake2b_salt_personalÚRuntimeErrorÚbuffer)	r+   r   r   r   r   ÚdigestÚ_saltÚ_personÚrcs	            r(   Ú!generichash_blake2b_salt_personalr:   ^   sÙ   € ô> � 4Ô0ä
Ü�4œÓØ-Ü—‘òô �WŠWÐ&¨Ó4€Fô �GŠGÐ&Ô(DÓE€EÜ�gŠgÐ(Ô*JÓK€Gä‡K‚K�œS ›YÔ'Ü‡K‚K�¤ V£Ô-ä	×	5Ò	5Ø˜T¤3 t£9¨c´3°s³8¸Uó
€Bô ˆ2�‰7Ð(´#×2BÑ2BÒCä�:Š:�fÓ*©1Ð-Ð-r*   Ú_Blake2StateÚBlake2State)Úboundc                   óN   • \ rS rSrSrSS/rS\4S jrS\4S jr	S\
S\
4S	 jrS
rg)r<   é™   zF
Python-level wrapper for the crypto_generichash_blake2b state buffer
Ú	_statebufr   c                 óP   • [         R                  " S[        5      U l        Xl        g )Nr.   )r   r1   r   r@   r   )Úselfr   s     r(   Ú__init__ÚBlake2State.__init__    s    € ÜŸšØÔ<ó
ˆŒð 'Õr*   r   c                 ó^   • [        SR                  U R                  R                  5      5      e)zK
Raise the same exception as hashlib's blake implementation
on copy.copy()
zcan't pickle {} objects)r!   r$   Ú	__class__Ú__name__)rB   s    r(   Ú
__reduce__ÚBlake2State.__reduce__¦   s)   € ô
 Ø%×,Ñ,¨T¯^©^×-DÑ-DÓEó
ð 	
r*   rB   c                 óœ   • U R                  U R                  5      n[        R                  " UR                  U R                  [
        5        U$ )N)rF   r   r   r2   r@   r   )rB   Ú_sts     r(   ÚcopyÚBlake2State.copy¯   s9   € Ø�n‰n˜T×-Ñ-Ó.ˆÜ�ŠØ�M‰M˜4Ÿ>™>Ô+Hô	
ð ˆ
r*   )r@   r   N)rG   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r"   rC   r   rH   r;   rL   Ú__static_attributes__© r*   r(   r<   r<   ™   s>   † ñð ˜mÐ,€Ið' Cô 'ð
˜Hô 
ð�<ð  L÷ r*   c                 ó²  • [        X0X5        [        U5      n[        R                  " S[        5      n[        R                  " S[
        5      n[        R                  " XQ[        U5      5        [        R                  " Xb[        U5      5        [        R                  " UR                  U [        U 5      X5U5      n[        US:H  S[        R                  S9  U$ )að  
Create a new initialized blake2b hash state

:param key: must be at most
            :py:data:`.crypto_generichash_KEYBYTES_MAX` long
:type key: bytes
:param salt: must be at most
             :py:data:`.crypto_generichash_SALTBYTES` long;
             will be zero-padded if needed
:type salt: bytes
:param person: must be at most
               :py:data:`.crypto_generichash_PERSONALBYTES` long:
               will be zero-padded if needed
:type person: bytes
:param digest_size: must be at most
                    :py:data:`.crypto_generichash_BYTES_MAX`;
                    the default digest size is
                    :py:data:`.crypto_generichash_BYTES`
:type digest_size: int
:return: a initialized :py:class:`.Blake2State`
:rtype: object
r/   r   r0   r   )r)   r<   r   r1   r   r   r2   r&   r   Ú-crypto_generichash_blake2b_init_salt_personalr@   r   r    r4   )r   r   r   r   Ústater7   r8   r9   s           r(   Úgenerichash_blake2b_initrX   ·   s£   € ô: � 4Ô0ä˜Ó$€Eô �GŠGÐ&Ô(DÓE€EÜ�gŠgÐ(Ô*JÓK€Gä‡K‚K�œS ›YÔ'Ü‡K‚K�¤ V£Ô-ä	×	:Ò	:Ø�‰˜œc #›h¨¸Gó
€Bô ˆ2�‰7Ð(´#×2BÑ2BÒCà€Lr*   rW   c                 ó.  • [        [        U [        5      S[        R                  S9  [        [        U[
        5      S[        R                  S9  [        R                  " U R                  U[        U5      5      n[        US:H  S[        R                  S9  g)zâUpdate the blake2b hash state

:param state: a initialized Blake2bState object as returned from
                 :py:func:`.crypto_generichash_blake2b_init`
:type state: :py:class:`.Blake2State`
:param data:
:type data: bytes
ú"State must be a Blake2State objectr   r-   r   r0   N)r   r   r<   r    r!   r   r   Ú!crypto_generichash_blake2b_updater@   r&   r4   )rW   r+   r9   s      r(   Úgenerichash_blake2b_updater\   ç   sx   € ô Ü�5œ+Ó&Ø,Ü—‘òô Ü�4œÓØ-Ü—‘òô 
×	.Ò	.Ø�‰˜œs 4›yó
€Bô ˆ2�‰7Ð(´#×2BÑ2BÓCr*   c                 óZ  • [        [        U [        5      S[        R                  S9  [
        R                  " S[        5      n[        R                  " U R                  XR                  5      n[        US:H  S[        R                  S9  [
        R                  " XR                  5      SS $ )a"  Finalize the blake2b hash state and return the digest.

:param state: a initialized Blake2bState object as returned from
                 :py:func:`.crypto_generichash_blake2b_init`
:type state: :py:class:`.Blake2State`
:return: the blake2 digest of the passed-in data stream
:rtype: bytes
rZ   r   r.   r   r0   N)r   r   r<   r    r!   r   r1   r   r   Ú crypto_generichash_blake2b_finalr@   r   r4   r5   )rW   Ú_digestr9   s      r(   Úgenerichash_blake2b_finalr`     s†   € ô Ü�5œ+Ó&Ø,Ü—‘òô �gŠgÐ'Ô)EÓF€GÜ	×	-Ò	-Ø�‰˜×"3Ñ"3ó
€Bô ˆ2�‰7Ð(´#×2BÑ2BÒCÜ�:Š:�g×0Ñ0Ó1±!Ð4Ð4r*   ))Útypingr   r   Únaclr   r    Únacl._sodiumr   r   Únacl.exceptionsr   Ú crypto_generichash_blake2b_bytesr	   r"   Ú__annotations__Ú$crypto_generichash_blake2b_bytes_minr
   Ú$crypto_generichash_blake2b_bytes_maxr   Ú#crypto_generichash_blake2b_keybytesr   Ú'crypto_generichash_blake2b_keybytes_minr   Ú'crypto_generichash_blake2b_keybytes_maxr   Ú$crypto_generichash_blake2b_saltbytesr   Ú(crypto_generichash_blake2b_personalbytesr   Úcrypto_generichash_statebytesr   r'   r#   r   r)   r:   r;   r<   rX   r\   r`   rT   r*   r(   Ú<module>ro      sí  ð÷ %Ð $å "ß !Ý "ð !$× DÒ DÓ FÐ ˜#Ó FØ$'×$LÒ$LÓ$NÐ ˜cÓ NØ$'×$LÒ$LÓ$NÐ ˜cÓ NØ#&×#JÒ#JÓ#LÐ ˜SÓ Là×/Ò/Ó1ð   ó ð ×/Ò/Ó1ð   ó ð %(×$LÒ$LÓ$NÐ ˜cÓ Nà×0Ò0Ó2ð ! #ó ð &)×%FÒ%FÓ%HÐ ˜sÓ Hà/€	Ø
 €ð2Øð2Ø ð2Ø(-ð2Ø7<ð2à	ô2ðn 0ØØØñ5.Ø
ð5.àð5.ð 
ð5.ð ð	5.ð
 ð5.ð õ5.ñp �~¨]Ñ;€÷ñ ð> ØØØ/ñ	-Ø	ð-à
ð-ð ð-ð ð	-ð
 õ-ð`D kð D¸ð DÀ4ô Dð85 [ð 5°Uõ 5r*   