diff --git a/.appveyor.yml b/.appveyor.yml
index 9b37ae8a..fa784ea5 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -35,7 +35,11 @@ test_script:
- cmd: >-
- msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptlib.vcxproj
+ copy /y TestScripts/cryptlib.vcxproj .
+
+ copy /y TestScripts/cryptest.vcxproj .
+
+ msbuild /t:Build cryptlib.vcxproj
msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptest.vcxproj
diff --git a/GNUmakefile b/GNUmakefile
index f74e64ae..cfb58467 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -790,8 +790,13 @@ ifeq ($(wildcard Filelist.txt),Filelist.txt)
DIST_FILES := $(shell cat Filelist.txt)
endif
+.PHONY: appveyor
+appveyor:
+ sed 's|Toolset>v100|Toolset>$$(DefaultPlatformToolset)|g' cryptlib.vcxproj > TestScripts/cryptlib.vcxproj
+ sed 's|Toolset>v100|Toolset>$$(DefaultPlatformToolset)|g' cryptest.vcxproj > TestScripts/cryptest.vcxproj
+
.PHONY: trim
-trim:
+trim: appveyor
ifneq ($(IS_DARWIN),0)
sed -i '' -e's/[[:space:]]*$$//' *.sh .*.yml *.h *.cpp *.asm *.s *.sln *.vcxproj *.filters GNUmakefile GNUmakefile-cross
sed -i '' -e's/[[:space:]]*$$//' TestData/*.dat TestVectors/*.txt TestScripts/*.*
diff --git a/TestScripts/cryptest.vcxproj b/TestScripts/cryptest.vcxproj
new file mode 100644
index 00000000..d553244f
--- /dev/null
+++ b/TestScripts/cryptest.vcxproj
@@ -0,0 +1,321 @@
+
+
+
+
+ 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
+ $(DefaultPlatformToolset)
+ 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
+
+
+
+
+ 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..bf8bbfed
--- /dev/null
+++ b/TestScripts/cryptlib.vcxproj
@@ -0,0 +1,479 @@
+
+
+
+
+ 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
+ $(DefaultPlatformToolset)
+ 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
+ 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