ó
ñ1Mc           @   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 Z e j d ƒ Z	 e d „ Z
 e	 d „ Z e	 d „ Z d Z d	 d d
 „  ƒ  YZ d d d „  ƒ  YZ d S(   sZ   Secure Authenticator Cookies

Copyright (c) 1999-2002 Ng Pheng Siong. All rights reserved.iÿÿÿÿNs   exp=%s&data=%s&digest=s%   exp=(\d+\.\d+)&data=(.+)&digest=(\S*)c         C   s   | t  |  ƒ | f S(   N(   t   repr(   t   expiryt   datat   format(    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   mix   s    c         C   s?   | j  |  ƒ } | r7 t | j d ƒ ƒ | j d ƒ f Sd  Sd  S(   Ni   i   (   t   matcht   floatt   groupt   None(   t   dought   regext   mo(    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   unmix   s    "c         C   sK   | j  |  ƒ } | rC t | j d ƒ ƒ | j d ƒ | j d ƒ f Sd  Sd  S(   Ni   i   i   (   R   R   R   R   (   R	   R
   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   unmix3   s    .t   _M2AUTH_t   AuthCookieJarc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i   c         C   s   t  j |  j ƒ |  _ d  S(   N(   t   Randt
   rand_bytest   _keylent   _key(   t   self(    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   __init__'   s    c         C   s&   t  j t j | | t j ƒ  ƒ ƒ d  S(   Niÿÿÿÿ(   t   binasciit
   b2a_base64t   m2t   hmact   sha1(   R   t   keyR   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   _hmac*   s    c         C   s1   t  | | ƒ } t | | | |  j |  j | ƒ ƒ S(   N(   R   t
   AuthCookieR   R   (   R   R   R   R	   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt
   makeCookie-   s    c         C   st   | j  ƒ  r d S|  j | j | j ƒ } | j | j k os | j | j k os | j | j k os | j ƒ  | j ƒ  k S(   Ni    (   t	   isExpiredR   t   _expiryt   _datat   _mact   output(   R   t   cookiet   c(    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   isGoodCookie1   s    c         C   sŠ   t  j ƒ  } | j | ƒ | j t ƒ s, d St | t j ƒ } | d  k rO d S| \ } } } |  j | | ƒ } | j	 ƒ  o‰ | j
 | k S(   Ni    (   t   Cookiet   SmartCookiet   loadt   has_keyt   _TOKENR   t   valueR   R   R   R"   (   R   t
   cookie_strR%   t   undought   expR   t   mact   c2(    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   isGoodCookieString;   s    (   t   __name__t
   __module__R   R   R   R   R&   R2   (    (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR   #   s   				
R   c           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   sX   | |  _  | |  _ | |  _ t j ƒ  |  _ d | | f |  j t <d | | f |  _ d  S(   Ns   %s%s(   R    R!   R"   R'   R(   t   _cookieR+   t   _name(   R   R   R   R	   R0   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR   J   s    			c         C   s   |  j  S(   s    Return the cookie's expiry time.(   R    (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR   R   s    c         C   s   |  j  S(   s&   Return the data portion of the cookie.(   R!   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR   V   s    c         C   s   |  j  S(   s   Return the cookie's MAC.(   R"   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR0   Z   s    c         C   s   |  j  j ƒ  S(   s2   Return the cookie's output in "Set-Cookie" format.(   R5   R#   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR#   ^   s    c         C   s   |  j  t j S(   sE   Return the cookie's output minus the "Set-Cookie: " portion.
        (   R5   R+   R,   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR,   b   s    c         C   s   t  j  ƒ  |  j k S(   s0   Return 1 if the cookie has expired, 0 otherwise.(   t   timeR    (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR   g   s    c         C   s   |  j  S(   N(   R6   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   namem   s    c         C   s
   |  j  ƒ  S(   N(   R,   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   headerValuep   s    (   R3   R4   R   R   R   R0   R#   R,   R   R8   R9   (    (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyR   H   s   								(    (    (   t   __doc__R   R   R'   R   t   reR7   t   _MIX_FORMATt   compilet   _MIX_RER   R   R   R+   R   R   (    (    (    s9   /usr/lib64/python2.7/site-packages/M2Crypto/AuthCookie.pyt   <module>   s   0%