1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 19:08:26 -06:00

Windows: Add support for Argon2id as an alternative to PBKDF2 key derivation

This commit is contained in:
Mounir IDRASSI
2025-06-25 15:44:31 +09:00
parent 228129362a
commit 3c17b8ced2
35 changed files with 4609 additions and 72 deletions

View File

@@ -101,8 +101,9 @@
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir)Crypto\Argon2\include;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;ARGON2_NO_THREADS;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
</ClCompile>
<Inf>
<CatalogFileName>veracrypt.cat</CatalogFileName>
@@ -110,8 +111,8 @@
<Inf>
<ProviderName>
</ProviderName>
<TimeStamp>1.26.24.0</TimeStamp>
<DateStamp>05/29/2025</DateStamp>
<TimeStamp>1.26.25.0</TimeStamp>
<DateStamp>06/25/2025</DateStamp>
</Inf>
<Link>
<AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfLdr.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfDriverEntry.lib</AdditionalDependencies>
@@ -128,8 +129,9 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Debug\Setup Files\veracrypt.inf"</Com
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir)Crypto\Argon2\include;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;ARGON2_NO_THREADS;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<TreatWarningAsError>true</TreatWarningAsError>
</ClCompile>
<Inf>
<CatalogFileName>veracrypt.cat</CatalogFileName>
@@ -137,8 +139,8 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Debug\Setup Files\veracrypt.inf"</Com
<Inf>
<ProviderName>
</ProviderName>
<TimeStamp>1.26.24.0</TimeStamp>
<DateStamp>05/29/2025</DateStamp>
<TimeStamp>1.26.25.0</TimeStamp>
<DateStamp>06/25/2025</DateStamp>
</Inf>
<Link>
<AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfLdr.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfDriverEntry.lib</AdditionalDependencies>
@@ -155,8 +157,8 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Release\Setup Files\veracrypt.inf"</C
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
<ClCompile>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;ARGON2_NO_THREADS;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir)Crypto\Argon2\include;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir)</AdditionalIncludeDirectories>
</ClCompile>
<Inf>
<CatalogFileName>veracrypt.cat</CatalogFileName>
@@ -164,8 +166,8 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Release\Setup Files\veracrypt.inf"</C
<Inf>
<ProviderName>
</ProviderName>
<TimeStamp>1.26.24.0</TimeStamp>
<DateStamp>05/29/2025</DateStamp>
<TimeStamp>1.26.25.0</TimeStamp>
<DateStamp>06/25/2025</DateStamp>
</Inf>
<Link>
<AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfLdr.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfDriverEntry.lib</AdditionalDependencies>
@@ -182,8 +184,8 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Release\Setup Files\veracrypt.inf"</C
<FileDigestAlgorithm>sha256</FileDigestAlgorithm>
</DriverSign>
<ClCompile>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;DEBUG;_DEBUG;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TC_WINDOWS_DRIVER;ARGON2_NO_THREADS;_NO_CRT_STDIO_INLINE;UNICODE;_UNICODE;DEBUG;_DEBUG;_ARM64_;ARM64;_USE_DECLSPECS_FOR_SAL=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir)Crypto\Argon2\include;$(SolutionDir);%(AdditionalIncludeDirectories);$(IntDir)</AdditionalIncludeDirectories>
</ClCompile>
<Inf>
<CatalogFileName>veracrypt.cat</CatalogFileName>
@@ -191,8 +193,8 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Release\Setup Files\veracrypt.inf"</C
<Inf>
<ProviderName>
</ProviderName>
<TimeStamp>1.26.24.0</TimeStamp>
<DateStamp>05/29/2025</DateStamp>
<TimeStamp>1.26.25.0</TimeStamp>
<DateStamp>06/25/2025</DateStamp>
</Inf>
<Link>
<AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies);$(KernelBufferOverflowLib);$(DDK_LIB_PATH)ntoskrnl.lib;$(DDK_LIB_PATH)hal.lib;$(DDK_LIB_PATH)wmilib.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfLdr.lib;$(KMDF_LIB_PATH)$(KMDF_VER_PATH)\WdfDriverEntry.lib</AdditionalDependencies>
@@ -232,6 +234,21 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Debug\Setup Files\veracrypt.inf"</Com
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\argon2.c" />
<ClCompile Include="..\Crypto\Argon2\src\blake2\blake2b.c" />
<ClCompile Include="..\Crypto\Argon2\src\core.c" />
<ClCompile Include="..\Crypto\Argon2\src\opt_avx2.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\opt_sse2.c">
<EnableEnhancedInstructionSet Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<EnableEnhancedInstructionSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<EnableEnhancedInstructionSet Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<EnableEnhancedInstructionSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\ref.c" />
<ClCompile Include="..\Crypto\Argon2\src\selftest.c" />
<ClCompile Include="..\Crypto\blake2s.c" />
<ClCompile Include="..\Crypto\blake2s_SSE2.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
@@ -297,6 +314,12 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Debug\Setup Files\veracrypt.inf"</Com
<ClInclude Include="..\Crypto\AesSmall.h" />
<ClInclude Include="..\Crypto\Aestab.h" />
<ClInclude Include="..\Crypto\Aes_hw_cpu.h" />
<ClInclude Include="..\Crypto\Argon2\include\argon2.h" />
<ClInclude Include="..\Crypto\Argon2\src\blake2\blake2-impl.h" />
<ClInclude Include="..\Crypto\Argon2\src\blake2\blake2.h" />
<ClInclude Include="..\Crypto\Argon2\src\blake2\blamka-round-opt.h" />
<ClInclude Include="..\Crypto\Argon2\src\blake2\blamka-round-ref.h" />
<ClInclude Include="..\Crypto\Argon2\src\core.h" />
<ClInclude Include="..\Crypto\Camellia.h" />
<ClInclude Include="..\Crypto\chacha256.h" />
<ClInclude Include="..\Crypto\chachaRng.h" />
@@ -611,6 +634,15 @@ copy $(OutDir)veracrypt.inf "$(SolutionDir)Debug\Setup Files\veracrypt.inf"</Com
<ItemGroup>
<ResourceCompile Include="..\Driver\Driver.rc" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\Crypto\Argon2\src\opt_avx2.asm">
<FileType>Document</FileType>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) &amp; yasm.exe -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@@ -29,6 +29,15 @@
<Filter Include="Crypto\Header Files">
<UniqueIdentifier>{1cc3d97e-dee8-429c-88d1-893306f9ec32}</UniqueIdentifier>
</Filter>
<Filter Include="Crypto\Source Files\Argon2">
<UniqueIdentifier>{023f5c4a-1679-430e-859c-928ba03116ad}</UniqueIdentifier>
</Filter>
<Filter Include="Crypto\Source Files\Argon2\blake2">
<UniqueIdentifier>{b0799d05-dab7-4631-9a9a-5f7296621188}</UniqueIdentifier>
</Filter>
<Filter Include="Crypto\Header Files\Argon2">
<UniqueIdentifier>{2f743468-6e46-4698-acec-34ae1f7c3dd8}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<Inf Include="veracrypt.inf">
@@ -171,6 +180,27 @@
<ClCompile Include="..\Crypto\sha256_armv8.c">
<Filter>Crypto\Source Files</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\argon2.c">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\core.c">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\ref.c">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\opt_sse2.c">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\selftest.c">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\blake2\blake2b.c">
<Filter>Crypto\Source Files\Argon2\blake2</Filter>
</ClCompile>
<ClCompile Include="..\Crypto\Argon2\src\opt_avx2.c">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\Common\Tcdefs.h">
@@ -281,6 +311,24 @@
<ClInclude Include="..\Driver\VolumeFilter.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\Crypto\Argon2\src\core.h">
<Filter>Crypto\Source Files\Argon2</Filter>
</ClInclude>
<ClInclude Include="..\Crypto\Argon2\src\blake2\blake2.h">
<Filter>Crypto\Source Files\Argon2\blake2</Filter>
</ClInclude>
<ClInclude Include="..\Crypto\Argon2\src\blake2\blake2-impl.h">
<Filter>Crypto\Source Files\Argon2\blake2</Filter>
</ClInclude>
<ClInclude Include="..\Crypto\Argon2\src\blake2\blamka-round-opt.h">
<Filter>Crypto\Source Files\Argon2\blake2</Filter>
</ClInclude>
<ClInclude Include="..\Crypto\Argon2\src\blake2\blamka-round-ref.h">
<Filter>Crypto\Source Files\Argon2\blake2</Filter>
</ClInclude>
<ClInclude Include="..\Crypto\Argon2\include\argon2.h">
<Filter>Crypto\Header Files\Argon2</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\Crypto\Aes_hw_cpu.asm">
@@ -334,6 +382,9 @@
<CustomBuild Include="..\Crypto\rdseed_ml.asm">
<Filter>Crypto\Source Files</Filter>
</CustomBuild>
<CustomBuild Include="..\Crypto\Argon2\src\opt_avx2-gtp41.asm">
<Filter>Crypto\Source Files\Argon2</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\Driver\Driver.rc">