Ë
    ÐÕ°j‰  ã                   ób   — d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ  G d„ de«      Zdd„Zy)	é    )Úbord)Úload_pycryptodome_raw_libÚVoidPointerÚSmartPointerÚcreate_string_bufferÚget_raw_bufferÚc_size_tÚc_uint8_ptrÚc_ubyte)Ú_raw_keccak_libc                   ó6   — e Zd ZdZdZd	d„Zd„ Zd„ Zd„ Zd	d„Z	y)
ÚSHAKE128_XOFz˜A SHAKE128 hash object.
    Do not instantiate directly.
    Use the :func:`new` function.

    :ivar oid: ASN.1 Object ID
    :vartype oid: string
    z2.16.840.1.101.3.4.2.11Nc                 óD  — t        «       }t        j                  |j                  «       t	        d«      t        d«      «      }|rt        d|z  «      ‚t        |j                  «       t        j                  «      | _
        d| _        d| _        |r| j                  |«       y y )Né    é   z%Error %d while instantiating SHAKE128Fé   )r   r   Úkeccak_initÚ
address_ofr	   r   Ú
ValueErrorr   ÚgetÚkeccak_destroyÚ_stateÚ_is_squeezingÚ_paddingÚupdate)ÚselfÚdataÚstateÚresults       úJ/var/www/mission/venv/lib/python3.12/site-packages/Crypto/Hash/SHAKE128.pyÚ__init__zSHAKE128_XOF.__init__5   s�   € Ü“ˆÜ ×,Ñ,¨U×-=Ñ-=Ó-?Ü-5°b«\Ü-4°R«[ó:ˆñ ÜÐDØ%ñ&ó 'ð 'ä" 5§9¡9£;Ü#2×#AÑ#AóCˆŒà"ˆÔØˆŒÙØ�K‰K˜Õð ó    c           	      óè   — | j                   r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.
        z/You cannot call 'update' after the first 'read'z&Error %d while updating SHAKE128 state)
r   Ú	TypeErrorr   Úkeccak_absorbr   r   r
   r	   Úlenr   )r   r   r   s      r    r   zSHAKE128_XOF.updateD   sm   € ð ×ÒÜÐMÓNÐNä ×.Ñ.¨t¯{©{¯©Ó/@Ü/:¸4Ó/@Ü/7¼¸D»	Ó/BóDˆñ ÜÐEØ%ñ&ó 'ð 'àˆr"   c                 óô   — d| _         t        |«      }t        j                  | j                  j                  «       |t        |«      t        | j                  «      «      }|rt        d|z  «      ‚t        |«      S )ah  
        Compute the next piece of XOF output.

        .. note::
            You cannot use :meth:`update` anymore after the first call to
            :meth:`read`.

        Args:
            length (integer): the amount of bytes this method must return

        :return: the next piece of XOF output (of the given length)
        :rtype: byte string
        Tz'Error %d while extracting from SHAKE128)r   r   r   Úkeccak_squeezer   r   r	   r   r   r   r   )r   ÚlengthÚbfrr   s       r    ÚreadzSHAKE128_XOF.readV   su   € ð "ˆÔÜ" 6Ó*ˆÜ ×/Ñ/°·±·±Ó0AØ03Ü08¸Ó0@Ü07¸¿¹Ó0FóHˆñ ÜÐFØ%ñ&ó 'ð 'ô ˜cÓ"Ð"r"   c                 óÒ   — | j                  «       }t        j                  | j                  j	                  «       |j                  j	                  «       «      }|rt        d|z  «      ‚|S )z¾Return a copy ("clone") of the hash object.

        The copy will have the same internal state as the original hash
        object.

        :return: A hash object of the same type
        zError %d while copying SHAKE128)Únewr   Úkeccak_copyr   r   r   )r   Úcloner   s      r    ÚcopyzSHAKE128_XOF.copyq   sV   € ð —‘“
ˆÜ ×,Ñ,¨T¯[©[¯_©_Ó->Ø-2¯\©\×-=Ñ-=Ó-?óAˆáÜÐ>ÀÑGÓHÐHØˆr"   c                 ó&   —  t        | «      |¬«      S )N©r   )Útype)r   r   s     r    r-   zSHAKE128_XOF.new�   s   € ØŒt�D‹z˜tÔ$Ð$r"   ©N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úoidr!   r   r+   r0   r-   © r"   r    r   r   )   s'   „ ñð $€Cóòò$#ò6ô %r"   r   Nc                 ó   — t        | ¬«      S )a  Return a fresh instance of a SHAKE128 object.

    Args:
       data (bytes/bytearray/memoryview):
        The very first chunk of the message to hash.
        It is equivalent to an early call to :meth:`update`.
        Optional.

    :Return: A :class:`SHAKE128_XOF` object
    r2   )r   r2   s    r    r-   r-   …   s   € ô ˜TÔ"Ð"r"   r4   )ÚCrypto.Util.py3compatr   ÚCrypto.Util._raw_apir   r   r   r   r   r	   r
   r   ÚCrypto.Hash.keccakr   Úobjectr   r-   r:   r"   r    ú<module>r@      s2   ðõ> '÷8÷ 8ó 8õ /ôY%�6ô Y%ôx#r"   