o
    ^¨ÊhË'  ã                   @   s„   d Z dZddlZddlZddlT ddlmZm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 dS )zSelf-tests for Crypto.Util.asn1z$Id$é    N)Ú*)ÚDerSequenceÚ	DerObjectc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚDerObjectTestsc                 C   s€   t tdƒƒ}|  | ¡ tdƒ¡ tdƒ|_|  | ¡ tdƒ¡ |  | ¡ tdƒ¡ t tdƒƒ}tdƒ|_|  | ¡ tdƒ¡ d S )NÚ3z3 ÚEz3Eé3   )r   ÚbÚassertEqualÚencodeÚpayload©ÚselfÚder© r   úP/var/www/html/env/lib/python3.10/site-packages/Crypto/SelfTest/Util/test_asn1.pyÚtestObjEncode1#   s   

zDerObjectTests.testObjEncode1c                 C   s<   t dƒ}|  | ¡ tdƒ¡ t dƒ}|  | ¡ tdƒ¡ d S )NÚSEQUENCEú0 z
BIT STRINGz )r   r
   r   r	   r   r   r   r   ÚtestObjEncode21   s   zDerObjectTests.testObjEncode2c                 C   s2   t tdƒƒ}tdƒd |_|  | ¡ tdƒ¡ d S )NÚ4Ú0é€   u…   4Â�Â€00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)r   r	   r   r
   r   r   r   r   r   ÚtestObjEncode38   s   zDerObjectTests.testObjEncode3c                 C   s8   t ƒ }| tdƒ¡ |  |jtdƒ¡ |  |jd¡ d S )Nz zé    ©r   Údecoder	   r
   r   ÚtypeTagr   r   r   r   ÚtestObjDecode1>   s   zDerObjectTests.testObjDecode1c                 C   s<   t ƒ }| tdƒ¡ |  |jtdƒd ¡ |  |jd¡ d S )Nu…   "Â�Â€11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111Ú1r   é"   r   r   r   r   r   ÚtestObjDecode2E   s   zDerObjectTests.testObjDecode2N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r!   r   r   r   r   r   !   s    r   c                   @   s¤   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d„ Z	dd„ Z
dd„ Zdd„ Zd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 )'ÚDerSequenceTestsc                 C   sl   t ƒ }|  | ¡ tdƒ¡ |  | ¡ ¡ | d¡ |  | ¡ tdƒ¡ |  | ¡ ¡ |  | ¡ tdƒ¡ d S )Nr   r   ú0 )r   r
   r   r	   ÚassertFalseÚhasOnlyIntsÚappendÚ
assertTruer   r   r   r   ÚtestEncode1N   s   
zDerSequenceTests.testEncode1c                 C   s¶   t ƒ }| d¡ |  | ¡ tdƒ¡ d|d< |  t|ƒd¡ |  |d d¡ |  |d d¡ |  | ¡ tdƒ¡ dg|d d …< |  t|ƒd¡ |  |d d¡ |  | ¡ tdƒ¡ d S )Né   ú0é   r   éÿÿÿÿz0)r   r)   r
   r   r	   Úlenr   r   r   r   ÚtestEncode2Z   s   
zDerSequenceTests.testEncode2c                 C   ó(   t ƒ }| d¡ |  | ¡ tdƒ¡ d S )Né€  õ   0Â€©r   r)   r
   r   r	   r   r   r   r   ÚtestEncode3k   ó   
zDerSequenceTests.testEncode3c                 C   sÄ   t ƒ }| dd ¡ |  | ¡ tdƒtdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ ¡ d S )Né   é   õ   0Â‚õ   Â‚         ú              ú	         r5   r   r   r   r   ÚtestEncode4q   sR   ÿþýüûúùø	÷
öõôóòñðïî
ízDerSequenceTests.testEncode4c                 C   r2   )Néÿ   õ   0 Ã¿r5   r   r   r   r   ÚtestEncode5Š   r7   zDerSequenceTests.testEncode5c                 C   s¬   t ƒ }| d¡ | d¡ |  | ¡ tdƒ¡ |  | ¡ ¡ | d¡ ddg|dd …< |  t|ƒd¡ |  |dd … ddg¡ |  |dd… dg¡ |  | ¡ td	ƒ¡ d S )
Nr3   r?   õ   0Â€ Ã¿r.   é	   é   é   r/   u   0
Â€	)r   r)   r
   r   r	   r*   r(   r0   r   r   r   r   ÚtestEncode6�   s   


zDerSequenceTests.testEncode6c                 C   sD   t ƒ }| d¡ | tdƒ¡ |  | ¡ tdƒ¡ |  | ¡ ¡ d S )Nr3   z   u   0Â€   )r   r)   r	   r
   r   r'   r(   r   r   r   r   rF   Ÿ   s
   
