File manager - Edit - /usr/local/CyberCP/lib/python3.10/site-packages/pyotp/__pycache__/hotp.cpython-310.pyc
Back
o �hp � @ sD d dl Z d dlmZmZ ddlmZ ddlmZ G dd� de�ZdS )� N)�Any�Optional� )�utils)�OTPc s� e Zd ZdZ ddedededee d ee d eddf� fdd � Zdedefdd�Z dedede fdd�Z ddee d ee dee dee def dd�Z� Z S )�HOTPz. Handler for HMAC-based OTP counters. � Nr �s�digits�digest�name�issuer� initial_count�returnc s. |du rt j}|| _t� j|||||d� dS )a} :param s: secret in base32 format :param initial_count: starting HMAC counter value, defaults to 0 :param digits: number of integers in the OTP. Some apps expect this to be 6 digits, others support more. :param digest: digest function to use in the HMAC (expected to be SHA1) :param name: account name :param issuer: issuer N)r r r r r )�hashlib�sha1r �super�__init__)�selfr r r r r r �� __class__� �=/usr/local/CyberCP/lib/python3.10/site-packages/pyotp/hotp.pyr s z HOTP.__init__�countc C s | � | j| �S )zz Generates the OTP for the given count. :param count: the OTP HMAC counter :returns: OTP )�generate_otpr )r r r r r �at$ s zHOTP.at�otp�counterc C s t �t|�t| �|���S )z� Verifies the OTP passed in against the current counter OTP. :param otp: the OTP to check against :param counter: the OTP HMAC counter )r � strings_equal�strr )r r r r r r �verify- s zHOTP.verify�issuer_name�imagec C s@ t j| j|r|n| j|r|n| j|r|n| j| �� j| j|d�S )a5 Returns the provisioning URI for the OTP. This can then be encoded in a QR Code and used to provision an OTP app like Google Authenticator. See also: https://github.com/google/google-authenticator/wiki/Key-Uri-Format :param name: name of the user account :param initial_count: starting HMAC counter value, defaults to 0 :param issuer_name: the name of the OTP issuer; this will be the organization title of the OTP entry in Authenticator :returns: provisioning URI )r r r � algorithmr r"