OwlCyberSecurity - MANAGER
Edit File: hashlib.cpython-38.pyc
U �֫[E � @ s� d dl mZmZmZ d dlZd dlZd dlmZ ej j Zej jZ ej jZej jZej jZej jZej jZej jZej jZej jZej jZej j Z!G dd� de"�Z#ddd �Z$dS )� )�absolute_import�division�print_functionN)�bytes_as_stringc @ sx e Zd ZdZeZeZeZ e Zdedddfdd�Ze dd� �Ze dd� �Ze d d � �Zdd� Zd d� Zdd� Zdd� ZdS )�blake2bzK :py:mod:`hashlib` API compatible blake2b algorithm implementation � c C s* t ||||d�| _|| _|r&| �|� dS )ac :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: an 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 )�key�salt�person�digest_sizeN)� _b2b_init�_state�_digest_size�update)�self�datar r r r � r �./usr/lib/python3/dist-packages/nacl/hashlib.py�__init__. s �zblake2b.__init__c C s | j S �N)r �r r r r r L s zblake2b.digest_sizec C s dS )N� r r r r r � block_sizeP s zblake2b.block_sizec C s dS )Nr r r r r r �nameT s zblake2b.namec C s t | j|� d S r )�_b2b_updater )r r r r r r X s zblake2b.updatec C s t j�| j�}t|| j�S r )�nacl�bindings�%crypto_generichash_blake2b_state_copyr � _b2b_finalr )r �_str r r �digest[ s zblake2b.digestc C s t t�| �� ��S r )r �binasciiZhexlifyr r r r r � hexdigest_ s zblake2b.hexdigestc C s$ t | �| jd�}t| j�}||_|S )N)r )�typer � _b2b_copyr )r Z_cpr r r r �copyb s zblake2b.copyN)�__name__� __module__�__qualname__�__doc__�BYTESZMAX_DIGEST_SIZE�KEYBYTES_MAXZMAX_KEY_SIZE� PERSONALBYTESZPERSON_SIZE� SALTBYTESZ SALT_SIZEr �propertyr r r r r r"