Ë
    (üàgÕ$  ã                   ó~   — d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZ  edd«      Z G d„ de«      Zd	„ Zy
)é    )Ú	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._BLAKE2sa²  
                        int blake2s_init(void **state,
                                         const uint8_t *key,
                                         size_t key_size,
                                         size_t digest_size);
                        int blake2s_destroy(void *state);
                        int blake2s_update(void *state,
                                           const uint8_t *buf,
                                           size_t len);
                        int blake2s_digest(const void *state,
                                           uint8_t digest[32]);
                        int blake2s_copy(const void *src, void *dst);
                        c                   ó>   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚBLAKE2s_Hasha–  A BLAKE2s 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           	      óª  — || _         || _        d| _        |dv r|sdt        |«      z   | _        t        «       }t        j                  |j                  «       t        |«      t        t        |«      «      t        |«      «      }|rt        d|z  «      ‚t        |j                  «       t        j                  «      | _        |r| j#                  |«       y y )NF)é   é   é   r   z1.3.6.1.4.1.1722.12.2.2.z$Error %d while instantiating BLAKE2s)Údigest_sizeÚ_update_after_digestÚ_digest_doneÚstrÚoidr   Ú_raw_blake2s_libÚblake2s_initÚ
address_ofr   r   ÚlenÚ
ValueErrorr	   ÚgetÚblake2s_destroyÚ_stateÚupdate)ÚselfÚdataÚkeyÚdigest_bytesÚupdate_after_digestÚstateÚresults          úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/Hash/BLAKE2s.pyÚ__init__zBLAKE2s_Hash.__init__L   sÀ   € ð (ˆÔà$7ˆÔ!Ø!ˆÔð Ð+Ñ+±CØ1´C¸Ó4EÑEˆDŒHä“ˆÜ!×.Ñ.¨u×/?Ñ/?Ó/AÜ/:¸3Ó/?Ü/7¼¸C»Ó/AÜ/7¸Ó/Eó1ˆñ
 ÜÐCÀfÑLÓMÐMÜ" 5§9¡9£;Ü#3×#CÑ#CóEˆŒáØ�K‰K˜Õð ó    c           	      ó   — | j                   r| j                  st        d«      ‚t        j	                  | j
                  j                  «       t        |«      t        t        |«      «      «      }|rt        d|z  «      ‚| S )z¼Continue hashing of a message by consuming the next chunk of data.

        Args:
            data (byte string/byte array/memoryview): The next chunk of the message being hashed.
        z8You can only call 'digest' or 'hexdigest' on this objectz#Error %d while hashing BLAKE2s data)r   r   Ú	TypeErrorr   Úblake2s_updater!   r   r   r   r   r   )r#   r$   r)   s      r*   r"   zBLAKE2s_Hash.updatef   sn   € ð ×Ò T×%>Ò%>ÜÐVÓWÐWä!×0Ñ0°·±·±Ó1BÜ1<¸TÓ1BÜ19¼#¸d»)Ó1DóFˆñ ÜÐBÀVÑKÓLÐLØˆr,   c                 óÒ   — t        d«      }t        j                  | j                  j	                  «       |«      }|rt        d|z  «      ‚d| _        t        |«      d| j                   S )zçReturn 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
        r   z&Error %d while creating BLAKE2s digestTN)	r
   r   Úblake2s_digestr!   r   r   r   r   r   )r#   Úbfrr)   s      r*   ÚdigestzBLAKE2s_Hash.digestx   sc   € ô # 2Ó&ˆÜ!×0Ñ0°·±·±Ó1BØ14ó6ˆáÜÐEÈÑNÓOÐOà ˆÔä˜cÓ"Ð#4 D×$4Ñ$4Ð5Ð5r,   c           	      ó�   — dj                  t        | j                  «       «      D �cg c]  }dt        |«      z  ‘Œ c}«      S c c}w )zÝReturn 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Útupler3   r   )r#   Úxs     r*   Ú	hexdigestzBLAKE2s_Hash.hexdigest‹   s5   € ð �w‰w´%¸¿¹»Ó2FÖG¨Q˜¤ a£Ó(ÒGÓHÐHùÒGs   §Ac                 óÆ   — t        d«      }t        d||¬«      }t        d|| j                  «       ¬«      }|j                  «       |j                  «       k7  rt        d«      ‚y)ag  Verify that a given **binary** MAC (computed by another party)
        is valid.

        Args:
          mac_tag (byte string/byte array/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.
        r   é    )Údigest_bitsr%   r$   zMAC check failedN)r   Únewr3   r   )r#   Úmac_tagÚsecretÚmac1Úmac2s        r*   ÚverifyzBLAKE2s_Hash.verify–   sU   € ô " "Ó%ˆä˜s¨°WÔ=ˆÜ˜s¨°T·[±[³]ÔCˆà�;‰;‹=˜DŸK™K›MÒ)ÜÐ/Ó0Ð0ð *r,   c                 óJ   — | j                  t        t        |«      «      «       y)an  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)rB   r   r   )r#   Úhex_mac_tags     r*   Ú	hexverifyzBLAKE2s_Hash.hexverify«   s   € ð 	�‰”Iœg kÓ2Ó3Õ4r,   c                 óF   — d|vrd|vr| j                   |d<   t        di |¤ŽS )zQReturn a new instance of a BLAKE2s hash object.
        See :func:`new`.
        r&   r<   © )r   r=   )r#   Úkwargss     r*   r=   zBLAKE2s_Hash.newº   s/   € ð
  Ñ'¨MÀÑ,GØ%)×%5Ñ%5ˆF�>Ñ"ä‰}�V‰}Ðr,   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
