-í ğiâ?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&tZdZ01eZ2ed„ZFed„ZQd„Zcd„Zfd„Z od„Z rd„Z wd„Z |d „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ƒ?|oQ@|io |i|jo$Atd|pd|if‚n D||_ndS(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) s1Specified realm %r differs from database realm %rsN(sselfs_userssfilenamesloadsrealms ValueError(sselfsfilenamesrealm((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pys__init__2s     $c sŸFG|i}I| oJt|dƒ}nK|ioL|dI|iIJnNx>t|iiƒƒDN]$}O|d||i|fIJqpWdS(Nswsrealms%s: %s( sselfsfilenamesfdsopensrealmssorts_usersskeyssusername(sselfsfdsusernamesfilename((s5/usr/pkg/lib/python2.2/site-packages/ZEO/auth/base.pyssaveFs    csQR|i}S| o TdSnVtii|ƒ o WdSnYt|ƒ}Z|iƒ}[|di dƒo2\|i dƒi ƒ}]|t dƒ|_n_xH|D_]=}`|i ƒiddƒ\}}a|i ƒ|i|