
    ,hz                        d Z ddlZddl ddlmZmZmZmZmZm	Z	m
Z
mZmZ  G d dej                        Z G d dej                        Z G d	 d
ej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Zi fdZedk(  rd Z ej4                  d       yy)zSelf-tests for Crypto.Util.asn1    N)*)		DerObjectDerSetOf
DerIntegerDerBitStringDerObjectIdDerNullDerOctetStringDerSequence
DerBooleanc                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)DerObjectTestsc                     | j                  t        t        t        d             | j                  t        t        d       y )Nu       )assertRaises
ValueErrorr   b)selfs    `/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Util/test_asn1.pytestObjInit1zDerObjectTests.testObjInit1.   s*    *i:?*i6    c                 H   t        t        d            }| j                  |j                         t        d             t        d      |_        | j                  |j                         t        d             | j                  |j                         t        d             t        d      }t        d      |_        | j                  |j                         t        d             t        t        d      d	      }| j                  |j                         t        d
             y )N EzE   zET)constructed0 )r   r   assertEqualencodepayloadr   ders     r   testObjEncode1zDerObjectTests.testObjEncode16   s    &	"q}5iq'89q'89oiq'89&	t4q}5r   c                     t        dt        d            }| j                  |j                         t        d             y )N   zz)r   r   r    r!   r#   s     r   testObjEncode2zDerObjectTests.testObjEncode2G   s.    a
m,q);'<=r   c                     t        t        d            }t        d      dz  |_        | j                  |j	                         t        d             y )Nr   0   u   00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000r   r   r"   r    r!   r#   s     r   testObjEncode3zDerObjectTests.testObjEncode3L   s;    &	"fSjq)A'BCr   c                     t        ddd      }t        d      |_        | j                  |j	                         t        d             t        ddd	      }t        d      |_        | j                  |j	                         t        d
             y )N      T)implicitr   ppllu   ¡ppll      Fu   ppllr,   r#   s     r   testObjEncode4zDerObjectTests.testObjEncode4R   sj    qd;iq'89t?iq'89r   c                     t        dd      }t        d      |_        | j                  |j	                         t        d             y )Nr/      explicitxxll	   ¥xxllr,   r#   s     r   testObjEncode5zDerObjectTests.testObjEncode5\   s5    q)iq)?'@Ar   c                     t        d      }|j                  t        d             | j                  |j                  t        d             | j                  |j
                  d       y )Nr3   r   decoder   r    r"   
_tag_octetr#   s     r   testObjDecode1zDerObjectTests.testObjDecode1d   sI    o

1'()a
m4.r   c                     t        d      }|j                  t        d             | j                  |j                  t        d      dz         | j                  |j
                  d       y )Nr3   u   111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111r+   r@   r#   s     r   testObjDecode2zDerObjectTests.testObjDecode2k   sM    o

1-./afSj1.r   c                     t        d      }| j                  t        |j                  t	        d             t        d      }| j                  t        |j                  t	        d             y )Nr3   u   ÿzr   r   r   rA   r   r#   s     r   testObjDecode3zDerObjectTests.testObjDecode3r   sK    o*cjj!4J2KLo*cjj!N2CDr   c                    t        ddd      }| j                  t        |j                  t	        d             |j                  t	        d             | j                  |j                  t	        d             t        ddd      }| j                  t        |j                  t	        d             |j                  t	        d	             | j                  |j                  t	        d             y )
Nr3   F   )r   r1   r>   u     Tu   ¯ )r   r   r   rA   r   r    r"   r#   s     r   testObjDecode4zDerObjectTests.testObjDecode4z   s    %#>*cjj!4F2GH

1^$%ai0$=*cjj!4F2GH

1^$%ai0r   c                 n    t        d      }| j                  t        |j                  t	        d             y )Nr3   zrH   r#   s     r   testObjDecode5zDerObjectTests.testObjDecode5   s'    o*cjj!4F2GHr   c                     t               }|j                  t        d             | j                  |j                  d       | j                  |j
                  t        d             y )Nu   ee      )r   rA   r   r    rB   r"   r#   s     r   testObjDecode6zDerObjectTests.testObjDecode6   sF    k

1^$%.ai0r   c                    t        dd      }|j                  t        d             | j                  |j                  d       | j                  |j
                  t        d             t        dd      }|j                  t        d             | j                  |j                  d       | j                  |j
                  t        d             y )Nr/   r7   r8   r;   r:   r   u	    xxll)r   rA   r   r    _inner_tag_octetr"   r#   s     r   testObjDecode7zDerObjectTests.testObjDecode7   s    q)

1+,---t4ai0 q)

1+,---t4ai0r   c                 n    t        d      }| j                  ||j                  t        d                   y )Nr3   r>   )r   r    rA   r   r#   s     r   testObjDecode8zDerObjectTests.testObjDecode8   s*    ocjj+=)>?@r   N)__name__
__module____qualname__r   r%   r(   r-   r5   r<   rC   rF   rI   rM   rO   rS   rV   rX    r   r   r   r   ,   sM    76">
D:B//E
1I
11Ar   r   c                   Z    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zy)DerIntegerTestsc                 l    t        d      }| j                  |j                         t        d             y )Nr0   r   r    r!   r   r#   s     r   	testInit1zDerIntegerTests.testInit1   s&    mq'89r   c                 <   t        d      }| j                  |j                         t        d             t        d      }| j                  |j                         t        d             t        d      }| j                  |j                         t        d             y )Nr    r0   r`      ra   r#   s     r   testEncode1zDerIntegerTests.testEncode1   sp     mq'89mq'89oq'89r   c                    t        d      }| j                  |j                         t        d             t        d      }| j                  |j                         t        d             t        ddz        }| j                  |j                         t        d      t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d	      z          y )
Nr+   u         r3                                	         ra   r#   s     r   testEncode2zDerIntegerTests.testEncode2   s    oq);'<=q);'<=D!	
DE	
DE	F	
DE	F 	

