OwlCyberSecurity - MANAGER
Edit File: utils.cpython-38.pyc
U �֫[D � @ st d dl mZmZmZ d dlmZ d dlmZ d dl m Z mZ d dlmZ dd� Z dd � Zd d� Zdd � Zdd� ZdS )� )�absolute_import�division�print_function)� integer_typesN)�ffi�lib)�ensurec 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}|o�|S )zA Compare contents of two memory regions in constant time �Zraisingzchar []r )r � isinstance�bytes�exc� TypeError�max�lenr �new�memmover � sodium_memcmp)Zinp1Zinp2�lnZbuf1Zbuf2ZeqLZeqC� r �5/usr/lib/python3/dist-packages/nacl/bindings/utils.pyr s � �r c C s� t t| t�tjd� t t|t�tjd� |dkr6tj�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 r � ValueErrorr r r r r � sodium_pad�CryptoError�buffer)�s� blocksize�s_lenZm_len�bufZp_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 )r r r Zu_lenr! r r r r"