403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib/python3.9/site-packages/passlib/tests/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib/python3.9/site-packages/passlib/tests/__pycache__/test_totp.cpython-39.opt-1.pyc
a

f�Wc��@sDdZddlZddlmZddlZe�e�ZddlZddl	Z
ddlmZddl
mZmZddlmZmZddlmZddlmZmZmZd	gZeZZejd
kr�ddlmZejdkr�ddlmZd
Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dd�Z(e(�Z)dd�Z*Gdd�de�Z+d�,d�Z-e-ddd�Z.e-ddd �Z/Gd!d"�d"e�Z0dS)#z"passlib.tests -- test passlib.totp�N)�partial)�exc)�unicode�u)�TestCase�	time_call)�totp)�TOTP�	AppWallet�AES_SUPPORTZ
EngineTest)�r)�Error)rrZabcdefs�Z4AOGGDBBQSYHNTUZs
�c!��vΙs�]�9�0 D�y/�4&��ZS3JDVB7QD2R7JPXX�JBSWY3DPEHPK3PXPs
Hello!ޭ��c
Csjd}d}|d>}ztj�|d�j}WntttfyBYqTYn0||krNqT|}q|d8}d}t||�S)z8
    helper to calc max_time_t constant (see below)
    i@r�l���)�datetime�utcfromtimestamp�year�
ValueError�OSError�
OverflowError�min)�valuerZ
next_valueZ	next_yearZmax_datetime_timestamp�r�;/usr/lib/python3.9/site-packages/passlib/tests/test_totp.py�_get_max_time_t8s
rcCs|dddS)N���r)Zraw_sizerrr�to_b32_sizeisrc@s\eZdZdZdd�Zdd�Zdd�Zdd	d
�Zdd�Zd
d�Z	ddd�Z
dd�Zdd�ZdS)�
AppWalletTestzpasslib.totp.AppWalletcCs�t�}|�|ji�|�|j�ddd�}t|�}|�|j|�|�|j�td�}|�|j|�td�}|�|jddd��td�}|�|j|�|�ttd�|�ttd	�|�ttd
dd��dS)
z-constructor -- 'secrets' param -- input types�aaa�bbb��1�2z
 1: aaa
# comment
 
2: bbb   z"1: aaa: bbb 
# comment
 
