|
Server : LiteSpeed System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64 User : nandedex ( 1060) PHP Version : 8.1.33 Disable Function : NONE Directory : /opt/cppython/lib/python3.8/site-packages/nacl/__pycache__/ |
U
O��g0 �
@ s� d dl Z d dlmZ d dlZd dlmZ ejjZ ejj
ZejjZ
ejjZejjZejjZejjZejjZejjZejjZejjZejjZG dd� d�Z de!e!e"e"e"e"e"e!d�d
d�Z#dS )� N)�NoReturn)�bytes_as_stringc @ s� e Zd ZdZeZeZeZ e
Zdedddfee
eeed�dd�Zee
d�dd��Zee
d�d d
��Zeed�dd��Zed
d�dd�Zed�dd�Zed�dd�Zd d�dd�Zed�dd�Zd
S )�blake2bzK
:py:mod:`hashlib` API compatible blake2b algorithm implementation
� )�data�digest_size�key�salt�personc C s* t ||||d�| _|| _|r&| �|� dS )ab
:py:class:`.blake2b` algorithm initializer
:param data:
:type data: bytes
:param int digest_size: the requested digest size; must be
at most :py:attr:`.MAX_DIGEST_SIZE`;
the default digest size is :py:data:`.BYTES`
:param key: the key to be set for keyed MAC/PRF usage; if set,
the key must be at most :py:data:`.KEYBYTES_MAX` long
:type key: bytes
:param salt: a initialization salt at most
:py:attr:`.SALT_SIZE` long; it will be zero-padded
if needed
:type salt: bytes
:param person: a personalization string at most
:py:attr:`.PERSONAL_SIZE` long; it will be zero-padded
if needed
:type person: bytes
)r r r
r N)� _b2b_init�_state�_digest_size�update)�selfr r r r r
� r �9/opt/cppython/lib/python3.8/site-packages/nacl/hashlib.py�__init__0 s �zblake2b.__init__)�returnc C s | j S �N)r
�r r r r r U s zblake2b.digest_sizec C s dS )N� r r r r r �
block_sizeY s zblake2b.block_sizec C s dS )Nr r r r r r �name] s zblake2b.nameN)r r c C s t | j|� d S r )�_b2b_updater )r r r r r r a s zblake2b.updatec C s | j �� }t|�S r )r �copy�
_b2b_final)r �_str r r �digestd s
zblake2b.digestc C s t t�| �� ��S r )r �binascii�hexlifyr r r r r � hexdigesth s zblake2b.hexdigestc C s$ t | �| jd�}| j�� }||_|S )N)r )�typer r r )r Z_cpr r r r r k s
zblake2b.copyc C s t d�| jj���dS )zc
Raise the same exception as hashlib's blake implementation
on copy.copy()
zcan't pickle {} objectsN)� TypeError�format� __class__�__name__r r r r �
__reduce__q s �zblake2b.__reduce__)r% �
__module__�__qualname__�__doc__�BYTES�MAX_DIGEST_SIZE�KEYBYTES_MAX�MAX_KEY_SIZE�
PERSONALBYTES�PERSON_SIZE� SALTBYTES� SALT_SIZE�bytes�intr �propertyr r �strr r r r r r r&