]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-99108: Refresh HACL* from upstream (#104401)
authorJonathan Protzenko <protz@microsoft.com>
Thu, 11 May 2023 21:23:52 +0000 (14:23 -0700)
committerGitHub <noreply@github.com>
Thu, 11 May 2023 21:23:52 +0000 (21:23 +0000)
Refresh HACL* from upstream and add a SHA3 test hashing over 4GiB of data.

Lib/test/test_hashlib.py
Modules/_hacl/Hacl_Hash_SHA3.c
Modules/_hacl/refresh.sh

index 08cb5eb0c2bbab8567b770ee0a63f2c2b8a24e33..73d758a3631b3a3d4ce1aed5e4584a4d40dfbd7e 100644 (file)
@@ -359,6 +359,15 @@ class HashLibTestCase(unittest.TestCase):
         h.update(b"hello world")
         self.assertEqual(h.hexdigest(), "a5364f7a52ebe2e25f1838a4ca715a893b6fd7a23f2a0d9e9762120da8b1bf53")
 
+    @requires_resource('cpu')
+    def test_sha3_256_update_over_4gb(self):
+        zero_1mb = b"\0" * 1024 * 1024
+        h = hashlib.sha3_256()
+        for i in range(0, 4096):
+            h.update(zero_1mb)
+        h.update(b"hello world")
+        self.assertEqual(h.hexdigest(), "e2d4535e3b613135c14f2fe4e026d7ad8d569db44901740beffa30d430acb038")
+
     def check(self, name, data, hexdigest, shake=False, **kwargs):
         length = len(hexdigest)//2
         hexdigest = hexdigest.lower()
index 100afe7c2c6d1f7ede12df1dd4a2fcf886c8f6fb..58eb436881d45c404837c5626535a94fa72a5153 100644 (file)
@@ -244,7 +244,7 @@ Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state *p, uint8_t *data, uint
   Hacl_Streaming_Keccak_hash_buf block_state = s.block_state;
   uint64_t total_len = s.total_len;
   Spec_Hash_Definitions_hash_alg i = block_state.fst;
-  if ((uint64_t)len > (uint64_t)0xffffffffU - total_len)
+  if ((uint64_t)len > (uint64_t)0xffffffffffffffffU - total_len)
   {
     return (uint32_t)1U;
   }
index 220ebbe55613410feec916569818cc50c182dd72..d2ba05f30d860f144f210d3f33373f1f93dd4138 100755 (executable)
@@ -22,7 +22,7 @@ fi
 
 # Update this when updating to a new version after verifying that the changes
 # the update brings in are good.
-expected_hacl_star_rev=363eae2c2eb60e46f182ddd4bd1cd3f1d00b35c9
+expected_hacl_star_rev=b6903a3e6458000730c3d83174d4b08d6d3e2ece
 
 hacl_dir="$(realpath "$1")"
 cd "$(dirname "$0")"