diff --git a/GNUmakefile b/GNUmakefile
index a27e5477..35f10a0b 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -656,8 +656,8 @@ endif
# https://stackoverflow.com/questions/45474857/why-does-appveyor-use-vs2010-tools-for-vs2015-image
.PHONY: appveyor
appveyor:
- sed 's|Toolset>v100|Toolset>v140|g;s|ToolsVersion="4.0"|ToolsVersion="14.0"|g' cryptlib.vcxproj > TestScripts/cryptlib.vcxproj
- sed 's|Toolset>v100|Toolset>v140|g;ToolsVersion="4.0"|ToolsVersion="14.0"|g' cryptest.vcxproj > TestScripts/cryptest.vcxproj
+ sed -e 's|v100|v140|g;s|ToolsVersion="4.0"|ToolsVersion="14.0"|g' cryptlib.vcxproj > TestScripts/cryptlib.vcxproj
+ sed -e 's|v100|v140|g;s|ToolsVersion="4.0"|ToolsVersion="14.0"|g' cryptest.vcxproj > TestScripts/cryptest.vcxproj
# Builds the documentation. Directory name is ref563, ref570, etc.
.PHONY: docs html
diff --git a/TestScripts/cryptest.vcxproj b/TestScripts/cryptest.vcxproj
new file mode 100644
index 00000000..b914dbf4
--- /dev/null
+++ b/TestScripts/cryptest.vcxproj
@@ -0,0 +1,329 @@
+
+
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ DLL-Import Debug
+ Win32
+
+
+ DLL-Import Debug
+ x64
+
+
+ DLL-Import Release
+ Win32
+
+
+ DLL-Import Release
+ x64
+
+
+
+
+
+
+ {09cdac08-e6ae-48a9-8de7-0fbc779eebde}
+ cryptest
+ v140
+ Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Application
+ cryptest
+ .exe
+ false
+ MultiByte
+ true
+
+
+
+
+ $(Platform)\Output\$(Configuration)\
+ $(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(Platform)\DLL_Output\Debug\
+ $(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(Platform)\DLL_Output\Release\
+ $(Platform)\$(ProjectName)\$(Configuration)\
+
+
+
+
+ true
+ None
+ Level4
+ 4231; 4355; 4505
+
+
+
+
+ NoErrorReport
+ cryptlib.lib;Ws2_32.lib
+ $(Platform)\Output\$(Configuration)
+ true
+ $(OutDir)\cryptlib.pdb
+ $(OutDir)\cryptest.exe
+ Console
+
+
+
+
+
+ %(PreprocessorDefinitions)
+ Disabled
+ ProgramDatabase
+ EnableFastChecks
+ true
+ MultiThreadedDebug
+
+
+ %(PreprocessorDefinitions)
+ 0x0409
+
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ MaxSpeed
+ true
+ AnySuitable
+ true
+ true
+ MultiThreaded
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ true
+
+
+
+
+
+ CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)
+
+
+ $(Platform)\DLL_Output\Debug
+ cryptopp.lib;cryptlib.lib;Ws2_32.lib
+
+
+
+
+ NDEBUG;CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)
+
+
+ $(Platform)\DLL_Output\Release
+ cryptopp.lib;cryptlib.lib;Ws2_32.lib
+
+
+
+
+
+ StreamingSIMDExtensions2
+
+
+ MachineX86
+ true
+
+
+
+
+
+ MachineX64
+
+
+
+
+
+
+ echo *************************************************************************
+ echo This configuration requires cryptopp.dll. You can build it yourself using
+ echo the cryptdll project, or obtain a pre-built, FIPS 140-2 validated DLL. If
+ echo you build it yourself the resulting DLL will not be considered FIPS
+ echo validated unless it undergoes the FIPS validation process.
+ echo *************************************************************************
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TestScripts/cryptlib.vcxproj b/TestScripts/cryptlib.vcxproj
new file mode 100644
index 00000000..183b41fa
--- /dev/null
+++ b/TestScripts/cryptlib.vcxproj
@@ -0,0 +1,494 @@
+
+
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ DLL-Import Debug
+ Win32
+
+
+ DLL-Import Debug
+ x64
+
+
+ DLL-Import Release
+ Win32
+
+
+ DLL-Import Release
+ x64
+
+
+
+
+
+
+ {c39f4b46-6e89-4074-902e-ca57073044d2}
+ cryptlib
+ v140
+ StaticLibrary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ StaticLibrary
+ cryptlib
+ .lib
+ false
+ MultiByte
+ true
+
+
+
+
+ $(Platform)\Output\$(Configuration)\
+ $(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(Platform)\DLL_Output\Debug\
+ $(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(Platform)\DLL_Output\Release\
+ $(Platform)\$(ProjectName)\$(Configuration)\
+
+
+
+
+ true
+ None
+ Level4
+ 4231; 4355; 4505
+ Use
+ pch.h
+
+
+ NoErrorReport
+
+
+
+
+
+ USE_PRECOMPILED_HEADERS;%(PreprocessorDefinitions)
+ Disabled
+ ProgramDatabase
+ EnableFastChecks
+ true
+ MultiThreadedDebug
+
+
+ %(PreprocessorDefinitions)
+ 0x0409
+
+
+
+
+
+ NDEBUG;USE_PRECOMPILED_HEADERS;%(PreprocessorDefinitions)
+ true
+ MaxSpeed
+ true
+ AnySuitable
+ true
+ true
+ MultiThreaded
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+
+
+
+ USE_PRECOMPILED_HEADERS;CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)
+
+
+
+
+ NDEBUG;USE_PRECOMPILED_HEADERS;CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)
+
+
+
+
+
+ StreamingSIMDExtensions2
+
+
+ MachineX86
+ true
+
+
+
+
+
+ MachineX64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist adhoc.cpp copy "%(FullPath)" adhoc.cpp
+ echo: >> adhoc.cpp.copied
+
+ adhoc.cpp.copied;%(Outputs)
+
+
+
+
+
+
+
+
+ Building and assembling rdrand.asm
+ ml.exe /c /nologo /D_M_X86 /W3 /Cx /Zi /safeseh /Fo"$(IntDir)rdrand-x86.obj" "%(FullPath)"
+ $(IntDir)\rdrand-x86.obj;%(Outputs)
+
+
+ Building and assembling rdrand.asm
+ ml64.exe /c /nologo /D_M_X64 /W3 /Cx /Zi /Fo"$(IntDir)rdrand-x64.obj" "%(FullPath)"
+ $(IntDir)\rdrand-x64.obj;%(Outputs)
+
+
+ Building and assembling x64dll.asm
+ ml64.exe /c /nologo /D_M_X64 /W3 /Zi /Fo"$(IntDir)x64dll.obj" "%(FullPath)"
+ $(IntDir)x64dll.obj;%(Outputs)
+
+
+ Building and Assembling x64masm.asm
+ ml64.exe /c /nologo /D_M_X64 /W3 /Zi /Fo"$(IntDir)x64masm.obj" "%(FullPath)"
+ $(IntDir)x64masm.obj;%(Outputs)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cryptdll.vcxproj b/cryptdll.vcxproj
index ff75ddb8..cf8ad091 100644
--- a/cryptdll.vcxproj
+++ b/cryptdll.vcxproj
@@ -27,6 +27,7 @@
{94a428a1-9ba8-4db2-b76e-bd2e3c08f257}
cryptdll
+ v100
DynamicLibrary
diff --git a/cryptest.vcxproj b/cryptest.vcxproj
index f262aede..4f5683cb 100644
--- a/cryptest.vcxproj
+++ b/cryptest.vcxproj
@@ -37,19 +37,13 @@
x64
-
-
-
{09cdac08-e6ae-48a9-8de7-0fbc779eebde}
cryptest
+ v100
Application
diff --git a/cryptlib.vcxproj b/cryptlib.vcxproj
index 5e86893b..de3d6334 100644
--- a/cryptlib.vcxproj
+++ b/cryptlib.vcxproj
@@ -37,19 +37,13 @@
x64
-
-
-
{c39f4b46-6e89-4074-902e-ca57073044d2}
cryptlib
+ v100
StaticLibrary
diff --git a/dlltest.vcxproj b/dlltest.vcxproj
index fe9c2885..c2e90905 100644
--- a/dlltest.vcxproj
+++ b/dlltest.vcxproj
@@ -27,6 +27,7 @@
{1974a53a-9863-41c9-886d-b2b8c2fc3c8b}
dlltest
+ v100
Application