+
    '(j                         ^ RI Ht ^ RIHtHtHt ^ RI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_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                   R   a  ] tR t^5t o Rt^tR tR tR tR t	R t
R tR tR	tV tR
# )Poly1305_MACzAn 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                   \        V4      ^8w  d   \        R4      h\        V4      ^8w  d   \        R4      hRV n        \        4       p\        P                  VP                  4       \        V4      \        \        V4      4      \        V4      \        \        V4      4      4      pV'       d   \        RV,          4      h\        VP                  4       \        P                  4      V n        V'       d   V P                  V4       R# R# )   z Parameter r is not 16 bytes longz Parameter s is not 16 bytes longNz%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   &&&&  I/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/Hash/Poly1305.py__init__Poly1305_MAC.__init__?   s    q6R<?@@q6R<?@@,,U-=-=-?-8^-5c!f-=-8^-5c!f-=	/ DvMNN"599;#0#A#ACKK     c           	        V P                   '       d   \        R4      h\        P                  V P                  P                  4       \        V4      \        \        V4      4      4      pV'       d   \        RV,          4      hV # )ztAuthenticate 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   Poly1305_MAC.updateV   sf     ===VWW..t{{/@/:4/@/7D	/BD CfLMMr'   c                    \        4       h)N)NotImplementedError)r   s   &r$   copyPoly1305_MAC.copyg   s    !##r'   c           	     B   V P                   '       d   V P                   # \        ^4      p\        P                  V P                  P                  4       V\        \        V4      4      4      pV'       d   \        RV,          4      h\        V4      V n         V P                   # )zReturn 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
z'Error %d while creating Poly1305 digest)
r   r   r   poly1305_digestr   r   r   r   r   r   )r   bfrr#   s   &  r$   digestPoly1305_MAC.digestj   sz     ===== "2&..t{{/@/2/7C/AC FOPP&s+}}r'   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** 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tupler3   r   )r   xs   & r$   	hexdigestPoly1305_MAC.hexdigest   sL     ww!&t{{}!57!5A a((!57 8 	8 7s   A	c                    \        ^4      p\        P                  ! ^W!R7      p\        P                  ! ^W P                  4       R7      pVP                  4       VP                  4       8w  d   \	        R4      hR# )a0  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.
)digest_bitskeyr!   zMAC check failedN)r   r   newr3   r   )r   mac_tagsecretmac1mac2s   &&   r$   verifyPoly1305_MAC.verify   sY     ""%{{sE{{s[[]K;;=DKKM)/00 *r'   c                L    V P                  \        \        V4      4      4       R# )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)rD   r   r   )r   hex_mac_tags   &&r$   	hexverifyPoly1305_MAC.hexverify   s     	Igk234r'   )r   r   N)__name__
__module____qualname____firstlineno____doc__digest_sizer%   r   r.   r3   r:   rD   rH   __static_attributes____classdictcell__)__classdict__s   @r$   r   r   5   s9      K."$,	81(5 5r'   r   c                    V P                  RR4      p\        VR4      '       g   \        R4      hV P                  RR4      pVf   \        R4      hV P                  RR4      pV P                  RR4      pV '       d   \        R	\	        V 4      ,           4      hVP                  W#4      w  rVp\        WVV4      p\        RRV4      Vn        V# )
ah  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)   strrU   r   r   rV   )kwargsrT   
cipher_keyrV   r!   r   r    new_macs   ,       r$   r?   r?      s    . ZZ$'F6677EFFE4(J9::JJw%E::fd#D.V<==22:EKA%1&GdE2GM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?    r'   r$   <module>rd      sM   .  < <  */ / / **A"w56 w5v)r'   