mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-12 19:38:26 -06:00
Crypto: Add optimized SHA-512 and SHA-256 assembly implementations for x86_64 and x86. This improves speed by 30%.
This commit is contained in:
@@ -330,7 +330,7 @@ static void ComputeBootLoaderFingerprint(PDEVICE_OBJECT LowerDeviceObject, byte*
|
||||
#if !defined (_WIN64)
|
||||
KFLOATING_SAVE floatingPointState;
|
||||
NTSTATUS saveStatus = STATUS_SUCCESS;
|
||||
if (HasISSE())
|
||||
if (HasISSE()|| (HasSSE2() && HasMMX()))
|
||||
saveStatus = KeSaveFloatingPointState (&floatingPointState);
|
||||
#endif
|
||||
WHIRLPOOL_add (ioBuffer, TC_BOOT_SECTOR_PIM_VALUE_OFFSET, &whirlpool);
|
||||
@@ -368,7 +368,7 @@ static void ComputeBootLoaderFingerprint(PDEVICE_OBJECT LowerDeviceObject, byte*
|
||||
}
|
||||
|
||||
#if !defined (_WIN64)
|
||||
if (NT_SUCCESS (saveStatus) && HasISSE())
|
||||
if (NT_SUCCESS (saveStatus) && (HasISSE() || (HasSSE2() && HasMMX())))
|
||||
KeRestoreFloatingPointState (&floatingPointState);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -225,6 +225,33 @@ BuildDriver.cmd -rebuild -debug -x64 "$(SolutionDir)\Common" "$(SolutionDir)\Cry
|
||||
<None Include="..\Crypto\Aes_x86.asm" />
|
||||
<None Include="..\Crypto\Camellia_aesni_x64.S" />
|
||||
<None Include="..\Crypto\Camellia_x64.S" />
|
||||
<None Include="..\Crypto\sha256-x86-nayuki.S">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256_avx1_x64.asm">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256_avx2_x64.asm">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256_sse4_x64.asm">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512-x64-nayuki.S">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512-x86-nayuki.S">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512_avx1_x64.asm">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512_avx2_x64.asm">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512_sse4_x64.asm">
|
||||
<FileType>Document</FileType>
|
||||
</None>
|
||||
<None Include="..\Crypto\Twofish_x64.S" />
|
||||
<None Include="BuildDriver.cmd" />
|
||||
<None Include="Makefile" />
|
||||
|
||||
@@ -152,6 +152,33 @@
|
||||
<None Include="..\Crypto\Twofish_x64.S">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256-x86-nayuki.S">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512_sse4_x64.asm">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256_avx1_x64.asm">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256_avx2_x64.asm">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha256_sse4_x64.asm">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512-x86-nayuki.S">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512-x64-nayuki.S">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512_avx1_x64.asm">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
<None Include="..\Crypto\sha512_avx2_x64.asm">
|
||||
<Filter>Source Files\Crypto</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\Common\Apidrvr.h">
|
||||
|
||||
Reference in New Issue
Block a user