2: bbb   saaa: bbbz{"1":"aaa","2":"bbb"}�{z[123]�aaa�N)	r
�assertEqual�_secrets�assertFalseZhas_secrets�
assertTrue�assertRaises�	TypeErrorr)�self�wallet�refrrr�test_secrets_typesvs 
z AppWalletTest.test_secrets_typescCsdddd�}t|�}|�|j|�ttd�dtd�dtd�di�}|�|j|�tdddd��}|�|j|�|�ttd	d
i�tddi�}|�ttdd
i�|�ttd
d
i�ttd
�ddd��}|�|j|�|�ttddi�|�ttddi�|�ttdgi�dS)z9constructor -- 'secrets' param -- tag/value normalizationr r!sccc)r#�02�Cr#r2r3)rr2r3)rr&z1-2_3.4z-abczab*$Zbbbr%N)r
r(r)rr,r-r)r.r0r/rrr�test_secrets_tags�s  zAppWalletTest.test_secrets_tagscCs�tddd��}|�|jd�|�|�|j�d�tdddd��}|�|jd�|�|�|j�d	�tdddd�d
d�}|�|jd
�|�|�|j�d�|jttdddd�d
d�t�}|�|jd�|�t|jd�dS)z"constructor -- 'default_tag' paramZoneZtwo)r#r2r2stwor&)r#r2�Ar5r r#)�default_tagsone�BN)r
r(r6Z
get_secretr,�KeyError)r.r/rrr�test_default_tag�s�zAppWalletTest.test_default_tagNcCs.tr|o|�n|o|�t|�|�d��dS)Nz$'cryptography' package not installed)rr,�RuntimeErrorZskipTest)r.�canaryrrr�require_aes_support�sz!AppWalletTest.require_aes_supportcCstttd��}tdddddd�}|jt|j|�d�|�|�|�d	t�tddd
ddd�}|�|�|�d	t�tddd
ddd�}|�|�|�d	t	�|�
�}|jdd�|�|�|�d	d�|�
�}|jdd�|�t
|j|�|�
�}|jdd�|�t|j|�dS)z.decrypt_key()r"r�
Z6D7N7W53O7HHS37NLUFQZMHCTEGSNPFN5CGBJr#��v�c�s�k�t�r;rZSPZJ54Y6IPUD2BYA4C6AZZGDXXTVQOWYLC2AUrZFCCTARTIJWE7CPQHUDKAZ D2DRS32YESGHHINWFFCELKN7Z6NAHM4Mr$�rCs
�D6.F7�Q�3��)r?N)r
�PASS1�PASS2�dictr<r�decrypt_keyr(�KEY1_RAW�KEY2_RAW�copy�updater,r8r)r.r/ZCIPHER1ZCIPHER2ZCIPHER3�temprrr�test_decrypt_key�s.���zAppWalletTest.test_decrypt_keycCs�|��tttd�dd�}tdddddd�}|�|�|�d�|��}|jdd	�|�	|�|�d�|��}|jd
d�|�	|�|�d�dS)
z$.decrypt_key() -- needs_recrypt flagr"r=��encrypt_costrZAAAAr$r>r)r@r#rEN)
r<r
rHrIrJr*rKrNrOr+)r.r/r0rPrrr�test_decrypt_key_needs_recryptsz,AppWalletTest.test_decrypt_key_needs_recryptr#FcCs�|�t|�tgd���|�|dd�|�|d|�|�|d|j�|�t|d�t|j��|�t|d�tt|���|�|�\}}|�||�|�||�dS)	z.check encrypt_key() result has expected format)r?rCr@rArBr?rrCr@rArBN)r(�setrS�lenr�	salt_sizerK)r.�resultr/�key�tagZ
needs_recryptZ
result_keyZresult_needs_recryptrrr�assertSaneResult0szAppWalletTest.assertSaneResultcCs$tdtidd�}|jt|jt�d�|�t�}|�||t�|�t�}|�||t�|�|d|d�|�|d|d�tdtidd�}|�t�}|�||t�tttd��}|�t�}|j||td	d
�tdti�}d|_	|�t�}|�||t�|�t
�}|�||t
�|�t|jd�d
S)z.encrypt_key()r#rrRrDrArB�r"r$)rZ�@�N)
r
rHr<r�encrypt_keyrLr[�assertNotEqualrIrWrMr,r)r.r/rX�otherZwallet2rrr�test_encrypt_keyAs*





