Sindbad~EG File Manager
�
�� h� � �j � d dl mZ d dlmZmZmZmZmZmZm Z m
Z
d dlmZ G d� de
� � Zdd�ZdS ) � )�bord)�load_pycryptodome_raw_lib�VoidPointer�SmartPointer�create_string_buffer�get_raw_buffer�c_size_t�c_uint8_ptr�c_ubyte)�_raw_keccak_libc �2 � e Zd ZdZdZdd�Zd� Zd� Zdd�ZdS ) �SHAKE256_XOFz�A SHAKE256 hash object.
Do not instantiate directly.
Use the :func:`new` function.
:ivar oid: ASN.1 Object ID
:vartype oid: string
z2.16.840.1.101.3.4.2.12Nc �~ � t � � }t j |� � � t d� � t d� � � � }|rt
d|z � � �t |� � � t j � � | _
d| _ d| _ |r| �
|� � d S d S )N�@ � z%Error %d while instantiating SHAKE256F� )r r �keccak_init�
address_ofr r �
ValueErrorr �get�keccak_destroy�_state�
_is_squeezing�_padding�update)�self�data�state�results �v/builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Hash/SHAKE256.py�__init__zSHAKE256_XOF.__init__5 s� � ��
�
�� �,�U�-=�-=�-?�-?�-5�b�\�\�-4�R�[�[�:� :�� � '��D�%�&� '� '�
'�"�5�9�9�;�;�#2�#A�C� C���"�����
�� ��K�K������� � � c � � | j rt d� � �t j | j � � � t
|� � t t |� � � � � � }|rt 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 zSHAKE256_XOF.updateE s� � � �� O��M�N�N�N� �.�t�{���/@�/@�/:�4�/@�/@�/7��D� � �/B�/B�D� D�� � '��E�%�&� '� '�
'��r"