DE	F 	

DE		F
 	

DE	F 	

DE	F 	

DE	F 	

DE	F 	

DE		F 	

DE
	F 	

DE	F 	

DE	F 	

DE	F 	

DE	F 	

DE	F  	

DE!	F" 	

DE#	F$ 	

01%	2	3r   c                 <   t        d      }| j                  |j                         t        d             t        d      }| j                  |j                         t        d             t        d      }| j                  |j                         t        d             y )N   ÿiu   iu   þ¨¿ra   r#   s     r   testEncode3zDerIntegerTests.testEncode3   ss     nq'89q'89 q)?'@Ar   c                 p    t        dd      }| j                  |j                         t        d             y )N4   r'   r8      £4ra   r   numbers     r   testEncode4zDerIntegerTests.testEncode4   s*    D1-!,B*CDr   c                 \   t               }|j                  t        d             | j                  |j                  d       |j                  t        d             | j                  |j                  d       |j                  t        d             | j                  |j                  d       y )Nrd   r   r`   r0   rf   re   r   rA   r   r    valuer#   s     r   testDecode1zDerIntegerTests.testDecode1   sx    l

1^$%A&

1^$%A&

1^$%C(r   c                    t               }|j                  t        d             | j                  |j                  d       |j                  t        d      t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z          | j                  |j                  ddz         y )Nrj   ri   rl   rm   rn   r3   rk   r{   r#   s     r   testDecode2zDerIntegerTests.testDecode2   s   l

1'()5)

	
DE	
DE	F	
DE	F 	

DE	F 	

DE		F
 	

DE	F 	

DE	F 	

DE	F 	

DE	F 	

DE		F 	

DE
	F 	

DE	F 	

DE	F 	

DE	F 	

DE	F 	

DE	F  	

DE!	F" 	

DE#	F$ 	

01%	2	3( 	1d7+r   c                     t               }|j                  t        d             | j                  |j                  d       |j                  t        d             | j                  |j                  d       y )Nrr   rq   u    i r{   r#   s     r   testDecode3zDerIntegerTests.testDecode3  sT    l

1^$%B'

1'()F+r   c                 \   t               }|j                  t        d             | j                  |j                  d       |j                  t        d             | j                  |j                  d       |j                  t        d             | j                  |j                  d       y )Nz r0   u   ÿÿrq   r   r   r{   r#   s     r   testDecode5zDerIntegerTests.testDecode5  sy    l

1'()A&

1'()B'

1Z=!A&r   c                     t        d      }|j                  t        d             | j                  |j                  d       y )Nr'   r8   rv   ru   r{   rw   s     r   testDecode6zDerIntegerTests.testDecode6)  s2    Q'a./0t,r   c                 l    t               }| j                  ||j                  t        d                   y )Nrf   )r   r    rA   r   r#   s     r   testDecode7zDerIntegerTests.testDecode7/  s'    lcjj>):;<r   c                     t               }|j                  d       |j                  d       | j                  t        |j                  dd       | j                  t        |j                  dd       y )Ns    s    T)strict)r   rA   r   r   rw   s     r   testStrict1zDerIntegerTests.testStrict16  s]    )*)**fmm5HQUV*fmm5HQUVr   c                 l    t               }| j                  t        |j                  t	        d             y )Nu   )r   r   r   rA   r   r#   s     r   testErrDecode1zDerIntegerTests.testErrDecode1@  s%    l*cjj!4F2GHr   N)rY   rZ   r[   rb   rg   ro   rs   ry   r}   r   r   r   r   r   r   r   r\   r   r   r^   r^      sG    :
:3>
BE),:,'-=WIr   r^   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)DerSequenceTestsc                     t        dt        d      t        d      g      }| j                  |j	                         t        d             y )Nr0   r3   r   z
00 )r   r   r   r    r!   r#   s     r   rb   zDerSequenceTests.testInit1H  s7    1jmQwZ89q)M'NOr   c                 n   t               }| j                  |j                         t        d             | j	                  |j                                |j                  d       | j                  |j                         t        d             | j                  |j                         d       | j                  |j                  d      d       | j                  |j                                | j                  |j                  d             | j                  |j                         t        d             y )Nr   r   0 r0   F)	r   r    r!   r   assertFalsehasOnlyIntsappendhasInts
assertTruer#   s     r   rg   zDerSequenceTests.testEncode1L  s    mqz2*+