zAppWalletTest.test_encrypt_keycCs�|��tddi�}|jd8_tt|jt�dd�\}}|jd7_tt|jt�dd�\}}|j||d|ddd	�d
S)z verify cost parameter via timingr#r&�r)Zmaxtimerr��?)�deltaN)r<r
rSrrr_rL�assertAlmostEqual)r.r/re�_Zdelta2rrr�test_encrypt_cost_timingjsz&AppWalletTest.test_encrypt_cost_timing)N)r#F)
�__name__�
__module__�__qualname__�descriptionPrefixr1r4r9r<rQrTr[rbrhrrrrros2% 
&�
)rZ12345678901234567890�asciirc� rr]csXeZdZdZdZ�fdd�Zdd�Zd�dd	�Zd
d�Ze	dd
ddd�Z
e	ddd�dddddge	ddd�dddddge	ddd�dd ge	ed!d
d"�d#d$d%d&d'd(ge	ed!d)d"�d*d+d,d-d.d/ge	e
d!d0d"�d1d2d3d4d5d6ge	d7dd�d8d9ge	d7d:d;d<�d=ge	ed!d>d?�d@ge	ed!d)d>dA�dBge	e
d!d0d>dA�dCggZdDdE�ZdFdG�ZdHdI�ZdJdK�ZdLdM�ZdNdO�ZdPdQ�ZdRdS�ZdTdU�ZdVdW�ZdXdY�Zd�dZd[�Zd\d]�Zd^d_�Zd`da�Zdbdc�Zddde�Zdfdg�Z d�djdk�Z!dldm�Z"dndo�Z#dpdq�Z$drds�Z%d�dtdu�Z&d�dvdw�Z'dxdy�Z(dzd{�Z)d|d}�Z*d~d�Z+d�d��Z,d�d��Z-d�d��Z.d�d��Z/d�d��Z0d�d��Z1d�d��Z2�Z3S)��TotpTestz3
    common code shared by TotpTest & HotpTest
    zpasslib.totp.TOTPcs8tt|���ddlm}|��|�td|���dS)Nr)�lookup_hash�rng)	�superro�setUpZpasslib.crypto.digestrp�clear_cacheZ	patchAttr�totp_module�	getRandom)r.rp��	__class__rrrs�szTotpTest.setUpcCs|����tS)zY
        helper to generate random epoch time
        :returns float: epoch time
        )rvZrandom�
max_time_t�r.rrr�randtime�szTotpTest.randtimeNcKsh|��}d|vrd|d<|�d|�dd��|�d|�gd���|�d	|�dd
��|p\tfi|��S)z@
        helper which generates a random TOTP instance.
        rYT�new�digitsr\�
�alg)�sha1�sha256�sha512�period�x)rv�
setdefault�randint�choicer	)r.�cls�kwdsrqrrr�randotp�szTotpTest.randotpcCs�|��}|��}|�|j|jd�td�D]}|j|jkr>qR|��}q*|�d�td�D]}|j|jkrnq�|��}qZ|�d�dS)z,
        internal test -- randotp()
        zkey not randomized:r~zdigits not randomizedzalg not randomizedN)r�r`rY�ranger}Zfailr)r.�otp1�otp2rgrrr�test_randotp�s


zTotpTest.test_randotpZbase32r��r)�formatrr�r}ZACDEFGHJKL234567r\)rYr})鷼6TZ221105)鸼6T�178491)鹼6Tr�)�ռ6Tr�)�ּ6TZ915114)r�Z20221105)r��86178491)r�r�)r�r�)r�Z03915114zS3JD-VB7Q-D2R7-JPXX)i5��TZ000492)�S��T�897212�raw)rYr�r)�;Z94287082)��5:BZ07081804)��5:BZ14050471)���IZ89005924)��5wZ69279037)�H/PZ65353130r�)r�Z46119246)r�Z68084774)r�Z67062674)r�Z91819424)r�Z90698825)r�Z77737706r�)r�Z90693936)r�Z25091201)r�Z99943326)r�Z93441116)r�Z38618901)r�Z47863826r)i�SZ727248)i.ѡTZ122419�	�))rYr}r�)i�ѡTZ	662331049�<)rYr�r�)r�Z19360094)rYr�rr�)r�Z40857319)r�Z37023009c
	cs�ddlm}|jD]�}|j��}|�|d�|dd�D]h}t|�dkrV|\}}}n|\}}d}t�d||||�|fi|��}d|j	||f}	|||||	fVq:qdS)zv
        helper to iterate over test vectors.
        yields ``(totp, time, token, expires, prefix)`` tuples.
        r�r	rNrz+test vector: %r time=%r token=%r expires=%rzalg=%r time=%r token=%r: )
�passlib.totpr	�vectors�vector_defaultsrNrOrV�log�debugr)
r.r	�rowr��entry�time�token�expires�otp�prefixrrr�iter_test_vectors.s

