[Repoze-checkins] r771 - in repoze.pam/trunk: . repoze/pam repoze/pam/plugins
Chris McDonough
chrism at agendaless.com
Wed Mar 5 15:09:20 UTC 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Wed Mar 5 10:09:19 2008
New Revision: 771
Log:
0.3 (03-05-2008)
- Make SQLAuthenticatorPlugin's default_password_compare use
hexdigest sha instead of base64'ed binary sha for simpler
conversion.
Modified:
repoze.pam/trunk/CHANGES.txt
repoze.pam/trunk/repoze/pam/plugins/sql.py
repoze.pam/trunk/repoze/pam/tests.py
repoze.pam/trunk/setup.py
Modified: repoze.pam/trunk/CHANGES.txt
==============================================================================
--- repoze.pam/trunk/CHANGES.txt (original)
+++ repoze.pam/trunk/CHANGES.txt Wed Mar 5 10:09:19 2008
@@ -1,3 +1,9 @@
+0.3 (03-05-2008)
+
+ - Make SQLAuthenticatorPlugin's default_password_compare use
+ hexdigest sha instead of base64'ed binary sha for simpler
+ conversion.
+
0.2 (03-04-2008)
- Added SQLAuthenticatorPlugin (see plugins/sql.py).
Modified: repoze.pam/trunk/repoze/pam/plugins/sql.py
==============================================================================
--- repoze.pam/trunk/repoze/pam/plugins/sql.py (original)
+++ repoze.pam/trunk/repoze/pam/plugins/sql.py Wed Mar 5 10:09:19 2008
@@ -4,18 +4,13 @@
def default_password_compare(cleartext_password, stored_password_hash):
import sha
- import binascii
- # the stored password is stored as '{SHA}<base64(<binary SHA digest>)>'.
+ # the stored password is stored as '{SHA}<SHA hexdigest>'.
# or as a cleartext password (no {SHA} prefix)
if stored_password_hash.startswith('{SHA}'):
stored_password_hash = stored_password_hash[5:]
- digest = sha.new(cleartext_password).digest()
- try:
- stored_password_hash = stored_password_hash.decode('base64')
- except binascii.Error:
- return False
+ digest = sha.new(cleartext_password).hexdigest()
else:
digest = cleartext_password
Modified: repoze.pam/trunk/repoze/pam/tests.py
==============================================================================
--- repoze.pam/trunk/repoze/pam/tests.py (original)
+++ repoze.pam/trunk/repoze/pam/tests.py Wed Mar 5 10:09:19 2008
@@ -1002,14 +1002,9 @@
from repoze.pam.plugins.sql import default_password_compare
return default_password_compare
- def test_shaprefix_bad_decode(self):
- compare = self._getFUT()
- result = compare('password', '{SHA}undecodable')
- self.assertEqual(result, False)
-
def test_shaprefix_success(self):
import sha
- stored = sha.new('password').digest().encode('base64').rstrip()
+ stored = sha.new('password').hexdigest()
stored = '{SHA}' + stored
compare = self._getFUT()
result = compare('password', stored)
@@ -1017,7 +1012,7 @@
def test_shaprefix_fail(self):
import sha
- stored = sha.new('password').digest().encode('base64').rstrip()
+ stored = sha.new('password').hexdigest()
stored = '{SHA}' + stored
compare = self._getFUT()
result = compare('notpassword', stored)
Modified: repoze.pam/trunk/setup.py
==============================================================================
--- repoze.pam/trunk/setup.py (original)
+++ repoze.pam/trunk/setup.py Wed Mar 5 10:09:19 2008
@@ -12,7 +12,7 @@
#
##############################################################################
-__version__ = '0.2'
+__version__ = '0.3'
import os
More information about the Repoze-checkins
mailing list