o
    �)%aÖ  ã                   @   sD   d dl Z d dlZd dlmZmZ dededeje defdd„ZdS )	é    N)ÚquoteÚ	urlencodeÚ	type_nameÚaccount_nameÚissuerÚreturnc                 C   s„   d| j fdt | j¡fd| jj ¡ fg}|d ur| d|f¡ | |¡ ||r1dt	|ƒt	|ƒf nt	|ƒt
|ƒdœ}djdi |¤ŽS )	NÚdigitsÚsecretÚ	algorithmr   z%s:%s)ÚtypeÚlabelÚ
parametersz%otpauth://{type}/{label}?{parameters}© )Ú_lengthÚbase64Ú	b32encodeÚ_keyÚ
_algorithmÚnameÚupperÚappendÚextendr   r   Úformat)Úhotpr   r   r   Úextra_parametersr   Úuripartsr   r   úP/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/twofactor/utils.pyÚ_generate_uri   s   ý
ÿù	r   )r   ÚtypingÚurllib.parser   r   ÚstrÚOptionalr   r   r   r   r   Ú<module>   s   þýüú