zTotpTest.iter_test_vectorscCsF|�tt�|jttddd�tdd�}tdd�}|�|j|j�dS)zconstructor -- 'new'  parameterZ4aoggdbbqsyhntuzT)rYr|�r|N)r,r-r	r`rY)r.r�r�rrr�test_ctor_w_newGs


zTotpTest.test_ctor_w_newcCs�|�ttddd�j�d�|�ttddd�j�d�|�ttddd�j�d�|�ttdd	d
�j�d	�|�ttddd
�j�d�|jttdddd
�|jttddd
�|�ttj	dd�g��tdd�}Wd�n1s�0YdS)z constructor -- 'size'  parameterTr�)r|r�r�rnr�r]r~�r|�size��)r|r�rr�z-.*for security purposes, secret key must be.*��categoryZ
message_reZ0A0A0A0A0A0A0A0A0A�hexN)
r(rVr	rYr,r�assertWarningListrJrZPasslibSecurityWarning)r.rgrrr�test_ctor_w_sizeSs�zTotpTest.test_ctor_w_sizecCs�|�tt�jt�|�tt���jt�|�td�jt�|�ttd�|�tdd�jt�|�ttdd�|�ttd�jt�dS)z,constructor -- 'key' and 'format' parametersz 4aog gdbb qsyh ntuz zao!ggdbbqsyhntuz�e01c630c2184b076ce99r�ZX01c630c2184b076ce99r�N)	r(r	�KEY1rYrL�lowerr,�Base32DecodeError�Base16DecodeErrorrzrrr�test_ctor_w_key_and_formatksz#TotpTest.test_ctor_w_key_and_formatcCsB|�ttdd�jd�|�ttdd�jd�|jtttdd�dS)zconstructor -- 'alg' parameterzSHA-256�rr�ZSHA256zSHA-333N)r(r	r�rr,rrzrrr�test_ctor_w_alg�szTotpTest.test_ctor_w_algcCsT|jtttdd�|�ttdd�jd�|�ttdd�jd�|jtttdd�dS)z!constructor -- 'digits' parameterr�r}r\r~�N)r,rr	r�r(r}rzrrr�test_ctor_w_digits�szTotpTest.test_ctor_w_digitscCst|�tt�jd�|�ttdd�jd�|jtttdd�|jtttdd�|jtttdd�|jtttdd�dS)	z!constructor -- 'period' parameterr��?�r���?�abcr���N)r(r	r�r�r,r-rrzrrr�test_ctor_w_period�szTotpTest.test_ctor_w_periodcCs>|�tt�jd�|�ttdd�jd�|jtttdd�dS)z constructor -- 'label' parameterNzfoo@bar)�labelzfoo:bar)r(r	r�r�r,rrzrrr�test_ctor_w_label�szTotpTest.test_ctor_w_labelcCs>|�tt�jd�|�ttdd�jd�|jtttdd�dS)z!constructor -- 'issuer' parameterNzfoo.com��issuerzfoo.com:bar)r(r	r�r�r,rrzrrr�test_ctor_w_issuer�szTotpTest.test_ctor_w_issuercCsx|�tt�jd�|�tjdd�t�jd�|jttjdd�|jttjdd�|jttjdd�|jttjdd�dS)	zusing() -- 'period' parameterr�r�r�r�r�rr�N)r(r	r�r��usingr,r-rrzrrr�test_using_w_period�szTotpTest.test_using_w_periodcs�|��}|�|jtj�|�|�d�tt����dg��fdd�}|jtj	|d�d�}|�
|�d�d�|�
|�d�d�|jttj	d	d�d
}|j
t|tj	dd�d�|j
t|tj	d
d�d�dS)zusing -- 'now' parameterNgH�z��^@cs�dd7<�dS)Nrrrr��counterrr�now�sz&TotpTest.test_using_w_now.<locals>.now�r�)r��~�r%z)now\(\) function must return non-negativecSsdS)Nr�rrrrr�<lambda>�r^z+TotpTest.test_using_w_now.<locals>.<lambda>cSsdS)Nr�rrrrrr��r^)r��assertIsr��_timer�rf�normalize_time�intr	r�r(r,r-ZassertRaisesRegex�AssertionError)r.r�r�Zmsg_rerr�r�test_using_w_now�szTotpTest.test_using_w_nowcCs�|dur|jdd�}|�|�td��d�|�|�d�d�|�|�d�d�|�|�d�d�|�t|jd	�|�t|jd�|�tj|jd
�|�tj|jd�|�tj|jd�dS)
z$normalize_token() -- instance methodN�r�Z1234567s1234567i��iG�Z0234567g��2AZ123456Z01234567iNa�)r�r(Znormalize_tokenrr,r-r�MalformedTokenError�r.r�rrr�test_normalize_token_instance�sz&TotpTest.test_normalize_token_instancecCs|jtjdd�d�dS)z!normalize_token() -- class methodr�r�)r�N)r�r	r�rzrrr�test_normalize_token_classsz#TotpTest.test_normalize_token_classc	s�t��}|�|�}td�D]�}|���t��}|�|���|�|�|�|d�|�|�|�|�|�tj�	��}|�|�|�|�|j
}z.t�fdd��|_
|�|�d�|�W||_
q||_
0q|�t
|jd�dS)znormalize_time()r~rdcs�S�Nrr�r�rrr�r^z.TotpTest.test_normalize_time.<locals>.<lambda>NZ1234)r	r�r�r�r{r�r(r�rrr��staticmethodr,r-)r.�TotpFactoryr�rgZtint�dtZorigrr�r�test_normalize_times 
zTotpTest.test_normalize_timecCs�|��}ttd�}|�|jt�|�|jd�|�|jt�|�|��d�|�|jdd�d�|�|jdd�t�|�|jdd	�d
�td|�	dd
�d�}|j}|j}|��}dS)z pretty_key() and .key attributesr�r�z4AOG-GDBB-QSYH-NTUZ� )�sepz4AOG GDBB QSYH NTUZFr�)r�ze01c-630c-2184-b076-ce99Tr~r�r�N)
rvr	rLr(rYZhex_key�
base32_keyr�Z
pretty_keyr�)r.rqr�rgrrr�test_key_attrs&s
zTotpTest.test_key_attrscCsdddlm}m}|d�}|�d�}|�||�|�|jd�|�|jd�|�|jd�|�|d�|�t	|�d	�|�|dd�|�|d
d�|�
t|jd�|�
t|jd	�|�
|�dd
�|_|�|jd�|�
|j�dd
�|_|�|jd�|�|j�|�d�}|�||�|�||�|�d�}|�||�|�||�|�d�}|�||�dS)zgenerate() -- TotpToken() classr)r	�	TotpTokenZs3jdvb7qd2r7jpxxr�r�i���T��T)r�r�rcr���cSsdS)Ng�Tn'�Arrrrrr�Tr^z*TotpTest.test_totp_token.<locals>.<lambda>rdcSsdS)NiU��Trrrrrr�Xr^i7��TiW��TN)r�r	r��generate�assertIsInstancer(r�r��expire_timerVr,�
IndexError�__getitem__r+r�Z	remainingZvalidr*�assertIsNotr`)r.r	r�r�rXZresult2Zresult3Zresult4rrr�test_totp_token?s8






