+
    '(j                     R    ^ RI HtHtHt ^RIHt ^RIHtHt  ! R R]4      t	R t
R# )    )bordis_bytestobytes)	cSHAKE128)_encode_str_right_encodec                   B   a  ] tR t^%t o RtR tR tR tR tR t	Rt
V tR# )		TupleHashzPA Tuple hash object.
Do not instantiate directly.
Use the :func:`new` function.
c                P    W0n         VP                  R VR4      V n        RV n        R# )    s	   TupleHashN)digest_size_new_cshake_digest)selfcustomcshaker   s   &&&&M/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/Hash/TupleHash128.py__init__TupleHash.__init__+   s#    &{{3=r   c                    V P                   e   \        R4      hV FC  p\        V4      '       g   \        R4      hV P                  P	                  \        V4      4       KE  	  V # )zAuthenticate the next tuple of byte strings.
TupleHash guarantees the logical separation between each byte string.

Args:
    data (bytes/bytearray/memoryview): One or more items to hash.
z6You cannot call 'update' after 'digest' or 'hexdigest'z#You can only call 'update' on bytes)r   	TypeErrorr   r   updater   )r   dataitems   &* r   r   TupleHash.update2   sW     <<#TUUDD>> EGGLLD 12 
 r   c                    V P                   f`   V P                  P                  \        V P                  ^,          4      4       V P                  P                  V P                  4      V n         V P                   # )zReturn the **binary** (non-printable) digest of the tuple of byte strings.

:return: The hash digest. Binary form.
:rtype: byte string
)r   r   r   r   r   read)r   s   &r   digestTupleHash.digestD   sV     <<LLd.>.>.B CD<<,,T-=-=>DL||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 )z}Return the **printable** digest of the tuple of byte strings.

:return: The hash digest. Hexadecimal encoded.
:rtype: string
 z%02x)jointupler   r   )r   xs   & r   	hexdigestTupleHash.hexdigestQ   s>     ww%2FG2FQa((2FGHHGs   A	c                R    RV9  d   RV9  d   V P                   VR&   \        R/ VB # )z>Return a new instance of a TupleHash object.
See :func:`new`.
digest_bytesdigest_bits )r   new)r   kwargss   &,r   r,   TupleHash.newZ   s/    
 'M,G%)%5%5F>"}V}r   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r&   r,   __static_attributes____classdictcell__)__classdict__s   @r   r
   r
   %   s)     
$I r   r
   c                 L   V P                  RR4      pV P                  RR4      pRW39  d   \        R4      hR	W38X  d   ^@pVe   V^8  d   \        R4      hM*V^@8  g   V^,          '       d   \        R4      hV^,          pV P                  RR4      p\        V\        V4      # )
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 providedz!'digest_bytes' must be at least 8z0'digest_bytes' must be at least 64 in steps of 8r   r   )NN)popr   
ValueErrorr
   r   )r-   r)   r*   r   s   ,   r   r,   r,   e   s    $ ::nd3L**]D1KL..DEE22!@AA  {Q - . ."a'ZZ#&FVY55r   N)Crypto.Util.py3compatr   r   r   r"   r   r   r   objectr
   r,   r+   r   r   <module>r<      s%   > : 9  1= =@#6r   