File manager - Edit - /usr/local/CyberPanel/lib/python3.10/site-packages/nacl/bindings/__pycache__/utils.cpython-310.pyc
Back
o �h� � @ s� d dl mZ d dlmZmZ d dl mZ dededefdd�Z d ed e defdd�Zd ed e defd d�Zdedefdd�Z dededefdd�ZdS )� N)�ffi�lib)�ensure�inp1�inp2�returnc C s� t t| t�tjd� t t|t�tjd� tt| �t|��}t�d|�}t�d|�}t� || t| �� t� ||t|�� t| �t|�k}t �|||�dk}|oO|S )zA Compare contents of two memory regions in constant time ��raisingzchar []r )r � isinstance�bytes�exc� TypeError�max�lenr �new�memmover � sodium_memcmp)r r �ln�buf1�buf2�eqL�eqC� r �I/usr/local/CyberPanel/lib/python3.10/site-packages/nacl/bindings/utils.pyr s r �s� blocksizec C s� t t| t�tjd� t t|t�tjd� |dkrtj�t| �}|| }t� d|�}t� dd�}t� || |� t�|||||�}t |dkdtj d� t�||d �dd� S )z� Pad the input bytearray ``s`` to a multiple of ``blocksize`` using the ISO/IEC 7816-4 algorithm :param s: input bytes string :type s: bytes :param blocksize: :type blocksize: int :return: padded string :rtype: bytes r r �unsigned char []� size_t []� zPadding failureN)r r r r r �int� ValueErrorr r r r r � sodium_pad�CryptoError�buffer)r r �s_len�m_len�buf�p_len�rcr r r r! ) s r! c C sn t t| t�tjd� t t|t�tjd� t| �}t�dd�}t � || ||�}|dkr/t�d��| d|d � S )z� Remove ISO/IEC 7816-4 padding from the input byte array ``s`` :param s: input bytes string :type s: bytes :param blocksize: :type blocksize: int :return: unpadded string :rtype: bytes r r r r zUnpadding failureN)r r r r r r r r r r �sodium_unpadr"