zTotpTest.test_totp_tokencs�ddlm}|dd�}|���|���}|j}|�|t�|jd}|�|�|d�j|�|�	|�|d�j|�t
j
���}|�t|�
|��t���|�|�|�j|�|j�fdd�d	�|jd
�}|�|��j|�|�t|jd�dS)
z
generate()rr�Tr�r��cs�Sr�rrr�rrr��r^z(TotpTest.test_generate.<locals>.<lambda>r�)rYr�N)r�r	r{r�r�r�rr�r(r`rrr�r�r�r�r,r)r.r	r�rXr�Z
start_timer�r�rr�r�
test_generatejs


zTotpTest.test_generatecCsb|��D]T\}}}}}|�|�}|j|j||d�|j|j||j|d�|r|�|j|�qdS)zgenerate() -- reference vectors��msgN)r�r�r(r�r�r�r�)r.r�r�r�r�r�rXrrr�!test_generate_w_reference_vectors�s
z*TotpTest.test_generate_w_reference_vectorsrr'cCsJddlm}|�||�|�|jt�|�|jj|�|j|j||dd�||}||}	|j|j|	|dd�|j|j	||dd�|j|j
||dd�|�|j||�|	d|}
|�|j|
�|�|j
|
|�|�t|�d	�|�||	|f�|�t|jd
�|�|d|	�|�|d|�|�t|jd	�|�|�dS)Nr��	TotpMatchz matched time:r�z matched counter:z expected counter:z	 skipped:rrcr�)r�rr�rr	r(r�r�r�Zexpected_counter�skippedZ
cache_secondsr�Z
cache_timerVr,r�r�r+)r.�matchr�rr��windowr�rZexpectedr�r�rrr�assertTotpMatch�s*zTotpTest.assertTotpMatchcs@d�d}tj�fdd�d�t�}|�|��}|j|�dd�dS)	z!match() -- valid TotpMatch object�k�781501cs�dS�Ni�Qrrr�rrr��r^z8TotpTest.test_totp_match_w_valid_token.<locals>.<lambda>r�r�r�rN�r	r��KEY3rr�r.r�r�rXrr�r�test_totp_match_w_valid_token�s
z&TotpTest.test_totp_match_w_valid_tokencsTddlm}d�d}tj�fdd�d�t�}|�|�d�}|j|�dd	d
�dS)z3match() -- valid TotpMatch object with future tokenrrrrcs�dSr	rrr�rrr��r^z8TotpTest.test_totp_match_w_older_token.<locals>.<lambda>r�r�rr
N)r�rr	r�rrr)r.rr�r�rXrr�r�test_totp_match_w_older_token�sz&TotpTest.test_totp_match_w_older_tokencsHd�d}tj�fdd�d�t�}|�|�d�}|j|�ddd�d	S)
z1match() -- valid TotpMatch object with past tokenrrcs�dSr	rrr�rrr��r^z6TotpTest.test_totp_match_w_new_token.<locals>.<lambda>r�r�r�r
Nrr
rr�r�test_totp_match_w_new_token�s
z$TotpTest.test_totp_match_w_new_tokencs<d�d}tj�fdd�d�t�}|�tj|j|�d�dS)z#match() -- invalid TotpMatch objectrrcs�dSr	rrr�rrr��r^z:TotpTest.test_totp_match_w_invalid_token.<locals>.<lambda>r�r�N)r	r�rr,r�InvalidTokenErrorr)r.r�r�rr�r�test_totp_match_w_invalid_token�sz(TotpTest.test_totp_match_w_invalid_tokenc	KsXd|j|j|j|||f}|j||fi|��}|j||�|�|j|�dd�||d�dS)z,helper to test otp.match() output is correct�5key=%r alg=%r period=%r token=%r gen_time=%r time=%r:rr�)r�r�rrr�N)r�rr�rrr��get)	r.Zexpect_skippedr�r�r��gen_timer�r�rXrrr�assertVerifyMatches�s�
�zTotpTest.assertVerifyMatchescKs8d|j|j|j|||f}|j||j||fd|i|��S)z/helper to test otp.match() throws correct errorrZ__msg__)r�rr�r,r)r.Z	exc_classr�r�r�rr�r�rrr�assertVerifyRaises�s���zTotpTest.assertVerifyRaisesc	Csb|��}|j}|��}|�|�j}t||d�}t|jfi|��}t|jfi|��}|t	j
|||dd�|d||||d�|d|||d|d�|d||dd�|t	j
|||dd�|d||||d�|d|||d|d�|t	j
||d|dd�|t	j
||d||d�|d||d|d|d�tj�|�}|d||dd�|t
|d�dS)	z)match() -- 'time' and 'window' parameters�r�rr�rrrcr����N)r�r�r{r�r�rJrrrrrrrr)	r.r�r�r�r��common�
assertMatchesr,r�rrr�test_match_w_window�s(
zTotpTest.test_match_w_windowc
Cs�|��}|j}|��}t||d�}t|jfi|��}t|jfi|��}d|}|�||�j}|t	j
||dd�|d||d|d�|�||�j}	|t	j
|	|dd�|d|	|d|d�dS)zmatch() -- 'skew' parametersrrrrr�)r�skewN)r�r�r{rJrrrr�r�rr)
r.r�r�r�rrr,rZbehind_tokenZahead_tokenrrr�test_match_w_skew&szTotpTest.test_match_w_skewcCs�|��}|j}|��}|�|�}|j}|j}|j}t||d�}t|j	fi|��}	t|j
fi|��}
|	d||||d�|	d||||d|d�|
tj||d|||d�|
tj
|||||d�}|�|j|�|
tj
|||dd�}|�|j|�dS)	z0match() -- 'reuse' and 'last_counter' parametersrr�rr)Zlast_counterrrcrN)r�r�r{r�r�r�r�rJrrrrrZUsedTokenErrorr()r.r�r�r�Ztdatar�r�r�rrr,�errrrr�test_match_w_reuse=s2
���
�zTotpTest.test_match_w_reusecCsltd�}|j}d}|�|d|��|�|d|��|�tj|d|�|�tj|d|�|�tj|d|�dS)	zmatch() -- token normalization�otxl2f5cctbprpzx��6Tz    3 32-136  s332136Z12345Z12345XZ0123456N)r	rr+r,rr�)r.r�rr�rrr� test_match_w_token_normalizationfsz)TotpTest.test_match_w_token_normalizationcCsh|��D]Z\}}}}}|j}|||�}|�|�|j|j||j|d�|jtj|||ddd�qdS)zmatch() -- reference vectorsr��drrN)	r�rr+r(r�r�r,rr)r.r�r�r�r�r�rrXrrr�test_match_w_reference_vectors|s

z'TotpTest.test_match_w_reference_vectorscs�ddlm}d�|j�fdd�d�}tddd	d
�}|�d|�}|j|�d�tddd	d
�}|�tj|jd
|�tddd�}|�t	|jd
|�d}|�d|�}|j|�d�d}|�d|�}|j|�d�dS)zverify()rr�r#cs�Sr�rrr�rrr��r^z&TotpTest.test_verify.<locals>.<lambda>r�rrr"�r?�typerYZ332136r�Z332155�r?r(z3{"v": 1, "type": "totp", "key": "otxl2f5cctbprpzx"}z,otpauth://totp/Label?secret=otxl2f5cctbprpzxN)
r�r	r�rJZverifyrr,rrr)r.r	r�Zsource1rZsource1jsonZ
source1urirr�r�test_verify�s zTotpTest.test_verifycCsddlm}|j}|td��}|�|jt�|d�}|�|jt�|tddtd��}|�|jt�|td��}|�|jt�|d	�}|�|jt�|�	||�|�t
�}|j|d
��|�}|�||�|�|�
�|�
��|j|d
��|�}|�	||�|�t|td��|�t|d�d
S)z
from_source()rr��Notpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=ExamplesNotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Examplerrr'z3{"v": 1, "type": "totp", "key": "JBSWY3DPEHPK3PXP"}s3{"v": 1, "type": "totp", "key": "JBSWY3DPEHPK3PXP"})r/ZfoosfooN)r�r	�from_sourcerr(rY�KEY4_RAWrJ�KEY4r�r
r�r��to_dictr,r)r.r	r,r�Zwallet1r�r�rrr�test_from_source�s*zTotpTest.test_from_sourcecCsddlm}|j}|d�}|�||�|�|jt�|�|jd�|�|jd�|�|j	d�|�|j
d�|�|jd�|d	�}|�|jt�|�t
|d
�|�t|d�|d�}|�|jd
�|�|jd�|d�}|�|jd�|�|jd�|d�}|�|jd�|�|jd�|�t
|jd�|d�}|�|j	d�|�t
|d�|d�}|�|jd�|�t
|d�|�t
|d�|�t
|d�|d�}|�|j
d�|�t
|d�|�t
|d�|�ttjd d!�g��|d"�}Wd#�n1�s�0Y|�|jt�|�|j
d�d#S)$z
from_uri()rr�r+�alice@google.com�Exampler�r�r\zNotpauth://totp/Example:alice@google.com?secret=jbswy3dpehpk3pxp&issuer=Examplez0otpauth://totp/Example:alice@google.com?digits=6z?otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHP@3PXPzOotpauth://totp/Provider1:Alice%20Smith?secret=JBSWY3DPEHPK3PXP&issuer=Provider1�Alice Smith�	Provider1zMotpauth://totp/Big%20Corporation%3A%20alice@bigco.com?secret=JBSWY3DPEHPK3PXPzalice@bigco.comzBig CorporationzOotpauth://totp/alice@bigco.com?secret=JBSWY3DPEHPK3PXP&issuer=Big%20CorporationzGotpauth://totp/Provider1:alice?secret=JBSWY3DPEHPK3PXP&issuer=Provider2zPotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&algorithm=SHA256r�zPotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&algorithm=SHA333zHotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&digits=8rzHotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&digits=AzJotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&digits=%20zIotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&digits=15zIotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&period=63r�zHotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&period=0zIotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&period=-1z!unexpected parameters encounteredr�zQotpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&foo=bar&period=63N)r�r	�from_urir�r(rYr-r�r�rr�r}r,rr�r�rJrZPasslibRuntimeWarningr�r.)r.r	r5r�rrr�
test_from_uri�sX
��(zTotpTest.test_from_uricCs�ttdddd�}|�|�dd�d�|�t|jdd�|�|�d�d	�d|_|�|��d	�d|_|�|��d�|�t|jd
�|�t|jdd�|�ttdd
��d�d�|�ttdd��d�d�|�ttdd��d�d�dS)zto_uri()r�r\r��rr}r�r1�Example OrgzZotpauth://totp/Example%20Org:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example%20OrgNz7otpauth://totp/alice@google.com?secret=JBSWY3DPEHPK3PXPzlabel:with:semicolonszissuer:with:semicolonsr�r�zHotpauth://totp/alice@google.com?secret=JBSWY3DPEHPK3PXP&algorithm=SHA256rr�z@otpauth://totp/alice@google.com?secret=JBSWY3DPEHPK3PXP&digits=8r�r�zAotpauth://totp/alice@google.com?secret=JBSWY3DPEHPK3PXP&period=63)r	r.r(Zto_urir,rr�r�r�rrr�test_to_uriWs6��
�
����zTotpTest.test_to_uric
Csrddlm}|j}|tddtddd��}|�||�|�|jt�|�|j	d�|�|j
d�|�|jd�|�|jd	�|�|j
d
�|�t|tdtd��|�t|tddtd��|�t|td
dtd��|�t|tdtd��|tddt��ddd��}|�|jt�|�t|tddd��|�t|tdddd��|tddtddd��}|�|j	d�|�|j
d�|tddtdd��}|�|jd�|�t|tddtdd��|tddtdd��}|�|j
d�|�t|tddtdd��|�t|tddtdd��|tddtdd��}|�|jd�|�t|tddtdd��|�t|tddtdd��|�t|tddtdd��dS) zfrom_dict()rr�rrr1r2�r?r(rYr�r�r�r�r\)r(rYr'rG)r?rYr)zJBSWY3DPEHP@3PXPr3r4r��r?r(rYrZsha333r�r?r(rYr}r5�r��r?r(rYr�r�r%)r?r(rY�INVALIDN)r�r	�	from_dictrJr.r�r(rYr-r�r�rr�r}r,rr�r�r-)r.r	r@r�rrr�test_from_dict�sF�zTotpTest.test_from_dictc
Cs|ttdddd�}|�|��tddtd��ttddddd	d
�}|�|��tddtdd	d��ttddddd�}|�|��tddtdd
��ttdddd	d�}|�|��tddtd	d��tjd	d�}|t�}|�|��tddtd��|td	d�}|�|��tddtd��|�ttdd���tddtdd��|�ttdd���tddtdd��|�ttdd���tddtdd��dS)z	to_dict()r�r\r�r7rrr'r1r8)rr}r�r�r�r:)rr}r�r�)r?r(rYr�)rr}r�r�)r?r(rYr�r�r�r�r;rr�r<r�r�r>N)r	r.r(r/rJr�)r.r�r�rrr�test_to_dict�sP
�
��
�
��
�
�����zTotpTest.test_to_dict)N)N)rr�r�r')N)N)4rirjrk�__doc__rlrsr{r�r�rJr��RFC_KEY_BYTES_20�RFC_KEY_BYTES_32�RFC_KEY_BYTES_64r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrr!r$r&r*r0r6r9rArB�
__classcell__rrrwrro�s�


�

�

�
�
�
��T
"
+ 
!
�
�

0)$/w=^ro)1rCr�	functoolsrZloggingZ	getLoggerrir��sysr�r�ZpasslibrZpasslib.utils.compatrrZpasslib.tests.utilsrrrrur�r	r
r�__all__r-r�r��version_infoZbinasciir
rHrIr�rLrMrr.r-rryrr�encoderDrErFrorrrr�<module>sF�

/


Youez - 2016 - github.com/yon3zu
LinuXploit