diff --git a/builds/msvc/build/buildall.bat b/builds/msvc/build/buildall.bat
index d6b0d5f2..7b6deb7a 100644
--- a/builds/msvc/build/buildall.bat
+++ b/builds/msvc/build/buildall.bat
@@ -1,5 +1,7 @@
@ECHO OFF
+CALL buildbase.bat ..\vs2015\libsodium.sln 14
+ECHO.
CALL buildbase.bat ..\vs2013\libsodium.sln 12
ECHO.
CALL buildbase.bat ..\vs2012\libsodium.sln 11
@@ -7,4 +9,4 @@ ECHO.
CALL buildbase.bat ..\vs2010\libsodium.sln 10
ECHO.
-PAUSE
\ No newline at end of file
+PAUSE
diff --git a/builds/msvc/vs2015/libsodium.import.props b/builds/msvc/vs2015/libsodium.import.props
new file mode 100644
index 00000000..c7b68c90
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium.import.props
@@ -0,0 +1,52 @@
+
+
+
+
+ <_PropertySheetDisplayName>Libsodium Import Settings
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ProjectDir)..\..\..\..\..\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\..\..\libsodium\src\libsodium\include\sodium\;%(AdditionalIncludeDirectories)
+ SODIUM_STATIC;%(PreprocessorDefinitions)
+
+
+ advapi32.lib;libsodium.lib;%(AdditionalDependencies)
+ $(ProjectDir)..\..\..\..\..\libsodium\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libsodium)\;%(AdditionalLibraryDirectories)
+ $(ProjectDir)..\..\..\..\..\libsodium\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libsodium)\;%(AdditionalLibraryDirectories)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/builds/msvc/vs2015/libsodium.import.xml b/builds/msvc/vs2015/libsodium.import.xml
new file mode 100644
index 00000000..dbcf4e5a
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium.import.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/builds/msvc/vs2015/libsodium.sln b/builds/msvc/vs2015/libsodium.sln
new file mode 100644
index 00000000..e330e6ac
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium.sln
@@ -0,0 +1,81 @@
+
+Microsoft Visual Studio Solution File, Format Version 14.00
+# Visual Studio 2015
+VisualStudioVersion = 14.0.22823.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsodium", "libsodium\libsodium.vcxproj", "{A185B162-6CB6-4502-B03F-B56F7699A8D9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcxproj", "{4EDBA07C-2F08-4C9E-805F-A4921814C117}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9} = {A185B162-6CB6-4502-B03F-B56F7699A8D9}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ DynDebug|Win32 = DynDebug|Win32
+ DynDebug|x64 = DynDebug|x64
+ DynRelease|Win32 = DynRelease|Win32
+ DynRelease|x64 = DynRelease|x64
+ LtcgDebug|Win32 = LtcgDebug|Win32
+ LtcgDebug|x64 = LtcgDebug|x64
+ LtcgRelease|Win32 = LtcgRelease|Win32
+ LtcgRelease|x64 = LtcgRelease|x64
+ StaticDebug|Win32 = StaticDebug|Win32
+ StaticDebug|x64 = StaticDebug|x64
+ StaticRelease|Win32 = StaticRelease|Win32
+ StaticRelease|x64 = StaticRelease|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.ActiveCfg = DebugDLL|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|Win32.Build.0 = DebugDLL|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.ActiveCfg = DebugDLL|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynDebug|x64.Build.0 = DebugDLL|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.ActiveCfg = ReleaseDLL|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|Win32.Build.0 = ReleaseDLL|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.ActiveCfg = ReleaseDLL|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.DynRelease|x64.Build.0 = ReleaseDLL|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.ActiveCfg = DebugLTCG|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|Win32.Build.0 = DebugLTCG|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.ActiveCfg = DebugLTCG|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgDebug|x64.Build.0 = DebugLTCG|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|Win32.Build.0 = ReleaseLTCG|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.ActiveCfg = ReleaseLTCG|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.LtcgRelease|x64.Build.0 = ReleaseLTCG|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|Win32.Build.0 = DebugLIB|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.ActiveCfg = DebugLIB|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticDebug|x64.Build.0 = DebugLIB|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}.StaticRelease|x64.Build.0 = ReleaseLIB|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynDebug|Win32.ActiveCfg = DebugDEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynDebug|Win32.Build.0 = DebugDEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynDebug|x64.ActiveCfg = DebugDEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynDebug|x64.Build.0 = DebugDEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynRelease|Win32.ActiveCfg = ReleaseDEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynRelease|Win32.Build.0 = ReleaseDEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynRelease|x64.ActiveCfg = ReleaseDEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.DynRelease|x64.Build.0 = ReleaseDEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgDebug|Win32.ActiveCfg = DebugLEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgDebug|Win32.Build.0 = DebugLEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgDebug|x64.ActiveCfg = DebugLEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgDebug|x64.Build.0 = DebugLEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgRelease|Win32.ActiveCfg = ReleaseLEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgRelease|Win32.Build.0 = ReleaseLEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgRelease|x64.ActiveCfg = ReleaseLEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.LtcgRelease|x64.Build.0 = ReleaseLEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticDebug|Win32.ActiveCfg = DebugSEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticDebug|Win32.Build.0 = DebugSEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticDebug|x64.ActiveCfg = DebugSEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticDebug|x64.Build.0 = DebugSEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticRelease|Win32.ActiveCfg = ReleaseSEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticRelease|Win32.Build.0 = ReleaseSEXE|Win32
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticRelease|x64.ActiveCfg = ReleaseSEXE|x64
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}.StaticRelease|x64.Build.0 = ReleaseSEXE|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/builds/msvc/vs2015/libsodium/libsodium.props b/builds/msvc/vs2015/libsodium/libsodium.props
new file mode 100644
index 00000000..beaa257c
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium/libsodium.props
@@ -0,0 +1,43 @@
+
+
+
+
+ <_PropertySheetDisplayName>Libsodium Common Settings
+ AllRules.ruleset
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ copy "$(BuildRoot)version.h" "$(RepoRoot)src\libsodium\include\sodium\"
+
+
+ $(RepoRoot)src\libsodium\include;$(RepoRoot)src\libsodium\include\sodium\;%(AdditionalIncludeDirectories)
+ 4146;4244;%(DisableSpecificWarnings)
+ false
+ inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ SODIUM_STATIC;%(PreprocessorDefinitions)
+ SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)
+ HAVE_AMD64_ASM;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
new file mode 100644
index 00000000..75800d88
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
@@ -0,0 +1,352 @@
+
+
+
+ {A185B162-6CB6-4502-B03F-B56F7699A8D9}
+ libsodium
+ v140
+
+
+
+ DebugDLL
+ Win32
+
+
+ ReleaseDLL
+ Win32
+
+
+ DebugDLL
+ x64
+
+
+ ReleaseDLL
+ x64
+
+
+ DebugLTCG
+ Win32
+
+
+ ReleaseLTCG
+ Win32
+
+
+ DebugLTCG
+ x64
+
+
+ ReleaseLTCG
+ x64
+
+
+ DebugLIB
+ Win32
+
+
+ ReleaseLIB
+ Win32
+
+
+ DebugLIB
+ x64
+
+
+ ReleaseLIB
+ x64
+
+
+
+ StaticLibrary
+ DynamicLibrary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
new file mode 100644
index 00000000..76147a1a
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
@@ -0,0 +1,1073 @@
+
+
+
+
+ include
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ src\crypto_box\curve25519xsalsa20poly1305\ref
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_auth\hmacsha256
+
+
+ src\crypto_auth\hmacsha512256
+
+
+ src\crypto_onetimeauth\poly1305\donna
+
+
+ src\crypto_box\curve25519xsalsa20poly1305\ref
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_generichash\blake2\ref
+
+
+ src\crypto_box\curve25519xsalsa20poly1305\ref
+
+
+ src\crypto_box\curve25519xsalsa20poly1305
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_core\hsalsa20\ref2
+
+
+ src\crypto_core\hsalsa20
+
+
+ src\crypto_core\salsa20\ref
+
+
+ src\crypto_core\salsa20
+
+
+ src\crypto_core\salsa208\ref
+
+
+ src\crypto_core\salsa208
+
+
+ src\crypto_core\salsa2012
+
+
+ src\crypto_core\salsa2012
+
+
+ src\crypto_auth
+
+
+ src\crypto_box
+
+
+ src\crypto_generichash
+
+
+ src\crypto_hash
+
+
+ src\crypto_onetimeauth
+
+
+ src\crypto_scalarmult
+
+
+ src\crypto_secretbox
+
+
+ src\crypto_shorthash
+
+
+ src\crypto_sign
+
+
+ src\crypto_stream
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_generichash\blake2
+
+
+ src\crypto_generichash\blake2\ref
+
+
+ src\crypto_hash\sha256
+
+
+ src\crypto_hash\sha512
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_onetimeauth\poly1305
+
+
+ src\crypto_onetimeauth\poly1305
+
+
+ src\crypto_onetimeauth\poly1305
+
+
+ src\crypto_box\curve25519xsalsa20poly1305\ref
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_scalarmult\curve25519
+
+
+ src\crypto_secretbox\xsalsa20poly1305
+
+
+ src\crypto_shorthash\siphash24\ref
+
+
+ src\crypto_shorthash\siphash24
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_sign\edwards25519sha512batch
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_stream\aes128ctr
+
+
+ src\crypto_stream\salsa20
+
+
+ src\crypto_stream\salsa208\ref
+
+
+ src\crypto_stream\salsa208
+
+
+ src\crypto_stream\salsa2012\ref
+
+
+ src\crypto_stream\salsa2012
+
+
+ src\crypto_stream\xsalsa20\ref
+
+
+ src\crypto_stream\xsalsa20
+
+
+ src\crypto_onetimeauth\poly1305\donna
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_stream\salsa208\ref
+
+
+ src\crypto_stream\salsa2012\ref
+
+
+ src\crypto_stream\xsalsa20\ref
+
+
+ src\crypto_box
+
+
+ src\crypto_box
+
+
+ src\crypto_secretbox
+
+
+ src\crypto_hash\sha256\cp
+
+
+ src\crypto_auth\hmacsha256\cp
+
+
+ src\crypto_auth\hmacsha256\cp
+
+
+ src\crypto_hash\sha512\cp
+
+
+ src\crypto_auth\hmacsha512\cp
+
+
+ src\crypto_auth\hmacsha512256\cp
+
+
+ src\crypto_auth\hmacsha512256\cp
+
+
+ src\sodium
+
+
+ src\sodium
+
+
+ src\sodium
+
+
+ src\randombytes
+
+
+ src\crypto_verify\16
+
+
+ src\crypto_verify\32
+
+
+ src\crypto_verify\64
+
+
+ src\crypto_verify\64\ref
+
+
+ src\crypto_verify\32\ref
+
+
+ src\crypto_verify\16\ref
+
+
+ src\randombytes\salsa20
+
+
+ src\randombytes\sysrandom
+
+
+ src\crypto_auth\hmacsha512
+
+
+ src\crypto_generichash\blake2\ref
+
+
+ src\crypto_generichash\blake2\ref
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_auth\hmacsha512\cp
+
+
+ src\crypto_secretbox\xsalsa20poly1305\ref
+
+
+ src\sodium
+
+
+ src\crypto_pwhash\scryptsalsa208sha256
+
+
+ src\crypto_pwhash\scryptsalsa208sha256\nosse
+
+
+ src\crypto_pwhash\scryptsalsa208sha256\sse
+
+
+ src\crypto_auth\hmacsha512256\cp
+
+
+ src\crypto_box\curve25519xsalsa20poly1305\ref
+
+
+ src\crypto_generichash\blake2\ref
+
+
+ src\crypto_hash\sha256\cp
+
+
+ src\crypto_hash\sha512\cp
+
+
+ src\crypto_onetimeauth\poly1305\donna
+
+
+ src\crypto_secretbox\xsalsa20poly1305\ref
+
+
+ src\crypto_shorthash\siphash24\ref
+
+
+ src\crypto_sign\edwards25519sha512batch\ref
+
+
+ src\crypto_stream\aes128ctr\portable
+
+
+ src\crypto_verify\16\ref
+
+
+ src\crypto_verify\32\ref
+
+
+ src\crypto_verify\64\ref
+
+
+ src\crypto_scalarmult\curve25519\donna_c64
+
+
+ src\crypto_scalarmult\curve25519\donna_c64
+
+
+ src\crypto_stream\salsa20\ref
+
+
+ src\crypto_stream\salsa20\ref
+
+
+ src\crypto_core\salsa20\ref
+
+
+ src\crypto_core\salsa208\ref
+
+
+ src\crypto_core\salsa2012\ref
+
+
+ src\crypto_core\hsalsa20\ref2
+
+
+ src\crypto_stream\salsa208\ref
+
+
+ src\crypto_stream\salsa2012\ref
+
+
+ src\crypto_stream\xsalsa20\ref
+
+
+ src\crypto_scalarmult\curve25519\donna_c64
+
+
+ src\crypto_stream\salsa20\ref
+
+
+ src\crypto_stream\salsa20\amd64_xmm6
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_sign\ed25519\ref10
+
+
+ src\crypto_auth\hmacsha256\cp
+
+
+ src\crypto_auth\hmacsha512\cp
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_stream\chacha20\ref
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+
+
+ packaging
+
+
+ packaging
+
+
+ packaging
+
+
+ packaging
+
+
+ packaging
+
+
+ packaging
+
+
+ src\crypto_stream\salsa20\amd64_xmm6
+
+
+
+
+ {03c1f568-fa7f-499c-a616-a8e0f5050b97}
+
+
+ {ddaca9ce-4d7d-4395-bfd2-2eda05bc80c2}
+
+
+ {C7DE5B24-B5D1-47D0-A83A-8C9A123D782C}
+
+
+ {b320f6a3-36a4-4b22-8c21-da7d2e12211a}
+
+
+ {983480f9-7320-4c01-b926-ee8dead5b916}
+
+
+ {02bdfd8e-f5c5-4574-bbbb-c74529732ce6}
+
+
+ {a71cc7f9-91b7-4e8f-af53-6ffb34361504}
+
+
+ {e0e40095-6fcc-4d17-892c-59dbde8eecef}
+
+
+ {2a770536-f29b-4ec2-9abe-8e197f6568d3}
+
+
+ {61deff4c-da3d-4818-be86-f303cafafdf7}
+
+
+ {d7a19b71-c3e8-4269-9196-b84b75f80ea3}
+
+
+ {a355e921-720c-400f-baa6-1ad7c92b0965}
+
+
+ {8ec29d92-3133-45d3-918b-ec83736d8fad}
+
+
+ {accf7bea-bb27-42b6-94ab-a61c5d33d2a8}
+
+
+ {5b07228e-b709-44ed-a064-f955f12346b0}
+
+
+ {7d8294db-7351-4e51-8eaf-2c5cf480babb}
+
+
+ {9646b8af-9356-4554-901a-01d788977c8f}
+
+
+ {51474f49-0245-4469-ad60-1232b070f485}
+
+
+ {076ae5b6-e83f-4dfd-8ad1-1cf9498163cf}
+
+
+ {561681e2-2540-4d96-beab-1ab5d4c917c1}
+
+
+ {120ddd61-6cd1-4942-98c4-d6f0d935561d}
+
+
+ {e368d8fe-75aa-4ae4-9108-44d7d2d6dd45}
+
+
+ {9c9ccf6a-9ddc-474f-b037-7283a2062441}
+
+
+ {a1d49972-da2e-4287-a896-3895b07b8bb6}
+
+
+ {d57353dc-ff60-4ff7-95e1-76413f5b7412}
+
+
+ {abbfd1ef-8471-4249-a8ba-2127e6ec0d3e}
+
+
+ {b6607f53-b7ec-4e2f-b3be-005ec71ebbc8}
+
+
+ {2382394d-2013-4992-a192-925667930038}
+
+
+ {e3443408-7481-46b8-b7d1-b0934db097af}
+
+
+ {7b3b0e11-3a29-4041-8ff3-b2db3515a7ea}
+
+
+ {7b85001b-afbc-47ef-b9bc-2e88d42706b9}
+
+
+ {84e229c4-90ec-44ff-bc45-4f3124d1a76a}
+
+
+ {38f6b495-9ac2-466f-a5f5-6f167c962782}
+
+
+ {6e16e561-ad11-4163-b7f5-0f54e5a6be21}
+
+
+ {defadbf0-a430-4113-b592-5bb8ccfb3db8}
+
+
+ {0ee43c44-b79e-407c-a81b-87e087125c2a}
+
+
+ {7d028278-1392-4552-94ab-3b6ddc7d6244}
+
+
+ {e82bcfa5-052a-44af-a842-103f82afb038}
+
+
+ {8974bffa-329d-4c43-a335-1ef524931734}
+
+
+ {b788850f-cd6a-49bb-a2fc-5dc217fb21a3}
+
+
+ {4dd0cec6-9024-4ca9-ad9f-e877e0aa4e39}
+
+
+ {bcf30ce5-e8cc-4c02-9411-1a493f7d0d2d}
+
+
+ {f2d8043a-ea27-4c13-abae-12dfacbf9b2f}
+
+
+ {72eb89ac-4a14-4edb-8e0f-2e7f83de9ee3}
+
+
+ {b4a8182e-ac68-44ff-9326-4cc0a9061ed8}
+
+
+ {229af36f-3c18-4cbf-8b60-84a04be8506e}
+
+
+ {ca40b775-e025-4359-87ae-02c771c1a222}
+
+
+ {91c31952-2f36-418e-aa07-68ed57057d0f}
+
+
+ {6aaac1e4-ac4e-4ffb-8bbc-7eb2a7882720}
+
+
+ {a4f08471-9539-4f8c-af00-b94d0755bd68}
+
+
+ {8d2310cb-954e-4a9e-83bc-89258c241470}
+
+
+ {088d0208-228e-4fd3-989b-cc548cecf9cb}
+
+
+ {61ae16a0-1ba1-453d-a77c-db86d2be0568}
+
+
+ {1c006197-b25b-48e8-833f-2dd59a571b9d}
+
+
+ {46eb8265-dc41-4289-aa7d-c1918e05cf75}
+
+
+ {e1301424-0353-47a8-9f5d-2c6f19bdac10}
+
+
+ {996fa5e1-cf7e-4b97-a502-edc874ee020d}
+
+
+ {4a1f7816-c9b5-4cfc-a4f3-54d094e13520}
+
+
+ {629a0d99-8735-4761-b41b-b2a91b1fdffa}
+
+
+ {08465b05-7a80-40b5-bbe5-31914fdd6e7e}
+
+
+ {280d66b5-3cf2-47b0-b3a9-2e3035267cb0}
+
+
+ {b7e800ab-220d-49ce-b083-52fd69f5c0d0}
+
+
+ {83290051-5254-49d1-9681-7e075d369f2f}
+
+
+ {df0550dd-1947-4a0f-813a-9c52a3c92d30}
+
+
+ {7800c160-ebba-47a3-bce5-513c8d59c721}
+
+
+ {d245433a-5e44-4984-8bf4-e3eabfd01080}
+
+
+ {9d51019b-0714-4c0f-b110-b796b744b3b9}
+
+
+ {e07ef1ae-589b-4aba-95d7-828098035aba}
+
+
+ {5b1a5bc3-65ad-4493-a29d-009300622f59}
+
+
+ {ff4c9104-e49a-4a1a-8072-efd241caf957}
+
+
+ {0a601d97-867d-43c6-896a-037d3ccb1b64}
+
+
+ {c390ac60-d84b-4ba9-bdf8-d893e3c5a762}
+
+
+ {3062daf0-5f1a-4d51-b52d-809b05b5497d}
+
+
+ {0f487f99-d651-4965-b2e6-5da1a04b2f43}
+
+
+ {b5ca06e6-3e8f-4c47-9896-d97976c1b1ba}
+
+
+ {99f433de-7c93-48d2-9e94-0e43420b2c09}
+
+
+ {b547f668-5741-494e-b6ec-76ddace0d0ae}
+
+
+ {938c242c-209d-4b20-8f75-6a543919382d}
+
+
+ {65197ddf-17b9-4b40-9f6e-c5ba4067785b}
+
+
+ {7a5c7f79-8538-46cb-a9ce-010f687acbc2}
+
+
+ {404da9f2-09c6-4816-8afe-de701ddddb35}
+
+
+ {da16d0f4-7f2d-4a0c-a0e2-92eec8662999}
+
+
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_scalarmult\curve25519\ref10
+
+
+ src\crypto_stream\chacha20
+
+
+ src\crypto_stream\chacha20\ref
+
+
+ src\crypto_aead\chacha20poly1305\sodium
+
+
+
diff --git a/builds/msvc/vs2015/libsodium/libsodium.xml b/builds/msvc/vs2015/libsodium/libsodium.xml
new file mode 100644
index 00000000..808ccb9f
--- /dev/null
+++ b/builds/msvc/vs2015/libsodium/libsodium.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/builds/msvc/vs2015/test/test.props b/builds/msvc/vs2015/test/test.props
new file mode 100644
index 00000000..de8bd4e7
--- /dev/null
+++ b/builds/msvc/vs2015/test/test.props
@@ -0,0 +1,43 @@
+
+
+
+
+ <_PropertySheetDisplayName>Libsodium Test Common Settings
+ AllRules.ruleset
+ false
+
+
+
+
+
+
+ $(RepoRoot)test\default\;$(RepoRoot)test\quirks\;%(AdditionalIncludeDirectories)
+ false
+ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+
+
+
+
+ dynamic
+
+
+ ltcg
+
+
+ static
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/builds/msvc/vs2015/test/test.runner.bat b/builds/msvc/vs2015/test/test.runner.bat
new file mode 100644
index 00000000..cd7e7914
--- /dev/null
+++ b/builds/msvc/vs2015/test/test.runner.bat
@@ -0,0 +1,78 @@
+REM WORK IN PROGRESS
+
+@ECHO OFF
+
+if "%1" == "" (
+ echo "Usage: wintest.bat NUL 2>&1
+ if not exist %%f.exe (
+ echo %%f compile failed
+ goto :END
+ )
+ %%f.exe
+ if errorlevel 1 (
+ echo %%f failed
+ ) else (
+ echo %%f ok
+ )
+)
+REM Remove temporary files
+del *.exe *.obj *.res *.exp *.pdb
+
+:END
diff --git a/builds/msvc/vs2015/test/test.vcxproj b/builds/msvc/vs2015/test/test.vcxproj
new file mode 100644
index 00000000..c53cda5b
--- /dev/null
+++ b/builds/msvc/vs2015/test/test.vcxproj
@@ -0,0 +1,241 @@
+
+
+
+ {4EDBA07C-2F08-4C9E-805F-A4921814C117}
+ test
+ v140
+ Application
+
+
+
+ DebugDEXE
+ Win32
+
+
+ ReleaseDEXE
+ Win32
+
+
+ DebugDEXE
+ x64
+
+
+ ReleaseDEXE
+ x64
+
+
+ DebugLEXE
+ Win32
+
+
+ ReleaseLEXE
+ Win32
+
+
+ DebugLEXE
+ x64
+
+
+ ReleaseLEXE
+ x64
+
+
+ DebugSEXE
+ Win32
+
+
+ ReleaseSEXE
+ Win32
+
+
+ DebugSEXE
+ x64
+
+
+ ReleaseSEXE
+ x64
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+
+
diff --git a/builds/msvc/vs2015/test/test.vcxproj.filters b/builds/msvc/vs2015/test/test.vcxproj.filters
new file mode 100644
index 00000000..c1fd5d3b
--- /dev/null
+++ b/builds/msvc/vs2015/test/test.vcxproj.filters
@@ -0,0 +1,189 @@
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+
+
+ include
+
+
+ include
+
+
+
+
+ {705beade-aa7f-49c0-900e-4b0cbbdc2f7b}
+
+
+ {5b5af4b5-c6aa-4b30-bdef-074b1bdc43ea}
+
+
+