1q)<'=>q)U+A.)*./q)<'=>r   c                    t               }|j                  d       d|d<   | j                  t        |      d       | j                  |d   d       | j                  |d   d       | j                  |j	                         t        d             dg|d d  | j                  t        |      d       | j                  |d   d       | j                  |j	                         t        d             y )Nr   r0   rq   z0)r   r   r    lenr!   r   r#   s     r   ro   zDerSequenceTests.testEncode2[  s    m

1AS!$Q"R#q)<'=>AS!$Q"q)<'=>r   c                     t               }|j                  d       | j                  |j                         t	        d             y )Nri   u   0r   r   r    r!   r   r#   s     r   rs   zDerSequenceTests.testEncode3j  s1    m

5q)@'ABr   c                 Z   t               }|j                  ddz         | j                  |j                         t	        d      t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z   t	        d      z          y )Nr3   rk      0rl   rm   rn   r   r#   s     r   ry   zDerSequenceTests.testEncode4p  st   m

1d7q'9	
DE(F	
DE(F 	

DE(F 	

DE	(F
 	

DE(F 	

DE(F 	

DE(F 	

DE(F 	

DE	(F 	

DE
(F 	

DE(F 	

DE(F 	

DE(F 	

DE(F 	

DE(F  	

DE!(F" 	

DE#(F$ 	

DE%(F& 	

01'(2 	3r   c                     t               }|dz  }|t        d      z  }| j                  |j                         t        d             y )Nr0   r   z00 )r   r   r    r!   r#   s     r   testEncode5zDerSequenceTests.testEncode5  s<    mqq}q)G'HIr   c                    t               }|j                  d       |j                  d       | j                  |j                         t	        d             | j                  |j                                | j                  |j                  d             t               }|j                  d       |j                  d       | j                  |j                         t	        d             | j                  |j                         d       | j                  |j                  d      d       | j                  |j                                | j                  |j                  d             |j                  d       d	d
g|dd  | j                  t        |      d       | j                  |dd  d	d
g       | j                  |dd d	g       | j                  |j                         t	        d             y )Nri         0 ÿFr3   u	   0þr0   	      r'   rq   z0		)
r   r   r    r!   r   r   r   r   r   r   r#   s     r   testEncode6zDerSequenceTests.testEncode6  st   m

5

4q)P'QR)*./m

1

2q)H'IJ*U+Q/*+./

4Q%ABS!$QR!A'QrA3'q)T'UVr   c                     t               }|j                  d       |j                  t        d             | j                  |j	                         t        d             | j                  |j                                y )Nri   z0   0	0)r   r   r   r    r!   r   r   r#   s     r   testEncode7zDerSequenceTests.testEncode7  sX    m

5

1()*q)Q'RS*+r   c                     t               }|j                  d       |j                  t        dg             | j                  |j                         t	        d             | j                  |j                                y )Nri   r7   r   )r   r   r    r!   r   r   r   r#   s     r   testEncode8zDerSequenceTests.testEncode8  sY    m

5

;s#$q)Q'RS*+r   c                    t               }|j                  t        d             | j                  t	        |      d       |j                  t        d             | j                  t	        |      d       | j                  |d   d       |j                  t        d             | j                  t	        |      d       | j                  |d   d       y )Nr   r   r   r0   r   rA   r   r    r   r#   s     r   r}   zDerSequenceTests.testDecode1  s    m

1W:S!$

1()*S!$Q"

1()*S!$Q"r   c                     t               }|j                  t        d             | j                  t	        |      d       | j                  |d   d       y )Nz0r0   r   re   r   r#   s     r   r   zDerSequenceTests.testDecode2  sC    m

1()*S!$Q$r   c                 z   t               }|j                  t        d      t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z   t        d      z          | j                  t	        |      d       | j                  |d   ddz         y )	Nr   rl   rm   rn   r0   r   r3   rk   r   r#   s     r   testDecode4zDerSequenceTests.testDecode4  s   m

1_%	
DEF	
DEF 	

DEF 	

DE	F
 	

DEF 	

DEF 	

DEF 	

DEF 	

DE	F 	

DE
F 	

DEF 	

DEF 	

DEF 	

DEF 	

DEF  	

DE!F" 	

DE#F$ 	

DE%F& 	

01'2 	3( 	S!$Q4(r   c                     t               }|j                  t        d             | j                  t	        |      d       | j                  |d   d       | j                  |d   d       y )Nr   r3   r   ri   r0   r   r   r#   s     r   r   zDerSequenceTests.testDecode6  sW    m

1<=>S!$Q&Q%r   c                 $   t               }|j                  t        d             | j                  t	        |      d       | j                  |d   d       | j                  |d   t        d             | j                  |d   t        d             y )	N   0
$¶c r'   r   ri   r0      $¶cr3    r   r#   s     r   r   zDerSequenceTests.testDecode7  su    m

1DEFS!$Q&Q"4 56Q*.r   c                    t               }|j                  t        d             | j                  t	        |      d       | j                  |d   t        d             | j                  |d   t        d             | j                  |j                         d       | j                  |j                  d      d       | j                  |j                                | j                  |j                  d             y )N	   0$¶c r3   r   r   r0   r   F)r   rA   r   r    r   r   r   r   r#   s     r   testDecode8zDerSequenceTests.testDecode8  s    m

1456S!$Q"4 56Q*.*U+Q/*+/0r   c                 l    t               }| j                  ||j                  t        d                   y )Nr   )r   r    rA   r   r#   s     r   testDecode9zDerSequenceTests.testDecode9  s(    mcjj+J)KLMr   c                    t               }| j                  t        |j                  t	        d             | j                  t        |j                  t	        d             | j                  t        |j                  t	        d             y )N rL   r*   r   r   r   rA   r   r#   s     r   r   zDerSequenceTests.testErrDecode1  sW    m*cjj!B%8*cjj!F)<*cjj!F)<r   c                 l    t               }| j                  t        |j                  t	        d             y )Nz0  r   r#   s     r   testErrDecode2zDerSequenceTests.testErrDecode2  s$    m*cjj!N2CDr   c                    t               }| j                  t        |j                  t	        d             | j                  t        |j                  t	        d             | j                  t        |j                  t	        d             y )Nz0 u   0u   0r   r#   s     r   testErrDecode3zDerSequenceTests.testErrDecode3  s]    m*cjj!4N2OP*cjj!4N2OP*cjj!4N2OPr   c                 R   t        g d      j                         }t               j                  |d       t               j                  |d       | j                  t        t               j                  |d       | j                  t        t               j                  |d       y )Nr0   r3   r'   r'   )nr_elements)r3   r'   r0   )r   r7   r   r!   rA   r   r   )r   der_bins     r   test_expected_nr_elementsz*DerSequenceTests.test_expected_nr_elements"  s    i(//1W!4W%8*km&:&:GQRS*km&:&:GQVWr   c                    t        g d      j                         }t        ddt        ddg      g      j                         }t               j                  |d       t               j                  |d       t               j                  |d       | j                  t        t               j                  |d       y )	Nr   r0   r3   r'   r   T)only_ints_expectedFr   )r   der_bin1der_bin2s      r   test_expected_only_integersz,DerSequenceTests.test_expected_only_integers*  s    y)0021k1a&&9:;BBDX$?X%@X%@*km&:&:HY]^r   N)rY   rZ   r[   rb   rg   ro   rs   ry   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   r   r\   r   r   r   r   F  st    P??C32JW2,,#%)4&/
1N=E
QX_r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)DerOctetStringTestsc                 ~    t        t        d            }| j                  |j                         t        d             y )N   ÿu   ÿ)r
   r   r    r!   r#   s     r   rb   zDerOctetStringTests.testInit17  s+    QvY'q'89r   c                     t               }| j                  |j                         t        d             t        d      |_        | j                  |j                         t        d             y )N r?   )r
   r    r!   r   r"   r#   s     r   rg   zDerOctetStringTests.testEncode1;  sK    q}5
mq);'<=r   c                    t               }|j                  t        d             | j                  |j                  t        d             |j                  t        d             | j                  |j                  t        d             y )Nr   r   r   r?   )r
   rA   r   r    r"   r#   s     r   r}   zDerOctetStringTests.testDecode1E  s\    

1Z=!ae,

1'()a
m4r   c                 l    t               }| j                  ||j                  t        d                   y )Nr   )r
   r    rA   r   r#   s     r   r   zDerOctetStringTests.testDecode2N  s'    cjj:78r   c                 l    t               }| j                  t        |j                  t	        d             y )Nu   ÿ)r
   r   r   rA   r   r#   s     r   r   z"DerOctetStringTests.testErrDecode1S  s&    *cjj!4F2GHr   N)rY   rZ   r[   rb   rg   r}   r   r   r\   r   r   r   r   5  s    :>59
