+
    '(j$                         ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHtH	t	H
t
HtHtHtHt ]! RR4      t ! R R]4      tR	 tR
# )    )	unhexlify)bordtobytes)get_random_bytes)load_pycryptodome_raw_libVoidPointerSmartPointercreate_string_bufferget_raw_bufferc_size_tc_uint8_ptrzCrypto.Hash._BLAKE2ba  
                        int blake2b_init(void **state,
                                         const uint8_t *key,
                                         size_t key_size,
                                         size_t digest_size);
                        int blake2b_destroy(void *state);
                        int blake2b_update(void *state,
                                           const uint8_t *buf,
                                           size_t len);
                        int blake2b_digest(const void *state,
                                           uint8_t digest[64]);
                        int blake2b_copy(const void *src, void *dst);
                        c                   R   a  ] tR t^:t o Rt^@tR tR tR tR t	R t
R tR tR	tV tR
# )BLAKE2b_Hashar  A BLAKE2b hash object.
Do not instantiate directly. Use the :func:`new` function.

:ivar oid: ASN.1 Object ID
:vartype oid: string

:ivar block_size: the size in bytes of the internal message block,
                  input to the compression function
:vartype block_size: integer

:ivar digest_size: the size in bytes of the resulting hash
:vartype digest_size: integer
c           	        W0n         W@n        R V n        VR9   d    V'       g   R\        V4      ,           V n        \        4       p\        P                  VP                  4       \        V4      \        \        V4      4      \        V4      4      pV'       d   \        RV,          4      h\        VP                  4       \        P                  4      V n        V'       d   V P#                  V4       R# R# )Fz1.3.6.1.4.1.1722.12.2.1.z$Error %d while instantiating BLAKE2bN)       0   @   )digest_size_update_after_digest_digest_donestroidr   _raw_blake2b_libblake2b_init
address_ofr   r   len
ValueErrorr	   getblake2b_destroy_stateupdate)selfdatakeydigest_bytesupdate_after_digeststateresults   &&&&&  H/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/Hash/BLAKE2b.py__init__BLAKE2b_Hash.__init__L   s     ($7!! ++C1C4EEDH!..u/?/?/A/:3/?/7C/A/7/E1
 CfLMM"599;#3#C#CEKK     c           	     ,   V P                   '       d   V P                  '       g   \        R4      h\        P	                  V P
                  P                  4       \        V4      \        \        V4      4      4      pV'       d   \        RV,          4      hV # )zContinue hashing of a message by consuming the next chunk of data.

Args:
    data (bytes/bytearray/memoryview): The next chunk of the message being hashed.
z8You can only call 'digest' or 'hexdigest' on this objectz#Error %d while hashing BLAKE2b data)r   r   	TypeErrorr   blake2b_updater!   r   r   r   r   r   )r#   r$   r)   s   && r*   r"   BLAKE2b_Hash.updatef   st     T%>%>%>VWW!001B1<T1B19#d)1DF BVKLLr-   c                    \        ^@4      p\        P                  V P                  P	                  4       V4      pV'       d   \        RV,          4      hRV n        \        V4      RV P                   # )zReturn the **binary** (non-printable) digest of the message that has been hashed so far.

:return: The hash digest, computed over the data processed so far.
         Binary form.
:rtype: byte string
z&Error %d while creating BLAKE2b digestTN)	r
   r   blake2b_digestr!   r   r   r   r   r   )r#   bfrr)   s   &  r*   digestBLAKE2b_Hash.digestx   sc     #2&!001B146ENOO c"#4D$4$455r-   c           	         RP                  \        V P                  4       4       Uu. uF  pR\        V4      ,          NK  	  up4      # u upi )zReturn the **printable** digest of the message that has been hashed so far.

:return: The hash digest, computed over the data processed so far.
         Hexadecimal encoded.
