File manager - Edit - /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/twofactor/__pycache__/hotp.cpython-310.pyc
Back
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"