a
    ω!fΆ  γ                   @   s   d dl Z d dlmZ d dlT d dlmZ d dlmZm	Z	 G dd de j
ZG dd	 d	e j
ZG d
d de j
Zi fddZedkrdd Ze jdd dS )ι    N)Ϊ	unhexlify)Ϊ*)Ϊlist_test_cases)ΪpadΪunpadc                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )ΪPKCS7_Testsc                 C   sj   t tdd}|  |ttdk‘ t tddd}|  |ttdk‘ t|d}|  |tdk‘ d S )NΪ ι   Z04040404Zpkcs7©r   ΪbΪ
assertTrueΪuhr   ©ΪselfΪpaddedΪback© r   ϊb/var/www/html/python-backend/venv/lib/python3.9/site-packages/Crypto/SelfTest/Util/test_Padding.pyΪtest1+   s    
zPKCS7_Tests.test1c                 C   sL   t ttdd}|  |ttdk‘ t|d}|  |ttdk‘ d S )NΪ12345678r	   Z1234567804040404©r   r   r   r   r   r   r   r   r   Ϊtest23   s    
zPKCS7_Tests.test2c                 C   sL   t ttdd}|  |ttdk‘ t|d}|  |ttdk‘ d S )NΪ123456r	   Ϊ12345601r   r   r   r   r   Ϊtest39   s    
zPKCS7_Tests.test3c                 C   sL   t ttdd}|  |ttdk‘ t|d}|  |ttdk‘ d S )NΪ
1234567890r	   Z1234567890030303r   r   r   r   r   Ϊtest4?   s    
zPKCS7_Tests.test4c                 C   s   |   ttttddd‘ d S )NZ12r	   Zpkcs8)ΪassertRaisesΪ
ValueErrorr   r   r   ©r   r   r   r   Ϊtestn1E   s    zPKCS7_Tests.testn1c                 C   s,   |   tttdd‘ |   tttdd‘ d S )Nz   r	   r   ©r   r   r   r   r   r   r   r   Ϊtestn2H   s    zPKCS7_Tests.testn2c                 C   s@   |   tttdd‘ |   tttdd‘ |   tttdd‘ d S )Nϊ123456r	   ϊ123456 z123456r!   r   r   r   r   Ϊtestn3L   s    zPKCS7_Tests.testn3N)
Ϊ__name__Ϊ
__module__Ϊ__qualname__r   r   r   r   r    r"   r%   r   r   r   r   r   )   s   r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Ϊ
X923_Testsc                 C   sH   t tddd}|  |ttdk‘ t|dd}|  |tdk‘ d S )Nr   r	   Ϊx923Z00000004r
   r   r   r   r   r   S   s    zX923_Tests.test1c                 C   sP   t ttddd}|  |ttdk‘ t|dd}|  |ttdk‘ d S )Nr   r	   r*   Z1234567800000004r   r   r   r   r   r   Y   s    zX923_Tests.test2c                 C   sP   t ttddd}|  |ttdk‘ t|dd}|  |ttdk‘ d S )Nr   r	   r*   r   r   r   r   r   r   r   _   s    zX923_Tests.test3c                 C   sP   t ttddd}|  |ttdk‘ t|dd}|  |ttdk‘ d S )Nr   r	   r*   Z1234567890000003r   r   r   r   r   r   e   s    zX923_Tests.test4c                 C   s\   |   tttddd‘ |   tttddd‘ |   tttddd‘ |   tttddd‘ d S )Nr#   r	   r*   r$   z123456    r   r!   r   r   r   r   r    k   s    zX923_Tests.testn1N©r&   r'   r(   r   r   r   r   r    r   r   r   r   r)   Q   s
   r)   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )ΪISO7816_Testsc                 C   sH   t tddd}|  |ttdk‘ t|dd}|  |tdk‘ d S )Nr   r	   Ϊiso7816Z80000000r
   r   r   r   r   r   s   s    zISO7816_Tests.test1c                 C   sP   t ttddd}|  |ttdk‘ t|dd}|  |ttdk‘ d S )Nr   r	   r-   Z1234567880000000r   r   r   r   r   r   y   s    zISO7816_Tests.test2c                 C   sP   t ttddd}|  |ttdk‘ t|dd}|  |ttdk‘ d S )Nr   r	   r-   Z12345680r   r   r   r   r   r      s    zISO7816_Tests.test3c                 C   sP   t ttddd}|  |ttdk‘ t|dd}|  |ttdk‘ d S )Nr   r	   r-   Z1234567890800000r   r   r   r   r   r      s    zISO7816_Tests.test4c                 C   s0   |   tttddd‘ |   tttddd‘ d S )Nu   123456Βr	   r-   r   r!   r   r   r   r   r       s    zISO7816_Tests.testn1Nr+   r   r   r   r   r,   q   s
   r,   c                 C   s,   g }|t t7 }|t t7 }|t t7 }|S ©N)r   r   r)   r,   )ΪconfigΪtestsr   r   r   Ϊ	get_tests   s
    r1   Ϊ__main__c                   C   s   t  t ‘S r.   )ΪunittestZ	TestSuiter1   r   r   r   r   Ϊ<lambda>   σ    r4   Ϊsuite)ZdefaultTest)r3   Ϊbinasciir   r   ZCrypto.Util.py3compatZCrypto.SelfTest.st_commonr   ZCrypto.Util.Paddingr   r   ZTestCaser   r)   r,   r1   r&   r6   Ϊmainr   r   r   r   Ϊ<module>"   s   ( 