U
    ΎϊgΒ  γ                   @   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   ©ΪselfZpaddedΪback© r   ϊI/tmp/pip-unpacked-wheel-_q8s9isk/Cryptodome/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
    r0   Ϊ__main__c                   C   s   t  t ‘S r-   )ΪunittestZ	TestSuiter0   r   r   r   r   Ϊ<lambda>   σ    r3   Ϊsuite)ZdefaultTest)r2   Ϊbinasciir   r   ZCryptodome.Util.py3compatZCryptodome.SelfTest.st_commonr   ZCryptodome.Util.Paddingr   r   ZTestCaser   r(   r+   r0   r%   r5   Ϊmainr   r   r   r   Ϊ<module>"   s   ( 