ó
E®Uc           @   sX   d  Z  d d l m Z d d l m Z m Z d d l Z d e j j f d „  ƒ  YZ	 d S(   s’   Tests for GENSEC.

Note that this just tests the bindings work. It does not intend to test
the functionality, that's already done in other tests.
iÿÿÿÿ(   t   Credentials(   t   gensect   authNt   GensecTestsc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sn   t  t |  ƒ j ƒ  i  |  _ t j j ƒ  |  j d <|  _ |  j j d ƒ |  j d <t	 j
 j |  j ƒ |  _	 d  S(   Nt   lp_ctxs   netbios namet   target_hostname(   t   superR   t   setUpt   settingst   sambat   testst   env_loadparmR   t   getR   t   Securityt   start_client(   t   self(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyR      s
    	c         C   s   |  j  t |  j j d ƒ d  S(   Nt   foo(   t   assertRaisest   RuntimeErrorR   t   start_mech_by_name(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyt   test_start_mech_by_unknown_name&   s    c         C   s   |  j  j d ƒ d  S(   Nt   spnego(   R   R   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyt   test_start_mech_by_name)   s    c         C   s   |  j  t |  j j ƒ d  S(   N(   R   R   R   t   session_info(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyt   test_info_uninitialized,   s    c         C   s  t  j j |  j ƒ |  _ |  j j |  j ƒ  ƒ |  j j t  j ƒ |  j j	 d ƒ t  j j
 d |  j d t j d |  j ƒ ƒ |  _ t ƒ  } | j |  j ƒ | j |  j ƒ |  j j | ƒ |  j j t  j ƒ |  j j	 d ƒ t } t } d } x^ | rO| rO| s&d GH|  j j | ƒ \ } } n  | sò d GH|  j j | ƒ \ } } qò qò W|  j j ƒ  } d } |  j j | ƒ } |  j j | ƒ }	 |  j | |	 ƒ d	 } |  j j | ƒ } |  j j | ƒ }	 |  j | |	 ƒ |  j j ƒ  }
 |  j j ƒ  } |  j |
 | ƒ d
 S(   sJ   Test GENSEC by doing an exchange with ourselves using GSSAPI against a KDCt   GSSAPIR   t   auth_contextR   t    s   running client gensec_updates   running server gensec_updates   Hello Servers   Hello ClientN(   R   R   R   R   t   gensec_clientt   set_credentialst   get_credentialst   want_featuret   FEATURE_SEALt   start_mech_by_sasl_namet   start_serverR   t   AuthContextR   t   gensec_serverR    t   guesst   set_machine_accountt   Falset   updateR   t   wrapt   unwrapt   assertEqualt   session_key(   R   t   credst   client_finishedt   server_finishedt   server_to_clientt   client_to_serverR   t   test_stringt   test_wrappedt   test_unwrappedt   client_session_keyt   server_session_key(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyt   test_update/   sD    	c         C   sh  t  j j |  j ƒ |  _ |  j j |  j ƒ  ƒ |  j j t  j ƒ |  j j	 d ƒ |  j j
 d ƒ t  j j d |  j d t j d |  j ƒ ƒ |  _ t ƒ  } | j |  j ƒ | j |  j ƒ |  j j | ƒ |  j j t  j ƒ |  j j	 d ƒ |  j j
 d ƒ t } t } d } d } xˆ | s&| rŸ| d 7} | sfd	 t | ƒ | f GH|  j j | ƒ \ } } n  | sd
 t | ƒ | f GH|  j j | ƒ \ } } qqW|  j | d k ƒ |  j j ƒ  } d } |  j j | ƒ }	 |  j j |	 ƒ }
 |  j | |
 ƒ d } |  j j | ƒ }	 |  j j |	 ƒ }
 |  j | |
 ƒ |  j j ƒ  } |  j j ƒ  } |  j | | ƒ d S(   sJ   Test GENSEC by doing an exchange with ourselves using GSSAPI against a KDCi   R   R   R   R   R   i    i   s$   running client gensec_update: %d: %rs$   running server gensec_update: %d: %ri
   s   Hello Servers   Hello ClientN(   R   R   R   R   R   R   R   R   t   FEATURE_SIGNt   set_max_update_sizeR   R"   R   R#   R   R$   R    R%   R&   R'   t   lenR(   t
   assertTrueR   R)   R*   R+   R,   (   R   R-   R.   R/   R0   t   iR1   R   R2   R3   R4   R5   R6   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyt   test_max_update_size^   sN    	
(   t   __name__t
   __module__R   R   R   R   R7   R=   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyR      s   					/(
   t   __doc__t   samba.credentialsR    R	   R   R   t   samba.testsR
   t   TestCaseR   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/gensec.pyt   <module>   s   