-í Û„?cs`dZdkZdkZdfd„ƒYZ!d„Z&dfd„ƒYZdS(s¥Base classes for defining an authentication protocol. Database -- abstract base class for password database Client -- abstract base class for authentication client NsClientcs tZgZd„ZRS(NcsO||_x6|iD](}t|i||ii|ƒƒqWdS(N(sstubsselfs extensionssmssetattrsextensionMethod(sselfsstubsm((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pys__init__s  (s__name__s __module__s extensionss__init__(((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pysClients  cs!"#|iƒ$|SdS(s#Sort a list in-place and return it.N(sLssort(sL((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pyssort!s sDatabasecs†&tZdZ02ed„ZAed„ZLd„Z^d„Zad„Zjd„Z md„Z rd„Z wd „Z RS( sgAbstracts a password database. This class is used both in the authentication process (via get_password()) and by client scripts that manage the password database file. The password file is a simple, colon-separated text file mapping usernames to password hashes. The hashes are SHA hex digests produced from the password string. cs;2;<h|_=||_>||_?|iƒdS(s2Creates a new Database filename: a string containing the full pathname of the password database file. Must be readable by the user running ZEO. Must be writeable by any client script that accesses the database. realm: the realm name (a string) N(sselfs_userssfilenamesrealmsload(sselfsfilenamesrealm((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pys__init__2s     c sŸAB|i}D| oEt|dƒ}nF|ioG|dI|iIJnIx>t|iiƒƒDI]$}J|d||i|fIJqpWdS(Nswsrealms%s: %s( sselfsfilenamesfdsopensrealmssorts_usersskeyssusername(sselfsfdsusernamesfilename((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pyssaveAs    csLM|i}N| o OdSnQtii|ƒ o RdSnTt|ƒ}U|iƒ}V|di dƒo2W|i dƒi ƒ}X|t dƒ|_nZxH|DZ]=}[|i ƒiddƒ\}}\|i ƒ|i|