gh-99108: Implement HACL* HMAC (#130157)

A new extension module, `_hmac`, now exposes the HACL* HMAC (formally verified) implementation.

The HACL* implementation is used as a fallback implementation when the OpenSSL implementation of HMAC
is not available or disabled. For now, only named hash algorithms are recognized and SIMD support provided
by HACL* for the BLAKE2 hash functions is not yet used.
This commit is contained in:
Bénédikt Tran 2025-04-04 19:04:00 +02:00 committed by GitHub
parent 7099c75550
commit 0a97427ee5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 7702 additions and 103 deletions

View file

@ -428,6 +428,8 @@
<ClCompile Include="..\Modules\_hacl\Hacl_Hash_SHA1.c" />
<ClCompile Include="..\Modules\_hacl\Hacl_Hash_SHA2.c" />
<ClCompile Include="..\Modules\_hacl\Hacl_Hash_SHA3.c" />
<ClCompile Include="..\Modules\_hacl\Hacl_HMAC.c" />
<ClCompile Include="..\Modules\_hacl\Hacl_Streaming_HMAC.c" />
<ClCompile Include="..\Modules\_hacl\Lib_Memzero0.c" />
<ClCompile Include="..\Modules\_hacl\Hacl_Hash_Blake2b.c" />
<ClCompile Include="..\Modules\_hacl\Hacl_Hash_Blake2s.c" />
@ -464,6 +466,7 @@
<ClCompile Include="..\Modules\faulthandler.c" />
<ClCompile Include="..\Modules\gcmodule.c" />
<ClCompile Include="..\Modules\getbuildinfo.c" />
<ClCompile Include="..\Modules\hmacmodule.c" />
<ClCompile Include="..\Modules\itertoolsmodule.c" />
<ClCompile Include="..\Modules\main.c" />
<ClCompile Include="..\Modules\mathmodule.c" />

View file

@ -959,6 +959,12 @@
<ClCompile Include="..\Modules\_hacl\Hacl_Hash_SHA3.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_hacl\Hacl_HMAC.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_hacl\Hacl_Streaming_HMAC.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_heapqmodule.c">
<Filter>Modules</Filter>
</ClCompile>
@ -1013,6 +1019,9 @@
<ClCompile Include="..\Modules\binascii.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\blake2module.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\cmathmodule.c">
<Filter>Modules</Filter>
</ClCompile>
@ -1028,6 +1037,9 @@
<ClCompile Include="..\Modules\gcmodule.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\hmacmodule.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\itertoolsmodule.c">
<Filter>Modules</Filter>
</ClCompile>