Your IP : 3.144.37.178
�
O�Dgw � �t � d dl mZ d dlmZmZmZmZmZmZm Z m
Z
edd� � Z G d� de� � Z
d� ZdS ) � ��bord)�load_pycryptodome_raw_lib�VoidPointer�SmartPointer�create_string_buffer�get_raw_buffer�c_size_t�c_uint8_ptr�c_ubytezCrypto.Hash._keccaka�
int keccak_init(void **state,
size_t capacity_bytes,
uint8_t rounds);
int keccak_destroy(void *state);
int keccak_absorb(void *state,
const uint8_t *in,
size_t len);
int keccak_squeeze(const void *state,
uint8_t *out,
size_t len,
uint8_t padding);
int keccak_digest(void *state,
uint8_t *digest,
size_t len,
uint8_t padding);
int keccak_copy(const void *src, void *dst);
int keccak_reset(void *state);
c �0 � e Zd ZdZd� Zd� Zd� Zd� Zd� ZdS )�Keccak_Hashz�A Keccak hash object.
Do not instantiate directly.
Use the :func:`new` function.
:ivar digest_size: the size in bytes of the resulting hash
:vartype digest_size: integer
c � � || _ || _ d| _ d| _ t � � }t
� |� � � t | j dz � � t d� � � � }|rt d|z � � �t |� � � t
j
� � | _ |r| � |� � d S d S )NF� � � z#Error %d while instantiating keccak)�digest_size�_update_after_digest�_digest_done�_paddingr �_raw_keccak_lib�keccak_init�
address_ofr
r �
ValueErrorr �get�keccak_destroy�_state�update)�self�data�digest_bytes�update_after_digest�state�results �t/builddir/build/BUILD/imunify360-venv-2.4.0/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Hash/keccak.py�__init__zKeccak_Hash.__init__E s� � �'���$7��!�!�����
��
�
�� �,�,�U�-=�-=�-?�-?�-5�d�6F��6J�-K�-K�-4�R�[�[�:� :�� � M��B�V�K�L�L�L�"�5�9�9�;�;�#2�#A�C� C���� ��K�K������� � � c � � | j r| j st d� � �t � | 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.
z8You can only call 'digest' or 'hexdigest' on this objectzError %d while updating keccak)r r � TypeErrorr �
keccak_absorbr r r r
�lenr )r r r$ s r% r zKeccak_Hash.updateX s� � � �� X�T�%>� X��V�W�W�W� �.�.�t�{���/@�/@�/:�4�/@�/@�/7��D� � �/B�/B�D� D�� � H��=��F�G�G�G��r'