| Index: third_party/pyftpdlib/demo/md5_ftpd.py | 
| =================================================================== | 
| --- third_party/pyftpdlib/demo/md5_ftpd.py	(revision 0) | 
| +++ third_party/pyftpdlib/demo/md5_ftpd.py	(revision 0) | 
| @@ -0,0 +1,29 @@ | 
| +#!/usr/bin/env python | 
| +# md5_ftpd.py | 
| + | 
| +"""A basic ftpd storing passwords as hash digests (platform independent). | 
| +""" | 
| + | 
| +import md5 | 
| +import os | 
| + | 
| +from pyftpdlib import ftpserver | 
| + | 
| + | 
| +class DummyMD5Authorizer(ftpserver.DummyAuthorizer): | 
| + | 
| +    def validate_authentication(self, username, password): | 
| +        hash = md5.new(password).hexdigest() | 
| +        return self.user_table[username]['pwd'] == hash | 
| + | 
| +if __name__ == "__main__": | 
| +    # get a hash digest from a clear-text password | 
| +    hash = md5.new('12345').hexdigest() | 
| +    authorizer = DummyMD5Authorizer() | 
| +    authorizer.add_user('user', hash, os.getcwd(), perm='elradfmw') | 
| +    authorizer.add_anonymous(os.getcwd()) | 
| +    ftp_handler = ftpserver.FTPHandler | 
| +    ftp_handler.authorizer = authorizer | 
| +    address = ('', 21) | 
| +    ftpd = ftpserver.FTPServer(address, ftp_handler) | 
| +    ftpd.serve_forever() | 
|  |