Skip to content

Commit fd769e3

Browse files
committed
fix encoding for hash functions
1 parent 7413278 commit fd769e3

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

roundup/password.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def ssha(password, salt):
108108
'''
109109
shaval = sha1(password)
110110
shaval.update( salt )
111-
ssha_digest = b64encode( '{}{}'.format(shaval.digest(), salt) ).strip()
111+
ssha_digest = b64encode( shaval.digest() + salt ).strip()
112112
return ssha_digest
113113

114114
def pbkdf2(password, salt, rounds, keylen):
@@ -184,11 +184,11 @@ def encodePassword(plaintext, scheme, other=None, config=None):
184184
# variable salt length
185185
salt_len = random.randrange(36, 52)
186186
salt = os.urandom(salt_len)
187-
s = ssha(plaintext, salt)
187+
s = ssha(s2b(plaintext), salt)
188188
elif scheme == 'SHA':
189-
s = sha1(plaintext).hexdigest()
189+
s = sha1(s2b(plaintext)).hexdigest()
190190
elif scheme == 'MD5':
191-
s = md5(plaintext).hexdigest()
191+
s = md5(s2b(plaintext)).hexdigest()
192192
elif scheme == 'crypt' and crypt is not None:
193193
if other is not None:
194194
salt = other

test/test_hyperdbvals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def testPassword(self):
9393
self.assert_(isinstance(val, password.Password))
9494
val = self._test('password', '{crypt}a string')
9595
self.assert_(isinstance(val, password.Password))
96-
s = sha1('a string').hexdigest()
96+
s = sha1(b'a string').hexdigest()
9797
val = self._test('password', '{SHA}'+s)
9898
self.assert_(isinstance(val, password.Password))
9999
self.assertEqual(val, 'a string')

0 commit comments

Comments
 (0)