Ir   r   c                       e Zd Zd Zd Zy)DerNullTestsc                 j    t               }| j                  |j                         t        d             y Nz )r	   r    r!   r   r#   s     r   rg   zDerNullTests.testEncode1Z  s#    iq}5r   c                 l    t               }| j                  ||j                  t        d                   y r   )r	   r    rA   r   r#   s     r   r}   zDerNullTests.testDecode1`  s&    icjj:78r   N)rY   rZ   r[   rg   r}   r\   r   r   r   r   X  s    69r   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	DerObjectIdTestsc                 Z    t        d      }| j                  |j                         d       y )Nz1.1s   ))r   r    r!   r#   s     r   rb   zDerObjectIdTests.testInit1g  s"    % |4r   c                    t        d      }| j                  |j                         d       t               }d|_        | j                  |j                         d       t        d      }| j                  |j                         d       y )N1.2.840.113549.1.1.1   	*H
2.999.1234   7R)r   r    r!   r|   r#   s     r   rg   zDerObjectIdTests.testEncode1k  sj    01'VWm*	'VW,''BCr   c                     t        d      }| j                  t        |j                         t        d      }| j                  t        |j                         y )Nz3.4z1.40)r   r   r   r!   r#   s     r   ro   zDerObjectIdTests.testEncode2v  s>    % *cjj1&!*cjj1r   c                 r    t               }|j                  d       | j                  |j                  d       y )Nr   r   r   rA   r    r|   r#   s     r   r}   zDerObjectIdTests.testDecode1  s+    m

