Ñò ñ1Mc @s·dZddkZddkZddkZddkZddkZddkZdZeidƒ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.6/vendor-packages/M2Crypto/AuthCookie.pytmixscCsA|i|ƒ}|o#t|idƒƒ|idƒfSdSdS(Nii(tmatchtfloattgrouptNone(tdoughtregextmo((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pytunmixs#cCsM|i|ƒ}|o/t|idƒƒ|idƒ|idƒfSdSdS(Niii(RRRR(R R R ((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pytunmix3s/t_M2AUTH_t AuthCookieJarcBs;eZdZd„Zd„Zd„Zd„Zd„ZRS(icCsti|iƒ|_dS(N(tRandt rand_bytest_keylent_key(tself((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pyt__init__'scCs&titi||tiƒƒƒd S(Niÿÿÿÿ(tbinasciit b2a_base64tm2thmactsha1(RtkeyR((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pyt_hmac*scCs1t||ƒ}t||||i|i|ƒƒS(N(Rt AuthCookieRR(RRRR ((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pyt makeCookie-scCst|tƒpt‚|iƒodS|i|i|iƒ}|i|ijo<|i|ijo)|i|ijo|iƒ|iƒjS(Ni( t isinstanceRtAssertionErrort isExpiredRt_expiryt_datat_mactoutput(Rtcookietc((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pyt isGoodCookie1s cCstiƒ}|i|ƒ|itƒpdSt|tiƒ}|djodS|\}}}|i||ƒ}|i ƒ o |i |jS(Ni( tCookiet SmartCookietloadthas_keyt_TOKENR tvalueRRR!R$(Rt cookie_strR'tundoughtexpRtmactc2((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pytisGoodCookieString;s   (t__name__t __module__RRRRR(R4(((s9/usr/lib/python2.6/vendor-packages/M2Crypto/AuthCookie.pyR#s     RcBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS( cCsX||_||_||_tiƒ|_d||f|its0   %