Ë
    —,hŠ  ã                   óŽ   — d dl mZ d dlmZmZmZ d dl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Ú_copy_bytes)ÚBLAKE2s)Úget_random_bytes)Úload_pycryptodome_raw_libÚVoidPointerÚSmartPointerÚcreate_string_bufferÚget_raw_bufferÚc_size_tÚc_uint8_ptrzCrypto.Hash._poly1305aÛ  
                        int poly1305_init(void **state,
                                          const uint8_t *r,
                                          size_t r_len,
                                          const uint8_t *s,
                                          size_t s_len);
                        int poly1305_destroy(void *state);
                        int poly1305_update(void *state,
                                            const uint8_t *in,
                                            size_t len);
                        int poly1305_digest(const void *state,
                                            uint8_t *digest,
                                            size_t len);
                        c                   ó>   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚPoly1305_MACzÀAn Poly1305 MAC object.
    Do not instantiate directly. Use the :func:`new` function.

    :ivar digest_size: the size in bytes of the resulting MAC tag
    :vartype digest_size: integer
    é   c                 óæ  — t        |«      dk7  rt        d«      ‚t        |«      dk7  rt        d«      ‚d | _        t        «       }t        j                  |j                  «       t        |«      t        t        |«      «      t        |«      t        t        |«      «      «      }|rt        d|z  «      ‚t        |j                  «       t        j                  «      | _        |r| j                  |«       y y )Nr   z Parameter r is not 16 bytes longz Parameter s is not 16 bytes longz%Error %d while instantiating Poly1305)ÚlenÚ
ValueErrorÚ_mac_tagr
   Ú_raw_poly1305Úpoly1305_initÚ
address_ofr   r   r   ÚgetÚpoly1305_destroyÚ_stateÚupdate)ÚselfÚrÚsÚdataÚstateÚresults         úV/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/Hash/Poly1305.pyÚ__init__zPoly1305_MAC.__init__?   sÇ   € äˆq‹6RŠ<ÜÐ?Ó@Ð@Üˆq‹6RŠ<ÜÐ?Ó@Ð@àˆŒä“ˆÜ×,Ñ,¨U×-=Ñ-=Ó-?Ü-8¸«^Ü-5´c¸!³fÓ-=Ü-8¸«^Ü-5´c¸!³fÓ-=ó	/ˆñ ÜÐDÀvÑMÓNÐNÜ" 5§9¡9£;Ü#0×#AÑ#AóCˆŒáØK‰K˜Õð ó    c           	      óè   — | j                   rt        d«      ‚t        j                  | j                  j                  «       t        |«      t        t        |«      «      «      }|rt        d|z  «      ‚| S )zŒAuthenticate the next chunk of message.

        Args:
            data (byte string/byte array/memoryview): The next chunk of data
        z8You can only call 'digest' or 'hexdigest' on this objectz$Error %d while hashing Poly1305 data)
r   Ú	TypeErrorr   Úpoly1305_updater   r   r   r   r   r   )r   r!   r#   s      r$   r   zPoly1305_MAC.updateV   sd   € ð =Š=ÜÐVÓWÐWä×.Ñ.¨t¯{©{¯©Ó/@Ü/:¸4Ó/@Ü/7¼¸D»	Ó/BóDˆñ ÜÐCÀfÑLÓMÐMØˆr&   c                 ó   — t        «       ‚)N)ÚNotImplementedError)r   s    r$   ÚcopyzPoly1305_MAC.copyg   s   € Ü!Ó#Ð#r&   c           	      ó"  — | j                   r| j                   S t        d«      }t        j                  | j                  j                  «       |t        t        |«      «      «      }|rt        d|z  «      ‚t        |«      | _         | j                   S )zìReturn the **binary** (non-printable) MAC tag of the message
        authenticated so far.

        :return: The MAC tag digest, computed over the data processed so far.
                 Binary form.
        :rtype: byte string
        r   z'Error %d while creating Poly1305 digest)