BC$:;r   c                 Z    t               }| j                  ||j                  d             y )Nr   )r   r    rA   r#   s     r   r   zDerObjectIdTests.testDecode2  s'    m

JK	Mr   c                 r    t               }|j                  d       | j                  |j                  d       y )Ns   	*H z1.2.840.113549.1.0.1r   r#   s     r   r   zDerObjectIdTests.testDecode3  s+    m

BC$:;r   c                 r    t               }|j                  d       | j                  |j                  d       y )Nr   r   r   r#   s     r   r   zDerObjectIdTests.testDecode4  s*    m

./L1r   N)
rY   rZ   r[   rb   rg   ro   r}   r   r   r   r\   r   r   r   r   e  s'    5	D2<M<
2r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)DerBitStringTestsc                 ~    t        t        d            }| j                  |j                         t        d             y )Nr   u    ÿ)r   r   r    r!   r#   s     r   rb   zDerBitStringTests.testInit1  s,    1V9%q);'<=r   c                 ~    t        t        d            }| j                  |j                         t	        d             y )Nr0   z )r   r   r    r!   r   r#   s     r   	testInit2zDerBitStringTests.testInit2  s,    :a=)q)C'DEr   c                 j   t               }| j                  |j                         t        d             t        t        d            }| j                  |j                         t        d             t               }t        d      |_        | j                  |j                         t        d             y )Nz r?    )r   r    r!   r   r|   r#   s     r   rg   zDerBitStringTests.testEncode1  s|    nq'891Z=)q)?'@AnjM	q)?'@Ar   c                    t               }|j                  t        d             | j                  |j                  t        d             |j                  t        d             | j                  |j                  t        d             y )N r   r   r?   )r   rA   r   r    r|   r#   s     r   r}   zDerBitStringTests.testDecode1  s[    n

