ó
t0^c           @   sń   d  Z  d d l Z d d l Z d d l m Z m Z m Z m Z e j d  Z	 e j
 d  Z e j
 d  Z d e j f d     YZ d	 e f d
     YZ d e j e f d     YZ d e j e f d     YZ e d k rí e j   n  d S(   s   Tests for josepy.jwk.i˙˙˙˙N(   t   errorst	   json_utilt	   test_utilt   utils   dsa512_key.pems   rsa256_key.pems   rsa512_key.pemt   JWKTestc           B   s    e  Z d  Z d   Z d   Z RS(   s   Tests for josepy.jwk.JWK.c         C   s-   d d l  m } |  j t j | j t  d  S(   Ni˙˙˙˙(   t   JWK(   t
   josepy.jwkR   t   assertRaisesR    t   Errort   loadt   DSA_PEM(   t   selfR   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt	   test_load   s    c         C   s-   d d l  m } |  j t j | j t  d  S(   Ni˙˙˙˙(   t   JWKRSA(   R   R   R   R    R   R	   R
   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_load_subclass_wrong_type   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR      s   	t   JWKTestBaseMixinc           B   s&   e  Z d  Z e Z d   Z d   Z RS(   s"   Mixin test for JWK subclass tests.c         C   s    |  j  |  j |  j j    d  S(   N(   t   assertEqualt
   thumbprintt   jwk(   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_thumbprint_private   s    c         C   s&   |  j  |  j |  j j   j    d  S(   N(   R   R   R   t
   public_key(   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_thumbprint_public    s    (   R   R   R   t   NotImplementedR   R   R   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR      s   	t
   JWKOctTestc           B   sJ   e  Z d  Z d Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   s   Tests for josepy.jwk.JWKOct.s    óçž¨`ŇÚpé}Î>ĐüIžÍ'Ôoô1ę(˛ic         C   sF   d d l  m } | d d  |  _ i d d 6t j d  d 6|  _ d  S(   Ni˙˙˙˙(   t   JWKOctt   keyt   foot   octt   ktyt   k(   R   R   R   R   t   encode_b64joset   jobj(   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   setUp+   s    c         C   s    |  j  |  j j   |  j  d  S(   N(   R   R   t   to_partial_jsonR"   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_to_partial_json0   s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni˙˙˙˙(   R   (   R   R   R   R   t	   from_jsonR"   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_from_json3   s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni˙˙˙˙(   R   (   R   R   t   hashR&   R"   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_from_json_hashable7   s    c         C   s0   d d l  m } |  j |  j | j d   d  S(   Ni˙˙˙˙(   R   R   (   R   R   R   R   R	   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR   ;   s    c         C   s#   |  j  |  j j   |  j k  d  S(   N(   t
   assertTrueR   R   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_public_key?   s    (
   R   R   R   R   R#   R%   R'   R)   R   R+   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR   $   s   					t
   JWKRSATestc           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 RS(   s   Tests for josepy.jwk.JWKRSA.s    KÜ#3ĘíË<đšH˛*l˝$ĺ&|OÔ °Yc         C   s$  d d l  m } | d t j    |  _ i d d 6d d 6d d	 6|  _ | d t j   j  |  _ | d t j    |  _	 i d d 6d d 6d
 d	 6|  _
 | d t  |  _ |  j j   |  _ d |  j d <|  j j   |  _ |  j j i d d 6d d 6d d 6d d 6d d 6d d 6 |  j |  _ d  S(   Ni˙˙˙˙(   R   R   t   RSAR   t   AQABt   es+   m2Fylv-Uz7trgTW8EBHP3FQSMeZs2GNQ6VRo1sIVJEkt   nsV   rHVztFHtH92ucFJD_N_HW9AsdRsUuHUBBBDlHwNlRd3fp580rv2-6QWE30cWgdmJS86ObRz6lUTor4R0T-3C5Qs+   lPQED_EPTV0UIBfNI3KP2d9Jlrc2mrMllmf946bu-CEt   dt   zUVNZn4lLLBD1R6NE8TKNQt   pt   wcfKfc7kl5jfqXArCRSURQt   qt   CWJFq43QvT5Bm5iN8n1okQt   dpt   bHh2u7etM8LKKCF2pY2UdQt   dqt   oi45cEkbVoJjAbnQpFY87Qt   qi(   R   R   t
   RSA256_KEYR   t   jwk256t
   jwk256jsont   _wrappedt   jwk256_not_comparablet
   RSA512_KEYt   jwk512t
   jwk512jsont   privatet   copyt   private_json_smallt   private_jsont   updateR   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR#   J   s2    c         C   s9   |  j  t |  j j t j   |  j |  j |  j  d  S(   N(   R*   t
   isinstanceR@   R   R   t   ComparableRSAKeyR   R=   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_init_auto_comparablek   s    	c         C   s-   d d l  m } |  j d | j d   d  S(   Ni˙˙˙˙(   R   t   AAi    (   R   R   R   t   _encode_param(   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_encode_param_zerop   s    c         C   s0   |  j  |  j |  j  |  j  |  j |  j  d  S(   N(   R   R=   RB   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_equalsv   s    c         C   s0   |  j  |  j |  j  |  j  |  j |  j  d  S(   N(   t   assertNotEqualR=   RB   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_not_equalsz   s    c         C   s9   d d l  m } |  j |  j | j t j d    d  S(   Ni˙˙˙˙(   R   s   rsa256_key.pem(   R   R   R   RD   R	   R   t   load_vector(   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR   ~   s    c         C   s    |  j  |  j |  j j    d  S(   N(   R   R=   RD   R   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR+      s    c         C   sX   |  j  |  j j   |  j  |  j  |  j j   |  j  |  j  |  j j   |  j  d  S(   N(   R   R=   R$   R>   RB   RC   RD   RG   (   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR%      s    c         C   sq   d d l  m } |  j |  j | j |  j   |  j |  j | j |  j   |  j |  j | j |  j	   d  S(   Ni˙˙˙˙(   R   (
   R   R   R   R=   R&   R>   RB   RC   RD   RG   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR'      s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni˙˙˙˙(   R   (   R   R   R   RD   R&   RF   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_from_json_private_small   s    c         C   s:   d d l  m } |  j d =|  j t j | j |  j  d  S(   Ni˙˙˙˙(   R   R5   (   R   R   RG   R   R    R   R&   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt%   test_from_json_missing_one_additional   s    
c         C   s*   d d l  m } t | j |  j   d  S(   Ni˙˙˙˙(   R   (   R   R   R(   R&   R>   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR)      s    c         C   sp   d d l  m } |  j t j | j i d d 6d d 6d d 6 |  j t j | j i d d 6d d 6d	 d 6 d  S(
   Ni˙˙˙˙(   R   R-   R   R.   R/   t    R0   t   1(   R   R   R   R    t   DeserializationErrorR&   (   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt    test_from_json_non_schema_errors    s
    c         C   sB   d d l  m } | j d  } |  j t j | j    d  d  S(   Ni˙˙˙˙(   R   sÇ  {
    "kty": "RSA",
    "kid": "bilbo.baggins@hobbiton.example",
    "use": "sig",
    "n": "n4EPtAOCc9AlkeQHPzHStgAbgs7bTZLwUBZdR8_KuKPEHLd4rHVTeT-O-XV2jRojdNhxJWTDvNd7nqQ0VEiZQHz_AJmSCpMaJMRBSFKrKb2wqVwGU_NsYOYL-QtiWN2lbzcEe6XC0dApr5ydQLrHqkHHig3RBordaZ6Aj-oBHqFEHYpPe7Tpe-OfVfHd1E6cS6M1FZcD1NNLYD5lFHpPI9bTwJlsde3uhGqC0ZCuEHg8lhzwOHrtIQbS0FVbb9k3-tVTU4fg_3L_vniUFAKwuCLqKnS2BYwdq_mzSnbLY7h_qixoR7jig3__kRhuaxwUkRz5iaiQkqgc5gHdrNP5zw",
    "e": "AQAB"
}t@   f63838e96077ad1fc01c3f8405774dedc0641f558ebb4b40dccf5f9b6d66a932(   R   R   t
   json_loadsR   t   binasciit   hexlifyR   (   R   R   R   (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   test_thumbprint_go_jose¨   s    	(   R   R   R   R   R#   RK   RN   RO   RQ   R   R+   R%   R'   RS   RT   R)   RX   R]   (    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyR,   C   s    	!												t   __main__(   R   R[   t   unittestt   josepyR    R   R   R   RR   R
   t   load_rsa_private_keyR<   RA   t   TestCaseR   t   objectR   R   R,   R   t   main(    (    (    s3   /usr/lib/python2.7/site-packages/josepy/jwk_test.pyt   <module>   s   "v