r   r   r   Úpoly1305_digestr   r   r   r   r   r   )r   Úbfrr#   s      r$   ÚdigestzPoly1305_MAC.digestj   sx   € ð =Š=Ø—=‘=Ð ä" 2Ó&ˆÜ×.Ñ.¨t¯{©{¯©Ó/@Ø/2Ü/7¼¸C»Ó/AóCˆñ ÜÐFÈÑOÓPÐPä& sÓ+ˆŒØ}‰}Ðr&   c           	      ó   — dj                  t        | j                  «       «      D cg c]  }dt        |«      z  ‘Œ c}«      S c c}w )zÓReturn the **printable** MAC tag of the message authenticated so far.

        :return: The MAC tag, computed over the data processed so far.
                 Hexadecimal encoded.
        :rtype: string
        Ú z%02x)ÚjoinÚtupler0   r   )r   Úxs     r$   Ú	hexdigestzPoly1305_MAC.hexdigest€   sD   € ð w‰wÜ!& t§{¡{£}Ó!5ö7Øð ¤ a£Ó(ò 7ó 8ð 	8ùò 7s   §Ac                 óî   — t        d«      }t        j                  d||¬«      }t        j                  d|| j                  «       ¬«      }|j                  «       |j                  «       k7  rt	        d«      ‚y)ah  Verify that a given **binary** MAC (computed by another party)
        is valid.

        Args:
          mac_tag (byte string/byte string/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_bitsÚkeyr!   zMAC check failedN)r   r   Únewr0   r   )r   Úmac_tagÚsecretÚmac1Úmac2s        r$   ÚverifyzPoly1305_MAC.verify‹   s]   € ô " "Ó%ˆä{‰{ s°¸WÔEˆÜ{‰{ s°¸T¿[¹[»]ÔKˆà;‰;‹=˜DŸK™K›MÒ)ÜÐ/Ó0Ð0ð *r&   c                 óJ   — | j                  t        t        |«      «      «       y)a~  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)r@   r   r   )r   Úhex_mac_tags     r$   Ú	hexverifyzPoly1305_MAC.hexverifyŸ   s   € ð 	‰”Iœg kÓ2Ó3Õ4r&   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Údigest_sizer%   r   r,   r0   r6   r@   rC   © r&   r$   r   r   5   s1   „ ñð €Kòò.ò"$òò,	8ò1ó(5r&   r   c                  óz  — | j                  dd«      }t        |d«      st        d«      ‚| j                  dd«      }|€t        d«      ‚| j                  dd«      }| j                  dd«      }| rt        d	t	        | «      z   «      ‚|j                  ||«      \  }}}t        |||«      }t        dd|«      |_        |S )
a°  Create a new Poly1305 MAC object.

    Args:
        key (bytes/bytearray/memoryview):
            The 32-byte key for the Poly1305 object.
        cipher (module from ``Crypto.Cipher``):
            The cipher algorithm to use for deriving the Poly1305
            key pair *(r, s)*.
            It can only be ``Crypto.Cipher.AES`` or ``Crypto.Cipher.ChaCha20``.
        nonce (bytes/bytearray/memoryview):
            Optional. The non-repeatable value to use for the MAC of this message.
            It must be 16 bytes long for ``AES`` and 8 or 12 bytes for ``ChaCha20``.
            If not passed, a random nonce is created; you will find it in the
            ``nonce`` attribute of the new object.
        data (bytes/bytearray/memoryview):
            Optional. The very first chunk of the message to authenticate.
            It is equivalent to an early call to ``update()``.

    Returns:
        A :class:`Poly1305_MAC` object
    ÚcipherNÚ_derive_Poly1305_key_pairz*Parameter 'cipher' must be AES or ChaCha20r:   zYou must pass a parameter 'key'Únoncer!   zUnknown parameters: )	ÚpopÚhasattrr   r(   ÚstrrL   r   r   rM   )ÚkwargsrK   Ú
cipher_keyrM   r!   r   r    Únew_macs           r$   r;   r;   °   sÀ   € ð. Z‰Z˜ $Ó'€FÜ6Ð6Ô7ÜÐEÓFÐFà—‘˜E 4Ó(€JØÐÜÐ9Ó:Ð:àJ‰Jw Ó%€EØ:‰:f˜dÓ#€DáÜÐ.´°V³Ñ<Ó=Ð=à×2Ñ2°:¸uÓEK€A€qˆ%ä˜1˜a Ó&€GÜ  d¨EÓ2€G„MØ€Nr&   N)Úbinasciir   ÚCrypto.Util.py3compatr   r   r   ÚCrypto.Hashr   ÚCrypto.Randomr   ÚCrypto.Util._raw_apir	   r
   r   r   r   r   r   r   Úobjectr   r;   rI   r&   r$   ú<module>rZ      sM   ðõ. ç <Ñ <å Ý *÷/÷ /ñ /ñ *Ð*Aðó€ô"w56ô w5óv)r&   