§
    ‹r°dp  ã                   óX   — d dl mZmZmZ ddlmZ ddlmZmZ  G d„ de¦  «        Z	d„ Z
dS )	é    )ÚbordÚis_bytesÚtobytesé   )Ú	cSHAKE128)Ú_encode_strÚ_right_encodec                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TupleHashz\A Tuple hash object.
    Do not instantiate directly.
    Use the :func:`new` function.
    c                 óZ   — || _         |                     d|d¦  «        | _        d | _        d S )Nó    s	   TupleHash)Údigest_sizeÚ_newÚ_cshakeÚ_digest)ÚselfÚcustomÚcshaker   s       ú]/var/www/pp.vulcan-creative.com/venv/lib/python3.11/site-packages/Crypto/Hash/TupleHash128.pyÚ__init__zTupleHash.__init__+   s,   € à&ˆÔà—{’{ 3¨°Ñ=Ô=ˆŒØˆŒˆˆr   c                 óÖ   — | j         �t          d¦  «        ‚t          |¦  «        st          d¦  «        ‚| j                             t          t          |¦  «        ¦  «        ¦  «         | S )zŒAuthenticate the next byte string in the tuple.

        Args:
            data (bytes/bytearray/memoryview): The next byte string.
        Nz6You cannot call 'update' after 'digest' or 'hexdigest'z#You can only call 'update' on bytes)r   Ú	TypeErrorr   r   Úupdater   r   )r   Údatas     r   r   zTupleHash.update2   sb   € ð Œ<Ð#ÝÐTÑUÔUÐUå˜‰~Œ~ð 	CÝÐAÑBÔBÐBàŒ×Ò�K­°©¬Ñ6Ô6Ñ7Ô7Ð7àˆr   c                 óÄ   — | j         €S| j                             t          | j        dz  ¦  «        ¦  «         | j                             | j        ¦  «        | _         | j         S )zŸReturn the **binary** (non-printable) digest of the tuple of byte strings.

        :return: The hash digest. Binary form.
        :rtype: byte string
        Né   )r   r   r   r	   r   Úread©r   s    r   ÚdigestzTupleHash.digestC   sT   € ð Œ<ÐØŒL×Ò¥¨dÔ.>ÀÑ.BÑ CÔ CÑDÔDÐDØœ<×,Ò,¨TÔ-=Ñ>Ô>ˆDŒLàŒ|Ðr   c                 ó~   — d                      d„ t          |                      ¦   «         ¦  «        D ¦   «         ¦  «        S )z•Return the **printable** digest of the tuple of byte strings.

        :return: The hash digest. Hexadecimal encoded.
        :rtype: string
        Ú c                 ó2   — g | ]}d t          |¦  «        z  ‘ŒS )z%02x)r   )Ú.0Úxs     r   ú
<listcomp>z'TupleHash.hexdigest.<locals>.<listcomp>W   s#   € ÐGÐGÐG¨Q˜¥ a¡¤Ñ(ÐGÐGÐGr   )ÚjoinÚtupler   r   s    r   Ú	hexdigestzTupleHash.hexdigestP   s5   € ð �wŠwÐGÐGµ%¸¿º¹¼Ñ2FÔ2FÐGÑGÔGÑHÔHÐHr   c                 ó>   — d|vrd|vr
| j         |d<   t          di |¤ŽS )zNReturn a new instance of a TupleHash object.
        See :func:`new`.
        Údigest_bytesÚdigest_bits© )r   Únew)r   Úkwargss     r   r-   zTupleHash.newY   s6   € ð
  Ð'Ð'¨MÀÐ,GÐ,GØ%)Ô%5ˆF�>Ñ"åˆ}ˆ}�Vˆ}ˆ}Ðr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r(   r-   r,   r   r   r   r   %   sl   € € € € € ðð ð
ð ð ðð ð ð"ð ð ðIð Ið Iðð ð ð ð r   r   c                  ó   — |                       dd¦  «        }|                       dd¦  «        }d||fvrt          d¦  «        ‚d||fk    rd}|�|dk     rt          d¦  «        ‚n|dk     s|dz  rt          d	¦  «        ‚|dz  }|                       d
d¦  «        }| rt          dt          | ¦  «        z   ¦  «        ‚t	          |t
          |¦  «        S )aî  Create a new TupleHash128 object.

    Args:
       digest_bytes (integer):
        Optional. The size of the digest, in bytes.
        Default is 64. Minimum is 8.
       digest_bits (integer):
        Optional and alternative to ``digest_bytes``.
        The size of the digest, in bits (and in steps of 8).
        Default is 512. Minimum is 64.
       custom (bytes):
        Optional.
        A customization bytestring (``S`` in SP 800-185).

    :Return: A :class:`TupleHash` object
    r*   Nr+   z*Only one digest parameter must be provided)NNé@   r   z!'digest_bytes' must be at least 8z0'digest_bytes' must be at least 64 in steps of 8r   r   zUnknown parameters: )Úpopr   Ú
ValueErrorÚstrr   r   )r.   r*   r+   r   s       r   r-   r-   d   s  € ð$ —:’:˜n¨dÑ3Ô3€LØ—*’*˜]¨DÑ1Ô1€KØ�L +Ð.Ð.Ð.ÝÐDÑEÔEÐEØ˜ kÐ2Ò2Ð2ØˆØÐØ˜!ÒÐÝÐ@ÑAÔAÐAð ð ˜ÒÐ˜{¨Q™ÐÝð -ñ .ô .ð .à" aÑ'ˆà�ZŠZ˜ #Ñ&Ô&€Fàð >ÝÐ.µ°V±´Ñ<Ñ=Ô=Ð=å�V�Y¨Ñ5Ô5Ð5r   N)ÚCrypto.Util.py3compatr   r   r   r!   r   r   r	   Úobjectr   r-   r,   r   r   ú<module>r:      s“   ðð> :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð<ð <ð <ð <ð <�ñ <ô <ð <ð~&6ð &6ð &6ð &6ð &6r   