o h d dl mZ d dlmZmZmZmZmZmZm Z d dl mZ d dlm Z d Zd Zd Zd Z G d d e Zd Zdd ZdS ) )bchr)VoidPointerSmartPointercreate_string_bufferget_raw_bufferc_size_tc_uint8_ptrc_ubyte) long_to_bytes)_raw_keccak_libc | ddz k r| dk sJ | dk rdn| dz dz }t | t | z S )z2Left encode function as defined in NIST SP 800-185 r ) bit_lengthr r xnums w/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Hash/cSHAKE128.py_left_encoder + s\ dOOQ& Avv!!ALLNNQ.14C99}Q'''' c | ddz k r| dk sJ | dk rdn| dz dz }t | t | z S )z3Right encode function as defined in NIST SP 800-185r r r r r )r r r r s r _right_encoder 6 s\ dOOQ& Avv!!ALLNNQ.14Cd3ii''r c z t | dz }|ddz k rt d t | | z S )z4Encode string function as defined in NIST SP 800-185r r r z$String too large to encode in cSHAKE)len ValueErrorr )r bitlens r _encode_strr A sD VVaZF !t)?@@@!##r c f t | | z }|t | |z z |z }|d|z z S )z2Zero pad byte string as defined in NIST SP 800-185 )r r )r lengthto_padnpads r _bytepadr% K sA & ! !A %F S[[6))V3DGdN""r c $ e Zd ZdZd Zd Zd ZdS ) cSHAKE_XOFz]A cSHAKE hash object. Do not instantiate directly. Use the :func:`new` function. c 8 t }|s|r=t | t | z }t |d|z dz }d| _ n d }d| _ t j | t |dz t d }|rt d|z t | t j | _ d| _ |r| | |r| | d S d S )Ni@ r z#Error %d while instantiating cSHAKEF)r r r% _paddingr keccak_init address_ofr r r r getkeccak_destroy_state _is_squeezingupdate) selfdatacustomcapacityfunctionstateprefix_unpadprefixresults r __init__zcSHAKE_XOF.__init__] s/ !X !&x00;v3F3FFLlTH_q,@AAF DMMF DM ,U-=-=-?-?-5hk-B-B-4R[[: : 'B%&