ó ñ1Mc@s·dZddlZddlZddlZddlZddlZddlZdZejdƒZ ed„Z e d„Z e d„Z dZ d d d „ƒYZd dd „ƒYZdS(sZSecure Authenticator Cookies Copyright (c) 1999-2002 Ng Pheng Siong. All rights reserved.iÿÿÿÿNsexp=%s&data=%s&digest=s%exp=(\d+\.\d+)&data=(.+)&digest=(\S*)cCs|t|ƒ|fS(N(trepr(texpirytdatatformat((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pytmixscCs?|j|ƒ}|r7t|jdƒƒ|jdƒfSdSdS(Nii(tmatchtfloattgrouptNone(tdoughtregextmo((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pytunmixs"cCsK|j|ƒ}|rCt|jdƒƒ|jdƒ|jdƒfSdSdS(Niii(RRRR(R R R ((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pytunmix3s.t_M2AUTH_t AuthCookieJarcBs;eZdZd„Zd„Zd„Zd„Zd„ZRS(icCstj|jƒ|_dS(N(tRandt rand_bytest_keylent_key(tself((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pyt__init__'scCs&tjtj||tjƒƒƒd S(Niÿÿÿÿ(tbinasciit b2a_base64tm2thmactsha1(RtkeyR((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pyt_hmac*scCs1t||ƒ}t||||j|j|ƒƒS(N(Rt AuthCookieRR(RRRR ((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pyt makeCookie-scCs‰t|tƒst‚|jƒr%dS|j|j|jƒ}|j|jkoˆ|j|jkoˆ|j|jkoˆ|jƒ|jƒkS(Ni( t isinstanceRtAssertionErrort isExpiredRt_expiryt_datat_mactoutput(Rtcookietc((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pyt isGoodCookie1s cCsŠtjƒ}|j|ƒ|jtƒs,dSt|tjƒ}|dkrOdS|\}}}|j||ƒ}|j ƒ o‰|j |kS(Ni( tCookiet SmartCookietloadthas_keyt_TOKENR tvalueRRR!R$(Rt cookie_strR'tundoughtexpRtmactc2((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pytisGoodCookieString;s   (t__name__t __module__RRRRR(R4(((s9/usr/lib/python2.7/vendor-packages/M2Crypto/AuthCookie.pyR#s     RcBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS( cCsX||_||_||_tjƒ|_d||f|jts0   %