
    NgM                    `    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
  G d d          ZdS )    )annotationsN)constant_time)InvalidToken)HOTPHOTPHashTypes_generate_uric                  4    e Zd Z	 	 dddZddZddZddZdS ) TOTPNTkeybytes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          i/var/www/html/ai-engine/env/lib/python3.11/site-packages/cryptography/hazmat/primitives/twofactor/totp.py__init__zTOTP.__init__   s/     $7I
 
 



    timeint | floatreturnc                    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)   r0    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   r
   r4   r   r   <module>r:      s   
 # " " " " "  8 8 8 8 8 8 A A A A A A         %
 %
 %
 %
 %
 %
 %
 %
 %
 %
r   