ó
®č­]c           @   s
  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m	 Z
 d d l m Z d d l m Z e j d  Z e j d e j d   Z d	 e j f d
     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d      YZ d! e j f d"     YZ  e! d# k re j"   n  d S($   s   Tests for acme.challenges.i’’’’N(   t   parse(   t   errors(   t	   test_utils   cert.pemt   keys   rsa512_key.pemt   ChallengeTestc           B   s   e  Z d    Z RS(   c         C   sS   d d l  m } d d l  m } | i d d 6 } |  j | | j | j   d  S(   Ni’’’’(   t	   Challenge(   t   UnrecognizedChallenget   foot   type(   t   acme.challengesR   R   t   assertEqualt	   from_jsont   jobj(   t   selfR   R   t   chall(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_from_json_unrecognized   s    (   t   __name__t
   __module__R   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR      s   t   UnrecognizedChallengeTestc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s6   d d l  m } i d d 6|  _ | |  j  |  _ d  S(   Ni’’’’(   R   R   R   (   R	   R   R   R   (   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   setUp   s    c         C   s    |  j  |  j |  j j    d  S(   N(   R
   R   R   t   to_partial_json(   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_to_partial_json$   s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   R   (   R	   R   R
   R   R   R   (   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_from_json'   s    (   R   R   R   R   R   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR      s   		t%   KeyAuthorizationChallengeResponseTestc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s+   d   } t  j   |  _ | |  j j _ d  S(   Nc         S   s   |  d k s t   d S(   Nt   tokenR   (   t   AssertionError(   t   name(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   _encode0   s    (   t   mockt   MockR   t   encodet   side_effect(   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   /   s    	c         C   sE   d d l  m } | d d  } |  j | j |  j t j     d  S(   Ni’’’’(   t!   KeyAuthorizationChallengeResponset   key_authorizations/   foo.oKGqedy-b-acd5eoybm2f-NVFxvyOoET5CNy3xnv8WY(   R	   R    t
   assertTruet   verifyR   t   KEYt
   public_key(   R   R    t   response(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_verify_ok6   s    	c         C   sE   d d l  m } | d d  } |  j | j |  j t j     d  S(   Ni’’’’(   R    R!   s/   bar.oKGqedy-b-acd5eoybm2f-NVFxvyOoET5CNy3xnv8WY(   R	   R    t   assertFalseR#   R   R$   R%   (   R   R    R&   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_verify_wrong_token<   s    	c         C   sE   d d l  m } | d d  } |  j | j |  j t j     d  S(   Ni’’’’(   R    R!   s   foo.oKGqedy-b-acd5eoybm2f-NVFxv(   R	   R    R(   R#   R   R$   R%   (   R   R    R&   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_verify_wrong_thumbprintB   s    	c         C   sE   d d l  m } | d d  } |  j | j |  j t j     d  S(   Ni’’’’(   R    R!   s0   .foo.oKGqedy-b-acd5eoybm2f-NVFxvyOoET5CNy3xnv8WY(   R	   R    R(   R#   R   R$   R%   (   R   R    R&   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_verify_wrong_formH   s    	(   R   R   R   R'   R)   R*   R+   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   -   s
   				t   DNS01ResponseTestc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s{   d d l  m } | d d  |  _ i d d 6d d 6d d	 6|  _ d d
 l  m } | d d  |  _ |  j j t  |  _ d  S(   Ni’’’’(   t   DNS01ResponseR!   u   foot	   challenget   resources   dns-01R   t   keyAuthorization(   t   DNS01R   t   xi   t   xxxxxxxxxxxxxxxx(   R	   R-   t   msgt   jmsgR1   R   R&   R$   (   R   R-   R1   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   S   s    c         C   s\   |  j  d   |  j j   D |  j j    |  j j t  |  j  |  j |  j j    d  S(   Nc         S   s+   i  |  ]! \ } } | d  k r | |  q S(   R0   (    (   t   .0t   kt   v(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pys
   <dictcomp>a   s   	 (   R
   R5   t   itemsR4   R   t   _dump_authorization_keyt   True(   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   `   s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   R-   (   R	   R-   R
   R4   R   R5   (   R   R-   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   f   s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   R-   (   R	   R-   t   hashR   R5   (   R   R-   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_from_json_hashablej   s    c         C   sS   t  j j t j d   } | j   } |  j j |  j d |  } |  j	 |  d  S(   Ns   rsa256_key.pemt   local(
   t   joset   JWKRSAt   loadR   t   load_vectorR%   R&   t   simple_verifyR   R(   (   R   t   key2R%   t   verified(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_simple_verify_failuren   s    c         C   s8   t  j   } |  j j |  j d |  } |  j |  d  S(   NR>   (   R$   R%   R&   RC   R   R"   (   R   R%   RE   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_simple_verify_successt   s    (   R   R   R   R   R   R=   RF   RG   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR,   P   s   					t	   DNS01Testc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sF   d d l  m } | d t j d   |  _ i d d 6d d 6|  _ d  S(   Ni’’’’(   R1   R   s+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ+PCt92wr+oAs   dns-01R   s+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA(   R	   R1   R?   t   decode_b64joseR4   R5   (   R   R1   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   |   s    c         C   s    |  j  d |  j j d   d  S(   Ns   _acme-challenge.www.example.coms   www.example.com(   R
   R4   t   validation_domain_name(   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_validation_domain_name   s    	c         C   s    |  j  d |  j j t   d  S(   Nt+   rAa7iIg4K2y63fvUhCfy8dP1Xl7wEhmQq0oChTcE3Zk(   R
   R4   t
   validationR$   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_validation   s    c         C   s    |  j  |  j |  j j    d  S(   N(   R
   R5   R4   R   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR      s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   R1   (   R	   R1   R
   R4   R   R5   (   R   R1   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR      s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   R1   (   R	   R1   R<   R   R5   (   R   R1   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=      s    (   R   R   R   RK   RN   R   R   R=   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRH   z   s   						t   HTTP01ResponseTestc           B   s­   e  Z d    Z d   Z d   Z d   Z d   Z e j d  d    Z	 e j d  d    Z
 e j d  d    Z e j d  d	    Z e j d  d
    Z RS(   c         C   s{   d d l  m } | d d  |  _ i d d 6d d 6d d	 6|  _ d d
 l  m } | d d  |  _ |  j j t  |  _ d  S(   Ni’’’’(   t   HTTP01ResponseR!   u   fooR.   R/   s   http-01R   R0   (   t   HTTP01R   R2   i   R3   (   R	   RP   R4   R5   RQ   R   R&   R$   (   R   RP   RQ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR      s    c         C   s\   |  j  d   |  j j   D |  j j    |  j j t  |  j  |  j |  j j    d  S(   Nc         S   s+   i  |  ]! \ } } | d  k r | |  q S(   R0   (    (   R6   R7   R8   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pys
   <dictcomp>«   s   	 (   R
   R5   R9   R4   R   R:   R;   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   Ŗ   s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   RP   (   R	   RP   R
   R4   R   R5   (   R   RP   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   °   s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   RP   (   R	   RP   R<   R   R5   (   R   RP   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=   µ   s    c         C   s>   t  j j t j d   } |  j j |  j d | j    d  S(   Ns   rsa256_key.pemR>   (	   R?   R@   RA   R   RB   R&   RC   R   R%   (   R   RD   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt(   test_simple_verify_bad_key_authorization¹   s    s   acme.challenges.requests.getc         C   sl   |  j  j t  } t j d |  | _ |  j |  j j |  j  d t j	     | j
 |  j  j d   d  S(   Nt   textR>   (   R   RM   R$   R   t	   MagicMockt   return_valueR"   R&   RC   R%   t   assert_called_once_witht   uri(   R   t   mock_getRM   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt"   test_simple_verify_good_validation½   s
    c         C   sA   t  j d d  | _ |  j |  j j |  j d t j     d  S(   NRS   t   !R>   (	   R   RT   RU   R(   R&   RC   R   R$   R%   (   R   RX   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt!   test_simple_verify_bad_validationÅ   s    c         C   s}   d d l  m } t j d |  j j t  | j  | _ |  j	 |  j
 j |  j d t j     | j |  j j d   d  S(   Ni’’’’(   RP   RS   R>   (   R	   RP   R   RT   R   RM   R$   t   WHITESPACE_CUTSETRU   R"   R&   RC   R%   RV   RW   (   R   RX   RP   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt(   test_simple_verify_whitespace_validationĖ   s    	c         C   s;   t  j j | _ |  j |  j j |  j d t j	     d  S(   NR>   (
   t   requestst
   exceptionst   RequestExceptionR   R(   R&   RC   R   R$   R%   (   R   RX   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt#   test_simple_verify_connection_errorÕ   s    c         C   sZ   |  j  j |  j d d d t j   d d |  j d t j | j d d d  j	  d  S(	   Nt   domainR>   t   account_public_keyt   porti  s
   local:8080i    i   (
   R&   RC   R   R$   R%   R
   t   urllib_parset   urlparset
   mock_callst   netloc(   R   RX   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_simple_verify_portŪ   s
    	(   R   R   R   R   R   R=   RR   R   t   patchRY   R[   R]   Ra   Ri   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRO      s   					
t
   HTTP01Testc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sF   d d l  m } | d t j d   |  _ i d d 6d d 6|  _ d  S(   Ni’’’’(   RQ   R   s+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ+PCt92wr+oAs   http-01R   s+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA(   R	   RQ   R?   RI   R4   R5   (   R   RQ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ę   s    c         C   s   |  j  |  j j d  d  S(   NsG   /.well-known/acme-challenge/evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA(   R
   R4   t   path(   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt	   test_pathš   s    c         C   s    |  j  d |  j j d   d  S(   NsY   http://example.com/.well-known/acme-challenge/evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oAs   example.com(   R
   R4   RW   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_uriō   s    c         C   s    |  j  |  j |  j j    d  S(   N(   R
   R5   R4   R   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ś   s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   RQ   (   R	   RQ   R
   R4   R   R5   (   R   RQ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ż   s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   RQ   (   R	   RQ   R<   R   R5   (   R   RQ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=     s    c         C   s6   |  j  |  j j  |  j |  j j d d  j  d  S(   NR   s   ..(   R"   R4   t
   good_tokenR(   t   update(   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_good_token  s    (	   R   R   R   Rm   Rn   R   R   R=   Rq   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRk   ä   s   	
					t   TLSSNI01ResponseTestc           B   s¶   e  Z d    Z d   Z d   Z d   Z d   Z e j d  e j d  d     Z	 d   Z
 d	   Z d
   Z d   Z e j d d e d    Z e j d  d    Z RS(   c         C   s   d d l  m } | d t j d   |  _ |  j j t  |  _ i d d 6d d 6|  j j d	 6|  _ d
 } d } | | |  _	 | d | d |  _
 d |  _ d  S(   Ni’’’’(   t   TLSSNI01R   t    a82d5ff8ef740d12881f6d3c2277ab2eR.   R/   s
   tls-sni-01R   R0   t    dc38d9c3fa1a4fdcc3a5501f2d38583ft    b7793728f084394f2a1afd459556bb5ct   .s   .acme.invalids   foo.com(   R	   Rs   R?   t	   b64decodeR   R&   R$   R!   R5   t   zt   z_domainRb   (   R   Rs   t   label1t   label2(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR     s    c         C   s6   |  j  |  j |  j j  |  j  |  j |  j j  d  S(   N(   R
   Ry   R&   Rz   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_z_and_domain!  s    c         C   s\   |  j  d   |  j j   D |  j j    |  j j t  |  j  |  j |  j j    d  S(   Nc         S   s+   i  |  ]! \ } } | d  k r | |  q S(   R0   (    (   R6   R7   R8   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pys
   <dictcomp>&  s   	 (   R
   R5   R9   R&   R   R:   R;   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   %  s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   t   TLSSNI01Response(   R	   R~   R
   R&   R   R5   (   R   R~   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   +  s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   R~   (   R	   R~   R<   R   R5   (   R   R~   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=   /  s    s$   acme.challenges.socket.gethostbynames%   acme.challenges.crypto_util.probe_snic      	   C   s;  d | _  |  j j d  | j d  | j d d d |  j j d |  j  |  j j d d d | j d d d t j d t j  |  j j d d d | j d t j d d d t j  |  j j d d d	 | j d t j d t j d t j d d	  |  j j d d d
 | j d t j d t j d |  j  d  S(   Ns	   127.0.0.1s   foo.comt   hostRd   R   s   8.8.8.8iŅ  t   bart   bazt   xxx(	   RU   R&   t
   probe_certRV   t   PORTRz   t   assert_called_withR   t   ANY(   R   t   mock_probe_snit   mock_gethostbyname(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_probe_cert3  s&    		
			"	c         C   sT   t  j d  } |  j j |  \ } } |  j | |  |  j |  j j |   d  S(   Ns   rsa512_key.pem(   R   t   load_pyopenssl_private_keyR&   t   gen_certR
   R"   t   verify_cert(   R   t   key1t   certRD   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_gen_verify_certN  s    c         C   sN   |  j  j   \ } } |  j t | t j j   |  j |  j  j |   d  S(   N(   R&   R   R"   t
   isinstancet   OpenSSLt   cryptot   PKeyR   (   R   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_gen_verify_cert_gen_keyT  s    c         C   s&   |  j  |  j j t j d    d  S(   Ns   cert.pem(   R(   R&   R   R   t	   load_cert(   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_verify_bad_certY  s    c         C   s>   t  j j t j d   } |  j j |  j d | j    d  S(   Ns   rsa256_key.pemR>   (	   R?   R@   RA   R   RB   R&   RC   R   R%   (   R   RD   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRR   ]  s    s,   acme.challenges.TLSSNI01Response.verify_certt   autospecc         C   sl   t  j j | _ |  j t  j j |  j j |  j |  j t	 j
   d t  j j  | j |  j t  j j  d  S(   NR   (   R   t   sentinelt   verificationRU   R
   R&   RC   R   Rb   R$   R%   R   RV   (   R   t   mock_verify_cert(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_simple_verifya  s    s+   acme.challenges.TLSSNI01Response.probe_certc         C   s;   t  j | _ |  j |  j j |  j |  j t j	     d  S(   N(
   R   t   ErrorR   R(   R&   RC   R   Rb   R$   R%   (   R   t   mock_probe_cert(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt'   test_simple_verify_false_on_probe_errork  s    (   R   R   R   R}   R   R   R=   R   Rj   R   R   R   R   RR   R;   R   R   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRr     s   									
t   TLSSNI01Testc           B   sV   e  Z d    Z d   Z d   Z d   Z d   Z d   Z e j	 d  d    Z
 RS(   c         C   s   i d d 6d d 6|  _  d  S(   Ns
   tls-sni-01R   Rt   R   (   R5   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   t  s    c      	   C   s¼   d d l  m } t j d t   } t j d  | d t j d   } | d  k	 s\ t	  |  j
 t |  d k  |  j
 t | d j t   |  j
 d t | d j  k  Wd  QX| S(	   Ni’’’’(   Rs   t   recordt   alwaysR   Rt   i   t
   deprecated(   R	   Rs   t   warningst   catch_warningsR;   t   simplefilterR?   Rx   t   NoneR   R"   t   lent
   issubclasst   categoryt   DeprecationWarningt   strt   message(   R   Rs   t   warnR4   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   _msgz  s    &c         C   s#   |  j  |  j |  j   j    d  S(   N(   R
   R5   R®   R   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR     s    c         C   s6   d d l  m } |  j |  j   | j |  j   d  S(   Ni’’’’(   Rs   (   R	   Rs   R
   R®   R   R5   (   R   Rs   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR     s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   Rs   (   R	   Rs   R<   R   R5   (   R   Rs   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=     s    c         C   sF   d d l  m } t j d  |  j d <|  j t j | j |  j  d  S(   Ni’’’’(   Rs   t   abcdR   (   R	   Rs   R?   t   encode_b64joseR5   t   assertRaisest   DeserializationErrorR   (   R   Rs   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt#   test_from_json_invalid_token_length  s    s)   acme.challenges.TLSSNI01Response.gen_certc         C   sN   d | _  |  j d |  j   j t d t j j  | j d t j j  d  S(   NR   R   t   cert_key(   s   certs   key(   s   certs   key(	   RU   R
   R®   RM   R$   R   R   R“   RV   (   R   t   mock_gen_cert(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRN     s    	(   R   R   R   R®   R   R   R=   R³   R   Rj   RN   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   r  s   						t   TLSALPN01ResponseTestc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s{   d d l  m } | d d  |  _ i d d 6d d 6d d	 6|  _ d d
 l  m } | d d  |  _ |  j j t  |  _ d  S(   Ni’’’’(   t   TLSALPN01ResponseR!   u   fooR.   R/   s   tls-alpn-01R   R0   (   t	   TLSALPN01R   R2   i   R3   (   R	   R·   R4   R5   Rø   R   R&   R$   (   R   R·   Rø   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ”  s    c         C   s\   |  j  d   |  j j   D |  j j    |  j j t  |  j  |  j |  j j    d  S(   Nc         S   s+   i  |  ]! \ } } | d  k r | |  q S(   R0   (    (   R6   R7   R8   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pys
   <dictcomp>Æ  s   	 (   R
   R5   R9   R4   R   R:   R;   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ®  s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   R·   (   R	   R·   R
   R4   R   R5   (   R   R·   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   “  s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   R·   (   R	   R·   R<   R   R5   (   R   R·   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=   ø  s    (   R   R   R   R   R   R=   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR¶     s   			t   TLSALPN01Testc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sF   d d l  m } | d t j d   |  _ i d d 6d d 6|  _ d  S(   Ni’’’’(   Rø   R   Rt   s   tls-alpn-01R   (   R	   Rø   R?   Rx   R4   R5   (   R   Rø   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   æ  s    c         C   s    |  j  |  j |  j j    d  S(   N(   R
   R5   R4   R   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   Č  s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   Rø   (   R	   Rø   R
   R4   R   R5   (   R   Rø   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   Ė  s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   Rø   (   R	   Rø   R<   R   R5   (   R   Rø   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=   Ļ  s    c         C   sF   d d l  m } t j d  |  j d <|  j t j | j |  j  d  S(   Ni’’’’(   Rø   RÆ   R   (   R	   Rø   R?   R°   R5   R±   R²   R   (   R   Rø   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR³   Ó  s    c         C   s   |  j  t |  j j t  d  S(   N(   R±   t   NotImplementedErrorR4   RM   R$   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRN   Ł  s    (   R   R   R   R   R   R=   R³   RN   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR¹   ½  s   						t   DNSTestc           B   sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C   sF   d d l  m } | d t j d   |  _ i d d 6d d 6|  _ d  S(   Ni’’’’(   t   DNSR   s+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oAt   dnsR   (   R	   R¼   R?   Rx   R4   R5   (   R   R¼   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ß  s    c         C   s    |  j  |  j |  j j    d  S(   N(   R
   R5   R4   R   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   č  s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   R¼   (   R	   R¼   R
   R4   R   R5   (   R   R¼   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   ė  s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   R¼   (   R	   R¼   R<   R   R5   (   R   R¼   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=   ļ  s    c         C   s2   |  j  |  j j |  j j t  t j     d  S(   N(   R"   R4   t   check_validationt   gen_validationR$   R%   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_gen_check_validationó  s    c         C   sM   t  j j t j d   } |  j |  j j |  j j t	  | j
     d  S(   Ns   rsa1024_key.pem(   R?   R@   RA   R   RB   R(   R4   R¾   Ræ   R$   R%   (   R   RD   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt#   test_gen_check_validation_wrong_key÷  s    c         C   sM   t  d   d D  } x0 | D]( } |  j |  j j | t j     q Wd  S(   Nc         s   s3   |  ]) } t  j j d  | d t  j d t  Vq d S(   t   payloadt   algR   N(   R?   t   JWSt   signt   RS256R$   (   R6   RĀ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pys	   <genexpr>ž  s   t    s   {}(   RĒ   s   {}(   t   tupleR(   R4   R¾   R$   R%   (   R   t   validationsRM   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt#   test_check_validation_wrong_payloadü  s    c         C   sh   t  j j d |  j j d d  j   j d  d t  j d t  } |  j	 |  j j
 | t j     d  S(	   NRĀ   R   R2   i   s   utf-8RĆ   R   t   xxxxxxxxxxxxxxxxxxxx(   R?   RÄ   RÅ   R4   Rp   t
   json_dumpsR   RĘ   R$   R(   R¾   R%   (   R   t   bad_validation(    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt"   test_check_validation_wrong_fields  s    c         C   s|   t  j d  ( } t  j j | _ |  j j t  } Wd  QXd d l m	 } |  j
 t | |   |  j | j t  j j  d  S(   Ns"   acme.challenges.DNS.gen_validationi’’’’(   t   DNSResponse(   R   Rj   R   RM   RU   R4   t   gen_responseR$   R	   RĻ   R"   R   R
   (   R   t   mock_genR&   RĻ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_gen_response  s    c         C   s    |  j  d |  j j d   d  S(   Ns   _acme-challenge.le.wtfs   le.wtf(   R
   R4   RJ   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRK     s    (   R   R   R   R   R   R=   RĄ   RĮ   RŹ   RĪ   RŅ   RK   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR»   Ż  s   											t   DNSResponseTestc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   sŲ   d d l  m } | d t j d   |  _ t j j d |  j j d t  j	   d t
 d t j  |  _ d d	 l  m } | d
 |  j  |  _ i d d 6d d 6|  j d
 6|  _ i d d 6d d 6|  j j   d
 6|  _ d  S(   Ni’’’’(   R¼   R   s+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oARĀ   t	   sort_keysR   RĆ   (   RĻ   RM   R.   R/   R½   R   (   R	   R¼   R?   Rx   R   RÄ   RÅ   RĢ   R;   R   R$   RĘ   RM   RĻ   R4   t   jmsg_tot   to_jsont	   jmsg_from(   R   R¼   RĻ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR     s     c         C   s    |  j  |  j |  j j    d  S(   N(   R
   RÕ   R4   R   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   1  s    c         C   s3   d d l  m } |  j |  j | j |  j   d  S(   Ni’’’’(   RĻ   (   R	   RĻ   R
   R4   R   R×   (   R   RĻ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR   4  s    c         C   s*   d d l  m } t | j |  j   d  S(   Ni’’’’(   RĻ   (   R	   RĻ   R<   R   R×   (   R   RĻ   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyR=   8  s    c         C   s)   |  j  |  j j |  j t j     d  S(   N(   R"   R4   R¾   R   R$   R%   (   R   (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   test_check_validation<  s    (   R   R   R   R   R   R=   RŲ   (    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyRÓ     s
   				t   __main__(#   t   __doc__t   unittestR£   t   josepyR?   R   R   R^   t   six.moves.urllibR    Re   t   acmeR   R   t   load_comparable_certt   CERTR@   t   load_rsa_private_keyR$   t   TestCaseR   R   R   R,   RH   RO   Rk   Rr   R   R¶   R¹   R»   RÓ   R   t   main(    (    (    s8   /usr/lib/python2.7/dist-packages/acme/challenges_test.pyt   <module>   s4   
#* J'g, ='