summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_crypt.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-10-25 13:30:13 (GMT)
committerGitHub <noreply@github.com>2017-10-25 13:30:13 (GMT)
commit0f261583bae7e60e410709ed96398dd1b14c5454 (patch)
tree99c2379d299a624d88b2ac594f3b3fa727257488 /Lib/test/test_crypt.py
parent086c3ae5f0995a62092b9080f32dd118c2923453 (diff)
downloadcpython-0f261583bae7e60e410709ed96398dd1b14c5454.zip
cpython-0f261583bae7e60e410709ed96398dd1b14c5454.tar.gz
cpython-0f261583bae7e60e410709ed96398dd1b14c5454.tar.bz2
bpo-31664: Fix test_crypt for the openwall implementation of crypt. (#4116)
Diffstat (limited to 'Lib/test/test_crypt.py')
-rw-r--r--Lib/test/test_crypt.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/test/test_crypt.py b/Lib/test/test_crypt.py
index 8db1aef..796fd07 100644
--- a/Lib/test/test_crypt.py
+++ b/Lib/test/test_crypt.py
@@ -57,7 +57,13 @@ class CryptTestCase(unittest.TestCase):
def test_invalid_log_rounds(self):
for log_rounds in (1, -1, 999):
salt = crypt.mksalt(crypt.METHOD_BLOWFISH, log_rounds=log_rounds)
- self.assertIsNone(crypt.crypt('mypassword', salt))
+ cr = crypt.crypt('mypassword', salt)
+ if cr is not None:
+ # On failure the openwall implementation returns a magic
+ # string that is shorter than 13 characters and is guaranteed
+ # to differ from a salt.
+ self.assertNotEqual(cr, salt)
+ self.assertLess(len(cr), 13)
if __name__ == "__main__":