[galaxyproject/galaxy] 55f728: More password encoding handling fixes.
Branch: refs/heads/release_18.05 Home: https://github.com/galaxyproject/galaxy Commit: 55f7280d790fcaf9bc74d543f22541d86521cef0 https://github.com/galaxyproject/galaxy/commit/55f7280d790fcaf9bc74d543f2254... Author: John Chilton <jmchilton@gmail.com> Date: 2018-05-23 (Wed, 23 May 2018) Changed paths: M lib/galaxy/security/passwords.py A test/unit/test_security_passwords.py Log Message: ----------- More password encoding handling fixes. Fix handling comparison of older hashes in Python 2 and fix the hanlding of both for Python 3. The previous iteration gave me some errors in Python 3, I brought in and adapted @mvdbeek's Python 3 fixes to fix these: ``` ====================================================================== ERROR: test_security_passwords.test_hash_and_check ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/john/workspace/galaxy-lib/.tox/py34/lib/python3.4/site-packages/nose/case.py", line 198, in runTest self.test(*self.arg) File "/Users/john/workspace/galaxy-lib/tests/test_security_passwords.py", line 12, in test_hash_and_check simple_pass_hash = passwords.hash_password(simple_pass) File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 21, in hash_password return hash_password_PBKDF2(password) File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 44, in hash_password_PBKDF2 hashed = pbkdf2_bin(smart_str(password), salt, COST_FACTOR, KEY_LENGTH, getattr(hashlib, HASH_FUNCTION)) File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 78, in pbkdf2_bin rv = u = _pseudorandom(salt + _pack_int(block)) File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 75, in _pseudorandom return [ord(_) for _ in h.digest()] File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 75, in <listcomp> return [ord(_) for _ in h.digest()] TypeError: ord() expected string of length 1, but int found ====================================================================== ERROR: test_security_passwords.test_hash_consistent ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/john/workspace/galaxy-lib/.tox/py34/lib/python3.4/site-packages/nose/case.py", line 198, in runTest self.test(*self.arg) File "/Users/john/workspace/galaxy-lib/tests/test_security_passwords.py", line 38, in test_hash_consistent assert passwords.check_password(simple_pass, simple_pass_hash) File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 30, in check_password if check_password_PBKDF2(guess, hashed): File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 53, in check_password_PBKDF2 hashed_guess = pbkdf2_bin(smart_str(guess), salt, int(cost_factor), KEY_LENGTH, getattr(hashlib, hash_function)) File "/Users/john/workspace/galaxy-lib/galaxy/security/passwords.py", line 78, in pbkdf2_bin rv = u = _pseudorandom(salt + _pack_int(block)) TypeError: Can't convert 'bytes' object to str implicitly ``` Added tests that all now pass in Python 3 - including generating some passwords in Python 3 and verifying they pass when checked in Python 2 and vice versa. Commit: ec5924dd649ccd4936398c9df82000c1f1ce4a24 https://github.com/galaxyproject/galaxy/commit/ec5924dd649ccd4936398c9df8200... Author: Martin Cech <marten@bx.psu.edu> Date: 2018-05-23 (Wed, 23 May 2018) Changed paths: M lib/galaxy/security/passwords.py A test/unit/test_security_passwords.py Log Message: ----------- Merge pull request #6204 from jmchilton/password_fixes [18.05] More password encoding handling fixes. Compare: https://github.com/galaxyproject/galaxy/compare/ab656c7e2d57...ec5924dd649c **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.
participants (1)
-
GitHub