
    .Pht                    l    d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ  G d d          ZdS )	    )annotationsN)constant_time)InvalidToken)HOTPHOTPHashTypes_generate_uri)Bufferc                  4    e Zd Z	 	 dddZddZddZd dZdS )!TOTPNTkeyr	   lengthint	algorithmr   	time_stepbackend
typing.Anyenforce_key_lengthboolc                D    || _         t          ||||          | _        d S )N)r   )
_time_stepr   _hotp)selfr   r   r   r   r   r   s          m/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/twofactor/totp.py__init__zTOTP.__init__   s/     $7I
 
 



    timeint | floatreturnbytesc                    t          |t          t          f          st          d          t          || j        z            }| j                            |          S )Nz5Time parameter must be an integer type or float type.)
isinstancer   float	TypeErrorr   r   generate)r   r   counters      r   r$   zTOTP.generate"   sY    $e-- 	G   dT_,--z""7+++r   totpNonec                t    t          j        |                     |          |          st          d          d S )Nz#Supplied TOTP value does not match.)r   bytes_eqr$   r   )r   r&   r   s      r   verifyzTOTP.verify+   s?    %dmmD&9&94@@ 	FDEEE	F 	Fr   account_namestrissuer
str | Nonec           
     \    t          | j        d||dt          | j                  fg          S )Nr&   period)r   r   r   r   )r   r+   r-   s      r   get_provisioning_urizTOTP.get_provisioning_uri/   s9     JDO,,-.
 
 	
r   )NT)r   r	   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r&   r   r   r   r   r'   )r+   r,   r-   r.   r   r,   )__name__
__module____qualname__r   r$   r*   r1    r   r   r   r      su         ##'
 
 
 
 
, , , ,F F F F	
 	
 	
 	
 	
 	
r   r   )
__future__r   typingcryptography.hazmat.primitivesr   (cryptography.hazmat.primitives.twofactorr   -cryptography.hazmat.primitives.twofactor.hotpr   r   r   cryptography.utilsr	   r   r5   r   r   <module>r<      s   
 # " " " " "  8 8 8 8 8 8 A A A A A A         
 & % % % % %%
 %
 %
 %
 %
 %
 %
 %
 %
 %
r   