Remove SHA3 wrapper

This commit is contained in:
Frank Denis
2026-01-15 23:17:59 +01:00
parent 49d1b7e0ea
commit 02e707a963
22 changed files with 115 additions and 320 deletions
@@ -175,7 +175,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -224,7 +223,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -352,7 +350,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -175,7 +175,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -224,7 +223,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -352,7 +350,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -175,7 +175,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -224,7 +223,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -352,7 +350,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -175,7 +175,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -224,7 +223,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -352,7 +350,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -175,7 +175,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -224,7 +223,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -352,7 +350,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -199,7 +199,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -248,7 +247,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -376,7 +374,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -199,7 +199,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -248,7 +247,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -376,7 +374,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
@@ -199,7 +199,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -248,7 +247,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -376,7 +374,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
@@ -345,9 +345,6 @@
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>crypto_hash\sha3</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>crypto_hash\sha3\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>crypto_hash\sha256</Filter>
</ClCompile>
@@ -488,9 +485,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\version.h">
<Filter>include\sodium</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h">
<Filter>include\sodium</Filter>
</ClInclude>
@@ -872,9 +866,6 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>crypto_hash\sha3\ref</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>crypto_aead\aegis128l</Filter>
</ClInclude>
@@ -1051,9 +1042,6 @@
<Filter Include="crypto_hash\sha3">
<UniqueIdentifier>{6df763e3-9707-3014-8cfe-2f9a8a83a872}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha3\ref">
<UniqueIdentifier>{11ec7cd9-b861-3226-bf76-510c4ca28c10}</UniqueIdentifier>
</Filter>
<Filter Include="crypto_hash\sha512">
<UniqueIdentifier>{8fb6a906-dbd6-3746-9b0f-f49e7028daec}</UniqueIdentifier>
</Filter>
-3
View File
@@ -423,7 +423,6 @@
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
@@ -472,7 +471,6 @@
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\version.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
@@ -600,7 +598,6 @@
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
-9
View File
@@ -336,9 +336,6 @@
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -479,9 +476,6 @@
<ClInclude Include="..\..\src\libsodium\include\sodium\core.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\version.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\include\sodium\export.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -863,9 +857,6 @@
<ClInclude Include="..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_hash\sha3\ref\sha3_ref.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h">
<Filter>Header Files</Filter>
</ClInclude>
-2
View File
@@ -51,8 +51,6 @@ libsodium_la_SOURCES = \
crypto_hash/sha512/hash_sha512.c \
crypto_hash/sha512/cp/hash_sha512_cp.c \
crypto_hash/sha3/hash_sha3.c \
crypto_hash/sha3/ref/sha3_ref.c \
crypto_hash/sha3/ref/sha3_ref.h \
crypto_ipcrypt/crypto_ipcrypt.c \
crypto_ipcrypt/ipcrypt_soft.c \
crypto_ipcrypt/ipcrypt_soft.h \
+115 -21
View File
@@ -1,6 +1,88 @@
#include <stdint.h>
#include <string.h>
#include "crypto_core_keccak1600.h"
#include "crypto_hash_sha3.h"
#include "private/common.h"
#include "ref/sha3_ref.h"
#include "utils.h"
#define SHA3_256_RATE 136
#define SHA3_512_RATE 72
#define SHA3_DOMAIN 0x06
typedef enum { SHA3_PHASE_ABSORBING = 0, SHA3_PHASE_FINALIZED = 1 } sha3_phase;
typedef struct sha3_state_internal_ {
crypto_core_keccak1600_state state;
size_t offset;
size_t rate;
size_t outlen;
uint8_t phase;
} sha3_state_internal;
static int
sha3_init(sha3_state_internal *state, size_t rate, size_t outlen)
{
crypto_core_keccak1600_init(&state->state);
state->offset = 0;
state->rate = rate;
state->outlen = outlen;
state->phase = SHA3_PHASE_ABSORBING;
return 0;
}
static int
sha3_update(sha3_state_internal *state, const unsigned char *in, size_t inlen)
{
size_t consumed = 0;
size_t chunk_size;
while (consumed < inlen) {
if (state->offset == state->rate) {
crypto_core_keccak1600_permute_24(&state->state);
state->offset = 0;
}
chunk_size = state->rate - state->offset;
if (chunk_size > inlen - consumed) {
chunk_size = inlen - consumed;
}
crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);
state->offset += chunk_size;
consumed += chunk_size;
}
return 0;
}
static int
sha3_final(sha3_state_internal *state, unsigned char *out)
{
unsigned char pad;
if (state->offset == state->rate) {
crypto_core_keccak1600_permute_24(&state->state);
state->offset = 0;
}
if (state->offset == state->rate - 1) {
pad = (unsigned char) (SHA3_DOMAIN ^ 0x80);
crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);
} else {
pad = SHA3_DOMAIN;
crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);
pad = 0x80;
crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->rate - 1, 1);
}
crypto_core_keccak1600_permute_24(&state->state);
crypto_core_keccak1600_extract_bytes(&state->state, out, 0, state->outlen);
sodium_memzero(state, sizeof *state);
return 0;
}
size_t
crypto_hash_sha3256_bytes(void)
@@ -14,31 +96,37 @@ crypto_hash_sha3256_statebytes(void)
return sizeof(crypto_hash_sha3256_state);
}
int
crypto_hash_sha3256(unsigned char *out, const unsigned char *in, unsigned long long inlen)
{
COMPILER_ASSERT(sizeof(crypto_hash_sha3256_state) >= sizeof(sha3_state_internal));
return sha3256_ref(out, in, (size_t) inlen);
}
int
crypto_hash_sha3256_init(crypto_hash_sha3256_state *state)
{
COMPILER_ASSERT(sizeof(crypto_hash_sha3256_state) >= sizeof(sha3_state_internal));
return sha3256_ref_init((sha3_state_internal *) (void *) state);
return sha3_init((sha3_state_internal *) (void *) state,
SHA3_256_RATE, crypto_hash_sha3256_BYTES);
}
int
crypto_hash_sha3256_update(crypto_hash_sha3256_state *state,
const unsigned char *in, unsigned long long inlen)
{
return sha3256_ref_update((sha3_state_internal *) (void *) state, in, (size_t) inlen);
return sha3_update((sha3_state_internal *) (void *) state, in, (size_t) inlen);
}
int
crypto_hash_sha3256_final(crypto_hash_sha3256_state *state, unsigned char *out)
{
return sha3256_ref_final((sha3_state_internal *) (void *) state, out);
return sha3_final((sha3_state_internal *) (void *) state, out);
}
int
crypto_hash_sha3256(unsigned char *out, const unsigned char *in, unsigned long long inlen)
{
crypto_hash_sha3256_state state;
crypto_hash_sha3256_init(&state);
crypto_hash_sha3256_update(&state, in, inlen);
crypto_hash_sha3256_final(&state, out);
return 0;
}
size_t
@@ -53,29 +141,35 @@ crypto_hash_sha3512_statebytes(void)
return sizeof(crypto_hash_sha3512_state);
}
int
crypto_hash_sha3512(unsigned char *out, const unsigned char *in, unsigned long long inlen)
{
COMPILER_ASSERT(sizeof(crypto_hash_sha3512_state) >= sizeof(sha3_state_internal));
return sha3512_ref(out, in, (size_t) inlen);
}
int
crypto_hash_sha3512_init(crypto_hash_sha3512_state *state)
{
COMPILER_ASSERT(sizeof(crypto_hash_sha3512_state) >= sizeof(sha3_state_internal));
return sha3512_ref_init((sha3_state_internal *) (void *) state);
return sha3_init((sha3_state_internal *) (void *) state,
SHA3_512_RATE, crypto_hash_sha3512_BYTES);
}
int
crypto_hash_sha3512_update(crypto_hash_sha3512_state *state,
const unsigned char *in, unsigned long long inlen)
{
return sha3512_ref_update((sha3_state_internal *) (void *) state, in, (size_t) inlen);
return sha3_update((sha3_state_internal *) (void *) state, in, (size_t) inlen);
}
int
crypto_hash_sha3512_final(crypto_hash_sha3512_state *state, unsigned char *out)
{
return sha3512_ref_final((sha3_state_internal *) (void *) state, out);
return sha3_final((sha3_state_internal *) (void *) state, out);
}
int
crypto_hash_sha3512(unsigned char *out, const unsigned char *in, unsigned long long inlen)
{
crypto_hash_sha3512_state state;
crypto_hash_sha3512_init(&state);
crypto_hash_sha3512_update(&state, in, inlen);
crypto_hash_sha3512_final(&state, out);
return 0;
}
@@ -1,132 +0,0 @@
#include <stdint.h>
#include <string.h>
#include "crypto_core_keccak1600.h"
#include "crypto_hash_sha3.h"
#include "private/common.h"
#include "sha3_ref.h"
#include "utils.h"
static int
sha3_ref_init(sha3_state_internal *state, size_t rate, size_t outlen)
{
crypto_core_keccak1600_init(&state->state);
state->offset = 0;
state->rate = rate;
state->outlen = outlen;
state->phase = SHA3_PHASE_ABSORBING;
return 0;
}
static int
sha3_ref_update(sha3_state_internal *state, const unsigned char *in, size_t inlen)
{
size_t consumed = 0;
size_t chunk_size;
while (consumed < inlen) {
if (state->offset == state->rate) {
crypto_core_keccak1600_permute_24(&state->state);
state->offset = 0;
}
chunk_size = state->rate - state->offset;
if (chunk_size > inlen - consumed) {
chunk_size = inlen - consumed;
}
crypto_core_keccak1600_xor_bytes(&state->state, &in[consumed], state->offset, chunk_size);
state->offset += chunk_size;
consumed += chunk_size;
}
return 0;
}
static int
sha3_ref_final(sha3_state_internal *state, unsigned char *out)
{
unsigned char pad;
if (state->offset == state->rate) {
crypto_core_keccak1600_permute_24(&state->state);
state->offset = 0;
}
if (state->offset == state->rate - 1) {
pad = (unsigned char) (SHA3_DOMAIN ^ 0x80);
crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);
} else {
pad = SHA3_DOMAIN;
crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->offset, 1);
pad = 0x80;
crypto_core_keccak1600_xor_bytes(&state->state, &pad, state->rate - 1, 1);
}
crypto_core_keccak1600_permute_24(&state->state);
crypto_core_keccak1600_extract_bytes(&state->state, out, 0, state->outlen);
sodium_memzero(state, sizeof *state);
return 0;
}
int
sha3256_ref_init(sha3_state_internal *state)
{
return sha3_ref_init(state, SHA3_256_RATE, crypto_hash_sha3256_BYTES);
}
int
sha3256_ref_update(sha3_state_internal *state, const unsigned char *in, size_t inlen)
{
return sha3_ref_update(state, in, inlen);
}
int
sha3256_ref_final(sha3_state_internal *state, unsigned char *out)
{
return sha3_ref_final(state, out);
}
int
sha3256_ref(unsigned char *out, const unsigned char *in, size_t inlen)
{
sha3_state_internal state;
sha3256_ref_init(&state);
sha3256_ref_update(&state, in, inlen);
sha3256_ref_final(&state, out);
return 0;
}
int
sha3512_ref_init(sha3_state_internal *state)
{
return sha3_ref_init(state, SHA3_512_RATE, crypto_hash_sha3512_BYTES);
}
int
sha3512_ref_update(sha3_state_internal *state, const unsigned char *in, size_t inlen)
{
return sha3_ref_update(state, in, inlen);
}
int
sha3512_ref_final(sha3_state_internal *state, unsigned char *out)
{
return sha3_ref_final(state, out);
}
int
sha3512_ref(unsigned char *out, const unsigned char *in, size_t inlen)
{
sha3_state_internal state;
sha3512_ref_init(&state);
sha3512_ref_update(&state, in, inlen);
sha3512_ref_final(&state, out);
return 0;
}
@@ -1,33 +0,0 @@
#ifndef sha3_ref_H
#define sha3_ref_H
#include <stddef.h>
#include <stdint.h>
#include "crypto_core_keccak1600.h"
#define SHA3_256_RATE 136
#define SHA3_512_RATE 72
#define SHA3_DOMAIN 0x06
typedef enum { SHA3_PHASE_ABSORBING = 0, SHA3_PHASE_FINALIZED = 1 } sha3_phase;
typedef struct sha3_state_internal_ {
crypto_core_keccak1600_state state;
size_t offset;
size_t rate;
size_t outlen;
uint8_t phase;
} sha3_state_internal;
int sha3256_ref(unsigned char *out, const unsigned char *in, size_t inlen);
int sha3256_ref_init(sha3_state_internal *state);
int sha3256_ref_update(sha3_state_internal *state, const unsigned char *in, size_t inlen);
int sha3256_ref_final(sha3_state_internal *state, unsigned char *out);
int sha3512_ref(unsigned char *out, const unsigned char *in, size_t inlen);
int sha3512_ref_init(sha3_state_internal *state);
int sha3512_ref_update(sha3_state_internal *state, const unsigned char *in, size_t inlen);
int sha3512_ref_final(sha3_state_internal *state, unsigned char *out);
#endif