1Z=!AbE*

1+,-AjM2r   c                 l    t               }| j                  ||j                  t        d                   y )Nr   )r   r    rA   r   r#   s     r   r   zDerBitStringTests.testDecode2  s&    ncjj:78r   N)rY   rZ   r[   rb   r   rg   r}   r   r\   r   r   r   r     s    >F
B39r   r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)DerSetOfTestsc                     t        t        d      t        d      g      }| j                  |j                         t	        d             y )Nr0   r3   z1)r   r   r    r!   r   r#   s     r   rb   zDerSetOfTests.testInit1  s5    
1z!}56q)H'IJr   c                 0   t               }| j                  |j                         t        d             |j	                  d       | j                  |j                         t        d             | j                  |j                         t        d             y )N1 r   1 )r   r    r!   r   addr#   s     r   rg   zDerSetOfTests.testEncode1  sf    jqz2
q)<'=>q)<'=>r   c                    t               }|j                  d       |j                  d       | j                  |j                         t	        d             t        ddg      }| j                  |j                         t	        d             y )Nri   r   u   1 ÿ)r   r   r    r!   r   r#   s     r   ro   zDerSetOfTests.testEncode2  se    jq)P'QRt}%q)P'QRr   c                     t               }|j                  d       | j                  t        |j                  t	        d             y )Nri   z   )r   r   r   r   r   r#   s     r   rs   zDerSetOfTests.testEncode3  s0    j*cggq1C/DEr   c                     t               }|j                  t        d             |j                  t        d             | j                  |j	                         t        d             y )Nz zz1 )r   r   r   r    r!   r#   s     r   ry   zDerSetOfTests.testEncode4  sF    j*.!"q)D'EFr   c                 $   t               }|j                  t        d             | j                  t	        |      d       |j                  t        d             | j                  t	        |      d       | j                  t        |      dg       y )Nr   r   r   r0   )r   rA   r   r    r   listr#   s     r   r}   zDerSetOfTests.testDecode1  si    j

1W:S!$

1()*S!$cA3'r   c                     t               }|j                  t        d             | j                  t	        |      d       t        |      }| j                  d|v        | j                  d|v        y )N   1 ÿr3   ri   r   )r   rA   r   r    r   r   r   )r   r$   ls      r   r   zDerSetOfTests.testDecode2  sX    j

1<=>S!$I
#	"r   c                 l    t               }| j                  t        |j                  t	        d             y )Nr   r   r   r   rA   r   r#   s     r   r   zDerSetOfTests.testDecode3  s)    j*cjj=>	@r   c                 l    t               }| j                  ||j                  t        d                   y )Nr   )r   r    rA   r   r#   s     r   r   zDerSetOfTests.testDecode4   s,    j

1DEF	Hr   c                 l    t               }| j                  t        |j                  t	        d             y )Nu   1 ÿªr  r#   s     r   r   zDerSetOfTests.testErrDecode1  s(    j*cjj9:	<r   N)rY   rZ   r[   rb   rg   ro   rs   ry   r}   r   r   r   r   r\   r   r   r   r     s:    K?SFG(#@H<r   r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)DerBooleanTestsc                 Z    t        d      }| j                  |j                         d       y )NF    r   r    r!   r#   s     r   rg   zDerBooleanTests.testEncode1  s"    7r   c                 Z    t        d      }| j                  |j                         d       y )NT   r
  r#   s     r   ro   zDerBooleanTests.testEncode2  s"    7r   c                 ^    t        dd      }| j                  |j                         d       y )NF   r1       r
  r#   s     r   rs   zDerBooleanTests.testEncode3  s$    .7r   c                 ^    t        dd      }| j                  |j                         d       y )NFr7   r8       r
  r#   s     r   ry   zDerBooleanTests.testEncode4  s%    .'>?r   c                 r    t               }|j                  d       | j                  |j                  d       y )Nr	  Fr   rA   r    r|   r#   s     r   r}   zDerBooleanTests.testDecode1"  s)    l

?#E*r   c                 r    t               }|j                  d       | j                  |j                  d       y )Nr  Tr  r#   s     r   r   zDerBooleanTests.testDecode2'  s)    l

?#D)r   c                 v    t        d      }|j                  d       | j                  |j                  d       y )Nr  r  r  Fr  r#   s     r   r   zDerBooleanTests.testDecode3,  s,    $'

?#E*r   c                 v    t        d      }|j                  d       | j                  |j                  d       y )Nr7   r8   r  Fr  r#   s     r   r   zDerBooleanTests.testDecode41  s-    $'

*+E*r   c                 Z    t               }| j                  t        |j                  d       y )Ns    r   r   r   rA   r#   s     r   testErrorDecode1z DerBooleanTests.testErrorDecode16  s    l*cjj/Br   c                 Z    t               }| j                  t        |j                  d       y )Ns    r  r#   s     r   testErrorDecode2z DerBooleanTests.testErrorDecode2;  s     l*cjj2EFr   N)rY   rZ   r[   rg   ro   rs   ry   r}   r   r   r   r  r  r\   r   r   r  r    s7    888@
+
*
+
+
C
Gr   r  c                 $   ddl m} g }| |t              z  }| |t              z  }| |t              z  }| |t
              z  }| |t              z  }| |t              z  }| |t              z  }| |t              z  }| |t              z  }|S )Nr   )list_test_cases)Crypto.SelfTest.st_commonr  r   r^   r   r   r   r   r   r   r  )configr  	listTestss      r   	get_testsr"  A  s    9I00I11I!122I!455I..I!122I!233I//I11Ir   __main__c                  <    t        j                  t                     S )N)unittest	TestSuiter"  r\   r   r   <lambda>r'  P  s    H&&y{3 r   suite)defaultTest)__doc__r%  Crypto.Util.py3compatCrypto.Util.asn1r   r   r   r   r   r	   r
   r   r   TestCaser   r^   r   r   r   r   r   r   r  r"  rY   r(  mainr\   r   r   <module>r/     s  D &  #6 6 6
vAX&& vAp_Ih'' _IDl_x(( l_^!I(++ !IF98$$ 9.2x(( .2b$9)) $9NO<H%% O<d/Gh'' /Gd   z3EHMMg& r   