PHP WebShell
Текущая директория: /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/twofactor/__pycache__
Просмотр файла: hotp.cpython-310.pyc
o
�)%a
� @ s� d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl m
Z
mZ d dlm
Z
mZmZ d dlmZ d dlmZ eje
eef ZG d d
� d
e�ZdS )� N)�UnsupportedAlgorithm�_Reasons)�_get_backend)�HMACBackend)�
constant_time�hmac)�SHA1�SHA256�SHA512)�InvalidToken)�
_generate_uric @ s� e Zd Z ddedededefdd�Zd ed
efdd�Zd
ed ed
dfdd�Z d ed
efdd�Z
ded edej
e d
efdd�ZdS )�HOTPNT�key�length� algorithm�enforce_key_lengthc C s� t |�}t|t�stdtj��t|�dk r|du rtd��t|t�s&t d��|dk s.|dkr2td��t|t
ttf�s>t d ��|| _
|| _|| _|| _d S )
Nz.Backend object does not implement HMACBackend.� Tz'Key length has to be at least 128 bits.z)Length parameter must be an integer type.� � z(Length of HOTP has to be between 6 to 8.z)Algorithm must be SHA1, SHA256 or SHA512.)r �
isinstancer r r �BACKEND_MISSING_INTERFACE�len�
ValueError�int� TypeErrorr r r
�_key�_length�
_algorithm�_backend)�selfr r r �backendr � r! �O/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/twofactor/hotp.py�__init__ s$
�
z
HOTP.__init__�counter�returnc C s* | � |�}|d| j }d�|| j��� S )N�
z{0:0{1}})�_dynamic_truncater �format�encode)r r$ �truncated_value�hotpr! r! r"