:rtype: string
 z%02x)jointupler5   r   )r#   xs   & r*   	hexdigestBLAKE2b_Hash.hexdigest   s>     ww%2FG2FQa((2FGHHGs   A	c                    \        ^4      p\        ^W!R7      p\        ^W P                  4       R7      pVP                  4       VP                  4       8w  d   \        R4      hR# )a(  Verify that a given **binary** MAC (computed by another party)
is valid.

Args:
  mac_tag (bytes/bytearray/memoryview): the expected MAC of the message.

Raises:
    ValueError: if the MAC does not match. It means that the message
        has been tampered with or that the MAC key is incorrect.
)digest_bitsr%   r$   zMAC check failedN)r   newr5   r   )r#   mac_tagsecretmac1mac2s   &&   r*   verifyBLAKE2b_Hash.verify   sQ     ""%s=s[[]C;;=DKKM)/00 *r-   c                L    V P                  \        \        V4      4      4       R# )a6  Verify that a given **printable** MAC (computed by another party)
is valid.

Args:
    hex_mac_tag (string): the expected MAC of the message, as a hexadecimal string.

Raises:
    ValueError: if the MAC does not match. It means that the message
        has been tampered with or that the MAC key is incorrect.
N)rE   r   r   )r#   hex_mac_tags   &&r*   	hexverifyBLAKE2b_Hash.hexverify   s     	Igk234r-   c                R    RV9  d   RV9  d   V P                   VR&   \        R/ VB # )zAReturn a new instance of a BLAKE2b hash object.
See :func:`new`.
r&   r?    )r   r@   )r#   kwargss   &,r*   r@   BLAKE2b_Hash.new   s/    
 'M,G%)%5%5F>"}V}r-   )r   r!   r   r   r   N)__name__
__module____qualname____firstlineno____doc__
block_sizer+   r"   r5   r<   rE   rI   r@   __static_attributes____classdictcell__)__classdict__s   @r*   r   r   :   s:      J4$6&I1*5 r-   r   c                 0   V P                  RR4      pV P                  RR4      pV P                  RR4      pV P                  RR4      pRW439  d   \        R4      hRW438X  d   ^@pVe   ^Tu;8:  d   ^@8:  g   M \        R4      hM5^Tu;8:  d   R	8:  d   M MV^,          '       d   \        R
4      hV^,          pV P                  RR4      p\        V4      ^@8  d   \        R4      hV '       d   \        R\	        V 4      ,           4      h\        WW24      # )a  Create a new hash object.

Args:
    data (bytes/bytearray/memoryview):
        Optional. The very first chunk of the message to hash.
        It is equivalent to an early call to :meth:`BLAKE2b_Hash.update`.
    digest_bytes (integer):
        Optional. The size of the digest, in bytes (1 to 64). Default is 64.
    digest_bits (integer):
        Optional and alternative to ``digest_bytes``.
        The size of the digest, in bits (8 to 512, in steps of 8).
        Default is 512.
    key (bytes/bytearray/memoryview):
        Optional. The key to use to compute the MAC (1 to 64 bytes).
        If not specified, no key will be used.
    update_after_digest (boolean):
        Optional. By default, a hash object cannot be updated anymore after
        the digest is computed. When this flag is ``True``, such check
        is no longer enforced.

Returns:
    A :class:`BLAKE2b_Hash` hash object
r$   Nr'   Fr&   r?   z*Only one digest parameter must be providedz!'digest_bytes' not in range 1..64i   z2'digest_bits' not in range 8..512, with steps of 8r%   r-   z"BLAKE2b key cannot exceed 64 byteszUnknown parameters: )NN)popr/   r   r   r   r   )rM   r$   r'   r&   r?   r%   s   ,     r*   r@   r@      s   2 ::fd#D **%:EB::nd3L**]D1KL..DEE22\'R'@AA ( ['C'[1__ / 0 0"a'
**UC
 C
3x"}=>>.V<==<EEr-   N)binasciir   Crypto.Util.py3compatr   r   Crypto.Randomr   Crypto.Util._raw_apir   r   r	   r
   r   r   r   r   objectr   r@   rL   r-   r*   <module>r_      sI   >  / */ / / --C  H6 HV2Fr-   