Răsfoiți Sursa

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

Claude Paroz 5 ani în urmă
părinte
comite
b5a62bd17d
1 a modificat fișierele cu 20 adăugiri și 1 ștergeri
  1. 20 1
      tests/utils_tests/test_crypto.py

+ 20 - 1
tests/utils_tests/test_crypto.py

@@ -1,7 +1,7 @@
 import hashlib
 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):
@@ -13,6 +13,25 @@ class TestUtilsCryptoMisc(unittest.TestCase):
         self.assertTrue(constant_time_compare('spam', 'spam'))
         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):