HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/pyotp/__pycache__/__init__.cpython-310.pyc
o

�h��@s�ddlZddlmZddlmZmZmZddlmZm	Z	m
Z
ddlmZddl
mZddlmZdd	lmZdd
lmZded�fd
edeedefdd�Zded�fd
edeedefdd�Zdedefdd�ZdS)�N)�split)�Any�Dict�Sequence)�	parse_qsl�unquote�urlparse�)�contrib)�random)�HOTP)�OTP)�TOTP� � ABCDEFGHIJKLMNOPQRSTUVWXYZ234567�length�chars�returncs,|dkrtd��d��fdd�t|�D��S)Nr�#Secrets should be at least 160 bits�c3s�|]}t���VqdS)N)r�choice)�.0�_�r��A/usr/local/CyberCP/lib/python3.10/site-packages/pyotp/__init__.py�	<genexpr>s�z random_base32.<locals>.<genexpr>)�
ValueError�join�range�rrrrr�
random_base32
sr!�(�ABCDEF0123456789cCs|dkrtd��t||d�S)Nr"rr )rr!r rrr�
random_hexsr$�uric	Csd}d}d}i}tt|��}|jdkrtd��td|jdd�dd�}t|�dkr0|d|d<n|d|d	<|d|d<t|j�D]�\}}|d
krL|}qA|d	krid	|vrd|d	durd|d	|krdtd��||d	<qA|dkr�|d
krwt	j
|d<qA|dkr�t	j|d<qA|dkr�t	j|d<qAtd��|dkr�|}qA|dkr�t
|�}||d<qA|dkr�t
|�|d<qA|dkr�t
|�|d<qA|dkr�td�|���qA|dkr�|dur�|dvr�td��|s�td��|dkr�tj|fi|��S|jdkr�t|fi|��S|jdk�rt|fi|��Std ��)!z�
    Parses the provisioning URI for the OTP; works for either TOTP or HOTP.

    See also:
        https://github.com/google/google-authenticator/wiki/Key-Uri-Format

    :param uri: the hotp/totp URI to parse
    :returns: OTP object
    N�otpauthzNot an otpauth URIz:|%3Ar	)�maxsplitr�name�issuer�secretzHIf issuer is specified in both label and parameters, it should be equal.�	algorithm�SHA1�digest�SHA256�SHA512z;Invalid value for algorithm, must be SHA1, SHA256 or SHA512�encoder�digits�period�interval�counter�
initial_count�imagez{} is not a valid parameter�steam)���zDigits may only be 6, 7, or 8zNo secret found in URI�totp�hotpzNot a supported OTP type)rr�schemerr�path�lenr�query�hashlib�sha1�sha256�sha512�int�formatr
�Steam�netlocrr)	r%r*r0r1�otp_data�
parsed_uri�accountinfo_parts�key�valuerrr�	parse_urisf
 

�
rN)rA�rer�typingrrr�urllib.parserrrrr
�compatrr<r�otpr
r;r�listrE�strr!r$rNrrrr�<module>s$$