
    tf                    `    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          l/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/cryptography/hazmat/primitives/twofactor/totp.py__init__zTOTP.__init__   s/     $7I
 
 



    timeint | floatreturnc                d    t          || j        z            }| j                            |          S )N)r   r   r   generate)r   r   counters      r   r    zTOTP.generate!   s,    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&   r-    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
   r1   r   r   <module>r7      s   
 # " " " " "  8 8 8 8 8 8 A A A A A A          
  
  
  
  
  
  
  
  
  
r   