§
    8·tc0  ã                   óf   — d dl mZ d dl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dS )	é    )Úbord)Úload_pycryptodome_raw_libÚVoidPointerÚSmartPointerÚcreate_string_bufferÚget_raw_bufferÚc_size_tÚc_uint8_ptr)Ú_raw_keccak_libc                   ó2   — e Zd ZdZdZdd„Zd„ Zd„ Zdd„ZdS )	ÚSHAKE256_XOFz˜A SHAKE256 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.12Nc                 óV  — t          ¦   «         }t          j        |                     ¦   «         t	          d¦  «        d¦  «        }|rt          d|z  ¦  «        ‚t          |                     ¦   «         t          j        ¦  «        | _	        d| _
        |r|                      |¦  «         d S d S )Né@   é   z%Error %d while instantiating SHAKE256F)r   r   Úkeccak_initÚ
address_ofr	   Ú
ValueErrorr   ÚgetÚkeccak_destroyÚ_stateÚ_is_squeezingÚupdate)ÚselfÚdataÚstateÚresults       ú:/usr/lib/python3/dist-packages/Cryptodome/Hash/SHAKE256.pyÚ__init__zSHAKE256_XOF.__init__5   s³   € Ý‘”ˆÝ Ô,¨U×-=Ò-=Ñ-?Ô-?Ý-5°b©\¬\Ø-1ñ3ô 3ˆð ð 	'ÝÐDØ%ñ&ñ 'ô 'ð 'å" 5§9¢9¡;¤;Ý#2Ô#AñCô CˆŒà"ˆÔØð 	Ø�KŠK˜ÑÔÐÐÐð	ð 	ó    c           	      ó  — | j         rt          d¦  «        ‚t          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 SHAKE256 state)
r   Ú	TypeErrorr   Úkeccak_absorbr   r   r
   r	   Úlenr   )r   r   r   s      r   r   zSHAKE256_XOF.updateC   s‰   € ð Ôð 	OÝÐMÑNÔNÐNå Ô.¨t¬{¯ªÑ/@Ô/@Ý/:¸4Ñ/@Ô/@Ý/7½¸D¹	¼	Ñ/BÔ/BñDô Dˆð ð 	'ÝÐEØ%ñ&ñ 'ô 'ð 'àˆr   c                 óè   — d| _         t          |¦  «        }t          j        | j                             ¦   «         |t          |¦  «        ¦  «        }|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 SHAKE256)	r   r   r   Úkeccak_squeezer   r   r	   r   r   )r   ÚlengthÚbfrr   s       r   ÚreadzSHAKE256_XOF.readU   s€   € ð "ˆÔÝ" 6Ñ*Ô*ˆÝ Ô/°´·²Ñ0AÔ0AØ03Ý08¸Ñ0@Ô0@ñBô Bˆð ð 	'ÝÐFØ%ñ&ñ 'ô 'ð 'õ ˜cÑ"Ô"Ð"r   c                 ó4   —  t          | ¦  «        |¬¦  «        S )N©r   )Útype)r   r   s     r   ÚnewzSHAKE256_XOF.newo   s   € Ø�t�D‰zŒz˜tÐ$Ñ$Ô$Ð$r   ©N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úoidr   r   r(   r,   © r   r   r   r   )   sk   € € € € € ðð ð $€Cðð ð ð ðð ð ð$#ð #ð #ð4%ð %ð %ð %ð %ð %r   r   Nc                 ó"   — t          | ¬¦  «        S )a  Return a fresh instance of a SHAKE256 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:`SHAKE256_XOF` object
    r*   )r   r*   s    r   r,   r,   s   s   € õ ˜TÐ"Ñ"Ô"Ð"r   r-   )ÚCryptodome.Util.py3compatr   ÚCryptodome.Util._raw_apir   r   r   r   r   r	   r
   ÚCryptodome.Hash.keccakr   Úobjectr   r,   r3   r   r   ú<module>r9      sØ   ðð> +Ð *Ð *Ð *Ð *Ð *ð/ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð 3Ð 2Ð 2Ð 2Ð 2Ð 2ðG%ð G%ð G%ð G%ð G%�6ñ G%ô G%ð G%ðT#ð #ð #ð #ð #ð #r   