comparison roundup/password.py @ 1905:dc43e339e607

Centralised conversion of user-input data to hyperdb values (bug [SF#802405], bug [SF#817217], rfe [SF#816994])
author Richard Jones <richard@users.sourceforge.net>
date Tue, 11 Nov 2003 00:35:14 +0000
parents caae7d8934dc
children fc52d57c6c3e
comparison
equal deleted inserted replaced
1904:9445caec3ff5 1905:dc43e339e607
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17 # 17 #
18 # $Id: password.py,v 1.9 2003-04-10 05:12:41 richard Exp $ 18 # $Id: password.py,v 1.10 2003-11-11 00:35:13 richard Exp $
19 19
20 __doc__ = """ 20 __doc__ = """
21 Password handling (encoding, decoding). 21 Password handling (encoding, decoding).
22 """ 22 """
23 23
24 import sha, re, string, random 24 import sha, re, string, random
25 try: 25 try:
26 import crypt 26 import crypt
27 except: 27 except:
28 crypt = None 28 crypt = None
29 pass
30
31 class PasswordValueError(ValueError):
32 ''' The password value is not valid '''
29 pass 33 pass
30 34
31 def encodePassword(plaintext, scheme, other=None): 35 def encodePassword(plaintext, scheme, other=None):
32 '''Encrypt the plaintext password. 36 '''Encrypt the plaintext password.
33 ''' 37 '''
43 salt = random.choice(saltchars) + random.choice(saltchars) 47 salt = random.choice(saltchars) + random.choice(saltchars)
44 s = crypt.crypt(plaintext, salt) 48 s = crypt.crypt(plaintext, salt)
45 elif scheme == 'plaintext': 49 elif scheme == 'plaintext':
46 s = plaintext 50 s = plaintext
47 else: 51 else:
48 raise ValueError, 'Unknown encryption scheme "%s"'%scheme 52 raise PasswordValueError, 'unknown encryption scheme %r'%scheme
49 return s 53 return s
50 54
51 def generatePassword(length=8): 55 def generatePassword(length=8):
52 chars = string.letters+string.digits 56 chars = string.letters+string.digits
53 return ''.join([random.choice(chars) for x in range(length)]) 57 return ''.join([random.choice(chars) for x in range(length)])

Roundup Issue Tracker: http://roundup-tracker.org/