test_security.py
27 lines
| 757 B
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r13557 | # coding: utf-8 | ||
Stefan van der Walt
|
r5320 | from IPython.lib import passwd | ||
Stefan van der Walt
|
r5332 | from IPython.lib.security import passwd_check, salt_len | ||
Stefan van der Walt
|
r5320 | |||
def test_passwd_structure(): | ||||
Matthias Bussonnier
|
r26725 | p = passwd("passphrase") | ||
algorithm, salt, hashed = p.split(":") | ||||
assert algorithm == "sha1" | ||||
assert len(salt) == salt_len | ||||
assert len(hashed) == 40 | ||||
Stefan van der Walt
|
r5320 | |||
def test_roundtrip(): | ||||
Matthias Bussonnier
|
r26725 | p = passwd("passphrase") | ||
assert passwd_check(p, "passphrase") is True | ||||
Stefan van der Walt
|
r5320 | |||
def test_bad(): | ||||
p = passwd('passphrase') | ||||
Matthias Bussonnier
|
r26725 | assert passwd_check(p, p) is False | ||
assert passwd_check(p, "a:b:c:d") is False | ||||
assert passwd_check(p, "a:b") is False | ||||
Stefan van der Walt
|
r5320 | |||
Thomas Kluyver
|
r13557 | def test_passwd_check_unicode(): | ||
# GH issue #4524 | ||||
Thomas Kluyver
|
r13559 | phash = u'sha1:23862bc21dd3:7a415a95ae4580582e314072143d9c382c491e4f' | ||
Matthias Bussonnier
|
r26725 | assert passwd_check(phash, u"łe¶ŧ←↓→") | ||