block_sizer+   r"   r3   r9   rB   rE   r=   rG   r,   r*   r   r   :   s2   „ ñð €Jòò4ò$6ò&Iò1ò*5ór,   r   c                  ó  — | j                  dd«      }| j                  dd«      }| j                  dd«      }| j                  dd«      }d||fvrt        d«      ‚d||fk(  rd	}|�"d
|cxk  rd	k  sDt        d«      ‚ t        d«      ‚d|cxk  rdk  rn t        d«      ‚|dz  rt        d«      ‚|dz  }| j                  dd«      }t        |«      d	kD  rt        d«      ‚| rt        dt	        | «      z   «      ‚t        ||||«      S )aÏ  Create a new hash object.

    Args:
        data (byte string/byte array/memoryview):
            Optional. The very first chunk of the message to hash.
            It is equivalent to an early call to :meth:`BLAKE2s_Hash.update`.
        digest_bytes (integer):
            Optional. The size of the digest, in bytes (1 to 32). Default is 32.
        digest_bits (integer):
            Optional and alternative to ``digest_bytes``.
            The size of the digest, in bits (8 to 256, in steps of 8).
            Default is 256.
        key (byte string):
            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:`BLAKE2s_Hash` hash object
    r$   Nr'   Fr&   r<   z*Only one digest parameter must be provided)NNr   é   z!'digest_bytes' not in range 1..32é   é   z2'digest_bits' not in range 8..256, with steps of 8r%   r,   z"BLAKE2s key cannot exceed 32 byteszUnknown parameters: )Úpopr.   r   r   r   r   )rH   r$   r'   r&   r<   r%   s         r*   r=   r=   Å   s6  € ð2 �:‰:�f˜dÓ#€DØ Ÿ*™*Ð%:¸EÓBÐà—:‘:˜n¨dÓ3€LØ—*‘*˜]¨DÓ1€KØ�L +Ð.Ñ.ÜÐDÓEÐEØ˜ kÐ2Ò2ØˆØÐØ�\Ô' RÒ'ÜÐ@ÓAÐAð (ÜÐ@ÓAÐAà�[Ô' CÔ'Üð /ó 0ð 0ð .9¸1ª_Üð /ó 0ð 0à" aÑ'ˆà
�*‰*�U˜CÓ
 €CÜ
ˆ3ƒx�"‚}ÜÐ=Ó>Ð>áÜÐ.´°V³Ñ<Ó=Ð=ä˜˜c <Ð1DÓEÐEr,   N)Úbinasciir   ÚCrypto.Util.py3compatr   r   ÚCrypto.Randomr   ÚCrypto.Util._raw_apir   r   r	   r
   r   r   r   r   Úobjectr   r=   rG   r,   r*   ú<module>rX      sI   ðõ> ç /å *÷/÷ /ñ /ñ -Ð-CðóÐ ô H�6ô HóV2Fr,   