JFIF$        dd7 

Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/Crypto/Hash/__pycache__/cSHAKE128.cpython-311.pyc

�

�o���
h���ddlmZddlmZmZmZmZmZmZm	Z	ddl
mZddlm
Z
d�Zd�Zd�Zd�ZGd	�d
e��Zd�Zdd
�ZdS)�)�bchr)�VoidPointer�SmartPointer�create_string_buffer�get_raw_buffer�c_size_t�c_uint8_ptr�c_ubyte)�
long_to_bytes)�_raw_keccak_libc��|ddzkr|dksJ�|dkrdn|���dzdz}t|��t|��zS)z2Left encode function as defined in NIST SP 800-185��r��)�
bit_lengthrr��x�nums  �w/builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Hash/cSHAKE128.py�_left_encoder+s\��
��d��O�O��Q����&��A�v�v�!�!�A�L�L�N�N�Q�.�1�4�C���9�9�}�Q�'�'�'�'�c��|ddzkr|dksJ�|dkrdn|���dzdz}t|��t|��zS)z3Right encode function as defined in NIST SP 800-185rrrrr)rrrrs  r�
_right_encoder6s\��
��d��O�O��Q����&��A�v�v�!�!�A�L�L�N�N�Q�.�1�4�C�����d�3�i�i�'�'rc�z�t|��dz}|ddzkrtd���t|��|zS)z4Encode string function as defined in NIST SP 800-185rrrz$String too large to encode in cSHAKE)�len�
ValueErrorr)r�bitlens  r�_encode_strrAsD����V�V�a�Z�F�
�!�t�)����?�@�@�@�����!�#�#rc�f�t|��|z}|t|��|zz
|z}|d|zzS)z2Zero pad byte string as defined in NIST SP 800-185�)rr)r�length�to_pad�npads    r�_bytepadr%KsA���&�
!�
!�A�
%�F�
�S��[�[�6�)�)�V�3�D��G�d�N�"�"rc�$�eZdZdZd�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��td����}|rtd|z���t|���tj��|_
d|_|r|�|��|r|�|��dSdS)Ni@r���z#Error %d while instantiating cSHAKEF)rrr%�_paddingr�keccak_init�
address_ofrr
rr�get�keccak_destroy�_state�
_is_squeezing�update)	�self�data�custom�capacity�function�state�prefix_unpad�prefix�results	         r�__init__zcSHAKE_XOF.__init__]s/���
�
���	!�X�	!�&�x�0�0�;�v�3F�3F�F�L��l�T�H�_�q�,@�A�A�F� �D�M�M��F� �D�M� �,�U�-=�-=�-?�-?�-5�h��k�-B�-B�-4�R�[�[�:�:���	'��B�%�&�'�'�
'�"�5�9�9�;�;�#2�#A�C�C���"����	 ��K�K������	��K�K�������	�	rc	��|jrtd���tj|j���t
|��tt|������}|rtd||j
fz���|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 %s state)r2�	TypeErrorr�
keccak_absorbr1r/r	rrr�name)r4r5r<s   rr3zcSHAKE_XOF.updatexs�����	O��M�N�N�N� �.�t�{���/@�/@�/:�4�/@�/@�/7��D�	�	�/B�/B�D�D���	4��?� &��	�2�3�4�4�
4��rc��d|_t|��}tj|j���|t
|��t|j����}|rtd||j
fz���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 %s)r2rr�keccak_squeezer1r/rr
r,rrAr)r4r"�bfrr<s    r�readzcSHAKE_XOF.read�s���"���"�6�*�*�� �/�����0A�0A�03�08��0@�0@�07��
�0F�0F�H�H���	4��@� &��	�2�3�4�4�
4��c�"�"�"rN)�__name__�
__module__�__qualname__�__doc__r=r3rE�rrr'r'WsK��������
���6���$#�#�#�#�#rr'c�&�t||d|��S)N��r')r5r6r8s   r�_newrN�s���d�F�C��2�2�2rNc�&�t||dd��S)azReturn a fresh instance of a cSHAKE128 object.

    Args:
       data (bytes/bytearray/memoryview):
        Optional.
        The very first chunk of the message to hash.
        It is equivalent to an early call to :meth:`update`.
       custom (bytes):
        Optional.
        A customization bytestring (``S`` in SP 800-185).

    :Return: A :class:`cSHAKE_XOF` object
    rLrrM)r5r6s  r�newrP�s�� �d�F�C��-�-�-r)NN)�Crypto.Util.py3compatr�Crypto.Util._raw_apirrrrrr	r
�Crypto.Util.numberr�Crypto.Hash.keccakrrrrr%�objectr'rNrPrJrr�<module>rVs5��>'�&�&�&�&�&�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�
-�,�,�,�,�,�.�.�.�.�.�.�(�(�(�(�(�(�$�$�$�	#�	#�	#�L#�L#�L#�L#�L#��L#�L#�L#�^3�3�3�
.�.�.�.�.�.r
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg