ó
BwLc           @   s¤   d  Z  d Z d d l Z d d l Z d d l m Z m Z d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ	 i  d	 „ Z
 e d
 k r  d „  Z e j d d ƒ n  d S(   s   Self-tests for Crypto.Util.asn1s   $Id$iÿÿÿÿN(   t   DerSequencet	   DerObjectt   DerObjectTestsc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s[   t  d ƒ } |  j | j ƒ  d ƒ d | _ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ d  S(   Nt   3t   3 t   Es   3E(   R   t   assertEqualst   encodet   payload(   t   selft   der(    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testObjEncode1"   s
    	c         C   sH   t  d ƒ } |  j | j ƒ  d ƒ t  d ƒ } |  j | j ƒ  d ƒ d  S(   Nt   SEQUENCEt   0 s
   BIT STRINGs    (   R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testObjEncode2,   s    c         C   s;   t  d ƒ } d d | _ |  j | j ƒ  d d d ƒ d  S(   Nt   4t   0i€   s   4€(   R   R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testObjEncode33   s    c         C   s@   t  ƒ  } | j d ƒ |  j | j d ƒ |  j | j d ƒ d  S(   Ns    s   s    (   R   t   decodeR   R   t   typeTag(   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testObjDecode19   s    	c         C   sL   t  ƒ  } | j d d d ƒ |  j | j d d ƒ |  j | j d ƒ d  S(   Ns   "€t   1i€   s   "(   R   R   R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testObjDecode2@   s    	(   t   __name__t
   __module__R   R   R   R   R   (    (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyR       s
   	
			t   DerSequenceTestsc           B   s³   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 RS(   c         C   s‚   t  ƒ  } |  j | j ƒ  d ƒ |  j | j ƒ  ƒ | j d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  ƒ |  j | j ƒ  d ƒ d  S(   NR   i    s   0 (   R    R   R   t   failIft   hasOnlyIntst   appendt
   failUnless(   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testEncode1I   s    	c         C   sØ   t  ƒ  } | j d ƒ |  j | j ƒ  d ƒ d | d <|  j t | ƒ d ƒ |  j | d d ƒ |  j | d d ƒ |  j | j ƒ  d ƒ d g | (|  j t | ƒ d ƒ |  j | d d ƒ |  j | j ƒ  d ƒ d  S(   Ni   s   0i   i    iÿÿÿÿs   0(   R    R   R   R   t   len(   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testEncode2U   s    	

c         C   s0   t  ƒ  } | j d ƒ |  j | j ƒ  d ƒ d  S(   Nl   €s   0€(   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testEncode3f   s    	c         C   s0   t  ƒ  } | j d ƒ |  j | j ƒ  d ƒ d  S(   Ni   i   s	  0‚‚                                                                                                                                                                                                                                                                l‰                                                                                                                                                                                                                                                                                    (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testEncode4l   s    	c         C   s0   t  ƒ  } | j d ƒ |  j | j ƒ  d ƒ d  S(   Nl   ÿ s   0 ÿ(   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testEncode5…   s    	c         C   sÍ   t  ƒ  } | j d ƒ | j d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  ƒ | j d ƒ d d g | d )|  j t | ƒ d ƒ |  j | d d d g ƒ |  j | d d !d g ƒ |  j | j ƒ  d	 ƒ d  S(
   Nl   €l   ÿ s
   0€ ÿi   i	   i   i   iÿÿÿÿs   0
€	(   R    R   R   R   R   R   R   t   assertEqual(   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testEncode6‹   s    	c         C   sP   t  ƒ  } | j d ƒ | j d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  ƒ d  S(   Nl   €t      s
   0€   (   R    R   R   R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyR%   š   s
    	c         C   sž   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ d  S(   NR   i    s   0 i   (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode1¤   s    	c         C   sD   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ d  S(   Ns   0i   i    i   (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode2²   s    	c         C   sD   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ d  S(   Ns   0€i   i    l   €(   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode3¹   s    	c         C   sD   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ d  S(   Ns	  0‚‚                                                                                                                                                                                                                                                                i   i    i   i   l‰                                                                                                                                                                                                                                                                                    (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode4À   s    	c         C   sD   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ d  S(   Ns   0 ÿi   i    l   ÿ (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode5Ú   s    	c         C   sX   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ |  j | d d ƒ d  S(   Ns
   0€ ÿi   i    l   €i   l   ÿ (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode6á   s
    	c         C   sl   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ |  j | d d ƒ |  j | d d ƒ d  S(	   Ns   0
€$¶c i   i    l   €i   s   $¶ci   s    (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode7é   s    	c         C   sX   t  ƒ  } | j d ƒ |  j t | ƒ d ƒ |  j | d d ƒ |  j | d d ƒ d  S(   Ns   0$¶c i   i    s   $¶ci   s    (   R    R   R   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testDecode8ò   s
    	c         C   sO   t  ƒ  } |  j t | j d ƒ |  j t | j d ƒ |  j t | j d ƒ d  S(   Nt    t    R   (   R    t   assertRaisest
   ValueErrorR   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testErrDecode1ú   s    	c         C   s&   t  ƒ  } |  j t | j d t ƒ d  S(   Nt   0  (   R    R1   R2   R   t   True(   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testErrDecode2  s    	c         C   sO   t  ƒ  } |  j t | j d ƒ |  j t | j d ƒ |  j t | j d ƒ d  S(   Ns   0 s   0s   0(   R    R1   R2   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testErrDecode3  s    	c         C   s#   t  ƒ  } |  j t | j d ƒ d  S(   Ns   0ÿ(   R    R1   R2   R   (   R	   R
   (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   testErrDecode4  s    	(   R   R   R   R    R!   R"   R#   R%   R'   R(   R)   R*   R+   R,   R-   R.   R3   R6   R7   R8   (    (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyR   G   s&   							
												c         C   s:   d d l  m } g  } | | t ƒ 7} | | t ƒ 7} | S(   Niÿÿÿÿ(   t   list_test_cases(   t   Crypto.SelfTest.st_commonR9   R   R   (   t   configR9   t	   listTests(    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt	   get_tests  s
    t   __main__c           C   s   t  j t ƒ  ƒ S(   N(   t   unittestt	   TestSuiteR=   (    (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   <lambda>  s    t   defaultTestt   suite(   t   __doc__t   __revision__R?   t   syst   Crypto.Util.asn1R    R   t   TestCaseR   R   R=   R   RC   t   main(    (    (    sB   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Util/test_asn1.pyt   <module>   s   'Î	