c                 C   s„   t ƒ }| tdƒ¡ |  t|ƒd¡ | tdƒ¡ |  t|ƒd¡ |  |d d¡ | tdƒ¡ |  t|ƒd¡ |  |d d¡ d S )Nr   r   r&   r.   ©r   r   r	   r
   r0   r   r   r   r   ÚtestDecode1©   s   zDerSequenceTests.testDecode1c                 C   ó8   t ƒ }| tdƒ¡ |  t|ƒd¡ |  |d d¡ d S )Nr-   r.   r   r,   rG   r   r   r   r   ÚtestDecode2·   ó   zDerSequenceTests.testDecode2c                 C   rI   )Nr4   r.   r   r3   rG   r   r   r   r   ÚtestDecode3¾   rK   zDerSequenceTests.testDecode3c                 C   sÔ   t ƒ }| tdƒtdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ tdƒ ¡ |  t|ƒd¡ |  |d dd ¡ d S )	Nr:   r;   r<   r=   r.   r   r8   r9   rG   r   r   r   r   ÚtestDecode4Å   sT   
ÿþýüûúùø	÷
öõôóòñðïîízDerSequenceTests.testDecode4c                 C   rI   )Nr@   r.   r   r?   rG   r   r   r   r   ÚtestDecode5ß   rK   zDerSequenceTests.testDecode5c                 C   sH   t ƒ }| tdƒ¡ |  t|ƒd¡ |  |d d¡ |  |d d¡ d S )NrB   r8   r   r3   r.   r?   rG   r   r   r   r   ÚtestDecode6æ   s
   zDerSequenceTests.testDecode6c                 C   s`   t ƒ }| tdƒ¡ |  t|ƒd¡ |  |d d¡ |  |d tdƒ¡ |  |d tdƒ¡ d S )	Nu   0
Â€$Â¶c rE   r   r3   r.   õ   $Â¶cr8   ú rG   r   r   r   r   ÚtestDecode7î   s   zDerSequenceTests.testDecode7c                 C   sP   t ƒ }| tdƒ¡ |  t|ƒd¡ |  |d tdƒ¡ |  |d tdƒ¡ d S )Nu	   0$Â¶c r8   r   rP   r.   rQ   rG   r   r   r   r   ÚtestDecode8÷   s
   zDerSequenceTests.testDecode8c                 C   óF   t ƒ }|  t|jtdƒ¡ |  t|jtdƒ¡ |  t|jtdƒ¡ d S )NÚ ú r   ©r   ÚassertRaisesÚ
ValueErrorr   r	   r   r   r   r   ÚtestErrDecode1ÿ   ó   zDerSequenceTests.testErrDecode1c                 C   s    t ƒ }|  t|jtdƒd¡ d S )Nz0  TrW   r   r   r   r   ÚtestErrDecode2  s   zDerSequenceTests.testErrDecode2c                 C   rT   )Nz0 u   0Â�u   0Â�rW   r   r   r   r   ÚtestErrDecode3  r[   zDerSequenceTests.testErrDecode3c                 C   s   t ƒ }|  t|jtdƒ¡ d S )Nu   0Ã¿rW   r   r   r   r   ÚtestErrDecode4  s   zDerSequenceTests.testErrDecode4N)r"   r#   r$   r+   r1   r6   r>   rA   rF   rH   rJ   rL   rM   rN   rO   rR   rS   rZ   r\   r]   r^   r   r   r   r   r%   L   s(    
	r%   c                 C   s,   ddl m} g }||tƒ7 }||tƒ7 }|S )Nr   )Úlist_test_cases)ÚCrypto.SelfTest.st_commonr_   r   r%   )Úconfigr_   Ú	listTestsr   r   r   Ú	get_tests  s
   rc   Ú__main__c                   C   s   t  tƒ ¡S )N)ÚunittestÚ	TestSuiterc   r   r   r   r   Ú<lambda>"  s    rg   Úsuite)ÚdefaultTest)Ú__doc__Ú__revision__re   ÚsysÚCrypto.Util.py3compatÚCrypto.Util.asn1r   r   ÚTestCaser   r%   rc   r"   rh   Úmainr   r   r   r   Ú<module>   s   + Oþ