;ņ
¢)?Bc           @   s*  d  Z  d k Z d k Z d k Z d k Z d k Z d k Z d k Z d k l	 Z	 l
 Z
 d k l Z y d k Z Wn e j
 o e Z n Xd k Z d k l Z d k l Z d k l Z d k l Z y e e f Wn e j
 o d Z d	 Z n Xd
 f  d     YZ e i d  Z d   Z d S(   s0   Handle passwords and sanitize approved messages.N(   s
   StringTypes	   TupleType(   s   urlparse(   s   mm_cfg(   s   Utils(   s   Errors(   s   syslogi   i    s   SecurityManagerc           B   sb   t  Z d   Z e d  Z e d  Z e d  Z e d  Z e d  Z e d  Z	 d   Z
 RS(	   Nc         C   s   t  |  _ h  |  _ d  S(   N(   s   Nones   selfs   mod_passwords	   passwords(   s   self(    (    s'   /var/mailman/Mailman/SecurityManager.pys   InitVarsO   s    	c         C   s  |  i   d } | t i j oD | t j o t d  n |  i	 |  } | d t i |  7} n­ | t i j o |  i } | d 7} n | t i j o |  i } | d 7} n_ | t i j oD t i   } t i o | o | } d } q|  i } | d 7} n t t f S| | f Sd  S(   Ns   +s%   No user supplied for AuthUser contexts   user+%ss	   moderators   admins   site(   s   selfs   internal_names   keys   authcontexts   mm_cfgs   AuthUsers   users   Nones	   TypeErrors   getMemberPasswords   secrets   Utilss   ObscureEmails   AuthListModerators   mod_passwords   AuthListAdmins   passwords   AuthSiteAdmins   get_global_passwords   sitepasss   ALLOW_SITE_ADMIN_COOKIES(   s   selfs   authcontexts   users   sitepasss   secrets   key(    (    s'   /var/mailman/Mailman/SecurityManager.pys   AuthContextInfoX   s*    		
	
c         C   s  x| D]} | t i j o+ t i | d d } | o t i Sqq | t i j o% t i |  } | o t i Sqq | t i	 j o1d   } |  i |  \ }
 } | t j o q n t i |  i   } t } } | | j o
 t } nI t i |  i   | j o t } } n | | |  o t } } n | og t }	 |  i   o |  i   t }	 n z" | |  _ |	 o |  i   n Wd  |	 o |  i   n Xn | o | Sqq | t i j oD |  i |  \ }
 } | o t i |  i   | j o | Sqq | t i  j oM | t j	 o< y |  i" | |  o | Sn Wqkt# i$ j
 o qkXqq t% d d |  t& d |  q Wt i' Sd  S(   Ns	   siteadmini    c         C   sX   y: | d  } t o t i |  |  | j o t Sn t SWn t j
 o t Sn Xd  S(   Ni   (   s   secrets   salts   crypts   responses   Trues   Falses	   TypeError(   s   responses   secrets   salt(    (    s'   /var/mailman/Mailman/SecurityManager.pys   cryptmatchp   s    
 s   errors   Bad authcontext: %s((   s   authcontextss   acs   mm_cfgs   AuthCreators   Utilss   check_global_passwords   responses   oks   AuthSiteAdmins   AuthListAdmins   cryptmatchps   selfs   AuthContextInfos   keys   secrets   Nones   shas   news	   hexdigests   sharesponses   Falses   upgrades   Trues   md5s   digests   save_and_unlocks   Lockeds   Locks   passwords   Saves   Unlocks   AuthListModerators   AuthUsers   users   authenticateMembers   Errorss   NotAMemberErrors   syslogs
   ValueErrors   UnAuthorized(   s   selfs   authcontextss   responses   users   acs   cryptmatchps   sharesponses   upgrades   secrets   save_and_unlocks   keys   ok(    (    s'   /var/mailman/Mailman/SecurityManager.pys   Authenticate   sf     	



	 #c         C   so   x/ | D]' } |  i | |  } | o t Sq q W|  i | | |  } | o |  i	 | |  GHt Sn t
 Sd  S(   N(   s   authcontextss   acs   selfs   CheckCookies   users   oks   Trues   Authenticates   responses
   MakeCookies   False(   s   selfs   authcontextss   responses   users   acs   ok(    (    s'   /var/mailman/Mailman/SecurityManager.pys   WebAuthenticateÓ   s     c   	      C   sŽ   |  i | |  \ } } | t j p | t j p t | t  o
 t	  n t
 t i    } t i | |  i   } t i   } t i t i | | f   | | <t |  i  d } | | | d <d | | d <| Sd  S(   Ni   s   pathi   s   version(   s   selfs   AuthContextInfos   authcontexts   users   keys   secrets   Nones
   isinstances
   StringTypes
   ValueErrors   ints   times   issueds   shas   news	   hexdigests   macs   Cookies   SimpleCookies   cs   binasciis   hexlifys   marshals   dumpss   urlparses   web_page_urls   path(	   s   selfs   authcontexts   users   issueds   cs   macs   secrets   keys   path(    (    s'   /var/mailman/Mailman/SecurityManager.pys
   MakeCookieę   s    +
"c         C   ss   |  i | |  \ } } t i   } d | | <t	 |  i
  d } | | | d <d | | d <d | | d <| Sd  S(   Ns    i   s   pathi    s   max-agei   s   version(   s   selfs   AuthContextInfos   authcontexts   users   keys   secrets   Cookies   SimpleCookies   cs   urlparses   web_page_urls   path(   s   selfs   authcontexts   users   cs   secrets   keys   path(    (    s'   /var/mailman/Mailman/SecurityManager.pys	   ZapCookieś   s    
c         C   s(  t  i i d  } | o t Sn t |  } | t i	 j oÓ | o | g } nY g  } |  i   d } x? | i   D]1 }
 |
 i |  o | i |
 t |   qu qu Wx\ g  i } | D] } | t i |   q» ~ D]* } |  i | | |  }	 |	 o t SqŪ qŪ Wt Sn |  i | | |  Sd  S(   Ns   HTTP_COOKIEs   +user+(   s   oss   environs   gets
   cookiedatas   Falses   parsecookies   cs   authcontexts   mm_cfgs   AuthUsers   users	   usernamess   selfs   internal_names   prefixs   keyss   ks
   startswiths   appends   lens   _[1]s   us   Utilss   UnobscureEmails   _SecurityManager__checkones   oks   True(   s   selfs   authcontexts   users   cs	   usernamess   _[1]s   prefixs   us
   cookiedatas   oks   k(    (    s'   /var/mailman/Mailman/SecurityManager.pys   CheckCookie  s(     1 c         C   s  y |  i | |  \ } } Wn t i j
 o t Sn X| i
 |  p t | t  o t Sn y, t i t i | |   }
 |
 \ } } Wn# t t t t f j
 o t Sn Xt i   }	 |	 | j  o t Sn t i | |  i   } | | j o t Sn t Sd  S(   N(   s   selfs   AuthContextInfos   authcontexts   users   keys   secrets   Errorss   NotAMemberErrors   Falses   cs   has_keys
   isinstances
   StringTypes   marshals   loadss   binasciis	   unhexlifys   datas   issueds   received_macs   EOFErrors
   ValueErrors	   TypeErrors   KeyErrors   times   nows   shas   news	   hexdigests   macs   True(   s   selfs   cs   authcontexts   users   issueds   secrets   received_macs   macs   keys   nows   data(    (    s'   /var/mailman/Mailman/SecurityManager.pys
   __checkone3  s$    	"
	(   s   __name__s
   __module__s   InitVarss   Nones   AuthContextInfos   Authenticates   WebAuthenticates
   MakeCookies	   ZapCookies   CheckCookies   _SecurityManager__checkone(    (    (    s'   /var/mailman/Mailman/SecurityManager.pys   SecurityManagerN   s   		*Q(s   ;\s*c         C   sd   h  } xS t i |   D]B } y | i d d  \ } } Wn t j
 o q X| | | <q W| Sd  S(   Ns   =i   (   s   cs   splitters   splits   ss   ps   ks   vs
   ValueError(   s   ss   cs   ks   ps   v(    (    s'   /var/mailman/Mailman/SecurityManager.pys   parsecookieZ  s     (   s   __doc__s   oss   res   shas   times   Cookies   marshals   binasciis   typess
   StringTypes	   TupleTypes   urlparses   crypts   ImportErrors   Nones   md5s   Mailmans   mm_cfgs   Utilss   Errorss   Mailman.Logging.Syslogs   syslogs   Trues   Falses	   NameErrors   SecurityManagers   compiles   splitters   parsecookie(   s   Errorss   syslogs
   StringTypes   res   crypts   binasciis   SecurityManagers   Cookies   Trues   parsecookies   mm_cfgs	   TupleTypes   md5s   splitters   Falses   Utilss   urlparses   shas   times   oss   marshal(    (    s'   /var/mailman/Mailman/SecurityManager.pys   ?   s6   								’ 