Refs #27468 -- Added explicit tests for django.utils.crypto.salted_hmac()

This commit is contained in:
Claude Paroz 2020-01-08 16:23:08 +01:00 committed by Mariusz Felisiak
parent 59b4e99dd0
commit b5a62bd17d
1 changed files with 20 additions and 1 deletions

View File

@ -1,7 +1,7 @@
import hashlib import hashlib
import unittest import unittest
from django.utils.crypto import constant_time_compare, pbkdf2 from django.utils.crypto import constant_time_compare, pbkdf2, salted_hmac
class TestUtilsCryptoMisc(unittest.TestCase): class TestUtilsCryptoMisc(unittest.TestCase):
@ -13,6 +13,25 @@ class TestUtilsCryptoMisc(unittest.TestCase):
self.assertTrue(constant_time_compare('spam', 'spam')) self.assertTrue(constant_time_compare('spam', 'spam'))
self.assertFalse(constant_time_compare('spam', 'eggs')) self.assertFalse(constant_time_compare('spam', 'eggs'))
def test_salted_hmac(self):
tests = [
((b'salt', b'value'), {}, 'b51a2e619c43b1ca4f91d15c57455521d71d61eb'),
(('salt', 'value'), {}, 'b51a2e619c43b1ca4f91d15c57455521d71d61eb'),
(
('salt', 'value'),
{'secret': 'abcdefg'},
'8bbee04ccddfa24772d1423a0ba43bd0c0e24b76',
),
(
('salt', 'value'),
{'secret': 'x' * hashlib.sha1().block_size},
'bd3749347b412b1b0a9ea65220e55767ac8e96b0',
),
]
for args, kwargs, digest in tests:
with self.subTest(args=args, kwargs=kwargs):
self.assertEqual(salted_hmac(*args, **kwargs).hexdigest(), digest)
class TestUtilsCryptoPBKDF2(unittest.TestCase): class TestUtilsCryptoPBKDF2(unittest.TestCase):