diff --git a/NetSSL_Win/NetSSL_Win.progen b/NetSSL_Win/NetSSL_Win.progen new file mode 100644 index 000000000..914ffe90a --- /dev/null +++ b/NetSSL_Win/NetSSL_Win.progen @@ -0,0 +1,25 @@ +vc.project.guid = A097DC74-A5FC-4A0B-804E-B18892426E77 +vc.project.name = NetSSL_Win +vc.project.target = PocoNetSSLWin +vc.project.type = library +vc.project.pocobase = .. +vc.project.outdir = ${vc.project.pocobase} +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\Foundation\\include;..\\Net\\include;..\\Util\\include +vc.project.compiler.defines = +vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS +vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.debug_shared = +vc.project.linker.dependencies.release_shared = +vc.project.linker.dependencies.debug_static_md = +vc.project.linker.dependencies.release_static_md = +vc.project.linker.dependencies.debug_static_mt = +vc.project.linker.dependencies.release_static_mt = +vc.solution.create = true +vc.solution.include = testsuite\\TestSuite diff --git a/NetSSL_Win/NetSSL_Win_CE_vs90.sln b/NetSSL_Win/NetSSL_Win_CE_vs90.sln new file mode 100644 index 000000000..68bd2c1c6 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_CE_vs90.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_CE_vs90.vcproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_CE_vs90.vcproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Digi JumpStart (ARMV4I) = debug_shared|Digi JumpStart (ARMV4I) + release_shared|Digi JumpStart (ARMV4I) = release_shared|Digi JumpStart (ARMV4I) + debug_static_mt|Digi JumpStart (ARMV4I) = debug_static_mt|Digi JumpStart (ARMV4I) + release_static_mt|Digi JumpStart (ARMV4I) = release_static_mt|Digi JumpStart (ARMV4I) + debug_static_md|Digi JumpStart (ARMV4I) = debug_static_md|Digi JumpStart (ARMV4I) + release_static_md|Digi JumpStart (ARMV4I) = release_static_md|Digi JumpStart (ARMV4I) + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Digi JumpStart (ARMV4I).ActiveCfg = debug_shared|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Digi JumpStart (ARMV4I).Build.0 = debug_shared|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Digi JumpStart (ARMV4I).Deploy.0 = debug_shared|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Digi JumpStart (ARMV4I).ActiveCfg = release_shared|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Digi JumpStart (ARMV4I).Build.0 = release_shared|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Digi JumpStart (ARMV4I).Deploy.0 = release_shared|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_mt|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Digi JumpStart (ARMV4I).Build.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = release_static_mt|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Digi JumpStart (ARMV4I).Build.0 = release_static_mt|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = release_static_mt|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_md|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Digi JumpStart (ARMV4I).Build.0 = debug_static_md|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_md|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Digi JumpStart (ARMV4I).ActiveCfg = release_static_md|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Digi JumpStart (ARMV4I).Build.0 = release_static_md|Digi JumpStart (ARMV4I) + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Digi JumpStart (ARMV4I).Deploy.0 = release_static_md|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Digi JumpStart (ARMV4I).ActiveCfg = debug_shared|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Digi JumpStart (ARMV4I).Build.0 = debug_shared|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Digi JumpStart (ARMV4I).Deploy.0 = debug_shared|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Digi JumpStart (ARMV4I).ActiveCfg = release_shared|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Digi JumpStart (ARMV4I).Build.0 = release_shared|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Digi JumpStart (ARMV4I).Deploy.0 = release_shared|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_mt|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Digi JumpStart (ARMV4I).Build.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = release_static_mt|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Digi JumpStart (ARMV4I).Build.0 = release_static_mt|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = release_static_mt|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_md|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Digi JumpStart (ARMV4I).Build.0 = debug_static_md|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_md|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Digi JumpStart (ARMV4I).ActiveCfg = release_static_md|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Digi JumpStart (ARMV4I).Build.0 = release_static_md|Digi JumpStart (ARMV4I) + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Digi JumpStart (ARMV4I).Deploy.0 = release_static_md|Digi JumpStart (ARMV4I) + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_CE_vs90.vcproj b/NetSSL_Win/NetSSL_Win_CE_vs90.vcproj new file mode 100644 index 000000000..38011e91f --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_CE_vs90.vcproj @@ -0,0 +1,567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_WEC2013_vs110.sln b/NetSSL_Win/NetSSL_Win_WEC2013_vs110.sln new file mode 100644 index 000000000..2d1f5a822 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_WEC2013_vs110.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_WEC2013_vs110.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_WEC2013_vs110.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|SDK_AM335X_SK_WEC2013_V300 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + release_shared|SDK_AM335X_SK_WEC2013_V300 = release_shared|SDK_AM335X_SK_WEC2013_V300 + debug_static_mt|SDK_AM335X_SK_WEC2013_V300 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + release_static_mt|SDK_AM335X_SK_WEC2013_V300 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + debug_static_md|SDK_AM335X_SK_WEC2013_V300 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + release_static_md|SDK_AM335X_SK_WEC2013_V300 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj b/NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj new file mode 100644 index 000000000..fa8dbf99c --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj @@ -0,0 +1,313 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + release_shared + SDK_AM335X_SK_WEC2013_V300 + + + release_static_md + SDK_AM335X_SK_WEC2013_V300 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V300 + CE800 + + + + StaticLibrary + Unicode + CE800 + + + StaticLibrary + Unicode + CE800 + + + StaticLibrary + Unicode + CE800 + + + StaticLibrary + Unicode + CE800 + + + DynamicLibrary + Unicode + CE800 + + + DynamicLibrary + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + PocoNetSSLWind + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin + PocoNetSSLWinmd + PocoNetSSLWinmt + + + ..\bin\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + true + true + + + ..\bin\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + false + true + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + _DEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\$(Platform)\PocoNetSSLWind.dll + ..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + ..\bin\$(Platform)\PocoNetSSLWind.pdb + + + ..\lib\$(Platform)\PocoNetSSLWind.lib + WindowsCE + + + + + Disabled + true + Speed + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\$(Platform)\PocoNetSSLWin.dll + ..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + + + ..\lib\$(Platform)\PocoNetSSLWin.lib + WindowsCE + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + ..\lib\$(Platform)\PocoNetSSLWinmtd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmtd.lib + + + + + Disabled + true + Speed + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + ..\lib\$(Platform)\PocoNetSSLWinmdd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmdd.lib + + + + + Disabled + true + Speed + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj.filters b/NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj.filters new file mode 100644 index 000000000..14cc5eee0 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {9257d530-60d5-48aa-9932-7d53e3a2aacb} + + + {b5c23135-79c8-493d-a5ac-396019129181} + + + {f645fe44-768a-469f-ab83-91c2bdb742f5} + + + {e69b5987-b2ce-454a-8c05-34d884920994} + + + {1df63bf2-3d63-48ca-a762-fe8b8de636db} + + + {53f053dd-a872-4d62-b783-fe70648fa115} + + + {f4e78394-e744-4e1c-bb1f-5ed6bdf26b14} + + + {b06e3d44-7a8d-47ac-93d6-92c534849ab7} + + + {d22b518d-4c35-4a18-83b8-e4b157c33044} + + + {d097af0f-f326-482a-bde8-f58530a73cd1} + + + {3ab49711-d29b-4f81-80d7-3966f333b952} + + + {854e600c-e4af-4a7f-a172-714624758d45} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_WEC2013_vs120.sln b/NetSSL_Win/NetSSL_Win_WEC2013_vs120.sln new file mode 100644 index 000000000..b22c2cd03 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_WEC2013_vs120.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_WEC2013_vs120.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_WEC2013_vs120.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|SDK_AM335X_SK_WEC2013_V310 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + release_shared|SDK_AM335X_SK_WEC2013_V310 = release_shared|SDK_AM335X_SK_WEC2013_V310 + debug_static_mt|SDK_AM335X_SK_WEC2013_V310 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + release_static_mt|SDK_AM335X_SK_WEC2013_V310 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + debug_static_md|SDK_AM335X_SK_WEC2013_V310 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + release_static_md|SDK_AM335X_SK_WEC2013_V310 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj b/NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj new file mode 100644 index 000000000..55c0f4386 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj @@ -0,0 +1,313 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + release_shared + SDK_AM335X_SK_WEC2013_V310 + + + release_static_md + SDK_AM335X_SK_WEC2013_V310 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V310 + CE800 + + + + StaticLibrary + Unicode + CE800 + + + StaticLibrary + Unicode + CE800 + + + StaticLibrary + Unicode + CE800 + + + StaticLibrary + Unicode + CE800 + + + DynamicLibrary + Unicode + CE800 + + + DynamicLibrary + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + PocoNetSSLWind + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin + PocoNetSSLWinmd + PocoNetSSLWinmt + + + ..\bin\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + true + true + + + ..\bin\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + false + true + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + ..\lib\$(Platform)\ + obj\$(Platform)\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + _DEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\$(Platform)\PocoNetSSLWind.dll + ..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + ..\bin\$(Platform)\PocoNetSSLWind.pdb + + + ..\lib\$(Platform)\PocoNetSSLWind.lib + WindowsCE + + + + + Disabled + true + Speed + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\$(Platform)\PocoNetSSLWin.dll + ..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + + + ..\lib\$(Platform)\PocoNetSSLWin.lib + WindowsCE + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + ..\lib\$(Platform)\PocoNetSSLWinmtd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmtd.lib + + + + + Disabled + true + Speed + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + ..\lib\$(Platform)\PocoNetSSLWinmdd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmdd.lib + + + + + Disabled + true + Speed + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + ..\lib\$(Platform)\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj.filters b/NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj.filters new file mode 100644 index 000000000..ac7fc5900 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {2c745879-230b-4937-8a64-90eec6e4f5d4} + + + {2bcbaede-18c4-4701-9e84-4092b98ecbc7} + + + {d4f14876-7628-469b-8a35-bd5ffe502246} + + + {d50a1331-38b7-4647-b620-4abd574a3bba} + + + {9a4f32bd-6964-4d53-b110-50ce04654bb0} + + + {74b28065-3901-4cdf-b989-f63ed5694f3d} + + + {5130d073-b1e3-43ac-9866-a0c5e101516a} + + + {6a274abc-4ef0-4d69-b0c3-f03cc1fb9287} + + + {4572ada1-8c53-411d-b952-2aaba350bca5} + + + {1c57d54d-cb46-48df-b646-c880b5d8a33b} + + + {79bb5a28-8788-4fd6-a8e1-375c7a2ba298} + + + {93cc0f19-81ad-4944-99d3-e787576cc9da} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_vs100.sln b/NetSSL_Win/NetSSL_Win_vs100.sln new file mode 100644 index 000000000..4528f17f4 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs100.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs100.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs100.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs100.vcxproj b/NetSSL_Win/NetSSL_Win_vs100.vcxproj new file mode 100644 index 000000000..e4c17b614 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs100.vcxproj @@ -0,0 +1,329 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + NetSSL_Win + Win32Proj + + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + ..\bin\ + obj\$(Configuration)\ + true + ..\bin\ + obj\$(Configuration)\ + false + ..\lib\ + obj\$(Configuration)\ + ..\lib\ + obj\$(Configuration)\ + ..\lib\ + obj\$(Configuration)\ + ..\lib\ + obj\$(Configuration)\ + PocoNetSSLWind + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin + PocoNetSSLWinmd + PocoNetSSLWinmt + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\PocoNetSSLWind.dll + true + true + ..\bin\PocoNetSSLWind.pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoNetSSLWind.lib + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\PocoNetSSLWin.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoNetSSLWin.lib + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib\PocoNetSSLWinmtd.pdb + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib\PocoNetSSLWinmtd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib\PocoNetSSLWinmdd.pdb + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib\PocoNetSSLWinmdd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + ..\lib\PocoNetSSLWinmd.pdb + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\lib\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_vs100.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs100.vcxproj.filters new file mode 100644 index 000000000..0e4fec4b9 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs100.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {c12260c0-9a45-4103-a511-10de5671bba7} + + + {2597d0bd-c32e-4b56-9bf9-f7cc67307dff} + + + {1b107d99-e334-47fe-ab0d-a64f5b86e82d} + + + {8244b4ee-982d-49f6-ac4f-0f5a4460d50d} + + + {ff39b11d-3030-46db-aeb2-2328d4f3f772} + + + {14968889-f7d0-4677-a0de-0e214baf082e} + + + {e92e0116-e3ec-401b-a0aa-da4bff6fdbc8} + + + {496ccb1b-39dd-43aa-af7a-7336383716ad} + + + {1d731d74-6e94-438e-b377-a9ddf4c82f58} + + + {9f19f04c-470e-4b5a-ac93-aa002bcb4c4d} + + + {95dd6f44-43c0-427b-88f3-6e2f3b83be97} + + + {93dc4adb-d1fd-45dd-be92-2e959e760de7} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_vs110.sln b/NetSSL_Win/NetSSL_Win_vs110.sln new file mode 100644 index 000000000..48b14ffc9 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs110.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs110.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs110.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs110.vcxproj b/NetSSL_Win/NetSSL_Win_vs110.vcxproj new file mode 100644 index 000000000..b2be52b98 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs110.vcxproj @@ -0,0 +1,333 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + NetSSL_Win + Win32Proj + + + + StaticLibrary + MultiByte + v110 + + + StaticLibrary + MultiByte + v110 + + + StaticLibrary + MultiByte + v110 + + + StaticLibrary + MultiByte + v110 + + + DynamicLibrary + MultiByte + v110 + + + DynamicLibrary + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + PocoNetSSLWind + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin + PocoNetSSLWinmd + PocoNetSSLWinmt + + + ..\bin\ + obj\$(Configuration)\ + true + + + ..\bin\ + obj\$(Configuration)\ + false + + + ..\lib\ + obj\$(Configuration)\ + + + ..\lib\ + obj\$(Configuration)\ + + + ..\lib\ + obj\$(Configuration)\ + + + ..\lib\ + obj\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\PocoNetSSLWind.dll + true + true + ..\bin\PocoNetSSLWind.pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoNetSSLWind.lib + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\PocoNetSSLWin.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoNetSSLWin.lib + MachineX86 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib\PocoNetSSLWinmtd.pdb + Level3 + EditAndContinue + Default + + + ..\lib\PocoNetSSLWinmtd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + ..\lib\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib\PocoNetSSLWinmdd.pdb + Level3 + EditAndContinue + Default + + + ..\lib\PocoNetSSLWinmdd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + ..\lib\PocoNetSSLWinmd.pdb + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\lib\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_vs110.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs110.vcxproj.filters new file mode 100644 index 000000000..b5fed4818 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs110.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {596096cf-22cb-480e-8858-2086d329f3ae} + + + {52191abe-5c6d-4358-ad6c-f4add1714920} + + + {df3dcbf6-e1e0-4e8b-b8ab-a2e5d83ac43d} + + + {5d27b161-b1fd-49b7-bf81-53d95a3b4046} + + + {534e3575-1c27-43bd-8a87-377cc4efafca} + + + {09bfba21-18f5-4eef-95d7-1071537b9d9b} + + + {c3abedbb-4322-4034-8d47-e4a93427ecc3} + + + {92f51790-c8c7-4876-b3d4-07cfe656c1af} + + + {c902c4dc-1e99-45ed-b0db-bc5047a67bac} + + + {2e878aca-1e28-4a30-9c09-bb7098d7c419} + + + {4ff00de1-fda8-4606-a649-f5adf0c43a4a} + + + {c2647591-519d-4261-8e57-b22b11092edb} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_vs120.sln b/NetSSL_Win/NetSSL_Win_vs120.sln new file mode 100644 index 000000000..ce03839eb --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs120.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs120.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs120.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs120.vcxproj b/NetSSL_Win/NetSSL_Win_vs120.vcxproj new file mode 100644 index 000000000..b9ea3d545 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs120.vcxproj @@ -0,0 +1,333 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + NetSSL_Win + Win32Proj + + + + StaticLibrary + MultiByte + v120 + + + StaticLibrary + MultiByte + v120 + + + StaticLibrary + MultiByte + v120 + + + StaticLibrary + MultiByte + v120 + + + DynamicLibrary + MultiByte + v120 + + + DynamicLibrary + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + PocoNetSSLWind + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin + PocoNetSSLWinmd + PocoNetSSLWinmt + + + ..\bin\ + obj\$(Configuration)\ + true + + + ..\bin\ + obj\$(Configuration)\ + false + + + ..\lib\ + obj\$(Configuration)\ + + + ..\lib\ + obj\$(Configuration)\ + + + ..\lib\ + obj\$(Configuration)\ + + + ..\lib\ + obj\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\PocoNetSSLWind.dll + true + true + ..\bin\PocoNetSSLWind.pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoNetSSLWind.lib + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin\PocoNetSSLWin.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoNetSSLWin.lib + MachineX86 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib\PocoNetSSLWinmtd.pdb + Level3 + EditAndContinue + Default + + + ..\lib\PocoNetSSLWinmtd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + ..\lib\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib\PocoNetSSLWinmdd.pdb + Level3 + EditAndContinue + Default + + + ..\lib\PocoNetSSLWinmdd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + ..\lib\PocoNetSSLWinmd.pdb + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\lib\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_vs120.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs120.vcxproj.filters new file mode 100644 index 000000000..1676c8d18 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs120.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {bfa9d6a8-e749-4984-860a-8030cd8ca147} + + + {8de47e2c-e2b9-4164-9c09-bad56127d27f} + + + {f479b390-82b4-46b2-8770-9173728981b8} + + + {d168b027-57d6-441f-9f67-23964dc05ed7} + + + {16f7e74a-f536-4f80-9bff-e8c80a5a002e} + + + {ab05acd4-6143-41ec-83ff-5bdb719b0ac7} + + + {fdb62b2c-9cfe-4661-a0f6-bba107284efe} + + + {eb5dafc3-362e-4577-88ea-8c0e32be619a} + + + {61e5080f-cf60-4aae-bb09-6085e07be03a} + + + {98a53944-79d4-4327-b8b4-a9ebf3f10c3b} + + + {c286c699-71b5-47a3-adc7-abe96c043358} + + + {ba32b481-3309-40d9-a3b1-dc87a746bd0d} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_vs71.sln b/NetSSL_Win/NetSSL_Win_vs71.sln new file mode 100644 index 000000000..2a1c3f540 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs71.sln @@ -0,0 +1,50 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs71.vcproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs71.vcproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + debug_shared = debug_shared + release_shared = release_shared + debug_static_mt = debug_static_mt + release_static_mt = release_static_mt + debug_static_md = debug_static_md + release_static_md = release_static_md + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared.ActiveCfg = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared.Build.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared.ActiveCfg = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared.Build.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt.ActiveCfg = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt.Build.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt.ActiveCfg = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt.Build.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md.ActiveCfg = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md.Build.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md.ActiveCfg = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md.Build.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared.ActiveCfg = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared.Build.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared.ActiveCfg = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared.Build.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt.ActiveCfg = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt.Build.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt.ActiveCfg = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt.Build.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md.ActiveCfg = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md.Build.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md.ActiveCfg = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md.Build.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs71.vcproj b/NetSSL_Win/NetSSL_Win_vs71.vcproj new file mode 100644 index 000000000..cbb8b89f4 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs71.vcproj @@ -0,0 +1,501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_vs80.sln b/NetSSL_Win/NetSSL_Win_vs80.sln new file mode 100644 index 000000000..b039b891e --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs80.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs80.vcproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs80.vcproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs80.vcproj b/NetSSL_Win/NetSSL_Win_vs80.vcproj new file mode 100644 index 000000000..6ab596c1e --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs80.vcproj @@ -0,0 +1,522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_vs90.sln b/NetSSL_Win/NetSSL_Win_vs90.sln new file mode 100644 index 000000000..b440a6a5e --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs90.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs90.vcproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs90.vcproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs90.vcproj b/NetSSL_Win/NetSSL_Win_vs90.vcproj new file mode 100644 index 000000000..c79893767 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_vs90.vcproj @@ -0,0 +1,521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_x64_vs100.sln b/NetSSL_Win/NetSSL_Win_x64_vs100.sln new file mode 100644 index 000000000..40b196c05 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs100.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_x64_vs100.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_x64_vs100.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Build.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.ActiveCfg = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Build.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Deploy.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Build.0 = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Build.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.ActiveCfg = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Build.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Deploy.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Build.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_x64_vs100.vcxproj b/NetSSL_Win/NetSSL_Win_x64_vs100.vcxproj new file mode 100644 index 000000000..e00b719c1 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs100.vcxproj @@ -0,0 +1,327 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + NetSSL_Win + Win32Proj + + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + ..\bin64\ + obj64\$(Configuration)\ + true + ..\bin64\ + obj64\$(Configuration)\ + false + ..\lib64\ + obj64\$(Configuration)\ + ..\lib64\ + obj64\$(Configuration)\ + ..\lib64\ + obj64\$(Configuration)\ + ..\lib64\ + obj64\$(Configuration)\ + PocoNetSSLWin64d + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin64 + PocoNetSSLWinmd + PocoNetSSLWinmt + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin64\PocoNetSSLWin64d.dll + true + true + ..\bin64\PocoNetSSLWin64d.pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoNetSSLWind.lib + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin64\PocoNetSSLWin64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoNetSSLWin.lib + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib64\PocoNetSSLWinmtd.pdb + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib64\PocoNetSSLWinmtd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib64\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib64\PocoNetSSLWinmdd.pdb + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib64\PocoNetSSLWinmdd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ..\lib64\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_x64_vs100.vcxproj.filters b/NetSSL_Win/NetSSL_Win_x64_vs100.vcxproj.filters new file mode 100644 index 000000000..4babe2975 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs100.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {10335e96-a4ef-4135-970c-1e4dbfaefd08} + + + {896e7871-c192-4ebf-b4d6-3d50ee3b67ec} + + + {12a0217b-1aa3-4475-b779-45f3ca133a5a} + + + {97767021-0c2f-4a63-ba21-5ae902e42ff3} + + + {852d764b-4cb8-429b-b607-9a0486a9ff87} + + + {54673d76-606e-4d06-8754-3c525bb80b5b} + + + {bcab1d22-da9a-416d-bc01-cb79200025fb} + + + {fab000d8-0d84-4a28-a497-6a5f2734bf3c} + + + {0e876e29-f799-4a3b-8030-1de5ba92fb6f} + + + {31d8d0fd-817e-4265-a8c2-68d54e29a33d} + + + {c540a891-c85c-48b0-9363-4fb79d1edf13} + + + {afb180b5-91aa-4404-bade-86c01a01fb73} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_x64_vs110.sln b/NetSSL_Win/NetSSL_Win_x64_vs110.sln new file mode 100644 index 000000000..7b9eedf49 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs110.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_x64_vs110.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_x64_vs110.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Build.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.ActiveCfg = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Build.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Deploy.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Build.0 = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Build.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.ActiveCfg = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Build.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Deploy.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Build.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_x64_vs110.vcxproj b/NetSSL_Win/NetSSL_Win_x64_vs110.vcxproj new file mode 100644 index 000000000..4faa20702 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs110.vcxproj @@ -0,0 +1,331 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + NetSSL_Win + Win32Proj + + + + StaticLibrary + MultiByte + v110 + + + StaticLibrary + MultiByte + v110 + + + StaticLibrary + MultiByte + v110 + + + StaticLibrary + MultiByte + v110 + + + DynamicLibrary + MultiByte + v110 + + + DynamicLibrary + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + PocoNetSSLWin64d + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin64 + PocoNetSSLWinmd + PocoNetSSLWinmt + + + ..\bin64\ + obj64\$(Configuration)\ + true + + + ..\bin64\ + obj64\$(Configuration)\ + false + + + ..\lib64\ + obj64\$(Configuration)\ + + + ..\lib64\ + obj64\$(Configuration)\ + + + ..\lib64\ + obj64\$(Configuration)\ + + + ..\lib64\ + obj64\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin64\PocoNetSSLWin64d.dll + true + true + ..\bin64\PocoNetSSLWin64d.pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoNetSSLWind.lib + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin64\PocoNetSSLWin64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoNetSSLWin.lib + MachineX64 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib64\PocoNetSSLWinmtd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib64\PocoNetSSLWinmtd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + ..\lib64\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib64\PocoNetSSLWinmdd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib64\PocoNetSSLWinmdd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ..\lib64\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_x64_vs110.vcxproj.filters b/NetSSL_Win/NetSSL_Win_x64_vs110.vcxproj.filters new file mode 100644 index 000000000..0d8757c30 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs110.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {5c72e76e-5bf3-4b03-81c6-ab019fd6ccb3} + + + {e4fc5317-0a9c-4238-b510-23eaa3aebca6} + + + {b7f461dd-3d0f-49ed-9b22-12bd20571f56} + + + {506c94af-260d-45f0-afe0-8811516c52b9} + + + {50e252c5-5d60-4f5e-b036-6cc76e94c704} + + + {61931afe-26e3-46fa-9f44-bfcc8881c323} + + + {2c066b22-e4ab-43bd-937f-61453b1d47b2} + + + {a2ad9877-d76a-48a5-8bfa-a141171f47de} + + + {f27f1468-f581-43e2-b79f-7f20f2401afa} + + + {0f03e7bc-4fed-4623-a7aa-e27e0e863f94} + + + {9326f31b-e2ba-4c89-9045-0c02715d723e} + + + {bc76fb63-dfbb-4bb8-a990-37a9a0d70176} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_x64_vs120.sln b/NetSSL_Win/NetSSL_Win_x64_vs120.sln new file mode 100644 index 000000000..bb45c23ad --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs120.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_x64_vs120.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_x64_vs120.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Build.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.ActiveCfg = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Build.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Deploy.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Build.0 = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Build.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.ActiveCfg = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Build.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Deploy.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Build.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_x64_vs120.vcxproj b/NetSSL_Win/NetSSL_Win_x64_vs120.vcxproj new file mode 100644 index 000000000..025a09d8e --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs120.vcxproj @@ -0,0 +1,331 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + NetSSL_Win + {A097DC74-A5FC-4A0B-804E-B18892426E77} + NetSSL_Win + Win32Proj + + + + StaticLibrary + MultiByte + v120 + + + StaticLibrary + MultiByte + v120 + + + StaticLibrary + MultiByte + v120 + + + StaticLibrary + MultiByte + v120 + + + DynamicLibrary + MultiByte + v120 + + + DynamicLibrary + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + PocoNetSSLWin64d + PocoNetSSLWinmdd + PocoNetSSLWinmtd + PocoNetSSLWin64 + PocoNetSSLWinmd + PocoNetSSLWinmt + + + ..\bin64\ + obj64\$(Configuration)\ + true + + + ..\bin64\ + obj64\$(Configuration)\ + false + + + ..\lib64\ + obj64\$(Configuration)\ + + + ..\lib64\ + obj64\$(Configuration)\ + + + ..\lib64\ + obj64\$(Configuration)\ + + + ..\lib64\ + obj64\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin64\PocoNetSSLWin64d.dll + true + true + ..\bin64\PocoNetSSLWin64d.pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoNetSSLWind.lib + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + ..\bin64\PocoNetSSLWin64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoNetSSLWin.lib + MachineX64 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib64\PocoNetSSLWinmtd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib64\PocoNetSSLWinmtd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + ..\lib64\PocoNetSSLWinmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib64\PocoNetSSLWinmdd.pdb + Level3 + ProgramDatabase + Default + + + ..\lib64\PocoNetSSLWinmdd.lib + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ..\lib64\PocoNetSSLWinmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/NetSSL_Win_x64_vs120.vcxproj.filters b/NetSSL_Win/NetSSL_Win_x64_vs120.vcxproj.filters new file mode 100644 index 000000000..ab5e9f216 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs120.vcxproj.filters @@ -0,0 +1,183 @@ + + + + + {bf44c45d-cbd1-42c4-8a1f-6d59f6f16a2f} + + + {dfca8a8f-3fc8-48c6-bb6e-6a26a719a8c4} + + + {63d6f3a9-a68f-400f-abac-545101f754a2} + + + {16d2a638-125b-4f9d-8608-02891ca86b3e} + + + {aa7dec1b-e9e1-4ba0-afce-e2d66a78c8fc} + + + {2a1c2fcc-00e3-441a-8693-928807667785} + + + {0b90c75a-acda-47cf-b176-a59fa18605eb} + + + {184ba43a-13f4-4615-bdb3-0742a4b40f05} + + + {04fbbab0-66cf-48d4-ad30-9fc1cc9e54ec} + + + {f9aabfc4-b626-49db-b2a5-2b8beca3a841} + + + {ef3d6b93-df63-4bc9-a659-9f4f36f55e96} + + + {f9f87e90-834f-4c9e-8186-f1d11325409c} + + + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + SSLCore\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + SSLSockets\Header Files + + + Mail\Header Files + + + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + SSLCore\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + SSLSockets\Source Files + + + Mail\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_x64_vs90.sln b/NetSSL_Win/NetSSL_Win_x64_vs90.sln new file mode 100644 index 000000000..e530c60c8 --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs90.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_x64_vs90.vcproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_x64_vs90.vcproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" + ProjectSection(ProjectDependencies) = postProject + {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Build.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.ActiveCfg = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Build.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Deploy.0 = release_shared|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Build.0 = release_static_md|x64 + {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Build.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.ActiveCfg = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Build.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Deploy.0 = release_shared|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Build.0 = release_static_md|x64 + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_x64_vs90.vcproj b/NetSSL_Win/NetSSL_Win_x64_vs90.vcproj new file mode 100644 index 000000000..023b66f0e --- /dev/null +++ b/NetSSL_Win/NetSSL_Win_x64_vs90.vcproj @@ -0,0 +1,526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/doc/README.txt b/NetSSL_Win/doc/README.txt new file mode 100644 index 000000000..e36a2718d --- /dev/null +++ b/NetSSL_Win/doc/README.txt @@ -0,0 +1,68 @@ +About NetSSL_Win +================ + +NetSSL_Win is an implementation of the POCO NetSSL library based on Windows +Schannel. The original NetSSL implementation is based on OpenSSL and thus +has a few OpenSSL-isms in the interface. Generally, source code based +on NetSSL_OpenSSL can be easily ported to use NetSSL_Win. Just a few +minor code changes are required, due to differences in the API. +These are discussed below: + + - Context: the Context constructor uses different arguments. While + the first argument is the same, all others are different. + Instead of a certificate file name, a certificate subject name is + specified. Certificates are always loaded from a Windows + certificate store, not from the filesystem. + Please refer to the header file documentation for more information. + Furthermore, the following Context methods are not available in NetSSL_Win: + addChainCertificate(), disableStatelessSessionResumption(), + enableExtendedCertificateVerification(), enableSessionCache(), + extendedCertificateVerificationEnabled(), flushSessionCache(), + getSessionCacheSize(), getSessionTimeout(), sessionCacheEnabled(), + setSessionCacheSize(), setSessionTimeout(), sslContext(), + useCertificate(), usePrivateKey(). + + - SSLManager: the configuration properties used to configure the SSLManager + are different from the ones used in NetSSL_OpenSSL. Please see the + SSLManager header file for more information. + Furthermore, PrivateKeyPassphraseHandler's are not supported. The + initializeClient() and initializeServer() methods therefore do not + have the PrivateKeyPassphraseHandler argument. + The isFIPSEnabled() method is not available. + + +Certificate and Certificate Stores +---------------------------------- + +The test suite and samples expect a certificate with a subject name +same as the host name to be available from the user's personal certificate +store. A suitable self-signed certificate can be created using the Windows +IIS administration console, then exported to a file, and re-imported into +the user's personal store. + +To create the certificate, follow these steps: + + 1. Launch the Computer Management utility. + 2. Go to Services and Applications > Internet Information Server. + 3. Open the Server Certificates feature. + 4. Under Actions, click "Create Self-Signed Certificate...". + 5. Enter a user-friendly name for the certificate. + The certificate will be issued to the name of your computer. + 6. Export the certificate by right-clicking it and chosing "Export...". + 7. In Explorer, double-click the exported certificate file (.pfx) + to launch the Certificate Import Wizard. + 8. Import the certificate into your personal store by + selecting "Place all certificates in the following store" and + selecting the "Personal" store in the import wizard. + + +Windows Embedded Compact +------------------------ + +Windows Embedded Compact does not support the following Schannel +features: + - certificate revocation checking + - TLS 1.1 and 1.2 + - disabling weak security algorithms + + \ No newline at end of file diff --git a/NetSSL_Win/include/Poco/Net/AcceptCertificateHandler.h b/NetSSL_Win/include/Poco/Net/AcceptCertificateHandler.h new file mode 100644 index 000000000..11ac435c7 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/AcceptCertificateHandler.h @@ -0,0 +1,54 @@ +// +// AcceptCertificateHandler.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/AcceptCertificateHandler.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: AcceptCertificateHandler +// +// Definition of the AcceptCertificateHandler class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_AcceptCertificateHandler_INCLUDED +#define NetSSL_AcceptCertificateHandler_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/InvalidCertificateHandler.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API AcceptCertificateHandler: public InvalidCertificateHandler + /// A AcceptCertificateHandler is invoked whenever an error + /// occurs verifying the certificate. It always accepts + /// the certificate. + /// + /// Should be using for testing purposes only. +{ +public: + AcceptCertificateHandler(bool handleErrorsOnServerSide); + /// Creates the AcceptCertificateHandler + + virtual ~AcceptCertificateHandler(); + /// Destroys the AcceptCertificateHandler. + + void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); + /// Receives the questionable certificate in parameter errorCert. If one wants to accept the + /// certificate, call errorCert.setIgnoreError(true). +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_AcceptCertificateHandler_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/AutoSecBufferDesc.h b/NetSSL_Win/include/Poco/Net/AutoSecBufferDesc.h new file mode 100644 index 000000000..58e843edb --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/AutoSecBufferDesc.h @@ -0,0 +1,189 @@ +// +// AutoSecBufferDesc.h +// +// $Id: //poco/1.4/NetSSL_Schannel/include/Poco/Net/AutoSecBufferDesc.h#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: AutoSecBufferDesc +// +// Definition of the AutoSecBufferDesc class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_AutoSecBufferDesc_INCLUDED +#define NetSSL_AutoSecBufferDesc_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include +#include +#ifndef SECURITY_WIN32 +#define SECURITY_WIN32 +#endif +#include + + +namespace Poco { +namespace Net { + + +template +class AutoSecBufferDesc: public SecBufferDesc + /// AutoSecBufferDesc is a helper class for automatic initialization and release of SecBuffer objects. +{ +public: + AutoSecBufferDesc(SecurityFunctionTableW* pSec, bool autoRelease): + /// Creates a AutoSecBufferDesc. If autoRelease is true, the buffers will be released with the provided pSec function. + _pSec(pSec), + _autoRelease(autoRelease) + { + poco_check_ptr (_pSec); + poco_static_assert (numBufs > 0); + + initBuffers(); + cBuffers = numBufs; + pBuffers = _buffers; + ulVersion = SECBUFFER_VERSION; + } + + AutoSecBufferDesc(const AutoSecBufferDesc& desc): + /// Creates a AutoSecBufferDesc from another buffer, resets the other buffer! + _pSec(desc._pSec), + _autoRelease(desc._autoRelease) + { + poco_check_ptr (_pSec); + poco_static_assert (numBufs > 0); + + for (int i = 0; i < numBufs; ++i) + { + _buffers[i].pvBuffer = desc._buffers[i].pvBuffer; + _buffers[i].cbBuffer = desc._buffers[i].cbBuffer; + _buffers[i].BufferType = desc._buffers[i].BufferType; + } + cBuffers = numBufs; + pBuffers = _buffers; + ulVersion = SECBUFFER_VERSION; + // steal the buffers from the original one + const_cast(&desc)->initBuffers(); + } + + AutoSecBufferDesc& operator=(const AutoSecBufferDesc& desc) + { + if (&desc != this) + { + _pSec = desc._pSec; + _autoRelease = desc._autoRelease; + for (int i = 0; i < numBufs; ++i) + { + _buffers[i].pvBuffer = desc._buffers[i].pvBuffer; + _buffers[i].cbBuffer = desc._buffers[i].cbBuffer; + _buffers[i].BufferType = desc._buffers[i].BufferType; + } + cBuffers = numBufs; + pBuffers = _buffers; + ulVersion = desc.ulVersion; + // steal the buffers from the original one + const_cast(&desc)->initBuffers(); + } + return *this; + } + + ~AutoSecBufferDesc() + /// Destroys the AutoSecBufferDesc + { + if (_autoRelease) + { + for (int i = 0; i < numBufs; ++i) + { + _pSec->FreeContextBuffer(_buffers[i].pvBuffer); + } + } + } + + SecBuffer& operator [] (Poco::UInt32 idx) + { + return _buffers[idx]; + } + + const SecBuffer& operator [] (Poco::UInt32 idx) const + { + return _buffers[idx]; + } + + void release(int idx) + /// Will release the buffer if necessary + { + release(idx, _autoRelease); + } + + void setSecBufferEmpty(int idx) + { + release(idx, _autoRelease); + } + + void setSecBufferData(int idx, void* pData, int len) + { + setContent(idx, pData, len, SECBUFFER_DATA); + } + + void setSecBufferToken(int idx, void* pData, int len) + { + setContent(idx, pData, len, SECBUFFER_TOKEN); + } + + void setSecBufferStreamHeader(int idx, void* pData, int len) + { + setContent(idx, pData, len, SECBUFFER_STREAM_HEADER); + } + + void setSecBufferStreamTrailer(int idx, void* pData, int len) + { + setContent(idx, pData, len, SECBUFFER_STREAM_TRAILER); + } + +private: + void release(int idx, bool force) + { + if (force && _buffers[idx].pvBuffer) + _pSec->FreeContextBuffer(_buffers[idx].pvBuffer); + + _buffers[idx].pvBuffer = 0; + _buffers[idx].cbBuffer = 0; + _buffers[idx].BufferType = SECBUFFER_EMPTY; + } + + void initBuffers() + { + for (int i = 0; i < numBufs; ++i) + { + _buffers[i].pvBuffer = 0; + _buffers[i].cbBuffer = 0; + _buffers[i].BufferType = SECBUFFER_EMPTY; + } + } + + void setContent(int idx, void* pData, int len, unsigned long type) + { + release(idx, _autoRelease); + _buffers[idx].pvBuffer = pData; + _buffers[idx].cbBuffer = len; + _buffers[idx].BufferType = type; + } + +private: + SecurityFunctionTableW* _pSec; + bool _autoRelease; + SecBuffer _buffers[numBufs]; +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_AutoSecBufferDesc_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/CertificateHandlerFactory.h b/NetSSL_Win/include/Poco/Net/CertificateHandlerFactory.h new file mode 100644 index 000000000..1aabe846a --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/CertificateHandlerFactory.h @@ -0,0 +1,95 @@ +// +// CertificateHandlerFactory.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/CertificateHandlerFactory.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: CertificateHandlerFactory +// +// Definition of the CertificateHandlerFactory class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_CertificateHandlerFactory_INCLUDED +#define NetSSL_CertificateHandlerFactory_INCLUDED + + +#include "Poco/Net/NetSSL.h" + + +namespace Poco { +namespace Net { + + +class InvalidCertificateHandler; + + +class NetSSL_Win_API CertificateHandlerFactory + /// A CertificateHandlerFactory is responsible for creating InvalidCertificateHandlers. + /// + /// You don't need to access this class directly. Use the macro + /// POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName) + /// instead (see the documentation of InvalidCertificateHandler for an example). +{ +public: + CertificateHandlerFactory(); + /// Creates the CertificateHandlerFactory. + + virtual ~CertificateHandlerFactory(); + /// Destroys the CertificateHandlerFactory. + + virtual InvalidCertificateHandler* create(bool server) const = 0; + /// Creates a new InvalidCertificateHandler. Set server to true if the certificate handler is used on the server side. +}; + + +class NetSSL_Win_API CertificateHandlerFactoryRegistrar + /// Registrar class which automatically registers CertificateHandlerFactory at the CertificateHandlerFactoryMgr. + /// You don't need to access this class directly. Use the macro + /// POCO_REGISTER_CHFACTORY(namespace, InvalidCertificateHandlerName) + /// instead (see the documentation of InvalidCertificateHandler for an example). +{ +public: + CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory); + /// Registers the CertificateHandlerFactory with the given name at the factory manager. + + virtual ~CertificateHandlerFactoryRegistrar(); + /// Destroys the CertificateHandlerFactoryRegistrar. +}; + + +template +class CertificateHandlerFactoryImpl: public Poco::Net::CertificateHandlerFactory +{ +public: + CertificateHandlerFactoryImpl() + { + } + + ~CertificateHandlerFactoryImpl() + { + } + + InvalidCertificateHandler* create(bool server) const + { + return new T(server); + } +}; + + +} } // namespace Poco::Net + + +// DEPRECATED: register the factory directly at the FactoryMgr: +// Poco::Net::SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, new Poco::Net::CertificateHandlerFactoryImpl()); +#define POCO_REGISTER_CHFACTORY(API, PKCLS) \ + static Poco::Net::CertificateHandlerFactoryRegistrar aRegistrar(std::string(#PKCLS), new Poco::Net::CertificateHandlerFactoryImpl()); + + +#endif // NetSSL_CertificateHandlerFactory_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/CertificateHandlerFactoryMgr.h b/NetSSL_Win/include/Poco/Net/CertificateHandlerFactoryMgr.h new file mode 100644 index 000000000..fdbcf0191 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/CertificateHandlerFactoryMgr.h @@ -0,0 +1,66 @@ +// +// CertificateHandlerFactoryMgr.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/CertificateHandlerFactoryMgr.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: CertificateHandlerFactoryMgr +// +// Definition of the CertificateHandlerFactoryMgr class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_CertificateHandlerFactoryMgr_INCLUDED +#define NetSSL_CertificateHandlerFactoryMgr_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/CertificateHandlerFactory.h" +#include "Poco/SharedPtr.h" +#include + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API CertificateHandlerFactoryMgr + /// A CertificateHandlerFactoryMgr manages all existing CertificateHandlerFactories. +{ +public: + typedef std::map > FactoriesMap; + + CertificateHandlerFactoryMgr(); + /// Creates the CertificateHandlerFactoryMgr. + + ~CertificateHandlerFactoryMgr(); + /// Destroys the CertificateHandlerFactoryMgr. + + void setFactory(const std::string& name, CertificateHandlerFactory* pFactory); + /// Registers the factory. Class takes ownership of the pointer. + /// If a factory with the same name already exists, an exception is thrown. + + bool hasFactory(const std::string& name) const; + /// Returns true if for the given name a factory is already registered + + const CertificateHandlerFactory* getFactory(const std::string& name) const; + /// Returns NULL if for the given name a factory does not exist, otherwise the factory is returned + + void removeFactory(const std::string& name); + /// Removes the factory from the manager. + +private: + FactoriesMap _factories; +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_CertificateHandlerFactoryMgr_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/ConsoleCertificateHandler.h b/NetSSL_Win/include/Poco/Net/ConsoleCertificateHandler.h new file mode 100644 index 000000000..5a5323bba --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/ConsoleCertificateHandler.h @@ -0,0 +1,52 @@ +// +// ConsoleCertificateHandler.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/ConsoleCertificateHandler.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: ConsoleCertificateHandler +// +// Definition of the ConsoleCertificateHandler class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_ConsoleCertificateHandler_INCLUDED +#define NetSSL_ConsoleCertificateHandler_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/InvalidCertificateHandler.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API ConsoleCertificateHandler: public InvalidCertificateHandler + /// A ConsoleCertificateHandler is invoked whenever an error occurs verifying the certificate. + /// + /// The certificate is printed to stdout and the user is asked via console if he wants to accept it. +{ +public: + ConsoleCertificateHandler(bool handleErrorsOnServerSide); + /// Creates the ConsoleCertificateHandler. + + virtual ~ConsoleCertificateHandler(); + /// Destroys the ConsoleCertificateHandler. + + void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); + /// Prints the certificate to stdout and waits for user input on the console + /// to decide if a certificate should be accepted/rejected. +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_ConsoleCertificateHandler_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/Context.h b/NetSSL_Win/include/Poco/Net/Context.h new file mode 100644 index 000000000..fc7cf6d5c --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/Context.h @@ -0,0 +1,244 @@ +// +// Context.h +// +// $Id: //poco/1.4/NetSSL_Schannel/include/Poco/Net/Context.h#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: Context +// +// Definition of the Context class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_Context_INCLUDED +#define NetSSL_Context_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/X509Certificate.h" +#include "Poco/RefCountedObject.h" +#include "Poco/AutoPtr.h" +#include "Poco/Mutex.h" +#include +#include +#include +#include + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API Context: public Poco::RefCountedObject + /// This class encapsulates context information for + /// an SSL server or client, such as the certificate + /// verification mode and which certificates and + /// protocols to use. + /// + /// The Context class is also used to control + /// SSL session caching on the server and client side. +{ +public: + typedef Poco::AutoPtr Ptr; + + enum Usage + { + CLIENT_USE, /// Context is used by a client. + SERVER_USE, /// Context is used by a server. + TLSV1_CLIENT_USE, /// Context is used by a client requiring TLSv1. + TLSV1_SERVER_USE, /// Context is used by a server requiring TLSv1. + TLSV1_1_CLIENT_USE, /// Context is used by a client requiring TLSv1.1. Not supported on Windows Embedded Compact. + TLSV1_1_SERVER_USE, /// Context is used by a server requiring TLSv1.1. Not supported on Windows Embedded Compact. + TLSV1_2_CLIENT_USE, /// Context is used by a client requiring TLSv1.2. Not supported on Windows Embedded Compact. + TLSV1_2_SERVER_USE /// Context is used by a server requiring TLSv1.2. Not supported on Windows Embedded Compact. + }; + + enum VerificationMode + { + VERIFY_NONE = 0, + /// Server: The server will not send a client certificate + /// request to the client, so the client will not send a certificate. + /// + /// Client: If not using an anonymous cipher (by default disabled), + /// the server will send a certificate which will be checked, but + /// the result of the check will be ignored. + + VERIFY_RELAXED = 1, + /// Server: The server sends a client certificate request to the + /// client. The certificate returned (if any) is checked. + /// If the verification process fails, the TLS/SSL handshake is + /// immediately terminated with an alert message containing the + /// reason for the verification failure. + /// + /// Client: The server certificate is verified, if one is provided. + /// If the verification process fails, the TLS/SSL handshake is + /// immediately terminated with an alert message containing the + /// reason for the verification failure. + + VERIFY_STRICT = 2, + /// Server: If the client did not return a certificate, the TLS/SSL + /// handshake is immediately terminated with a handshake failure + /// alert. + /// + /// Client: Same as VERIFY_RELAXED. + + VERIFY_ONCE = 3 + /// Server: Only request a client certificate on the initial + /// TLS/SSL handshake. Do not ask for a client certificate + /// again in case of a renegotiation. + /// + /// Client: Same as VERIFY_RELAXED. + }; + + enum Options + { + OPT_PERFORM_REVOCATION_CHECK = 0x01, + /// Check certificates against revocation list. Not supported (ignored) on Windows Embedded Compact. + OPT_TRUST_ROOTS_WIN_CERT_STORE = 0x02, + /// Trust root certificates from Windows root certificate store. + OPT_USE_MACHINE_STORE = 0x04, + /// If specified, the windows machine certificate store is used (server only). + /// Otherwise, the user's certificate store is used. + OPT_USE_STRONG_CRYPTO = 0x08, + /// Disable known weak cryptographic algorithms, cipher suites, and + /// SSL/TLS protocol versions that may be otherwise enabled for better interoperability. + OPT_DEFAULTS = OPT_PERFORM_REVOCATION_CHECK | OPT_TRUST_ROOTS_WIN_CERT_STORE | OPT_USE_STRONG_CRYPTO + }; + + Context(Usage usage, + const std::string& certificateName, + VerificationMode verMode = VERIFY_RELAXED, + int options = OPT_DEFAULTS, + const std::string& certificateStoreName = CERT_STORE_MY); + /// Creates a Context. + /// + /// * usage specifies whether the context is used by a client or server, + /// as well as which protocol to use. + /// * certificateName specifies the subject name of the certificate to use. + /// * options is a combination of Option flags. + /// * certificateStoreName specifies the name of the Windows certificate store + /// * to use for loading the certificate. You can use predefined constants + /// CERT_STORE_MY, CERT_STORE_ROOT, etc. + /// * verificationMode specifies whether and how peer certificates are validated. + /// + /// Note: If the private key is protected by a passphrase, a PrivateKeyPassphraseHandler + /// must have been setup with the SSLManager, or the SSLManager's PrivateKeyPassphraseRequired + /// event must be handled. + + ~Context(); + /// Destroys the Context. + + VerificationMode verificationMode() const; + /// Returns the certificate verification mode. + + Usage usage() const; + /// Returns whether the context is for use by a client or by a server + /// and whether TLSv1.x is required. + + bool isForServerUse() const; + /// Returns true iff the context is for use by a server. + + bool sessionCacheEnabled() const; + /// Returns true iff the session cache is enabled. + + int options() const; + /// Returns the options flags. + + const std::string& certificateName() const; + /// Returns the name of the certificate to use. + + const std::string& certificateStoreName() const; + /// Returns the name of the certificate store to use. + + void addTrustedCert(const Poco::Net::X509Certificate& cert); + /// Adds the certificate to the trusted certs. Takes ownership of pCert. + + HCERTSTORE certificateStore() const; + /// Returns a handle to the certificate store. + + static const std::string CERT_STORE_MY; + static const std::string CERT_STORE_ROOT; + static const std::string CERT_STORE_TRUST; + static const std::string CERT_STORE_CA; + static const std::string CERT_STORE_USERDS; + +private: + Context(const Context&); + Context& operator=(const Context&); + + Usage _usage; + Context::VerificationMode _mode; + int _options; + std::string _certificateName; + std::string _certificateStoreName; + HCERTSTORE _hMemCertStore; + HCERTSTORE _hCollectionCertStore; + HCERTSTORE _hRootCertStore; + Poco::FastMutex _mutex; +}; + + +// +// inlines +// +inline Context::VerificationMode Context::verificationMode() const +{ + return _mode; +} + + +inline Context::Usage Context::usage() const +{ + return _usage; +} + + +inline int Context::options() const +{ + return _options; +} + + +inline bool Context::isForServerUse() const +{ + return _usage == SERVER_USE + || _usage == TLSV1_SERVER_USE + || _usage == TLSV1_1_SERVER_USE + || _usage == TLSV1_2_SERVER_USE; +} + + +inline bool Context::sessionCacheEnabled() const +{ + return false; +} + + +inline const std::string& Context::certificateName() const +{ + return _certificateName; +} + + +inline const std::string& Context::certificateStoreName() const +{ + return _certificateStoreName; +} + + +inline HCERTSTORE Context::certificateStore() const +{ + return _hCollectionCertStore; +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_Context_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/HTTPSClientSession.h b/NetSSL_Win/include/Poco/Net/HTTPSClientSession.h new file mode 100644 index 000000000..99e956e69 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/HTTPSClientSession.h @@ -0,0 +1,167 @@ +// +// HTTPSClientSession.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/HTTPSClientSession.h#2 $ +// +// Library: NetSSL_Win +// Package: HTTPSClient +// Module: HTTPSClientSession +// +// Definition of the HTTPSClientSession class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_HTTPSClientSession_INCLUDED +#define NetSSL_HTTPSClientSession_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/Utility.h" +#include "Poco/Net/HTTPClientSession.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Session.h" +#include "Poco/Net/X509Certificate.h" + + +namespace Poco { +namespace Net { + + +class SecureStreamSocket; +class HTTPRequest; +class HTTPResponse; + + +class NetSSL_Win_API HTTPSClientSession: public HTTPClientSession + /// This class implements the client-side of + /// a HTTPS session. + /// + /// To send a HTTPS request to a HTTPS server, first + /// instantiate a HTTPSClientSession object and + /// specify the server's host name and port number. + /// + /// Then create a HTTPRequest object, fill it accordingly, + /// and pass it as argument to the sendRequst() method. + /// + /// sendRequest() will return an output stream that can + /// be used to send the request body, if there is any. + /// + /// After you are done sending the request body, create + /// a HTTPResponse object and pass it to receiveResponse(). + /// + /// This will return an input stream that can be used to + /// read the response body. + /// + /// See RFC 2616 for more + /// information about the HTTP protocol. + /// + /// Note that sending requests that neither contain a content length + /// field in the header nor are using chunked transfer encoding will + /// result in a SSL protocol violation, as the framework shuts down + /// the socket after sending the message body. No orderly SSL shutdown + /// will be performed in this case. + /// + /// If session caching has been enabled for the Context object passed + /// to the HTTPSClientSession, the HTTPSClientSession class will + /// attempt to reuse a previously obtained Session object in + /// case of a reconnect. +{ +public: + enum + { + HTTPS_PORT = 443 + }; + + HTTPSClientSession(); + /// Creates an unconnected HTTPSClientSession. + + explicit HTTPSClientSession(const SecureStreamSocket& socket); + /// Creates a HTTPSClientSession using the given socket. + /// The socket must not be connected. The session + /// takes ownership of the socket. + + HTTPSClientSession(const SecureStreamSocket& socket, Session::Ptr pSession); + /// Creates a HTTPSClientSession using the given socket. + /// The socket must not be connected. The session + /// takes ownership of the socket. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + HTTPSClientSession(const std::string& host, Poco::UInt16 port = HTTPS_PORT); + /// Creates a HTTPSClientSession using the given host and port. + + explicit HTTPSClientSession(Context::Ptr pContext); + /// Creates an unconnected HTTPSClientSession, using the + /// give SSL context. + + HTTPSClientSession(Context::Ptr pContext, Session::Ptr pSession); + /// Creates an unconnected HTTPSClientSession, using the + /// give SSL context. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + HTTPSClientSession(const std::string& host, Poco::UInt16 port, Context::Ptr pContext); + /// Creates a HTTPSClientSession using the given host and port, + /// using the given SSL context. + + HTTPSClientSession(const std::string& host, Poco::UInt16 port, Context::Ptr pContext, Session::Ptr pSession); + /// Creates a HTTPSClientSession using the given host and port, + /// using the given SSL context. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + ~HTTPSClientSession(); + /// Destroys the HTTPSClientSession and closes + /// the underlying socket. + + bool secure() const; + /// Return true iff the session uses SSL or TLS, + /// or false otherwise. + + X509Certificate serverCertificate(); + /// Returns the server's certificate. + /// + /// The certificate is available after the first request has been sent. + + Session::Ptr sslSession(); + /// Returns the SSL Session object for the current + /// connection, if session caching has been enabled for + /// the HTTPSClientSession's Context. A null pointer is + /// returned otherwise. + /// + /// The Session object can be obtained after the first request has + /// been sent. + + // HTTPSession + void abort(); + +protected: + void connect(const SocketAddress& address); + std::string proxyRequestPrefix() const; + void proxyAuthenticate(HTTPRequest& request); + int read(char* buffer, std::streamsize length); + +private: + HTTPSClientSession(const HTTPSClientSession&); + HTTPSClientSession& operator = (const HTTPSClientSession&); + + Context::Ptr _pContext; + Session::Ptr _pSession; +}; + + +} } // namespace Poco::Net + + +#endif // Net_HTTPSClientSession_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/HTTPSSessionInstantiator.h b/NetSSL_Win/include/Poco/Net/HTTPSSessionInstantiator.h new file mode 100644 index 000000000..a79fcf248 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/HTTPSSessionInstantiator.h @@ -0,0 +1,67 @@ +// +// HTTPSSessionInstantiator.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/HTTPSSessionInstantiator.h#2 $ +// +// Library: NetSSL_Win +// Package: HTTPSClient +// Module: HTTPSSessionInstantiator +// +// Definition of the HTTPSSessionInstantiator class. +// +// Copyright (c) 2006-2009, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Net_HTTPSSessionInstantiator_INCLUDED +#define Net_HTTPSSessionInstantiator_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Utility.h" +#include "Poco/Net/HTTPSessionInstantiator.h" +#include "Poco/URI.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API HTTPSSessionInstantiator: public HTTPSessionInstantiator + /// The HTTPSessionInstantiator for HTTPSClientSession. +{ +public: + HTTPSSessionInstantiator(); + /// Creates the HTTPSSessionInstantiator. + + HTTPSSessionInstantiator(Context::Ptr pContext); + /// Creates the HTTPSSessionInstantiator using the given SSL context. + + ~HTTPSSessionInstantiator(); + /// Destroys the HTTPSSessionInstantiator. + + HTTPClientSession* createClientSession(const Poco::URI& uri); + /// Creates a HTTPSClientSession for the given URI. + + static void registerInstantiator(); + /// Registers the instantiator with the global HTTPSessionFactory. + + static void registerInstantiator(Context::Ptr pContext); + /// Registers the instantiator with the global HTTPSessionFactory using the given SSL context. + + static void unregisterInstantiator(); + /// Unregisters the factory with the global HTTPSessionFactory. + +private: + Context::Ptr _pContext; +}; + + +} } // namespace Poco::Net + + +#endif // Net_HTTPSSessionInstantiator_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/HTTPSStreamFactory.h b/NetSSL_Win/include/Poco/Net/HTTPSStreamFactory.h new file mode 100644 index 000000000..ccd56638f --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/HTTPSStreamFactory.h @@ -0,0 +1,85 @@ +// +// HTTPSStreamFactory.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/HTTPSStreamFactory.h#1 $ +// +// Library: NetSSL_Win +// Package: HTTPSClient +// Module: HTTPSStreamFactory +// +// Definition of the HTTPSStreamFactory class. +// +// Copyright (c) 2006-2009, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_HTTPSStreamFactory_INCLUDED +#define NetSSL_HTTPSStreamFactory_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/HTTPSession.h" +#include "Poco/URIStreamFactory.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API HTTPSStreamFactory: public Poco::URIStreamFactory + /// An implementation of the URIStreamFactory interface + /// that handles secure Hyper-Text Transfer Protocol (https) URIs. +{ +public: + HTTPSStreamFactory(); + /// Creates the HTTPSStreamFactory. + + HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort = HTTPSession::HTTP_PORT); + /// Creates the HTTPSStreamFactory. + /// + /// HTTPS connections will use the given proxy. + + HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort, const std::string& proxyUsername, const std::string& proxyPassword); + /// Creates the HTTPSStreamFactory. + /// + /// HTTPS connections will use the given proxy and + /// will be authorized against the proxy using Basic authentication + /// with the given proxyUsername and proxyPassword. + + ~HTTPSStreamFactory(); + /// Destroys the HTTPSStreamFactory. + + std::istream* open(const Poco::URI& uri); + /// Creates and opens a HTTPS stream for the given URI. + /// The URI must be a https://... URI. + /// + /// Throws a NetException if anything goes wrong. + + static void registerFactory(); + /// Registers the HTTPSStreamFactory with the + /// default URIStreamOpener instance. + + static void unregisterFactory(); + /// Unregisters the HTTPSStreamFactory with the + /// default URIStreamOpener instance. + +private: + enum + { + MAX_REDIRECTS = 10 + }; + + std::string _proxyHost; + Poco::UInt16 _proxyPort; + std::string _proxyUsername; + std::string _proxyPassword; +}; + + +} } // namespace Poco::Net + + +#endif // Net_HTTPSStreamFactory_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/InvalidCertificateHandler.h b/NetSSL_Win/include/Poco/Net/InvalidCertificateHandler.h new file mode 100644 index 000000000..152a34f39 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/InvalidCertificateHandler.h @@ -0,0 +1,82 @@ +// +// InvalidCertificateHandler.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/InvalidCertificateHandler.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: InvalidCertificateHandler +// +// Definition of the InvalidCertificateHandler class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_InvalidCertificateHandler_INCLUDED +#define NetSSL_InvalidCertificateHandler_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/VerificationErrorArgs.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API InvalidCertificateHandler + /// A InvalidCertificateHandler is invoked whenever an error occurs verifying the certificate. It allows the user + /// to inspect and accept/reject the certificate. + /// One can install one's own InvalidCertificateHandler by implementing this interface. Note that + /// in the implementation file of the subclass the following code must be present (assuming you use the namespace My_API + /// and the name of your handler class is MyGuiHandler): + /// + /// #include "Poco/Net/CertificateHandlerFactory.h" + /// ... + /// POCO_REGISTER_CHFACTORY(My_API, MyGuiHandler) + /// + /// One can either set the handler directly in the startup code of the main method of ones application by calling + /// + /// SSLManager::instance().initialize(mypassphraseHandler, myguiHandler, mySSLContext) + /// + /// or in case one uses Poco::Util::Application one can rely on an XML configuration and put the following entry + /// under the path openSSL.invalidCertificateHandler: + /// + /// + /// MyGuiHandler + /// + /// [...] // Put optional config params for the handler here + /// + /// + /// + /// Note that the name of the InvalidCertificateHandler must be same as the one provided to the POCO_REGISTER_CHFACTORY macro. +{ +public: + InvalidCertificateHandler(bool handleErrorsOnServerSide); + /// Creates the InvalidCertificateHandler. + /// + /// Set handleErrorsOnServerSide to true if the certificate handler is used on the server side. + /// Automatically registers at one of the SSLManager::VerificationError events. + + virtual ~InvalidCertificateHandler(); + /// Destroys the InvalidCertificateHandler. + + virtual void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert) = 0; + /// Receives the questionable certificate in parameter errorCert. If one wants to accept the + /// certificate, call errorCert.setIgnoreError(true). + +protected: + bool _handleErrorsOnServerSide; + /// Stores if the certificate handler gets invoked by the server (i.e. a client certificate is wrong) + /// or the client (a server certificate is wrong) +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_InvalidCertificateHandler_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/NetSSL.h b/NetSSL_Win/include/Poco/Net/NetSSL.h new file mode 100644 index 000000000..0fad93b93 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/NetSSL.h @@ -0,0 +1,85 @@ +// +// NetSSL.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/NetSSL.h#2 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: SSLCore +// +// Basic definitions for the Poco NetSSL library. +// This file must be the first file included by every other NetSSL +// header file. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_NetSSL_INCLUDED +#define NetSSL_NetSSL_INCLUDED + + +#include "Poco/Net/Net.h" + + +// +// The following block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the NetSSL_Win_EXPORTS +// symbol defined on the command line. this symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// NetSSL_Win_API functions as being imported from a DLL, wheras this DLL sees symbols +// defined with this macro as being exported. +// +#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(POCO_DLL) + #if defined(NetSSL_Win_EXPORTS) + #define NetSSL_Win_API __declspec(dllexport) + #else + #define NetSSL_Win_API __declspec(dllimport) + #endif +#endif + + +#if !defined(NetSSL_Win_API) + #if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4) + #define NetSSL_Win_API __attribute__ ((visibility ("default"))) + #else + #define NetSSL_Win_API + #endif +#endif + + +// +// Automatically link NetSSL library. +// +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(NetSSL_Win_EXPORTS) + #pragma comment(lib, "PocoNetSSLWin" POCO_LIB_SUFFIX) + #endif +#endif + + +namespace Poco { +namespace Net { + + +void NetSSL_Win_API initializeSSL(); + /// Initialize the NetSSL library, as well as the underlying Windows + /// libraries. + /// + /// Can be called multiple times; however, for every call to + /// initializeSSL(), a matching call to uninitializeSSL() + /// must be performed. + + +void NetSSL_Win_API uninitializeSSL(); + /// Uninitializes the NetSSL library and + /// shutting down the SSLManager. + + +} } // namespace Poco::Net + + +#endif // NetSSL_NetSSL_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/RejectCertificateHandler.h b/NetSSL_Win/include/Poco/Net/RejectCertificateHandler.h new file mode 100644 index 000000000..ba15b8e96 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/RejectCertificateHandler.h @@ -0,0 +1,50 @@ +// +// RejectCertificateHandler.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/RejectCertificateHandler.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: RejectCertificateHandler +// +// Definition of the RejectCertificateHandler class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_RejectCertificateHandler_INCLUDED +#define NetSSL_RejectCertificateHandler_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/InvalidCertificateHandler.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API RejectCertificateHandler: public InvalidCertificateHandler + /// A RejectCertificateHandler is invoked whenever an error + /// occurs verifying the certificate. It always rejects + /// the certificate. +{ +public: + RejectCertificateHandler(bool handleErrorsOnServerSide); + /// Creates the RejectCertificateHandler + + virtual ~RejectCertificateHandler(); + /// Destroys the RejectCertificateHandler. + + void onInvalidCertificate(const void* pSender, VerificationErrorArgs& errorCert); +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_RejectCertificateHandler_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SSLException.h b/NetSSL_Win/include/Poco/Net/SSLException.h new file mode 100644 index 000000000..0456d6d13 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SSLException.h @@ -0,0 +1,41 @@ +// +// SSLException.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/SSLException.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: SSLException +// +// Definition of the SSLException class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SSLException_INCLUDED +#define NetSSL_SSLException_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/NetException.h" + + +namespace Poco { +namespace Net { + + +POCO_DECLARE_EXCEPTION(NetSSL_Win_API, SSLException, NetException) +POCO_DECLARE_EXCEPTION(NetSSL_Win_API, SSLContextException, SSLException) +POCO_DECLARE_EXCEPTION(NetSSL_Win_API, InvalidCertificateException, SSLException) +POCO_DECLARE_EXCEPTION(NetSSL_Win_API, CertificateValidationException, SSLException) +POCO_DECLARE_EXCEPTION(NetSSL_Win_API, SSLConnectionUnexpectedlyClosedException, SSLException) + + +} } // namespace Poco::Net + + +#endif // NetSSL_SSLException_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SSLManager.h b/NetSSL_Win/include/Poco/Net/SSLManager.h new file mode 100644 index 000000000..1b932f3b7 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SSLManager.h @@ -0,0 +1,250 @@ +// +// SSLManager.h +// +// $Id: //poco/1.4/NetSSL_Schannel/include/Poco/Net/SSLManager.h#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: SSLManager +// +// Definition of the SSLManager class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SSLManager_INCLUDED +#define NetSSL_SSLManager_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/VerificationErrorArgs.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/CertificateHandlerFactoryMgr.h" +#include "Poco/Net/InvalidCertificateHandler.h" +#include "Poco/BasicEvent.h" +#include "Poco/SharedPtr.h" + + +namespace Poco { +namespace Net { + + +class Context; + + +class NetSSL_Win_API SSLManager + /// SSLManager is a singleton for holding the default server/client + /// Context and handling callbacks for certificate verification errors + /// and private key passphrases. + /// + /// Proper initialization of SSLManager is critical. + /// + /// SSLManager can be initialized manually, by calling initializeServer() + /// and/or initializeClient(), or intialization can be automatic. In the latter + /// case, a Poco::Util::Application instance must be available and the required + /// configuration properties must be set (see below). + /// + /// Note that manual initialization must happen very early in the application, + /// before defaultClientContext() or defaultServerContext() are called. + /// + /// If defaultClientContext() and defaultServerContext() are never called + /// in an application, initialization of SSLManager can be omitted. + /// However, in this case, delegates for the ServerVerificationError, + /// ClientVerificationError and PrivateKeyPassphraseRequired events + /// must be registered. + /// + /// An exemplary documentation which sets either the server or client default context and creates + /// a PrivateKeyPassphraseHandler that reads the password from the XML file looks like this: + /// + /// + /// + /// + /// cert Id + /// MY + /// none|relaxed|strict + /// true|false + /// true|false + /// true|false + /// true|false + /// + /// ConsoleCertificateHandler + /// + /// + /// + /// true|false + /// true|false + /// true|false + /// + /// + /// + /// + /// Following is a list of supported configuration properties. Property names must always + /// be prefixed with openSSL.server or openSSL.client. Some properties are only supported + /// for servers. + /// + /// - certificateName (string): The subject name of the certificate to use. The certificate myst + /// be available in the Windows user or machine certificate store. + /// - certificateStore (string): The certificate store location to use. + /// Valid values are "MY", "Root", "Trust" or "CA". Defaults to "MY". + /// - verificationMode (string): Specifies whether and how peer certificates are validated (see + /// the Context class for details). Valid values are "none", "relaxed", "strict". Defaults to "relaxed". + /// - revocationCheck (boolean): Enable or disable checking of certificates against revocation list. + /// Defaults to true. Not supported (ignored) on Windows Embedded Compact. + /// - trustRoots (boolean): Trust root certificates from Windows root certificate store. Defaults to true. + /// - useMachineStore (boolean): Use Windows machine certificate store instead of user store (server only). + /// Special user privileges may be required. Defaults to false. + /// - useStrongCrypto (boolean): Disable known weak cryptographic algorithms, cipher suites, and + /// SSL/TLS protocol versions that may be otherwise enabled for better interoperability. + /// Defaults to true. + /// - invalidCertificateHandler.name: The name of the class (subclass of CertificateHandler) + /// used for confirming invalid certificates. + /// - requireTLSv1 (boolean): Require a TLSv1 connection. + /// - requireTLSv1_1 (boolean): Require a TLSv1.1 connection. Not supported on Windows Embedded Compact. + /// - requireTLSv1_2 (boolean): Require a TLSv1.2 connection. Not supported on Windows Embedded Compact. +{ +public: + typedef Poco::SharedPtr InvalidCertificateHandlerPtr; + + Poco::BasicEvent ServerVerificationError; + /// Fired whenever a certificate verification error is detected by the server during a handshake. + + Poco::BasicEvent ClientVerificationError; + /// Fired whenever a certificate verification error is detected by the client during a handshake. + + static SSLManager& instance(); + /// Returns the instance of the SSLManager singleton. + + void initializeServer(InvalidCertificateHandlerPtr& pCertificateHandler, Context::Ptr pContext); + /// Initializes the server side of the SSLManager with a default invalid certificate handler and a default context. If this method + /// is never called the SSLmanager will try to initialize its members from an application configuration. + /// + /// pCertificateHandler can be 0. However, in this case, event delegates + /// must be registered with the ServerVerificationError event. + /// + /// Note: Always create the handlers (or register the corresponding event delegates) before creating + /// the Context. + /// + /// Valid initialization code would be: + /// SharedPtr pInvalidCertHandler = new ConsoleCertificateHandler; + /// Context::Ptr pContext = new Context(Context::SERVER_USE, "mycert"); + /// SSLManager::instance().initializeServer(pInvalidCertHandler, pContext); + + void initializeClient(InvalidCertificateHandlerPtr& pCertificateHandler, Context::Ptr ptrContext); + /// Initializes the client side of the SSLManager with a default invalid certificate handler and a default context. If this method + /// is never called the SSLmanager will try to initialize its members from an application configuration. + /// + /// pCertificateHandler can be 0. However, in this case, event delegates + /// must be registered with the ClientVerificationError event. + /// + /// Note: Always create the handlers (or register the corresponding event delegates) before creating + /// the Context, as during creation of the Context the passphrase for the private key might be needed. + /// + /// Valid initialization code would be: + /// SharedPtr pInvalidCertHandler = new ConsoleCertificateHandler; + /// Context::Ptr pContext = new Context(Context::CLIENT_USE, ""); + /// SSLManager::instance().initializeClient(pInvalidCertHandler, pContext); + + Context::Ptr defaultServerContext(); + /// Returns the default Context used by the server. + /// + /// Unless initializeServer() has been called, the first call to this method initializes the default Context + /// from the application configuration. + + Context::Ptr defaultClientContext(); + /// Returns the default Context used by the client. + /// + /// Unless initializeClient() has been called, the first call to this method initializes the default Context + /// from the application configuration. + + InvalidCertificateHandlerPtr serverCertificateHandler(); + /// Returns an initialized certificate handler (used by the server to verify client cert) which determines how invalid certificates are treated. + /// If none is set, it will try to auto-initialize one from an application configuration. + + InvalidCertificateHandlerPtr clientCertificateHandler(); + /// Returns an initialized certificate handler (used by the client to verify server cert) which determines how invalid certificates are treated. + /// If none is set, it will try to auto-initialize one from an application configuration. + + CertificateHandlerFactoryMgr& certificateHandlerFactoryMgr(); + /// Returns the CertificateHandlerFactoryMgr which stores the + /// factories for the different registered certificate handlers. + + void shutdown(); + /// Shuts down the SSLManager and releases the default Context + /// objects. After a call to shutdown(), the SSLManager can no + /// longer be used. + /// + /// Normally, it's not necessary to call this method directly, as this + /// will be called either by uninitializeSSL(), or when + /// the SSLManager instance is destroyed. + + static const std::string CFG_SERVER_PREFIX; + static const std::string CFG_CLIENT_PREFIX; + +private: + SSLManager(); + /// Creates the SSLManager. + + ~SSLManager(); + /// Destroys the SSLManager. + + void initDefaultContext(bool server); + /// Inits the default context, the first time it is accessed. + + void initEvents(bool server); + /// Registers delegates at the events according to the configuration. + + void initCertificateHandler(bool server); + /// Inits the certificate handler. + + CertificateHandlerFactoryMgr _certHandlerFactoryMgr; + Context::Ptr _ptrDefaultServerContext; + InvalidCertificateHandlerPtr _ptrServerCertificateHandler; + Context::Ptr _ptrDefaultClientContext; + InvalidCertificateHandlerPtr _ptrClientCertificateHandler; + Poco::FastMutex _mutex; + + static const std::string CFG_CERT_NAME; + static const std::string VAL_CERT_NAME; + static const std::string CFG_CERT_STORE; + static const std::string VAL_CERT_STORE; + static const std::string CFG_VER_MODE; + static const Context::VerificationMode VAL_VER_MODE; + static const std::string CFG_REVOCATION_CHECK; + static const bool VAL_REVOCATION_CHECK; + static const std::string CFG_TRUST_ROOTS; + static const bool VAL_TRUST_ROOTS; + static const std::string CFG_USE_MACHINE_STORE; + static const bool VAL_USE_MACHINE_STORE; + static const std::string CFG_USE_STRONG_CRYPTO; + static const bool VAL_USE_STRONG_CRYPTO; + + static const std::string CFG_DELEGATE_HANDLER; + static const std::string VAL_DELEGATE_HANDLER; + static const std::string CFG_CERTIFICATE_HANDLER; + static const std::string VAL_CERTIFICATE_HANDLER; + + static const std::string CFG_REQUIRE_TLSV1; + static const std::string CFG_REQUIRE_TLSV1_1; + static const std::string CFG_REQUIRE_TLSV1_2; + + friend class Poco::SingletonHolder; +}; + + +// +// inlines +// +inline CertificateHandlerFactoryMgr& SSLManager::certificateHandlerFactoryMgr() +{ + return _certHandlerFactoryMgr; +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_SSLManager_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SecureSMTPClientSession.h b/NetSSL_Win/include/Poco/Net/SecureSMTPClientSession.h new file mode 100644 index 000000000..675eb4dee --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SecureSMTPClientSession.h @@ -0,0 +1,98 @@ +// +// SecureSMTPClientSession.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/SecureSMTPClientSession.h#1 $ +// +// Library: NetSSL_Win +// Package: Mail +// Module: SecureSMTPClientSession +// +// Definition of the SecureSMTPClientSession class. +// +// Copyright (c) 2010, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Net_SecureSMTPClientSession_INCLUDED +#define Net_SecureSMTPClientSession_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/SMTPClientSession.h" +#include "Poco/Net/Context.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API SecureSMTPClientSession: public SMTPClientSession + /// This class implements an Simple Mail + /// Transfer Procotol (SMTP, RFC 2821) + /// client for sending e-mail messages that + /// supports the STARTTLS command for secure + /// connections. + /// + /// Usage is as follows: + /// 1. Create a SecureSMTPClientSession object. + /// 2. Call login() or login(hostname). + /// 3. Call startTLS() to switch to a secure connection. + /// Check the return value to see if a secure connection + /// has actually been established (not all servers may + /// support STARTTLS). + /// 4. Call any of the login() methods to securely authenticate + /// with a username and password. + /// 5. Send the message(s). +{ +public: + explicit SecureSMTPClientSession(const StreamSocket& socket); + /// Creates the SecureSMTPClientSession using + /// the given socket, which must be connected + /// to a SMTP server. + + SecureSMTPClientSession(const std::string& host, Poco::UInt16 port = SMTP_PORT); + /// Creates the SecureSMTPClientSession using a socket connected + /// to the given host and port. + + virtual ~SecureSMTPClientSession(); + /// Destroys the SMTPClientSession. + + bool startTLS(); + /// Sends a STARTTLS command and, if successful, + /// creates a secure SSL/TLS connection over the + /// existing socket connection. + /// + /// Must be called after login() or login(hostname). + /// If successful, login() can be called again + /// to authenticate the user. + /// + /// Returns true if the STARTTLS command was successful, + /// false otherwise. + + bool startTLS(Context::Ptr pContext); + /// Sends a STARTTLS command and, if successful, + /// creates a secure SSL/TLS connection over the + /// existing socket connection. + /// + /// Uses the given Context object for creating + /// the SSL/TLS connection. + /// + /// Must be called after login() or login(hostname). + /// If successful, login() can be called again + /// to authenticate the user. + /// + /// Returns true if the STARTTLS command was successful, + /// false otherwise. + +private: + std::string _host; +}; + + +} } // namespace Poco::Net + + +#endif // Net_SecureSMTPClientSession_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SecureServerSocket.h b/NetSSL_Win/include/Poco/Net/SecureServerSocket.h new file mode 100644 index 000000000..18711c847 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SecureServerSocket.h @@ -0,0 +1,138 @@ +// +// SecureServerSocket.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/SecureServerSocket.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureServerSocket +// +// Definition of the SecureServerSocket class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SecureServerSocket_INCLUDED +#define NetSSL_SecureServerSocket_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/ServerSocket.h" +#include "Poco/Net/Context.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API SecureServerSocket: public ServerSocket + /// A server socket for secure SSL connections. +{ +public: + SecureServerSocket(); + /// Creates a SSL server socket using the + /// default SSL server context. + /// + /// The server socket must be bound to + /// an address and put into listening state. + + explicit SecureServerSocket(Context::Ptr pContext); + /// Creates a SSL server socket, using the + /// given SSL context object. + /// + /// The server socket must be bound to + /// an address and put into listening state. + + SecureServerSocket(const Socket& socket); + /// Creates the SecureServerSocket with the SocketImpl + /// from another socket. The SocketImpl must be + /// a SecureServerSocketImpl, otherwise an InvalidArgumentException + /// will be thrown. + + SecureServerSocket(const SocketAddress& address, int backlog = 64); + /// Creates a server socket using the default server SSL context, + /// binds it to the given address and puts it in listening + /// state. + /// + /// After successful construction, the server socket + /// is ready to accept connections. + + SecureServerSocket(const SocketAddress& address, int backlog, Context::Ptr pContext); + /// Creates a server socket using the given SSL context, binds it + /// to the given address and puts it in listening + /// state. + /// + /// After successful construction, the server socket + /// is ready to accept connections. + + SecureServerSocket(Poco::UInt16 port, int backlog = 64); + /// Creates a server socket using the default server SSL context, + /// binds it to the given port and puts it in listening + /// state. + /// + /// After successful construction, the server socket + /// is ready to accept connections. + + SecureServerSocket(Poco::UInt16 port, int backlog, Context::Ptr pContext); + /// Creates a server socket using the given SSL context, binds it + /// to the given port and puts it in listening + /// state. + /// + /// After successful construction, the server socket + /// is ready to accept connections. + + virtual ~SecureServerSocket(); + /// Destroys the StreamSocket. + + SecureServerSocket& operator = (const Socket& socket); + /// Assignment operator. + /// + /// Releases the socket's SocketImpl and + /// attaches the SocketImpl from the other socket and + /// increments the reference count of the SocketImpl. + + StreamSocket acceptConnection(SocketAddress& clientAddr); + /// Get the next completed connection from the + /// socket's completed connection queue. + /// + /// If the queue is empty, waits until a connection + /// request completes. + /// + /// Returns a new SSL socket for the connection + /// with the client. + /// + /// The client socket's address is returned in clientAddr. + /// + /// No SSL handshake is performed on the new connection. + /// The SSL handshake will be performed the first time + /// sendBytes(), receiveBytes() or completeHandshake() + /// is called on the returned SecureStreamSocket. + + StreamSocket acceptConnection(); + /// Get the next completed connection from the + /// socket's completed connection queue. + /// + /// If the queue is empty, waits until a connection + /// request completes. + /// + /// Returns a new SSL socket for the connection + /// with the client. + /// + /// No SSL handshake is performed on the new connection. + /// The SSL handshake will be performed the first time + /// sendBytes(), receiveBytes() or completeHandshake() + /// is called on the returned SecureStreamSocket. + + Context::Ptr context() const; + /// Returns the SSL context used by this socket. +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_SecureServerSocket_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SecureServerSocketImpl.h b/NetSSL_Win/include/Poco/Net/SecureServerSocketImpl.h new file mode 100644 index 000000000..ba843924d --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SecureServerSocketImpl.h @@ -0,0 +1,148 @@ +// +// SecureServerSocketImpl.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/SecureServerSocketImpl.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureServerSocketImpl +// +// Definition of the SecureServerSocketImpl class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SecureServerSocketImpl_INCLUDED +#define NetSSL_SecureServerSocketImpl_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/SecureSocketImpl.h" +#include "Poco/Net/ServerSocketImpl.h" +#include "Poco/Net/Context.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API SecureServerSocketImpl: public ServerSocketImpl + /// The SocketImpl class for SecureServerSocket. +{ +public: + SecureServerSocketImpl(Context::Ptr pContext); + /// Creates the SecureServerSocketImpl using the + /// given SSL context object. + + SocketImpl* acceptConnection(SocketAddress& clientAddr); + /// Get the next completed connection from the + /// socket's completed connection queue. + /// + /// If the queue is empty, waits until a connection + /// request completes. + /// + /// Returns a new TCP socket for the connection + /// with the client. + /// + /// The client socket's address is returned in clientAddr. + + void connect(const SocketAddress& address); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + void connect(const SocketAddress& address, const Poco::Timespan& timeout); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + void connectNB(const SocketAddress& address); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + void bind(const SocketAddress& address, bool reuseAddress = false); + /// Bind a local address to the socket. + /// + /// This is usually only done when establishing a server + /// socket. TCP clients should not bind a socket to a + /// specific address. + /// + /// If reuseAddress is true, sets the SO_REUSEADDR + /// socket option. + + void listen(int backlog = 64); + /// Puts the socket into listening state. + /// + /// The socket becomes a passive socket that + /// can accept incoming connection requests. + /// + /// The backlog argument specifies the maximum + /// number of connections that can be queued + /// for this socket. + + void close(); + /// Close the socket. + + int sendBytes(const void* buffer, int length, int flags = 0); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + int receiveBytes(void* buffer, int length, int flags = 0); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + void sendUrgent(unsigned char data); + /// Not supported by this kind of socket. + /// + /// Throws a Poco::InvalidAccessException. + + bool secure() const; + /// Returns true iff the socket's connection is secure + /// (using SSL or TLS). + + Context::Ptr context() const; + /// Returns the SSL context used by this socket. + +protected: + ~SecureServerSocketImpl(); + /// Destroys the SecureServerSocketImpl. + +private: + SecureServerSocketImpl(const SecureServerSocketImpl&); + SecureServerSocketImpl& operator = (const SecureServerSocketImpl&); + +private: + SecureSocketImpl _impl; +}; + + +// +// inlines +// +inline Context::Ptr SecureServerSocketImpl::context() const +{ + return _impl.context(); +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_SecureServerSocketImpl_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SecureSocketImpl.h b/NetSSL_Win/include/Poco/Net/SecureSocketImpl.h new file mode 100644 index 000000000..aef5ff122 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SecureSocketImpl.h @@ -0,0 +1,321 @@ +// +// SecureSocketImpl.h +// +// $Id: //poco/1.4/NetSSL_Schannel/include/Poco/Net/SecureSocketImpl.h#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLSockets +// Module: SecureSocketImpl +// +// Definition of the SecureSocketImpl class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SecureSocketImpl_INCLUDED +#define NetSSL_SecureSocketImpl_INCLUDED + + +#include "Poco/Net/SocketImpl.h" +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/AutoSecBufferDesc.h" +#include "Poco/Net/X509Certificate.h" +#include "Poco/SharedPtr.h" +#include "Poco/Buffer.h" +#include +#include +#include +#include +#ifndef SECURITY_WIN32 +#define SECURITY_WIN32 +#endif +#include +#include + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API SecureSocketImpl + /// The SocketImpl for SecureStreamSocket. +{ +public: + enum + { + IO_BUFFER_SIZE = 65536, + TIMEOUT_MILLISECS = 200 + }; + + enum Mode + { + MODE_CLIENT, + MODE_SERVER + }; + + enum State + { + ST_INITIAL = 0, + ST_CONNECTING, + ST_CLIENTHANDSHAKESTART, + ST_CLIENTHANDSHAKECONDREAD, + ST_CLIENTHANDSHAKEINCOMPLETE, + ST_CLIENTHANDSHAKEOK, + ST_CLIENTHANDSHAKEEXTERROR, + ST_CLIENTHANDSHAKECONTINUE, + ST_VERIFY, + ST_DONE, + ST_ERROR + }; + + SecureSocketImpl(Poco::AutoPtr pSocketImpl, Context::Ptr pContext); + /// Creates the SecureSocketImpl. + + virtual ~SecureSocketImpl(); + /// Destroys the SecureSocketImpl. + + SocketImpl* acceptConnection(SocketAddress& clientAddr); + /// Get the next completed connection from the + /// socket's completed connection queue. + /// + /// If the queue is empty, waits until a connection + /// request completes. + /// + /// Returns a new TCP socket for the connection + /// with the client. + /// + /// The client socket's address is returned in clientAddr. + + void connect(const SocketAddress& address, bool performHandshake); + /// Initializes the socket and establishes a connection to + /// the TCP server at the given address. + /// + /// Can also be used for UDP sockets. In this case, no + /// connection is established. Instead, incoming and outgoing + /// packets are restricted to the specified address. + + void connect(const SocketAddress& address, const Poco::Timespan& timeout, bool performHandshake); + /// Initializes the socket, sets the socket timeout and + /// establishes a connection to the TCP server at the given address. + + void connectNB(const SocketAddress& address); + /// Initializes the socket and establishes a connection to + /// the TCP server at the given address. Prior to opening the + /// connection the socket is set to nonblocking mode. + + void bind(const SocketAddress& address, bool reuseAddress = false); + /// Bind a local address to the socket. + /// + /// This is usually only done when establishing a server + /// socket. TCP clients should not bind a socket to a + /// specific address. + /// + /// If reuseAddress is true, sets the SO_REUSEADDR + /// socket option. + + void listen(int backlog = 64); + /// Puts the socket into listening state. + /// + /// The socket becomes a passive socket that + /// can accept incoming connection requests. + /// + /// The backlog argument specifies the maximum + /// number of connections that can be queued + /// for this socket. + + void shutdown(); + /// Shuts down the connection by attempting + /// an orderly SSL shutdown, then actually + /// shutting down the TCP connection. + + void close(); + /// Close the socket. + + void abort(); + /// Aborts the connection by closing the + /// underlying TCP connection. No orderly SSL shutdown + /// is performed. + + int sendBytes(const void* buffer, int length, int flags = 0); + /// Sends the contents of the given buffer through + /// the socket. Any specified flags are ignored. + /// + /// Returns the number of bytes sent, which may be + /// less than the number of bytes specified. + + int receiveBytes(void* buffer, int length, int flags = 0); + /// Receives data from the socket and stores it + /// in buffer. Up to length bytes are received. + /// + /// Returns the number of bytes received. + + void setPeerHostName(const std::string& hostName); + /// Sets the peer host name for certificate validation purposes. + + const std::string& getPeerHostName() const; + /// Returns the peer host name. + + State getState() const; + /// Returns the state of the socket + + Context::Ptr context() const; + /// Returns the Context. + + PCCERT_CONTEXT peerCertificate() const; + /// Returns the peer certificate. + + poco_socket_t sockfd(); + /// Returns the underlying socket descriptor. + +protected: + int sendRawBytes(const void* buffer, int length, int flags = 0); + /// Sends the data in clearText + + int receiveRawBytes(void* buffer, int length, int flags = 0); + /// Receives raw data from the socket and stores it + /// in buffer. Up to length bytes are received. + /// + /// Returns the number of bytes received. + + void clientConnectVerify(); + void sendInitialTokenOutBuffer(); + void serverConnect(); + bool serverHandshakeLoop(PCtxtHandle phContext, PCredHandle phCred, BOOL requireClientAuth, BOOL fDoInitialRead, BOOL NewContext); + void clientVerifyCertificate(PCCERT_CONTEXT pServerCert, const std::string& serverName, DWORD dwCertFlags); + void verifyCertificateChainClient(PCCERT_CONTEXT pServerCert, PCCERT_CHAIN_CONTEXT pChainContext); + void serverVerifyCertificate(PCCERT_CONTEXT pPeerCert, DWORD dwCertFlags); + LONG serverDisconnect(PCredHandle phCreds, CtxtHandle *phContext); + LONG clientDisconnect(PCredHandle phCreds, CtxtHandle *phContext); + bool loadSecurityLibrary(); + void initClientContext(); + void initServerContext(); + PCCERT_CONTEXT loadCertificate(const std::string& certStore, const std::string& certName, bool useMachineStore, bool mustFindCertificate); + void acquireSchannelContext(Mode mode, PCCERT_CONTEXT pCertContext, CredHandle& outHandle); + void initCommon(); + void cleanup(); + void performClientHandshake(); + void performInitialClientHandshake(); + SECURITY_STATUS performClientHandshakeLoop(); + void performClientHandshakeLoopIncompleteMessage(); + void performClientHandshakeLoopCondRead(); + void performClientHandshakeLoopRead(); + void performClientHandshakeLoopOK(); + void performClientHandshakeLoopInit(); + void performClientHandshakeExtraBuffer(); + void performClientHandshakeSendOutBuffer(); + void performClientHandshakeLoopContinueNeeded(); + void performClientHandshakeLoopError(); + void performClientHandshakeLoopExtError(); + SECURITY_STATUS decodeMessage(BYTE* pBuffer, DWORD bufSize, AutoSecBufferDesc<4>& msg, SecBuffer*& pData, SecBuffer*& pExtra); + SECURITY_STATUS decodeBufferFull(BYTE* pBuffer, DWORD bufSize, char* pOutBuffer, int outLength, int& bytesDecoded); + void stateIllegal(); + void stateConnected(); + void acceptSSL(); + void connectSSL(bool completeHandshake); + DWORD proto() const; + static int lastError(); + void stateMachine(); + void setState(State st); + +private: + SecureSocketImpl(const SecureSocketImpl&); + SecureSocketImpl& operator = (const SecureSocketImpl&); + + Poco::AutoPtr _pSocket; + Context::Ptr _pContext; + Mode _mode; + std::string _peerHostName; + bool _useMachineStore; + bool _clientAuthRequired; + HCERTSTORE _hCertificateStore; + PCCERT_CONTEXT _pServerCertificate; + PCCERT_CONTEXT _pPeerCertificate; + + CredHandle _hCreds; + CtxtHandle _hContext; + DWORD _clientFlags; + DWORD _serverFlags; + + HMODULE _hSecurityModule; + SecurityFunctionTableW _securityFunctions; + + BYTE* _pReceiveBuffer; + DWORD _receiveBufferSize; + + BYTE* _pIOBuffer; + DWORD _ioBufferOffset; + DWORD _ioBufferSize; + + SecPkgContext_StreamSizes _streamSizes; + AutoSecBufferDesc<1> _outSecBuffer; + AutoSecBufferDesc<2> _inSecBuffer; + Poco::Buffer _ioCharBuffer; + Poco::SharedPtr > _pSendBuffer; + SecBuffer _extraSecBuffer; + bool _doReadFirst; + DWORD _bytesRead; + DWORD _bytesReadSum; + SECURITY_STATUS _securityStatus; + State _state; + DWORD _outFlags; + std::string _hostName; + + friend class SecureStreamSocketImpl; + friend class StateMachine; +}; + + +// +// inlines +// +inline poco_socket_t SecureSocketImpl::sockfd() +{ + return _pSocket->sockfd(); +} + + +inline Context::Ptr SecureSocketImpl::context() const +{ + return _pContext; +} + + +inline SecureSocketImpl::State SecureSocketImpl::getState() const +{ + return _state; +} + + +inline void SecureSocketImpl::setState(SecureSocketImpl::State st) +{ + _state = st; +} + + +inline const std::string& SecureSocketImpl::getPeerHostName() const +{ + return _peerHostName; +} + + +inline PCCERT_CONTEXT SecureSocketImpl::peerCertificate() const +{ + return _pPeerCertificate; +} + + +inline int SecureSocketImpl::lastError() +{ + return SocketImpl::lastError(); +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_SecureSocketImpl_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SecureStreamSocket.h b/NetSSL_Win/include/Poco/Net/SecureStreamSocket.h new file mode 100644 index 000000000..69e428fef --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SecureStreamSocket.h @@ -0,0 +1,274 @@ +// +// SecureStreamSocket.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/SecureStreamSocket.h#2 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureStreamSocket +// +// Definition of the SecureStreamSocket class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SecureStreamSocket_INCLUDED +#define NetSSL_SecureStreamSocket_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/StreamSocket.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Session.h" +#include "Poco/Net/X509Certificate.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API SecureStreamSocket: public StreamSocket + /// A subclass of StreamSocket for secure SSL sockets. + /// + /// A few notes about nonblocking IO: + /// sendBytes() and receiveBytes() can return a + /// negative value when using a nonblocking socket, which means + /// a SSL handshake is currently in progress and more data + /// needs to be read or written for the handshake to continue. + /// If sendBytes() or receiveBytes() return ERR_SSL_WANT_WRITE, + /// sendBytes() must be called as soon as possible (usually, after + /// select() indicates that data can be written). Likewise, if + /// ERR_SSL_WANT_READ is returned, receiveBytes() must be called + /// as soon as data is available for reading (indicated by select()). + /// + /// The SSL handshake is delayed until the first sendBytes() or + /// receiveBytes() operation is performed on the socket. No automatic + /// post connection check (checking the peer certificate for a valid + /// hostname) is performed when using nonblocking I/O. To manually + /// perform peer certificate validation, call verifyPeerCertificate() + /// after the SSL handshake has been completed. +{ +public: + enum + { + ERR_SSL_WANT_READ = -1, + ERR_SSL_WANT_WRITE = -2 + }; + + SecureStreamSocket(); + /// Creates an unconnected secure stream socket + /// using the default client SSL context. + /// + /// Before sending or receiving data, the socket + /// must be connected with a call to connect(). + + explicit SecureStreamSocket(Context::Ptr pContext); + /// Creates an unconnected secure stream socket + /// using the given SSL context. + /// + /// Before sending or receiving data, the socket + /// must be connected with a call to connect(). + + SecureStreamSocket(Context::Ptr pContext, Session::Ptr pSession); + /// Creates an unconnected secure stream socket + /// using the given SSL context. + /// + /// Before sending or receiving data, the socket + /// must be connected with a call to connect(). + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + explicit SecureStreamSocket(const SocketAddress& address); + /// Creates a secure stream socket using the default + /// client SSL context and connects it to + /// the socket specified by address. + + SecureStreamSocket(const SocketAddress& address, Context::Ptr pContext); + /// Creates a secure stream socket using the given + /// client SSL context and connects it to + /// the socket specified by address. + + SecureStreamSocket(const SocketAddress& address, Context::Ptr pContext, Session::Ptr pSession); + /// Creates a secure stream socket using the given + /// client SSL context and connects it to + /// the socket specified by address. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + SecureStreamSocket(const SocketAddress& address, const std::string& hostName); + /// Creates a secure stream socket using the default + /// client SSL context and connects it to + /// the socket specified by address. + /// + /// The given host name is used for certificate verification. + + SecureStreamSocket(const SocketAddress& address, const std::string& hostName, Context::Ptr pContext); + /// Creates a secure stream socket using the given + /// client SSL context and connects it to + /// the socket specified by address. + /// + /// The given host name is used for certificate verification. + + SecureStreamSocket(const SocketAddress& address, const std::string& hostName, Context::Ptr pContext, Session::Ptr pSession); + /// Creates a secure stream socket using the given + /// client SSL context and connects it to + /// the socket specified by address. + /// + /// The given host name is used for certificate verification. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + SecureStreamSocket(const Socket& socket); + /// Creates the SecureStreamSocket with the SocketImpl + /// from another socket. The SocketImpl must be + /// a SecureStreamSocketImpl, otherwise an InvalidArgumentException + /// will be thrown. + + virtual ~SecureStreamSocket(); + /// Destroys the StreamSocket. + + SecureStreamSocket& operator = (const Socket& socket); + /// Assignment operator. + /// + /// Releases the socket's SocketImpl and + /// attaches the SocketImpl from the other socket and + /// increments the reference count of the SocketImpl. + + bool havePeerCertificate() const; + /// Returns true iff the peer has presented a + /// certificate. + + X509Certificate peerCertificate() const; + /// Returns the peer's X509 certificate. + /// + /// Throws a SSLException if the peer did not + /// present a certificate. + + void setPeerHostName(const std::string& hostName); + /// Sets the peer's host name used for certificate validation. + + const std::string& getPeerHostName() const; + /// Returns the peer's host name used for certificate validation. + + static SecureStreamSocket attach(const StreamSocket& streamSocket); + /// Creates a SecureStreamSocket over an existing socket + /// connection. The given StreamSocket must be connected. + /// A SSL handshake will be performed. + + static SecureStreamSocket attach(const StreamSocket& streamSocket, Context::Ptr pContext); + /// Creates a SecureStreamSocket over an existing socket + /// connection. The given StreamSocket must be connected. + /// A SSL handshake will be performed. + + static SecureStreamSocket attach(const StreamSocket& streamSocket, Context::Ptr pContext, Session::Ptr pSession); + /// Creates a SecureStreamSocket over an existing socket + /// connection. The given StreamSocket must be connected. + /// A SSL handshake will be performed. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + static SecureStreamSocket attach(const StreamSocket& streamSocket, const std::string& peerHostName); + /// Creates a SecureStreamSocket over an existing socket + /// connection. The given StreamSocket must be connected. + /// A SSL handshake will be performed. + + static SecureStreamSocket attach(const StreamSocket& streamSocket, const std::string& peerHostName, Context::Ptr pContext); + /// Creates a SecureStreamSocket over an existing socket + /// connection. The given StreamSocket must be connected. + /// A SSL handshake will be performed. + + static SecureStreamSocket attach(const StreamSocket& streamSocket, const std::string& peerHostName, Context::Ptr pContext, Session::Ptr pSession); + /// Creates a SecureStreamSocket over an existing socket + /// connection. The given StreamSocket must be connected. + /// A SSL handshake will be performed. + /// + /// The given Session is reused, if possible (client session + /// caching is enabled for the given Context, and the server + /// agrees to reuse the session). + + Context::Ptr context() const; + /// Returns the SSL context used by this socket. + + void setLazyHandshake(bool flag = true); + /// Enable lazy SSL handshake. If enabled, the SSL handshake + /// will be performed the first time date is sent or + /// received over the connection. + + bool getLazyHandshake() const; + /// Returns true if setLazyHandshake(true) has been called. + + void verifyPeerCertificate(); + /// Performs post-connect (or post-accept) peer certificate validation, + /// using the peer host name set with setPeerHostName(), or the peer's + /// IP address string if no peer host name has been set. + /// + /// Should only be used for non-blocking connections, after the + /// initial SSL handshake has been performed (see completeHandshake()). + + void verifyPeerCertificate(const std::string& hostName); + /// Performs post-connect (or post-accept) peer certificate validation + /// using the given host name. + /// + /// Should only be used for non-blocking connections, after the + /// initial SSL handshake has been performed (see completeHandshake()). + + int completeHandshake(); + /// Completes the SSL handshake. + /// + /// If the SSL connection was the result of an accept(), + /// the server-side handshake is completed, otherwise + /// a client-side handshake is performed. + /// + /// Returns 1 if the handshake was successful, ERR_SSL_WANT_READ or + /// ERR_SSL_WANT_WRITE if more data is required to complete the + /// handshake. In this case, completeHandshake() should be called + /// again, after the necessary condition has been met. + + Session::Ptr currentSession(); + /// Returns the SSL session of the current connection, + /// for reuse in a future connection (if session caching + /// is enabled). + /// + /// If no connection is established, returns null. + + void useSession(Session::Ptr pSession); + /// Sets the SSL session to use for the next + /// connection. Setting a previously saved Session + /// object is necessary to enable session caching. + /// + /// To remove the currently set session, a null pointer + /// can be given. + /// + /// Must be called before connect() to be effective. + + bool sessionWasReused(); + /// Returns true iff a reused session was negotiated during + /// the handshake. + + void abort(); + /// Aborts the SSL connection by closing the underlying + /// TCP connection. No orderly SSL shutdown is performed. + +protected: + SecureStreamSocket(SocketImpl* pImpl); + + friend class SecureServerSocket; +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_SecureStreamSocket_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/SecureStreamSocketImpl.h b/NetSSL_Win/include/Poco/Net/SecureStreamSocketImpl.h new file mode 100644 index 000000000..f79a32a1a --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/SecureStreamSocketImpl.h @@ -0,0 +1,302 @@ +// +// SecureStreamSocketImpl.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/SecureStreamSocketImpl.h#2 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureStreamSocketImpl +// +// Definition of the SecureStreamSocketImpl class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_SecureStreamSocketImpl_INCLUDED +#define NetSSL_SecureStreamSocketImpl_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/SecureSocketImpl.h" +#include "Poco/Net/StreamSocketImpl.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Session.h" +#include "Poco/Net/X509Certificate.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API SecureStreamSocketImpl: public StreamSocketImpl + /// This class implements a SSL stream socket. +{ +public: + SecureStreamSocketImpl(Context::Ptr pContext); + /// Creates the SecureStreamSocketImpl. + + SecureStreamSocketImpl(StreamSocketImpl* pStreamSocket, Context::Ptr pContext); + /// Creates the SecureStreamSocketImpl. + + SocketImpl* acceptConnection(SocketAddress& clientAddr); + /// Not supported by a SecureStreamSocket. + /// + /// Throws a Poco::InvalidAccessException. + + void connect(const SocketAddress& address); + /// Initializes the socket and establishes a connection to + /// the TCP server at the given address. + /// + /// Can also be used for UDP sockets. In this case, no + /// connection is established. Instead, incoming and outgoing + /// packets are restricted to the specified address. + + void connect(const SocketAddress& address, const Poco::Timespan& timeout); + /// Initializes the socket, sets the socket timeout and + /// establishes a connection to the TCP server at the given address. + + void connectNB(const SocketAddress& address); + /// Initializes the socket and establishes a connection to + /// the TCP server at the given address. Prior to opening the + /// connection the socket is set to nonblocking mode. + + void bind(const SocketAddress& address, bool reuseAddress = false); + /// Not supported by a SecureStreamSocket. + /// + /// Throws a Poco::InvalidAccessException. + + void listen(int backlog = 64); + /// Not supported by a SecureStreamSocket. + /// + /// Throws a Poco::InvalidAccessException. + + void close(); + /// Close the socket. + + int sendBytes(const void* buffer, int length, int flags = 0); + /// Sends the contents of the given buffer through + /// the socket. Any specified flags are ignored. + /// + /// Returns the number of bytes sent, which may be + /// less than the number of bytes specified. + + int receiveBytes(void* buffer, int length, int flags = 0); + /// Receives data from the socket and stores it + /// in buffer. Up to length bytes are received. + /// + /// Returns the number of bytes received. + + int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); + /// Not supported by a SecureStreamSocket. + /// + /// Throws a Poco::InvalidAccessException. + + int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); + /// Not supported by a SecureStreamSocket. + /// + /// Throws a Poco::InvalidAccessException. + + void sendUrgent(unsigned char data); + /// Not supported by a SecureStreamSocket. + /// + /// Throws a Poco::InvalidAccessException. + + int available(); + /// Returns the number of bytes available that can be read + /// without causing the socket to block. + /// + /// For an SSL connection, returns the number of bytes that + /// can be read from the currently buffered SSL record, + /// before a new record is read from the underlying socket. + + void shutdownReceive(); + /// Shuts down the receiving part of the socket connection. + /// + /// Since SSL does not support a half shutdown, this does + /// nothing. + + void shutdownSend(); + /// Shuts down the receiving part of the socket connection. + /// + /// Since SSL does not support a half shutdown, this does + /// nothing. + + void shutdown(); + /// Shuts down the SSL connection. + + void abort(); + /// Aborts the connection by closing the underlying + /// TCP connection. No orderly SSL shutdown is performed. + + bool secure() const; + /// Returns true iff the socket's connection is secure + /// (using SSL or TLS). + + void setPeerHostName(const std::string& hostName); + /// Sets the peer host name for certificate validation purposes. + + const std::string& getPeerHostName() const; + /// Returns the peer host name. + + bool havePeerCertificate() const; + /// Returns true iff the peer has presented a + /// certificate. + + X509Certificate peerCertificate() const; + /// Returns the peer's X509 certificate. + /// + /// Throws a SSLException if the peer did not + /// present a certificate. + + Context::Ptr context() const; + /// Returns the SSL context used by this socket. + + void setLazyHandshake(bool flag = true); + /// Enable lazy SSL handshake. If enabled, the SSL handshake + /// will be performed the first time date is sent or + /// received over the connection. + + bool getLazyHandshake() const; + /// Returns true if setLazyHandshake(true) has been called. + + void verifyPeerCertificate(); + /// Performs post-connect (or post-accept) peer certificate validation, + /// using the peer's IP address as host name. + + void verifyPeerCertificate(const std::string& hostName); + /// Performs post-connect (or post-accept) peer certificate validation + /// using the given host name. + + int completeHandshake(); + /// Completes the SSL handshake. + /// + /// If the SSL connection was the result of an accept(), + /// the server-side handshake is completed, otherwise + /// a client-side handshake is performed. + + Session::Ptr currentSession(); + /// Returns the SSL session of the current connection, + /// for reuse in a future connection (if session caching + /// is enabled). + /// + /// If no connection is established, returns null. + + void useSession(Session::Ptr pSession); + /// Sets the SSL session to use for the next + /// connection. Setting a previously saved Session + /// object is necessary to enable session caching. + /// + /// To remove the currently set session, a null pointer + /// can be given. + /// + /// Must be called before connect() to be effective. + + bool sessionWasReused(); + /// Returns true iff a reused session was negotiated during + /// the handshake. + +protected: + void acceptSSL(); + /// Performs a SSL server-side handshake. + + void connectSSL(); + /// Performs a SSL client-side handshake on an already connected TCP socket. + + ~SecureStreamSocketImpl(); + /// Destroys the SecureStreamSocketImpl. + + static int lastError(); + static void error(); + static void error(const std::string& arg); + static void error(int code); + static void error(int code, const std::string& arg); + +private: + SecureStreamSocketImpl(const SecureStreamSocketImpl&); + SecureStreamSocketImpl& operator = (const SecureStreamSocketImpl&); + + SecureSocketImpl _impl; + bool _lazyHandshake; + + friend class SecureSocketImpl; + friend class SecureStreamSocket; +}; + + +// +// inlines +// +inline const std::string& SecureStreamSocketImpl::getPeerHostName() const +{ + return _impl.getPeerHostName(); +} + + +inline void SecureStreamSocketImpl::setPeerHostName(const std::string& peerHostName) +{ + _impl.setPeerHostName(peerHostName); +} + + +inline Context::Ptr SecureStreamSocketImpl::context() const +{ + return _impl.context(); +} + + +inline Session::Ptr SecureStreamSocketImpl::currentSession() +{ + return Session::Ptr();//_impl.currentSession(); +} + + +inline void SecureStreamSocketImpl::useSession(Session::Ptr pSession) +{ + //_impl.useSession(pSession); +} + + +inline bool SecureStreamSocketImpl::sessionWasReused() +{ + return false;//_impl.sessionWasReused(); +} + + +inline int SecureStreamSocketImpl::lastError() +{ + return SocketImpl::lastError(); +} + + +inline void SecureStreamSocketImpl::error() +{ + return SocketImpl::error(); +} + + +inline void SecureStreamSocketImpl::error(const std::string& arg) +{ + return SocketImpl::error(arg); +} + + +inline void SecureStreamSocketImpl::error(int code) +{ + return SocketImpl::error(code); +} + + +inline void SecureStreamSocketImpl::error(int code, const std::string& arg) +{ + return SocketImpl::error(code, arg); +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_SecureStreamSocketImpl_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/Session.h b/NetSSL_Win/include/Poco/Net/Session.h new file mode 100644 index 000000000..0d8d71806 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/Session.h @@ -0,0 +1,69 @@ +// +// Session.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/Session.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: Session +// +// Definition of the Session class. +// +// Copyright (c) 2010-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_Session_INCLUDED +#define NetSSL_Session_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/RefCountedObject.h" +#include "Poco/AutoPtr.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API Session: public Poco::RefCountedObject + /// This class encapsulates a SSL session object + /// used with session caching on the client side. + /// + /// For session caching to work, a client must + /// save the session object from an existing connection, + /// if it wants to reuse it with a future connection. +{ +public: + typedef Poco::AutoPtr Ptr; + +protected: + Session(); + /// Creates a new Session object, using the given + /// SSL_SESSION object. + /// + /// The SSL_SESSION's reference count is not changed. + + ~Session(); + /// Destroys the Session. + /// + /// Calls SSL_SESSION_free() on the stored + /// SSL_SESSION object. + +private: + friend class SecureSocketImpl; +}; + + +// +// inlines +// + + +} } // namespace Poco::Net + + +#endif // NetSSL_Session_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/Utility.h b/NetSSL_Win/include/Poco/Net/Utility.h new file mode 100644 index 000000000..1aee6e262 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/Utility.h @@ -0,0 +1,52 @@ +// +// Utility.h +// +// $Id: //poco/1.4/NetSSL_Schannel/include/Poco/Net/Utility.h#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: Utility +// +// Definition of the Utility class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_Utility_INCLUDED +#define NetSSL_Utility_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/Context.h" +#include + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API Utility + /// Various helper functions. +{ +public: + static Context::VerificationMode convertVerificationMode(const std::string& verMode); + /// Non-case sensitive conversion of a string to a VerificationMode enum. + /// If verMode is illegal an OptionException is thrown. + + static const std::string& formatError(long errCode); + /// Converts an winerror.h code into human readable form. + +private: + static std::map initSSPIErr(); + static Poco::FastMutex _mutex; +}; + + +} } // namespace Poco::Net + + +#endif // NetSSL_Utility_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/VerificationErrorArgs.h b/NetSSL_Win/include/Poco/Net/VerificationErrorArgs.h new file mode 100644 index 000000000..52a8f890d --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/VerificationErrorArgs.h @@ -0,0 +1,110 @@ +// +// VerificationErrorArgs.h +// +// $Id: //poco/1.4/NetSSL_Win/include/Poco/Net/VerificationErrorArgs.h#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: VerificationErrorArgs +// +// Definition of the VerificationErrorArgs class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_VerificationErrorArgs_INCLUDED +#define NetSSL_VerificationErrorArgs_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/Net/X509Certificate.h" + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API VerificationErrorArgs + /// A utility class for certificate error handling. +{ +public: + VerificationErrorArgs(const X509Certificate& cert, int errDepth, int errNum, const std::string& errMsg); + /// Creates the VerificationErrorArgs. _ignoreError is per default set to false. + + ~VerificationErrorArgs(); + /// Destroys the VerificationErrorArgs. + + const X509Certificate& certificate() const; + /// Returns the certificate that caused the error. + + int errorDepth() const; + /// Returns the position of the certificate in the certificate chain. + + int errorNumber() const; + /// Returns the id of the error + + const std::string& errorMessage() const; + /// Returns the textual presentation of the errorNumber. + + void setIgnoreError(bool ignoreError); + /// setIgnoreError to true, if a verification error is judged non-fatal by the user. + + bool getIgnoreError() const; + /// returns the value of _ignoreError + +private: + X509Certificate _cert; + int _errorDepth; + int _errorNumber; + std::string _errorMessage; /// Textual representation of the _errorNumber + bool _ignoreError; +}; + + +// +// inlines +// +inline const X509Certificate& VerificationErrorArgs::certificate() const +{ + return _cert; +} + + +inline int VerificationErrorArgs::errorDepth() const +{ + return _errorDepth; +} + + +inline int VerificationErrorArgs::errorNumber() const +{ + return _errorNumber; +} + + +inline const std::string& VerificationErrorArgs::errorMessage() const +{ + return _errorMessage; +} + + +inline void VerificationErrorArgs::setIgnoreError(bool ignoreError) +{ + _ignoreError = ignoreError; +} + + +inline bool VerificationErrorArgs::getIgnoreError() const +{ + return _ignoreError; +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_VerificationErrorArgs_INCLUDED diff --git a/NetSSL_Win/include/Poco/Net/X509Certificate.h b/NetSSL_Win/include/Poco/Net/X509Certificate.h new file mode 100644 index 000000000..561653f79 --- /dev/null +++ b/NetSSL_Win/include/Poco/Net/X509Certificate.h @@ -0,0 +1,185 @@ +// +// X509Certificate.h +// +// $Id: //poco/1.4/Crypto/include/Poco/Crypto/X509Certificate.h#2 $ +// +// Library: Crypto +// Package: Certificate +// Module: X509Certificate +// +// Definition of the X509Certificate class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSL_X509Certificate_INCLUDED +#define NetSSL_X509Certificate_INCLUDED + + +#include "Poco/Net/NetSSL.h" +#include "Poco/DateTime.h" +#include "Poco/SharedPtr.h" +#include +#include + + +namespace Poco { +namespace Net { + + +class NetSSL_Win_API X509Certificate + /// This class represents a X509 Certificate. +{ +public: + enum NID + /// Name identifier for extracting information from + /// a certificate subject's or issuer's distinguished name. + { + NID_COMMON_NAME, + NID_COUNTRY, + NID_LOCALITY_NAME, + NID_STATE_OR_PROVINCE, + NID_ORGANIZATION_NAME, + NID_ORGANIZATION_UNIT_NAME + }; + + explicit X509Certificate(std::istream& istr); + /// Creates the X509Certificate object by reading + /// a certificate in PEM format from a stream. + + explicit X509Certificate(const std::string& path); + /// Creates the X509Certificate object by reading + /// a certificate in PEM format from a file. + + explicit X509Certificate(PCCERT_CONTEXT pCert); + /// Creates the X509Certificate from an existing + /// WinCrypt certificate. Ownership is taken of + /// the certificate. + + X509Certificate(PCCERT_CONTEXT pCert, bool shared); + /// Creates the X509Certificate from an existing + /// WinCrypt certificate. Ownership is taken of + /// the certificate. If shared is true, the + /// certificate's reference count is incremented. + + X509Certificate(const X509Certificate& cert); + /// Creates the certificate by copying another one. + + X509Certificate& operator = (const X509Certificate& cert); + /// Assigns a certificate. + + void swap(X509Certificate& cert); + /// Exchanges the certificate with another one. + + ~X509Certificate(); + /// Destroys the X509Certificate. + + const std::string& issuerName() const; + /// Returns the certificate issuer's distinguished name. + + std::string issuerName(NID nid) const; + /// Extracts the information specified by the given + /// NID (name identifier) from the certificate issuer's + /// distinguished name. + + const std::string& subjectName() const; + /// Returns the certificate subject's distinguished name. + + std::string subjectName(NID nid) const; + /// Extracts the information specified by the given + /// NID (name identifier) from the certificate subject's + /// distinguished name. + + std::string commonName() const; + /// Returns the common name stored in the certificate + /// subject's distinguished name. + + void extractNames(std::string& commonName, std::set& domainNames) const; + /// Extracts the common name and the alias domain names from the + /// certificate. + + Poco::DateTime validFrom() const; + /// Returns the date and time the certificate is valid from. + + Poco::DateTime expiresOn() const; + /// Returns the date and time the certificate expires. + + void save(std::ostream& stream) const; + /// Writes the certificate to the given stream. + /// The certificate is written in PEM format. + + void save(const std::string& path) const; + /// Writes the certificate to the file given by path. + /// The certificate is written in PEM format. + + bool issuedBy(const X509Certificate& issuerCertificate) const; + /// Checks whether the certificate has been issued by + /// the issuer given by issuerCertificate. This can be + /// used to validate a certificate chain. + /// + /// Verifies if the certificate has been signed with the + /// issuer's private key, using the public key from the issuer + /// certificate. + /// + /// Returns true if verification against the issuer certificate + /// was successful, false otherwise. + + const PCCERT_CONTEXT system() const; + /// Returns the underlying WinCrypt certificate. + +protected: + void load(std::istream& stream); + /// Loads the certificate from the given stream. The + /// certificate must be in PEM format. + + void load(const std::string& path); + /// Loads the certificate from the given file. The + /// certificate must be in PEM format. + + void init(); + /// Extracts issuer and subject name from the certificate. + + static void* nid2oid(NID nid); + /// Returns the OID for the given NID. + +private: + enum + { + NAME_BUFFER_SIZE = 256 + }; + + std::string _issuerName; + std::string _subjectName; + PCCERT_CONTEXT _pCert; +}; + + +// +// inlines +// +inline const std::string& X509Certificate::issuerName() const +{ + return _issuerName; +} + + +inline const std::string& X509Certificate::subjectName() const +{ + return _subjectName; +} + + +inline const PCCERT_CONTEXT X509Certificate::system() const +{ + return _pCert; +} + + +} } // namespace Poco::Net + + +#endif // NetSSL_X509Certificate_INCLUDED diff --git a/NetSSL_Win/samples/CMakeLists.txt b/NetSSL_Win/samples/CMakeLists.txt new file mode 100644 index 000000000..e6ad6f591 --- /dev/null +++ b/NetSSL_Win/samples/CMakeLists.txt @@ -0,0 +1,3 @@ +add_subdirectory( HTTPSTimeServer ) +add_subdirectory( download ) +add_subdirectory( Mail ) diff --git a/NetSSL_Win/samples/HTTPSTimeServer/CMakeLists.txt b/NetSSL_Win/samples/HTTPSTimeServer/CMakeLists.txt new file mode 100644 index 000000000..85dcd4584 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/CMakeLists.txt @@ -0,0 +1,7 @@ +set(SAMPLE_NAME "HTTPSTimeServer") + +set(LOCAL_SRCS "") +aux_source_directory(src LOCAL_SRCS) + +add_executable( ${SAMPLE_NAME} ${LOCAL_SRCS} ) +target_link_libraries( ${SAMPLE_NAME} PocoNetSSLWin PocoCrypto PocoUtil PocoNet PocoXML PocoFoundation ) diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen new file mode 100644 index 000000000..b12a664bb --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -0,0 +1,18 @@ +vc.project.guid = ${vc.project.guidFromName} +vc.project.name = ${vc.project.baseName} +vc.project.target = ${vc.project.name} +vc.project.type = executable +vc.project.pocobase = ..\\..\\.. +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib +vc.project.linker.dependencies.debug_shared = +vc.project.linker.dependencies.release_shared = +vc.project.linker.dependencies.debug_static_md = Crypt32.lib +vc.project.linker.dependencies.release_static_md = Crypt32.lib +vc.project.linker.dependencies.debug_static_mt = Crypt32.lib +vc.project.linker.dependencies.release_static_mt = Crypt32.lib diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.properties b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.properties new file mode 100644 index 000000000..3cf34a9f8 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.properties @@ -0,0 +1,17 @@ +# This is a sample configuration file for HTTPSTimeServer + +HTTPSTimeServer.format = %W, %e %b %y %H:%M:%S %Z +HTTPSTimeServer.port = 9443 + +schannel.server.certificateName = ${system.nodeName} +schannel.server.verificationMode = none +schannel.server.useMachineStore = false +schannel.server.useStrongCrypto = true + +logging.loggers.root.channel.class = ConsoleChannel +logging.loggers.app.name = Application +logging.loggers.app.channel = c1 +logging.formatters.f1.class = PatternFormatter +logging.formatters.f1.pattern = [%p] %t +logging.channels.c1.class = ConsoleChannel +logging.channels.c1.formatter = f1 diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_CE_vs90.vcproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_CE_vs90.vcproj new file mode 100644 index 000000000..0b9c068e0 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_CE_vs90.vcproj @@ -0,0 +1,477 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs110.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs110.vcxproj new file mode 100644 index 000000000..d179e9146 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs110.vcxproj @@ -0,0 +1,299 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + release_shared + SDK_AM335X_SK_WEC2013_V300 + + + release_static_md + SDK_AM335X_SK_WEC2013_V300 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V300 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\HTTPSTimeServerd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\HTTPSTimeServerd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + true + Speed + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\HTTPSTimeServer.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\HTTPSTimeServerd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\HTTPSTimeServer.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\HTTPSTimeServerd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\HTTPSTimeServerd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\HTTPSTimeServer.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs110.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs110.vcxproj.filters new file mode 100644 index 000000000..6e5114e4e --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs110.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {c877ec66-bbf9-468c-8752-c10d878631b2} + + + {d655f779-b2e5-440f-9497-17d3ba1f2c27} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs120.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs120.vcxproj new file mode 100644 index 000000000..9d3c489be --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs120.vcxproj @@ -0,0 +1,299 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + release_shared + SDK_AM335X_SK_WEC2013_V310 + + + release_static_md + SDK_AM335X_SK_WEC2013_V310 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V310 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\HTTPSTimeServerd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\HTTPSTimeServerd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + true + Speed + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\HTTPSTimeServer.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\HTTPSTimeServerd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\HTTPSTimeServer.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\HTTPSTimeServerd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\HTTPSTimeServerd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\HTTPSTimeServer.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs120.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs120.vcxproj.filters new file mode 100644 index 000000000..b1679cbaa --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_WEC2013_vs120.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {e68c96bb-e70c-4fa2-884b-70d50d7c975a} + + + {638169a5-c5d8-4016-872b-94c1de1b623f} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs100.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs100.vcxproj new file mode 100644 index 000000000..aa8face1b --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs100.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + HTTPSTimeServer + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin\ + obj\$(Configuration)\ + true + bin\ + obj\$(Configuration)\ + false + bin\static_mt\ + obj\$(Configuration)\ + true + bin\static_mt\ + obj\$(Configuration)\ + false + bin\static_md\ + obj\$(Configuration)\ + true + bin\static_md\ + obj\$(Configuration)\ + false + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\HTTPSTimeServerd.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\HTTPSTimeServerd.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\HTTPSTimeServerd.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs100.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs100.vcxproj.filters new file mode 100644 index 000000000..14122bd45 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs100.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {cf961069-7c8a-4f4e-b2ac-9800f6ca4dcf} + + + {0a3c3f4f-75c6-4d1d-aed6-49ad0e1747af} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs110.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs110.vcxproj new file mode 100644 index 000000000..ab0143c18 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs110.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + HTTPSTimeServer + Win32Proj + + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\HTTPSTimeServerd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\HTTPSTimeServerd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\HTTPSTimeServerd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs110.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs110.vcxproj.filters new file mode 100644 index 000000000..4cd91c567 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs110.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {96778516-5f44-4d65-9d53-5967c2507c75} + + + {5b33963b-37a2-4dbe-ac40-f09b7ce2b759} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs120.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs120.vcxproj new file mode 100644 index 000000000..54652efeb --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs120.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + HTTPSTimeServer + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\HTTPSTimeServerd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\HTTPSTimeServerd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPSTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\HTTPSTimeServerd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPSTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs120.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs120.vcxproj.filters new file mode 100644 index 000000000..e1b2594b7 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs120.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {8c285420-6648-4e27-864b-307ae8381c95} + + + {831e73a8-7769-4ec7-a441-8fdc5a1e0808} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs71.vcproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs71.vcproj new file mode 100644 index 000000000..995edc8e9 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs71.vcproj @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs80.vcproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs80.vcproj new file mode 100644 index 000000000..dfa71727e --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs80.vcproj @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs90.vcproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs90.vcproj new file mode 100644 index 000000000..0f7e7b34b --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs90.vcproj @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs100.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs100.vcxproj new file mode 100644 index 000000000..4f847dda7 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs100.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + HTTPSTimeServer + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin64\ + obj64\$(Configuration)\ + true + bin64\ + obj64\$(Configuration)\ + false + bin64\static_mt\ + obj64\$(Configuration)\ + true + bin64\static_mt\ + obj64\$(Configuration)\ + false + bin64\static_md\ + obj64\$(Configuration)\ + true + bin64\static_md\ + obj64\$(Configuration)\ + false + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\HTTPSTimeServerd.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\HTTPSTimeServerd.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\HTTPSTimeServerd.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs100.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs100.vcxproj.filters new file mode 100644 index 000000000..6fcc2f6b2 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs100.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {fabb23b6-db0c-4cf2-a23e-832346fce086} + + + {a3559737-9c79-4b24-b3d3-62ea14bdc87d} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs110.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs110.vcxproj new file mode 100644 index 000000000..eb602f757 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs110.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + HTTPSTimeServer + Win32Proj + + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\HTTPSTimeServerd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\HTTPSTimeServerd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\HTTPSTimeServerd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs110.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs110.vcxproj.filters new file mode 100644 index 000000000..376966965 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs110.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {d3f25416-54a3-4689-91f8-63fba1ef4a38} + + + {f7a2e836-9518-448b-9069-bee190995e23} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs120.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs120.vcxproj new file mode 100644 index 000000000..02ea7da1f --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs120.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + HTTPSTimeServer + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} + HTTPSTimeServer + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\HTTPSTimeServerd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\HTTPSTimeServerd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPSTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\HTTPSTimeServerd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPSTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs120.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs120.vcxproj.filters new file mode 100644 index 000000000..58f236301 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs120.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {6772e6f1-b239-4144-a921-528b0adc393f} + + + {49d50afc-15c0-4c71-b811-df8e5a1b91d9} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs90.vcproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs90.vcproj new file mode 100644 index 000000000..9756d5442 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_x64_vs90.vcproj @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/HTTPSTimeServer/src/HTTPSTimeServer.cpp b/NetSSL_Win/samples/HTTPSTimeServer/src/HTTPSTimeServer.cpp new file mode 100644 index 000000000..2c6dc7b95 --- /dev/null +++ b/NetSSL_Win/samples/HTTPSTimeServer/src/HTTPSTimeServer.cpp @@ -0,0 +1,233 @@ +// +// TimeServer.cpp +// +// $Id: //poco/1.4/NetSSL_OpenSSL/samples/HTTPSTimeServer/src/HTTPSTimeServer.cpp#2 $ +// +// This sample demonstrates the HTTPServer and related classes. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPServer.h" +#include "Poco/Net/HTTPRequestHandler.h" +#include "Poco/Net/HTTPRequestHandlerFactory.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/HTTPServerRequestImpl.h" +#include "Poco/Net/HTTPServerResponse.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SecureServerSocket.h" +#include "Poco/Net/X509Certificate.h" +#include "Poco/Timestamp.h" +#include "Poco/DateTimeFormatter.h" +#include "Poco/DateTimeFormat.h" +#include "Poco/Exception.h" +#include "Poco/SharedPtr.h" +#include "Poco/Util/ServerApplication.h" +#include "Poco/Util/Option.h" +#include "Poco/Util/OptionSet.h" +#include "Poco/Util/HelpFormatter.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/AcceptCertificateHandler.h" +#include + + +using Poco::Net::SecureServerSocket; +using Poco::Net::SecureStreamSocket; +using Poco::Net::HTTPRequestHandler; +using Poco::Net::HTTPRequestHandlerFactory; +using Poco::Net::HTTPServer; +using Poco::Net::HTTPServerRequest; +using Poco::Net::HTTPServerRequestImpl; +using Poco::Net::X509Certificate; +using Poco::Net::HTTPServerResponse; +using Poco::Net::HTTPServerParams; +using Poco::Timestamp; +using Poco::DateTimeFormatter; +using Poco::DateTimeFormat; +using Poco::SharedPtr; +using Poco::Util::ServerApplication; +using Poco::Util::Application; +using Poco::Util::Option; +using Poco::Util::OptionSet; +using Poco::Util::HelpFormatter; +using Poco::Net::SSLManager; +using Poco::Net::Context; +using Poco::Net::InvalidCertificateHandler; +using Poco::Net::AcceptCertificateHandler; + + +class TimeRequestHandler: public HTTPRequestHandler + /// Return a HTML document with the current date and time. +{ +public: + TimeRequestHandler(const std::string& format): + _format(format) + { + } + + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + Application& app = Application::instance(); + app.logger().information("Request from " + request.clientAddress().toString()); + + SecureStreamSocket socket = static_cast(request).socket(); + if (socket.havePeerCertificate()) + { + X509Certificate cert = socket.peerCertificate(); + app.logger().information("Client certificate: " + cert.subjectName()); + } + else + { + app.logger().information("No client certificate available."); + } + + Timestamp now; + std::string dt(DateTimeFormatter::format(now, _format)); + + response.setChunkedTransferEncoding(true); + response.setContentType("text/html"); + + std::ostream& ostr = response.send(); + ostr << "HTTPTimeServer powered by POCO C++ Libraries"; + ostr << ""; + ostr << "

"; + ostr << dt; + ostr << "

"; + } + +private: + std::string _format; +}; + + +class TimeRequestHandlerFactory: public HTTPRequestHandlerFactory +{ +public: + TimeRequestHandlerFactory(const std::string& format): + _format(format) + { + } + + HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) + { + if (request.getURI() == "/") + return new TimeRequestHandler(_format); + else + return 0; + } + +private: + std::string _format; +}; + + +class HTTPSTimeServer: public Poco::Util::ServerApplication + /// The main application class. + /// + /// This class handles command-line arguments and + /// configuration files. + /// Start the HTTPTimeServer executable with the help + /// option (/help on Windows, --help on Unix) for + /// the available command line options. + /// + /// To use the sample configuration file (HTTPTimeServer.properties), + /// copy the file to the directory where the HTTPTimeServer executable + /// resides. If you start the debug version of the HTTPTimeServer + /// (HTTPTimeServerd[.exe]), you must also create a copy of the configuration + /// file named HTTPTimeServerd.properties. In the configuration file, you + /// can specify the port on which the server is listening (default + /// 9443) and the format of the date/time string sent back to the client. + /// + /// To test the TimeServer you can use any web browser (https://localhost:9443/). +{ +public: + HTTPSTimeServer(): _helpRequested(false) + { + Poco::Net::initializeSSL(); + } + + ~HTTPSTimeServer() + { + Poco::Net::uninitializeSSL(); + } + +protected: + void initialize(Application& self) + { + loadConfiguration(); // load default configuration files, if present + ServerApplication::initialize(self); + } + + void uninitialize() + { + ServerApplication::uninitialize(); + } + + void defineOptions(OptionSet& options) + { + ServerApplication::defineOptions(options); + + options.addOption( + Option("help", "h", "display help information on command line arguments") + .required(false) + .repeatable(false)); + } + + void handleOption(const std::string& name, const std::string& value) + { + ServerApplication::handleOption(name, value); + + if (name == "help") + _helpRequested = true; + } + + void displayHelp() + { + HelpFormatter helpFormatter(options()); + helpFormatter.setCommand(commandName()); + helpFormatter.setUsage("OPTIONS"); + helpFormatter.setHeader("A web server that serves the current date and time."); + helpFormatter.format(std::cout); + } + + int main(const std::vector& args) + { + if (_helpRequested) + { + displayHelp(); + } + else + { + // get parameters from configuration file + unsigned short port = (unsigned short) config().getInt("HTTPSTimeServer.port", 9443); + std::string format(config().getString("HTTPSTimeServer.format", DateTimeFormat::SORTABLE_FORMAT)); + + // set-up a server socket + SecureServerSocket svs(port); + // set-up a HTTPServer instance + HTTPServer srv(new TimeRequestHandlerFactory(format), svs, new HTTPServerParams); + // start the HTTPServer + srv.start(); + // wait for CTRL-C or kill + waitForTerminationRequest(); + // Stop the HTTPServer + srv.stop(); + } + return Application::EXIT_OK; + } + +private: + bool _helpRequested; +}; + + +int main(int argc, char** argv) +{ + HTTPSTimeServer app; + return app.run(argc, argv); +} diff --git a/NetSSL_Win/samples/Mail/CMakeLists.txt b/NetSSL_Win/samples/Mail/CMakeLists.txt new file mode 100644 index 000000000..e9126a607 --- /dev/null +++ b/NetSSL_Win/samples/Mail/CMakeLists.txt @@ -0,0 +1,7 @@ +set(SAMPLE_NAME "Mail-ssl") + +set(LOCAL_SRCS "") +aux_source_directory(src LOCAL_SRCS) + +add_executable( ${SAMPLE_NAME} ${LOCAL_SRCS} ) +target_link_libraries( ${SAMPLE_NAME} PocoNetSSLWin PocoCrypto PocoUtil PocoNet PocoXML PocoFoundation ) diff --git a/NetSSL_Win/samples/Mail/Mail.progen b/NetSSL_Win/samples/Mail/Mail.progen new file mode 100644 index 000000000..b12a664bb --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail.progen @@ -0,0 +1,18 @@ +vc.project.guid = ${vc.project.guidFromName} +vc.project.name = ${vc.project.baseName} +vc.project.target = ${vc.project.name} +vc.project.type = executable +vc.project.pocobase = ..\\..\\.. +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib +vc.project.linker.dependencies.debug_shared = +vc.project.linker.dependencies.release_shared = +vc.project.linker.dependencies.debug_static_md = Crypt32.lib +vc.project.linker.dependencies.release_static_md = Crypt32.lib +vc.project.linker.dependencies.debug_static_mt = Crypt32.lib +vc.project.linker.dependencies.release_static_mt = Crypt32.lib diff --git a/NetSSL_Win/samples/Mail/Mail_CE_vs90.vcproj b/NetSSL_Win/samples/Mail/Mail_CE_vs90.vcproj new file mode 100644 index 000000000..1c0f19a35 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_CE_vs90.vcproj @@ -0,0 +1,474 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_WEC2013_vs110.vcxproj b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs110.vcxproj new file mode 100644 index 000000000..55b91367c --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs110.vcxproj @@ -0,0 +1,299 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + release_shared + SDK_AM335X_SK_WEC2013_V300 + + + release_static_md + SDK_AM335X_SK_WEC2013_V300 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V300 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + Maild + Maild + Maild + Mail + Mail + Mail + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\Maild.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\Maild.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + true + Speed + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\Mail.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\Maild.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\Maild.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\Mail.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\Maild.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\Maild.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\Mail.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_WEC2013_vs110.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs110.vcxproj.filters new file mode 100644 index 000000000..e737a316f --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs110.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {7826e724-7447-4aba-9cb8-d103e1dd17e8} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_WEC2013_vs120.vcxproj b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs120.vcxproj new file mode 100644 index 000000000..c51b6c850 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs120.vcxproj @@ -0,0 +1,299 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + release_shared + SDK_AM335X_SK_WEC2013_V310 + + + release_static_md + SDK_AM335X_SK_WEC2013_V310 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V310 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + Maild + Maild + Maild + Mail + Mail + Mail + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\Maild.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\Maild.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + true + Speed + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\Mail.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\Maild.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\Maild.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\Mail.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\Maild.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\Maild.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\Mail.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_WEC2013_vs120.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs120.vcxproj.filters new file mode 100644 index 000000000..ec197641c --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_WEC2013_vs120.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {81d6e736-0b03-4452-8587-2e7e0750d6fe} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_vs100.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs100.vcxproj new file mode 100644 index 000000000..47cdd4665 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs100.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + Mail + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin\ + obj\$(Configuration)\ + true + bin\ + obj\$(Configuration)\ + false + bin\static_mt\ + obj\$(Configuration)\ + true + bin\static_mt\ + obj\$(Configuration)\ + false + bin\static_md\ + obj\$(Configuration)\ + true + bin\static_md\ + obj\$(Configuration)\ + false + Maild + Maild + Maild + Mail + Mail + Mail + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\Maild.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\Maild.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\Maild.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_vs100.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs100.vcxproj.filters new file mode 100644 index 000000000..c61e15748 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs100.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {1e35a374-f7cf-45ed-b446-1c921cf9f9ec} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_vs110.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs110.vcxproj new file mode 100644 index 000000000..34878f874 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs110.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + Mail + Win32Proj + + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + Maild + Maild + Maild + Mail + Mail + Mail + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\Maild.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\Maild.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\Maild.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_vs110.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs110.vcxproj.filters new file mode 100644 index 000000000..7b2c8f170 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs110.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {b9bed9f5-b5e5-47ac-b65f-e4143b605c77} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_vs120.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs120.vcxproj new file mode 100644 index 000000000..1c5a6c245 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs120.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + Mail + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + Maild + Maild + Maild + Mail + Mail + Mail + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\Maild.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\Maild.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\Maild.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\Maild.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\Mail.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_vs120.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs120.vcxproj.filters new file mode 100644 index 000000000..2e162bc6e --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs120.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {f0d2316c-c9be-45e9-ad59-ee6caad8fdc1} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_vs71.vcproj b/NetSSL_Win/samples/Mail/Mail_vs71.vcproj new file mode 100644 index 000000000..cfcbf5564 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs71.vcproj @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_vs80.vcproj b/NetSSL_Win/samples/Mail/Mail_vs80.vcproj new file mode 100644 index 000000000..905dbce8a --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs80.vcproj @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_vs90.vcproj b/NetSSL_Win/samples/Mail/Mail_vs90.vcproj new file mode 100644 index 000000000..5c7aa2c74 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_vs90.vcproj @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs100.vcxproj b/NetSSL_Win/samples/Mail/Mail_x64_vs100.vcxproj new file mode 100644 index 000000000..11c1f26da --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs100.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + Mail + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin64\ + obj64\$(Configuration)\ + true + bin64\ + obj64\$(Configuration)\ + false + bin64\static_mt\ + obj64\$(Configuration)\ + true + bin64\static_mt\ + obj64\$(Configuration)\ + false + bin64\static_md\ + obj64\$(Configuration)\ + true + bin64\static_md\ + obj64\$(Configuration)\ + false + Maild + Maild + Maild + Mail + Mail + Mail + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\Maild.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\Maild.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\Maild.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs100.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_x64_vs100.vcxproj.filters new file mode 100644 index 000000000..d82347217 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs100.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {3e270c49-380a-4b08-8cef-735c3893d11f} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs110.vcxproj b/NetSSL_Win/samples/Mail/Mail_x64_vs110.vcxproj new file mode 100644 index 000000000..f5537ef60 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs110.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + Mail + Win32Proj + + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + Maild + Maild + Maild + Mail + Mail + Mail + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\Maild.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\Maild.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\Maild.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs110.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_x64_vs110.vcxproj.filters new file mode 100644 index 000000000..eb1e301de --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs110.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {f1578c0f-4610-49e1-8c4d-368ba7747e0b} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs120.vcxproj b/NetSSL_Win/samples/Mail/Mail_x64_vs120.vcxproj new file mode 100644 index 000000000..c62ea5b0f --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs120.vcxproj @@ -0,0 +1,314 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + Mail + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} + Mail + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + Maild + Maild + Maild + Mail + Mail + Mail + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\Maild.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\Maild.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\Maild.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\Maild.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\Mail.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs120.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_x64_vs120.vcxproj.filters new file mode 100644 index 000000000..61bd61b5c --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs120.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + {afa819d7-6d1a-4859-baab-3bff7fdd3a68} + + + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_x64_vs90.vcproj b/NetSSL_Win/samples/Mail/Mail_x64_vs90.vcproj new file mode 100644 index 000000000..36aa73c06 --- /dev/null +++ b/NetSSL_Win/samples/Mail/Mail_x64_vs90.vcproj @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/Mail/src/Mail.cpp b/NetSSL_Win/samples/Mail/src/Mail.cpp new file mode 100644 index 000000000..cca8036c2 --- /dev/null +++ b/NetSSL_Win/samples/Mail/src/Mail.cpp @@ -0,0 +1,117 @@ +// +// Mail.cpp +// +// $Id: //poco/1.4/NetSSL_OpenSSL/samples/Mail/src/Mail.cpp#1 $ +// +// This sample demonstrates the MailMessage and SecureSMTPClientSession classes. +// +// Copyright (c) 2005-2011, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/MailMessage.h" +#include "Poco/Net/MailRecipient.h" +#include "Poco/Net/SecureSMTPClientSession.h" +#include "Poco/Net/StringPartSource.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/ConsoleCertificateHandler.h" +#include "Poco/SharedPtr.h" +#include "Poco/Path.h" +#include "Poco/Exception.h" +#include + + +using Poco::Net::MailMessage; +using Poco::Net::MailRecipient; +using Poco::Net::SMTPClientSession; +using Poco::Net::SecureSMTPClientSession; +using Poco::Net::StringPartSource; +using Poco::Net::SSLManager; +using Poco::Net::Context; +using Poco::Net::InvalidCertificateHandler; +using Poco::Net::ConsoleCertificateHandler; +using Poco::SharedPtr; +using Poco::Path; +using Poco::Exception; + + +class SSLInitializer +{ +public: + SSLInitializer() + { + Poco::Net::initializeSSL(); + } + + ~SSLInitializer() + { + Poco::Net::uninitializeSSL(); + } +}; + + +const unsigned char PocoLogo[] = +{ + #include "PocoLogo.hpp" +}; + + +int main(int argc, char** argv) +{ + SSLInitializer sslInitializer; + + if (argc < 4) + { + Path p(argv[0]); + std::cerr << "usage: " << p.getBaseName() << " [ ]" << std::endl; + std::cerr << " Send an email greeting from to ," << std::endl; + std::cerr << " using a secure connection to the SMTP server at ." << std::endl; + return 1; + } + + std::string mailhost(argv[1]); + std::string sender(argv[2]); + std::string recipient(argv[3]); + std::string username(argc >= 5 ? argv[4] : ""); + std::string password(argc >= 6 ? argv[5] : ""); + + try + { + // Note: we must create the passphrase handler prior Context + SharedPtr pCert = new ConsoleCertificateHandler(false); // ask the user via console + Context::Ptr pContext = new Context(Context::CLIENT_USE, ""); + SSLManager::instance().initializeClient(pCert, pContext); + + MailMessage message; + message.setSender(sender); + message.addRecipient(MailRecipient(MailRecipient::PRIMARY_RECIPIENT, recipient)); + message.setSubject("Hello from the POCO C++ Libraries"); + std::string content; + content += "Hello "; + content += recipient; + content += ",\r\n\r\n"; + content += "This is a greeting from the POCO C++ Libraries.\r\n\r\n"; + std::string logo(reinterpret_cast(PocoLogo), sizeof(PocoLogo)); + message.addContent(new StringPartSource(content)); + message.addAttachment("logo", new StringPartSource(logo, "image/gif")); + + SecureSMTPClientSession session(mailhost); + session.login(); + session.startTLS(pContext); + if (!username.empty()) + { + session.login(SMTPClientSession::AUTH_LOGIN, username, password); + } + session.sendMessage(message); + session.close(); + } + catch (Exception& exc) + { + std::cerr << exc.displayText() << std::endl; + return 1; + } + return 0; +} diff --git a/NetSSL_Win/samples/Mail/src/PocoLogo.hpp b/NetSSL_Win/samples/Mail/src/PocoLogo.hpp new file mode 100644 index 000000000..a1b39a593 --- /dev/null +++ b/NetSSL_Win/samples/Mail/src/PocoLogo.hpp @@ -0,0 +1,134 @@ +// The C++ Portable Components logo in GIF format + +0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0xa0, 0x00, 0x85, 0x00, 0xa2, 0x00, 0x00, 0xd1, 0xdd, 0xe4, +0x45, 0x9b, 0xca, 0x41, 0x55, 0x61, 0x8a, 0x96, 0x9e, 0xa2, 0xbc, 0xcc, 0x00, 0x1b, 0x2c, 0x00, +0x75, 0xb6, 0xff, 0xff, 0xff, 0x21, 0xf9, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, +0x00, 0x00, 0xa0, 0x00, 0x85, 0x00, 0x00, 0x03, 0xff, 0x78, 0xba, 0xdc, 0xfe, 0x30, 0xca, 0x49, +0xab, 0xbd, 0x38, 0xeb, 0xcd, 0xbb, 0xff, 0x60, 0x28, 0x8e, 0x64, 0x69, 0x9e, 0x68, 0xaa, 0xae, +0x6c, 0xeb, 0xbe, 0x70, 0x2c, 0xcf, 0x2b, 0x40, 0xdc, 0x78, 0xae, 0xef, 0x04, 0xe0, 0xda, 0xbc, +0xe0, 0x0e, 0xe0, 0xeb, 0x00, 0x06, 0xc5, 0xc5, 0x6d, 0x72, 0x4b, 0x76, 0x08, 0x01, 0x83, 0x74, +0x4a, 0xad, 0x5a, 0xab, 0x01, 0x27, 0x09, 0x10, 0xbd, 0x7a, 0xbf, 0x86, 0x40, 0x6f, 0x33, 0x28, +0x10, 0x1a, 0x85, 0x82, 0x44, 0x90, 0x2e, 0x68, 0x2f, 0xb6, 0x2e, 0x78, 0x7e, 0x15, 0x8f, 0xe2, +0xf4, 0xbc, 0xd5, 0x8e, 0x29, 0x9f, 0x09, 0x48, 0x07, 0x69, 0x11, 0x65, 0x02, 0x6c, 0x03, 0x1b, +0x72, 0x7a, 0x8b, 0x54, 0x67, 0x1f, 0x8a, 0x8c, 0x8c, 0x59, 0x17, 0x7e, 0x82, 0x66, 0x96, 0x11, +0x69, 0x3e, 0x05, 0x02, 0x19, 0x5c, 0x91, 0xa0, 0x53, 0x8e, 0x1c, 0x90, 0xa1, 0x8b, 0xa3, 0x13, +0x95, 0x69, 0x67, 0x83, 0x0c, 0x36, 0x0a, 0x9a, 0x82, 0x9d, 0x70, 0xa6, 0xb5, 0x93, 0x19, 0x04, +0xb5, 0xb6, 0x15, 0xaa, 0x97, 0xad, 0x0b, 0x6c, 0xac, 0x6e, 0xb2, 0x17, 0xb9, 0xba, 0xb5, 0x6f, +0x12, 0xc6, 0xc7, 0xa6, 0xc9, 0x0c, 0xbd, 0x3d, 0xbf, 0x0a, 0xc1, 0x96, 0x3e, 0x44, 0x16, 0xcb, +0xcc, 0xa0, 0x01, 0xb4, 0xda, 0xa6, 0xdc, 0x12, 0x65, 0x9c, 0x69, 0x86, 0x9c, 0x0d, 0xd4, 0xb1, +0xdd, 0xde, 0xa1, 0xe0, 0x4c, 0xeb, 0xbb, 0xe1, 0x6d, 0x6d, 0x02, 0x5a, 0xe2, 0x6c, 0xb3, 0x17, +0xa5, 0xef, 0x7a, 0xed, 0x11, 0xfb, 0xb5, 0xa8, 0x1e, 0x10, 0x19, 0xe8, 0x8c, 0x0d, 0x27, 0x67, +0x10, 0xb2, 0xfd, 0x63, 0x84, 0xf0, 0x80, 0xc2, 0x85, 0x8b, 0x1a, 0xc2, 0x09, 0x48, 0x01, 0x00, +0xc4, 0x50, 0x14, 0x17, 0x58, 0xbc, 0xb8, 0x0d, 0xff, 0x83, 0x21, 0x11, 0xfa, 0xbc, 0x88, 0x21, +0x48, 0xb2, 0x24, 0x91, 0x1b, 0x21, 0xaf, 0x38, 0x7b, 0xf8, 0xa5, 0x87, 0xc9, 0x97, 0x04, 0xa1, +0x44, 0xbc, 0x20, 0x4d, 0xe3, 0x90, 0x09, 0xfc, 0x3e, 0x7c, 0xa2, 0x93, 0xf1, 0x80, 0x9e, 0x9e, +0x18, 0x36, 0xf2, 0xa4, 0xa9, 0xa6, 0x81, 0x38, 0x79, 0x35, 0x1b, 0x08, 0x05, 0x23, 0xb1, 0x58, +0x9e, 0x07, 0x2c, 0xad, 0x34, 0x75, 0x3a, 0xa7, 0xdf, 0x84, 0x9a, 0xe2, 0x06, 0x68, 0xdd, 0x8a, +0x28, 0x42, 0x54, 0x2a, 0x53, 0xf3, 0x0d, 0x6d, 0x90, 0x72, 0x4a, 0x58, 0xaa, 0x4c, 0x2d, 0xd4, +0x3c, 0x94, 0xa1, 0xac, 0x01, 0xa0, 0x1d, 0xdc, 0x5a, 0xf5, 0x39, 0x07, 0x2e, 0x87, 0xa5, 0x5e, +0xec, 0x2a, 0x00, 0xb0, 0xf6, 0x12, 0x06, 0xb7, 0x67, 0xd5, 0x7d, 0x51, 0x5a, 0x15, 0xc5, 0x57, +0x29, 0x73, 0x01, 0x71, 0x1d, 0x70, 0xef, 0x9c, 0xdf, 0x0b, 0x85, 0x4f, 0xb8, 0x25, 0x0c, 0x66, +0xae, 0x08, 0xbc, 0x7b, 0x1c, 0x1c, 0x45, 0x1a, 0x90, 0x9a, 0xe0, 0x3a, 0x28, 0x00, 0xbb, 0x8a, +0x2c, 0xb9, 0xb2, 0x03, 0x02, 0x86, 0x52, 0x0b, 0x08, 0xe4, 0x58, 0xef, 0x68, 0x30, 0xae, 0x13, +0xcd, 0x71, 0x82, 0xb9, 0x4a, 0x6c, 0xd9, 0x5f, 0x2c, 0x5b, 0xf0, 0x6c, 0xa1, 0x76, 0xa3, 0xd0, +0xb3, 0x5f, 0xb7, 0x4c, 0x51, 0x56, 0x77, 0x85, 0x57, 0x41, 0xeb, 0x02, 0x4f, 0xab, 0x51, 0xf9, +0x72, 0x91, 0x0f, 0xb2, 0xda, 0x0b, 0x0c, 0xc1, 0xb7, 0xa8, 0xe7, 0x5e, 0x28, 0x0f, 0xc7, 0x9e, +0xd9, 0x28, 0x39, 0xa4, 0xf8, 0x34, 0x1a, 0x94, 0x17, 0x5e, 0x7b, 0xde, 0x13, 0xd6, 0xa7, 0x98, +0xbf, 0x72, 0x5b, 0x43, 0x71, 0xcd, 0xbe, 0xcc, 0xf0, 0x2d, 0xcf, 0x17, 0x29, 0xb9, 0x08, 0xe9, +0xdf, 0x96, 0x36, 0x2d, 0xfc, 0x3c, 0x77, 0x2c, 0xff, 0xf0, 0x09, 0x23, 0x8c, 0x63, 0x02, 0xdc, +0x54, 0x9d, 0x73, 0x24, 0xb8, 0xa5, 0x5f, 0x7f, 0xec, 0x11, 0xc7, 0xdf, 0x33, 0xf1, 0x0d, 0xc8, +0x00, 0x6f, 0xc7, 0x21, 0x08, 0xd2, 0x53, 0xeb, 0x59, 0xd1, 0x5e, 0x5b, 0x0f, 0x2e, 0x00, 0x0d, +0x26, 0x13, 0x3e, 0x56, 0x21, 0x6c, 0x97, 0xc9, 0x44, 0xc7, 0x5c, 0xf9, 0x6d, 0xf8, 0x57, 0x87, +0x0a, 0xf8, 0x01, 0x80, 0x21, 0xd1, 0x14, 0x05, 0x8c, 0x88, 0x15, 0x39, 0xc7, 0x45, 0x00, 0x38, +0xe6, 0xa8, 0xe3, 0x8e, 0x3c, 0x46, 0x22, 0x90, 0x85, 0x25, 0xbc, 0xe7, 0x9d, 0x7d, 0x7d, 0xb5, +0x97, 0xa2, 0x02, 0x87, 0xbd, 0x93, 0xd1, 0x91, 0xff, 0x51, 0x31, 0xd7, 0x66, 0xe4, 0x11, 0x98, +0x1c, 0x89, 0x07, 0x28, 0xe8, 0x4d, 0x32, 0x4c, 0xee, 0x07, 0x9d, 0x52, 0x30, 0x35, 0x40, 0xc0, +0x3c, 0xa9, 0x99, 0x73, 0x20, 0x95, 0x56, 0x32, 0xd3, 0x53, 0x96, 0x26, 0x08, 0x79, 0x97, 0x6a, +0xe5, 0x94, 0xc7, 0xa0, 0x86, 0x0a, 0x94, 0xa9, 0x8b, 0x71, 0x68, 0x06, 0xc9, 0xa2, 0x87, 0x6c, +0x7e, 0xa4, 0x93, 0x73, 0x72, 0x9a, 0x02, 0x57, 0x9d, 0x09, 0xde, 0xf9, 0x22, 0x91, 0x32, 0x1a, +0xc1, 0x27, 0x47, 0xc6, 0xed, 0x05, 0x64, 0xa0, 0xb9, 0xc1, 0x47, 0xcf, 0x11, 0x05, 0x20, 0x51, +0x0f, 0x3d, 0xe7, 0x74, 0xf5, 0x23, 0x99, 0x17, 0x25, 0xaa, 0x28, 0x95, 0x5a, 0x82, 0xe6, 0x9d, +0x23, 0x65, 0x58, 0x1a, 0x62, 0x40, 0x49, 0x35, 0x87, 0xe9, 0x3f, 0xb7, 0x4c, 0x00, 0xe8, 0x08, +0x6a, 0x7a, 0xe8, 0x57, 0xa8, 0x0f, 0x50, 0x63, 0xc8, 0x26, 0x6e, 0x9a, 0xba, 0x5d, 0x9f, 0x3f, +0x7d, 0x06, 0x27, 0x0a, 0xa4, 0xb9, 0x0a, 0x6a, 0xa4, 0xb1, 0xc6, 0x47, 0x2b, 0x7e, 0x87, 0xae, +0x93, 0xea, 0x88, 0x8d, 0xa2, 0xd7, 0x6b, 0x8b, 0xff, 0xaf, 0x02, 0xeb, 0x00, 0x3a, 0xc3, 0x88, +0x79, 0xe9, 0x76, 0x37, 0xf2, 0x68, 0xed, 0xb5, 0x62, 0x8c, 0xa1, 0x41, 0x7e, 0x9a, 0x3e, 0xb1, +0xec, 0x01, 0x85, 0xf4, 0x10, 0xea, 0x35, 0xa3, 0x56, 0x43, 0xcc, 0x98, 0xdb, 0xd1, 0x60, 0xeb, +0x60, 0x27, 0x8c, 0xe5, 0x0a, 0xa1, 0xe5, 0x1d, 0x52, 0x9f, 0x0d, 0xd2, 0x3a, 0xb0, 0xea, 0x0c, +0xee, 0x8e, 0x90, 0xa4, 0x01, 0xc9, 0xa0, 0x66, 0x5f, 0x79, 0x50, 0xb6, 0x21, 0x6a, 0x86, 0xb6, +0xa9, 0x4b, 0x56, 0xbe, 0x20, 0xe4, 0x17, 0x86, 0x04, 0x26, 0x9d, 0x96, 0xe7, 0xc0, 0x04, 0xff, +0x66, 0xb0, 0x12, 0x79, 0x50, 0xe7, 0x55, 0x1e, 0x2a, 0xee, 0xc9, 0xe9, 0xc4, 0x74, 0x21, 0xbc, +0xc1, 0xbe, 0x52, 0x38, 0x73, 0x44, 0x9e, 0xb5, 0x7a, 0xb2, 0xa8, 0xba, 0x20, 0x23, 0x86, 0xed, +0xca, 0x38, 0x2e, 0xa2, 0x5b, 0x7d, 0xff, 0xda, 0xcb, 0x18, 0x9b, 0x10, 0xaf, 0xdb, 0x20, 0xc7, +0x0b, 0xe0, 0xca, 0x51, 0x4f, 0x85, 0x48, 0x34, 0x28, 0x91, 0xc4, 0x6e, 0xcc, 0x71, 0xca, 0x1c, +0x21, 0x46, 0x08, 0x8d, 0xd1, 0x71, 0x32, 0x80, 0x62, 0x5a, 0x01, 0x75, 0xaf, 0xba, 0x3a, 0xa3, +0x1a, 0x8f, 0x5e, 0x14, 0xd6, 0x28, 0x34, 0xc7, 0x0a, 0x17, 0xcd, 0xef, 0xd4, 0x14, 0x54, 0xad, +0xea, 0xc9, 0x13, 0x13, 0xbd, 0x90, 0xa6, 0x95, 0x4c, 0xe0, 0x35, 0xc3, 0x60, 0x4f, 0x9c, 0xf5, +0x42, 0x7a, 0x95, 0xbd, 0x06, 0xd2, 0x68, 0x5f, 0x8d, 0xb3, 0x43, 0x5a, 0xef, 0xca, 0x04, 0xa5, +0x66, 0xd7, 0x6b, 0x75, 0xba, 0x73, 0x33, 0x60, 0xa2, 0xd6, 0x7c, 0xe8, 0x4b, 0x0e, 0xcd, 0x41, +0xf3, 0xdd, 0xb7, 0xdf, 0x5a, 0xab, 0x38, 0xf3, 0x9f, 0xe3, 0xcd, 0x53, 0xb8, 0x7f, 0x87, 0xdb, +0x1b, 0x75, 0x1e, 0xc7, 0xee, 0x26, 0x4f, 0xc6, 0xff, 0x11, 0x94, 0x65, 0x31, 0x0d, 0x71, 0xb4, +0x6c, 0x0b, 0x8e, 0xda, 0xe2, 0xa2, 0xf4, 0x3d, 0x38, 0x44, 0x6e, 0xfa, 0x0c, 0x65, 0x37, 0x0e, +0x95, 0x6a, 0xac, 0x9d, 0xee, 0xfa, 0x07, 0xa9, 0x93, 0x03, 0x71, 0xe3, 0xe4, 0x6c, 0xfe, 0xfa, +0xed, 0xe0, 0xfa, 0xc5, 0x46, 0x32, 0xe1, 0xe2, 0xc0, 0x16, 0xee, 0xc0, 0x53, 0xa2, 0x7b, 0xa1, +0xe5, 0x6a, 0xa4, 0x77, 0xf0, 0xc8, 0x27, 0x4d, 0xa9, 0x56, 0x10, 0x54, 0x7d, 0xbc, 0x11, 0x4c, +0x2f, 0x26, 0xfd, 0xf4, 0xd4, 0x6b, 0x65, 0xbb, 0x40, 0xd1, 0x57, 0x4f, 0x7d, 0xe8, 0x1b, 0xfc, +0x0c, 0x5e, 0x6b, 0x68, 0x94, 0x3c, 0x11, 0xed, 0x84, 0x96, 0x6f, 0xfe, 0x7d, 0x1e, 0xd8, 0x40, +0xfe, 0xf9, 0xe5, 0xaf, 0x66, 0xfb, 0xc8, 0x79, 0x82, 0xcf, 0xc0, 0xf3, 0xbd, 0x05, 0xcc, 0xfe, +0xfd, 0x40, 0x77, 0x60, 0x3f, 0xfe, 0xe7, 0xb7, 0x5e, 0xc2, 0xef, 0x48, 0xa2, 0x9f, 0xaa, 0xd6, +0xc7, 0xbf, 0x02, 0x96, 0xaa, 0x22, 0x04, 0x34, 0xe0, 0xf9, 0xf0, 0x16, 0x94, 0x81, 0x24, 0x64, +0x70, 0xe5, 0x80, 0x1b, 0x13, 0x14, 0x48, 0x41, 0xa4, 0x6c, 0x2b, 0x81, 0x15, 0x34, 0x5f, 0xcd, +0x12, 0x42, 0xbb, 0x9a, 0xf9, 0x4b, 0x1e, 0x1b, 0x8c, 0x47, 0x06, 0x33, 0x28, 0xba, 0x11, 0x52, +0xd0, 0x35, 0x30, 0x43, 0xca, 0x06, 0x09, 0xb2, 0x01, 0x0c, 0x9a, 0xf0, 0x7c, 0x7d, 0x78, 0x61, +0x05, 0xc5, 0xe7, 0xaa, 0x47, 0x11, 0xa1, 0x10, 0x26, 0x70, 0xa1, 0x0c, 0xcb, 0x27, 0xbc, 0x1d, +0x52, 0x90, 0x86, 0xb9, 0x23, 0x15, 0xf1, 0x90, 0x64, 0x3d, 0x0d, 0xec, 0xcf, 0x87, 0x30, 0xac, +0xc0, 0x97, 0x90, 0x78, 0x42, 0xae, 0xcd, 0x6f, 0x88, 0xe3, 0x61, 0xa0, 0x12, 0x99, 0xa8, 0xc0, +0xe3, 0x50, 0xb1, 0x82, 0x08, 0x71, 0x1b, 0x2c, 0xff, 0x88, 0x17, 0xae, 0xc6, 0x5c, 0x40, 0x87, +0x57, 0x94, 0x07, 0x2f, 0xc2, 0xa8, 0x40, 0xf1, 0x69, 0xb1, 0x3e, 0xf2, 0x13, 0x20, 0x7c, 0xc8, +0x78, 0x3f, 0x20, 0x1e, 0x20, 0x85, 0x6c, 0xc4, 0xdf, 0x06, 0x7b, 0x77, 0x03, 0x2f, 0xce, 0xc8, +0x11, 0x7a, 0xaa, 0x08, 0xff, 0x0a, 0xe4, 0x12, 0x98, 0xf8, 0xb1, 0x4b, 0x5d, 0xc3, 0xdf, 0x6a, +0xfa, 0xf8, 0xc7, 0x98, 0x30, 0x86, 0x7f, 0x05, 0x21, 0x52, 0x67, 0x74, 0xe7, 0xc6, 0x69, 0xb4, +0xf1, 0x7a, 0x20, 0x58, 0x22, 0xfb, 0x42, 0xd8, 0x43, 0xf6, 0x01, 0x65, 0x66, 0x86, 0xf0, 0x9f, +0x23, 0x1d, 0x71, 0x40, 0xa5, 0x3c, 0xd2, 0x60, 0x3a, 0x94, 0xa2, 0x07, 0x3e, 0xa8, 0x41, 0x0f, +0xdc, 0x83, 0x08, 0xb3, 0x22, 0xd7, 0x03, 0x17, 0xa8, 0x36, 0xf6, 0x89, 0x12, 0x04, 0x2e, 0xa4, +0xa1, 0x2a, 0xa1, 0x02, 0x2f, 0x11, 0xb6, 0x0f, 0x6b, 0x96, 0x34, 0x81, 0x24, 0xcb, 0xd7, 0x2f, +0x81, 0x29, 0x83, 0x7c, 0x34, 0x3c, 0x62, 0x1a, 0x28, 0xe9, 0x82, 0x5d, 0x12, 0xa9, 0x91, 0x2d, +0x3c, 0x1f, 0x45, 0xea, 0x63, 0x10, 0x62, 0x66, 0xc0, 0x85, 0x90, 0x14, 0x81, 0x31, 0xed, 0xe3, +0x4c, 0x0e, 0x08, 0xd3, 0x59, 0x10, 0x42, 0x04, 0x1a, 0x47, 0x00, 0x4d, 0x8e, 0x5d, 0xb3, 0x9a, +0xdd, 0xeb, 0x5f, 0x80, 0x1c, 0xf9, 0x4b, 0xc2, 0x45, 0xc0, 0x85, 0x38, 0xfb, 0x66, 0x0a, 0x58, +0xf9, 0x29, 0x72, 0x0a, 0x64, 0x7d, 0x34, 0xc4, 0x20, 0x32, 0x57, 0xa0, 0x4e, 0x14, 0xb0, 0x13, +0x42, 0x78, 0x1c, 0xa2, 0x23, 0x0b, 0x54, 0x92, 0xb7, 0xdd, 0xd2, 0x9b, 0xe2, 0xb4, 0xa7, 0xf9, +0xdc, 0x04, 0xab, 0x03, 0xe4, 0x51, 0x7e, 0x5f, 0x1c, 0x68, 0x3a, 0x03, 0x7a, 0x82, 0x7b, 0x2a, +0x61, 0x98, 0xd2, 0x43, 0xa8, 0xe5, 0xfe, 0x39, 0xff, 0xb1, 0x7a, 0x36, 0x54, 0xa1, 0x6b, 0xb4, +0x8f, 0x44, 0x2b, 0x20, 0xcf, 0x85, 0x96, 0x52, 0xa0, 0x14, 0x55, 0x8a, 0xf4, 0x16, 0xb9, 0xa1, +0x8e, 0x02, 0xf4, 0xa3, 0x26, 0x80, 0x63, 0xcc, 0x38, 0x60, 0xc7, 0x89, 0xd6, 0xf2, 0xa4, 0xe5, +0x03, 0xe7, 0xb6, 0x1c, 0x5a, 0x42, 0x4e, 0xb0, 0xc9, 0x9f, 0x2f, 0xad, 0x28, 0x43, 0x4b, 0xa0, +0xd2, 0xef, 0xdd, 0x25, 0xa7, 0xc1, 0x0a, 0xa9, 0xba, 0x2c, 0xca, 0x53, 0x9a, 0x7a, 0xe4, 0x20, +0xfd, 0x3c, 0x27, 0x46, 0x75, 0x8a, 0xd2, 0xa2, 0x2e, 0x55, 0x03, 0x67, 0xc3, 0xe9, 0x31, 0x3d, +0x1a, 0x53, 0x14, 0xf4, 0x34, 0x4a, 0x2c, 0x95, 0xa0, 0x52, 0x85, 0x4a, 0x03, 0xa2, 0x6e, 0xc1, +0xa8, 0x46, 0xd9, 0xe0, 0x3d, 0x46, 0x2a, 0xd5, 0x95, 0x32, 0xb5, 0xaa, 0xe8, 0x01, 0xeb, 0x13, +0xab, 0xc3, 0xc3, 0xad, 0x02, 0x75, 0xa8, 0x3b, 0xfd, 0xea, 0x53, 0x95, 0xb2, 0xc4, 0x26, 0xd8, +0x8b, 0x64, 0xf1, 0x9c, 0x6b, 0x57, 0xe3, 0x7a, 0x07, 0xb5, 0x1a, 0x54, 0x85, 0x21, 0x30, 0xe9, +0x59, 0x09, 0x25, 0x53, 0x4f, 0xf8, 0xf5, 0x90, 0x91, 0xd2, 0x64, 0x56, 0xb9, 0x8a, 0x3a, 0xbe, +0x5e, 0xc6, 0xaf, 0x5b, 0xc4, 0x0f, 0x26, 0x07, 0x99, 0x37, 0xf3, 0x51, 0x95, 0xb0, 0x86, 0x81, +0x2c, 0xb8, 0x36, 0x38, 0xcd, 0x55, 0x94, 0xd5, 0x3e, 0xd1, 0x0c, 0x81, 0x57, 0x47, 0x30, 0xda, +0x84, 0xe2, 0x0d, 0x52, 0x79, 0x35, 0x5f, 0x68, 0x23, 0xa9, 0xd9, 0x0e, 0xb8, 0x90, 0x98, 0xb3, +0x2c, 0xde, 0x5e, 0xd4, 0x58, 0xda, 0x18, 0x74, 0x16, 0xab, 0x4e, 0x55, 0x6d, 0xde, 0x9a, 0x47, +0x23, 0xda, 0xb2, 0x6f, 0xb5, 0xe9, 0xfb, 0xad, 0x09, 0xae, 0xa9, 0x4f, 0x57, 0xec, 0x2e, 0x58, +0xa4, 0xa2, 0xe1, 0x6d, 0xc9, 0x03, 0xdc, 0x0e, 0xff, 0xb8, 0xb2, 0xb9, 0x0e, 0x71, 0x65, 0x59, +0x49, 0xfa, 0x2e, 0x59, 0xe2, 0x0f, 0xba, 0x46, 0xbc, 0x1f, 0x70, 0x89, 0xab, 0xd5, 0xbf, 0x0e, +0x6e, 0x91, 0x7c, 0xac, 0x23, 0x36, 0x79, 0x7b, 0xbf, 0xc2, 0x96, 0x60, 0xb9, 0xe4, 0xc1, 0x9c, +0x46, 0xb8, 0x3b, 0x8c, 0xab, 0x14, 0xf7, 0xaa, 0x76, 0x41, 0x2f, 0x35, 0xb5, 0x47, 0x5f, 0xfa, +0x4a, 0x04, 0x8c, 0x4a, 0xab, 0x2f, 0xf5, 0xf0, 0xab, 0x46, 0x60, 0x88, 0xef, 0x45, 0xe6, 0x4c, +0x45, 0x1c, 0xdb, 0xa8, 0xaa, 0x01, 0x17, 0x10, 0xbb, 0xcf, 0x34, 0xb0, 0x5e, 0x9f, 0xa5, 0xe0, +0x49, 0x86, 0xad, 0xc1, 0x6f, 0xa5, 0x25, 0x84, 0x23, 0xec, 0x37, 0x4d, 0x1e, 0xd4, 0x21, 0x16, +0x06, 0x27, 0x7f, 0xaf, 0xd8, 0x48, 0xf6, 0xb2, 0xb1, 0x21, 0x5a, 0x04, 0xd1, 0x1d, 0xd1, 0x50, +0xdc, 0xa0, 0x4e, 0x18, 0x7d, 0x81, 0x3c, 0xb1, 0x2f, 0x9d, 0xb8, 0x80, 0x22, 0x85, 0x2f, 0x86, +0x2a, 0x9e, 0xa7, 0x87, 0x99, 0xd8, 0xb6, 0xde, 0x12, 0xcf, 0x79, 0xf3, 0x74, 0xe4, 0x89, 0x73, +0xbc, 0xe1, 0x1d, 0xba, 0x26, 0xc4, 0x2e, 0x9e, 0x5f, 0x8e, 0x99, 0x35, 0xe1, 0x21, 0xcf, 0xf8, +0x85, 0xb1, 0x01, 0xf2, 0x8d, 0x7b, 0x3b, 0xe4, 0xbd, 0xf4, 0xd8, 0x84, 0x4d, 0xf6, 0x1e, 0x19, +0x0b, 0x4b, 0x47, 0x7f, 0xc5, 0x8b, 0x13, 0x39, 0x00, 0xe0, 0x05, 0x15, 0xdc, 0x64, 0x27, 0x87, +0x51, 0xb1, 0x05, 0x26, 0xd2, 0xc0, 0xe0, 0xab, 0x13, 0xc4, 0x4e, 0x79, 0x94, 0x66, 0x86, 0x32, +0x98, 0x8f, 0xd3, 0xb8, 0x02, 0xbd, 0x33, 0xbd, 0x77, 0x00, 0x82, 0x10, 0xe6, 0x4c, 0x67, 0xe0, +0x9e, 0x84, 0xce, 0x42, 0x70, 0x60, 0xf2, 0xf6, 0xcc, 0xe7, 0x3e, 0xfb, 0xf9, 0xcf, 0x80, 0x0e, +0xb4, 0xa0, 0x07, 0x4d, 0xe8, 0x42, 0x97, 0x20, 0x01, 0x01, 0x00, 0x3b diff --git a/NetSSL_Win/samples/download/CMakeLists.txt b/NetSSL_Win/samples/download/CMakeLists.txt new file mode 100644 index 000000000..7bb405ec9 --- /dev/null +++ b/NetSSL_Win/samples/download/CMakeLists.txt @@ -0,0 +1,7 @@ +set(SAMPLE_NAME "download-ssl") + +set(LOCAL_SRCS "") +aux_source_directory(src LOCAL_SRCS) + +add_executable( ${SAMPLE_NAME} ${LOCAL_SRCS} ) +target_link_libraries( ${SAMPLE_NAME} PocoNetSSLWin PocoCrypto PocoUtil PocoNet PocoXML PocoFoundation ) diff --git a/NetSSL_Win/samples/download/download.progen b/NetSSL_Win/samples/download/download.progen new file mode 100644 index 000000000..b12a664bb --- /dev/null +++ b/NetSSL_Win/samples/download/download.progen @@ -0,0 +1,18 @@ +vc.project.guid = ${vc.project.guidFromName} +vc.project.name = ${vc.project.baseName} +vc.project.target = ${vc.project.name} +vc.project.type = executable +vc.project.pocobase = ..\\..\\.. +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib +vc.project.linker.dependencies.debug_shared = +vc.project.linker.dependencies.release_shared = +vc.project.linker.dependencies.debug_static_md = Crypt32.lib +vc.project.linker.dependencies.release_static_md = Crypt32.lib +vc.project.linker.dependencies.debug_static_mt = Crypt32.lib +vc.project.linker.dependencies.release_static_mt = Crypt32.lib diff --git a/NetSSL_Win/samples/download/download_CE_vs90.vcproj b/NetSSL_Win/samples/download/download_CE_vs90.vcproj new file mode 100644 index 000000000..141edeb2c --- /dev/null +++ b/NetSSL_Win/samples/download/download_CE_vs90.vcproj @@ -0,0 +1,472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_WEC2013_vs110.vcxproj b/NetSSL_Win/samples/download/download_WEC2013_vs110.vcxproj new file mode 100644 index 000000000..dbc20cdbb --- /dev/null +++ b/NetSSL_Win/samples/download/download_WEC2013_vs110.vcxproj @@ -0,0 +1,296 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + release_shared + SDK_AM335X_SK_WEC2013_V300 + + + release_static_md + SDK_AM335X_SK_WEC2013_V300 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V300 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + downloadd + downloadd + downloadd + download + download + download + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\downloadd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\downloadd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + true + Speed + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\download.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\downloadd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\downloadd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\download.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\downloadd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\downloadd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\download.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_WEC2013_vs110.vcxproj.filters b/NetSSL_Win/samples/download/download_WEC2013_vs110.vcxproj.filters new file mode 100644 index 000000000..cb21b84ff --- /dev/null +++ b/NetSSL_Win/samples/download/download_WEC2013_vs110.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {a9402fc6-3846-4d7e-8dcb-faa944be7617} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_WEC2013_vs120.vcxproj b/NetSSL_Win/samples/download/download_WEC2013_vs120.vcxproj new file mode 100644 index 000000000..a91417a83 --- /dev/null +++ b/NetSSL_Win/samples/download/download_WEC2013_vs120.vcxproj @@ -0,0 +1,296 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + release_shared + SDK_AM335X_SK_WEC2013_V310 + + + release_static_md + SDK_AM335X_SK_WEC2013_V310 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V310 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + downloadd + downloadd + downloadd + download + download + download + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\downloadd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\downloadd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + true + Speed + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\download.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\downloadd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\downloadd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\download.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + Disabled + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\downloadd.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\downloadd.pdb + mainCRTStartup + WindowsCE + + + + + Disabled + Default + true + Speed + ..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;Crypt32.lib;ws2.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\download.exe + ..\..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + mainCRTStartup + WindowsCE + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_WEC2013_vs120.vcxproj.filters b/NetSSL_Win/samples/download/download_WEC2013_vs120.vcxproj.filters new file mode 100644 index 000000000..590911e48 --- /dev/null +++ b/NetSSL_Win/samples/download/download_WEC2013_vs120.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {7103524e-b35f-4887-9fda-6ace7d14de0d} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_vs100.vcxproj b/NetSSL_Win/samples/download/download_vs100.vcxproj new file mode 100644 index 000000000..2c9841470 --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs100.vcxproj @@ -0,0 +1,311 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + download + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin\ + obj\$(Configuration)\ + true + bin\ + obj\$(Configuration)\ + false + bin\static_mt\ + obj\$(Configuration)\ + true + bin\static_mt\ + obj\$(Configuration)\ + false + bin\static_md\ + obj\$(Configuration)\ + true + bin\static_md\ + obj\$(Configuration)\ + false + downloadd + downloadd + downloadd + download + download + download + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\downloadd.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\downloadd.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\downloadd.pdb + Console + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + %(AdditionalOptions) + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_vs100.vcxproj.filters b/NetSSL_Win/samples/download/download_vs100.vcxproj.filters new file mode 100644 index 000000000..1fd4f9682 --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs100.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {1a8c3746-ce25-4458-a9f7-ff3dccf90906} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_vs110.vcxproj b/NetSSL_Win/samples/download/download_vs110.vcxproj new file mode 100644 index 000000000..e79cd0138 --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs110.vcxproj @@ -0,0 +1,311 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + download + Win32Proj + + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + downloadd + downloadd + downloadd + download + download + download + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\downloadd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\downloadd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\downloadd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_vs110.vcxproj.filters b/NetSSL_Win/samples/download/download_vs110.vcxproj.filters new file mode 100644 index 000000000..d19845a1f --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs110.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {8bd0f3a0-6464-46fe-ab52-07fdc496c8fc} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_vs120.vcxproj b/NetSSL_Win/samples/download/download_vs120.vcxproj new file mode 100644 index 000000000..56d8541df --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs120.vcxproj @@ -0,0 +1,311 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + download + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + downloadd + downloadd + downloadd + download + download + download + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\downloadd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\downloadd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\downloadd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\downloadd.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\download.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_vs120.vcxproj.filters b/NetSSL_Win/samples/download/download_vs120.vcxproj.filters new file mode 100644 index 000000000..968bd75c3 --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs120.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {24ddf62c-f590-41b4-af2d-ad922d97d7d5} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_vs71.vcproj b/NetSSL_Win/samples/download/download_vs71.vcproj new file mode 100644 index 000000000..a4b1d9cea --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs71.vcproj @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_vs80.vcproj b/NetSSL_Win/samples/download/download_vs80.vcproj new file mode 100644 index 000000000..7264ac325 --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs80.vcproj @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_vs90.vcproj b/NetSSL_Win/samples/download/download_vs90.vcproj new file mode 100644 index 000000000..88fb92377 --- /dev/null +++ b/NetSSL_Win/samples/download/download_vs90.vcproj @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_x64_vs100.vcxproj b/NetSSL_Win/samples/download/download_x64_vs100.vcxproj new file mode 100644 index 000000000..b3ebb534e --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs100.vcxproj @@ -0,0 +1,311 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + download + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin64\ + obj64\$(Configuration)\ + true + bin64\ + obj64\$(Configuration)\ + false + bin64\static_mt\ + obj64\$(Configuration)\ + true + bin64\static_mt\ + obj64\$(Configuration)\ + false + bin64\static_md\ + obj64\$(Configuration)\ + true + bin64\static_md\ + obj64\$(Configuration)\ + false + downloadd + downloadd + downloadd + download + download + download + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\downloadd.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\downloadd.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\downloadd.pdb + Console + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + %(AdditionalOptions) + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_x64_vs100.vcxproj.filters b/NetSSL_Win/samples/download/download_x64_vs100.vcxproj.filters new file mode 100644 index 000000000..97bb5e69f --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs100.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {c3f6bd78-9b8f-4c00-94af-0c14ff54e02b} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_x64_vs110.vcxproj b/NetSSL_Win/samples/download/download_x64_vs110.vcxproj new file mode 100644 index 000000000..10a97f3f3 --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs110.vcxproj @@ -0,0 +1,311 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + download + Win32Proj + + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + Application + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + downloadd + downloadd + downloadd + download + download + download + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\downloadd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\downloadd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\downloadd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_x64_vs110.vcxproj.filters b/NetSSL_Win/samples/download/download_x64_vs110.vcxproj.filters new file mode 100644 index 000000000..b140c9f41 --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs110.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {33379d1d-413c-42af-976b-ba3256089035} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_x64_vs120.vcxproj b/NetSSL_Win/samples/download/download_x64_vs120.vcxproj new file mode 100644 index 000000000..92e2ce4c5 --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs120.vcxproj @@ -0,0 +1,311 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + download + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} + download + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + downloadd + downloadd + downloadd + download + download + download + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\downloadd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\downloadd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\downloadd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\downloadd.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\download.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + diff --git a/NetSSL_Win/samples/download/download_x64_vs120.vcxproj.filters b/NetSSL_Win/samples/download/download_x64_vs120.vcxproj.filters new file mode 100644 index 000000000..3fa25a031 --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs120.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {1e12c901-3c86-4560-9d2f-44fdca68449e} + + + + + Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_x64_vs90.vcproj b/NetSSL_Win/samples/download/download_x64_vs90.vcproj new file mode 100644 index 000000000..f18cef4d5 --- /dev/null +++ b/NetSSL_Win/samples/download/download_x64_vs90.vcproj @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/samples/download/src/download.cpp b/NetSSL_Win/samples/download/src/download.cpp new file mode 100644 index 000000000..5fbe0470e --- /dev/null +++ b/NetSSL_Win/samples/download/src/download.cpp @@ -0,0 +1,93 @@ +// +// download.cpp +// +// $Id: //poco/1.4/NetSSL_OpenSSL/samples/download/src/download.cpp#1 $ +// +// This sample demonstrates the URIStreamOpener class. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/URIStreamOpener.h" +#include "Poco/StreamCopier.h" +#include "Poco/Path.h" +#include "Poco/URI.h" +#include "Poco/SharedPtr.h" +#include "Poco/Exception.h" +#include "Poco/Net/HTTPStreamFactory.h" +#include "Poco/Net/HTTPSStreamFactory.h" +#include "Poco/Net/FTPStreamFactory.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/ConsoleCertificateHandler.h" +#include +#include + + +using Poco::URIStreamOpener; +using Poco::StreamCopier; +using Poco::Path; +using Poco::URI; +using Poco::SharedPtr; +using Poco::Exception; +using Poco::Net::HTTPStreamFactory; +using Poco::Net::HTTPSStreamFactory; +using Poco::Net::FTPStreamFactory; +using Poco::Net::SSLManager; +using Poco::Net::Context; +using Poco::Net::InvalidCertificateHandler; +using Poco::Net::ConsoleCertificateHandler; + + +class SSLInitializer +{ +public: + SSLInitializer() + { + Poco::Net::initializeSSL(); + } + + ~SSLInitializer() + { + Poco::Net::uninitializeSSL(); + } +}; + + +int main(int argc, char** argv) +{ + SSLInitializer sslInitializer; + HTTPStreamFactory::registerFactory(); + HTTPSStreamFactory::registerFactory(); + FTPStreamFactory::registerFactory(); + + if (argc != 2) + { + Path p(argv[0]); + std::cerr << "usage: " << p.getBaseName() << " " << std::endl; + std::cerr << " Download to standard output." << std::endl; + std::cerr << " Works with http, https, ftp and file URIs." << std::endl; + return 1; + } + + SharedPtr pCertHandler = new ConsoleCertificateHandler(false); // ask the user via console + Context::Ptr pContext = new Context(Context::CLIENT_USE, ""); + SSLManager::instance().initializeClient(pCertHandler, pContext); + + try + { + URI uri(argv[1]); + std::auto_ptr pStr(URIStreamOpener::defaultOpener().open(uri)); + StreamCopier::copyStream(*pStr.get(), std::cout); + } + catch (Exception& exc) + { + std::cerr << exc.displayText() << std::endl; + return 1; + } + + return 0; +} diff --git a/NetSSL_Win/samples/samples.progen b/NetSSL_Win/samples/samples.progen new file mode 100644 index 000000000..7bb3a564e --- /dev/null +++ b/NetSSL_Win/samples/samples.progen @@ -0,0 +1,7 @@ +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.solution.create = true +vc.solution.include = \ + download\\download;\ + HTTPSTimeServer\\HTTPSTimeServer;\ + Mail\\Mail diff --git a/NetSSL_Win/samples/samples_CE_vs90.sln b/NetSSL_Win/samples/samples_CE_vs90.sln new file mode 100644 index 000000000..1a96370ea --- /dev/null +++ b/NetSSL_Win/samples/samples_CE_vs90.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_CE_vs90.vcproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_CE_vs90.vcproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_CE_vs90.vcproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Digi JumpStart (ARMV4I) = debug_shared|Digi JumpStart (ARMV4I) + release_shared|Digi JumpStart (ARMV4I) = release_shared|Digi JumpStart (ARMV4I) + debug_static_mt|Digi JumpStart (ARMV4I) = debug_static_mt|Digi JumpStart (ARMV4I) + release_static_mt|Digi JumpStart (ARMV4I) = release_static_mt|Digi JumpStart (ARMV4I) + debug_static_md|Digi JumpStart (ARMV4I) = debug_static_md|Digi JumpStart (ARMV4I) + release_static_md|Digi JumpStart (ARMV4I) = release_static_md|Digi JumpStart (ARMV4I) + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Digi JumpStart (ARMV4I).ActiveCfg = debug_shared|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Digi JumpStart (ARMV4I).Build.0 = debug_shared|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Digi JumpStart (ARMV4I).Deploy.0 = debug_shared|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Digi JumpStart (ARMV4I).ActiveCfg = release_shared|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Digi JumpStart (ARMV4I).Build.0 = release_shared|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Digi JumpStart (ARMV4I).Deploy.0 = release_shared|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_mt|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Digi JumpStart (ARMV4I).Build.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = release_static_mt|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Digi JumpStart (ARMV4I).Build.0 = release_static_mt|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = release_static_mt|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_md|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Digi JumpStart (ARMV4I).Build.0 = debug_static_md|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_md|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Digi JumpStart (ARMV4I).ActiveCfg = release_static_md|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Digi JumpStart (ARMV4I).Build.0 = release_static_md|Digi JumpStart (ARMV4I) + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Digi JumpStart (ARMV4I).Deploy.0 = release_static_md|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Digi JumpStart (ARMV4I).ActiveCfg = debug_shared|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Digi JumpStart (ARMV4I).Build.0 = debug_shared|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Digi JumpStart (ARMV4I).Deploy.0 = debug_shared|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Digi JumpStart (ARMV4I).ActiveCfg = release_shared|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Digi JumpStart (ARMV4I).Build.0 = release_shared|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Digi JumpStart (ARMV4I).Deploy.0 = release_shared|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_mt|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Digi JumpStart (ARMV4I).Build.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = release_static_mt|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Digi JumpStart (ARMV4I).Build.0 = release_static_mt|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = release_static_mt|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_md|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Digi JumpStart (ARMV4I).Build.0 = debug_static_md|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_md|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Digi JumpStart (ARMV4I).ActiveCfg = release_static_md|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Digi JumpStart (ARMV4I).Build.0 = release_static_md|Digi JumpStart (ARMV4I) + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Digi JumpStart (ARMV4I).Deploy.0 = release_static_md|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Digi JumpStart (ARMV4I).ActiveCfg = debug_shared|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Digi JumpStart (ARMV4I).Build.0 = debug_shared|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Digi JumpStart (ARMV4I).Deploy.0 = debug_shared|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Digi JumpStart (ARMV4I).ActiveCfg = release_shared|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Digi JumpStart (ARMV4I).Build.0 = release_shared|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Digi JumpStart (ARMV4I).Deploy.0 = release_shared|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_mt|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Digi JumpStart (ARMV4I).Build.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_mt|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Digi JumpStart (ARMV4I).ActiveCfg = release_static_mt|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Digi JumpStart (ARMV4I).Build.0 = release_static_mt|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Digi JumpStart (ARMV4I).Deploy.0 = release_static_mt|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Digi JumpStart (ARMV4I).ActiveCfg = debug_static_md|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Digi JumpStart (ARMV4I).Build.0 = debug_static_md|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Digi JumpStart (ARMV4I).Deploy.0 = debug_static_md|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Digi JumpStart (ARMV4I).ActiveCfg = release_static_md|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Digi JumpStart (ARMV4I).Build.0 = release_static_md|Digi JumpStart (ARMV4I) + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Digi JumpStart (ARMV4I).Deploy.0 = release_static_md|Digi JumpStart (ARMV4I) + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_WEC2013_vs110.sln b/NetSSL_Win/samples/samples_WEC2013_vs110.sln new file mode 100644 index 000000000..a436efb1f --- /dev/null +++ b/NetSSL_Win/samples/samples_WEC2013_vs110.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_WEC2013_vs110.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_WEC2013_vs110.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_WEC2013_vs110.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|SDK_AM335X_SK_WEC2013_V300 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + release_shared|SDK_AM335X_SK_WEC2013_V300 = release_shared|SDK_AM335X_SK_WEC2013_V300 + debug_static_mt|SDK_AM335X_SK_WEC2013_V300 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + release_static_mt|SDK_AM335X_SK_WEC2013_V300 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + debug_static_md|SDK_AM335X_SK_WEC2013_V300 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + release_static_md|SDK_AM335X_SK_WEC2013_V300 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|SDK_AM335X_SK_WEC2013_V300.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|SDK_AM335X_SK_WEC2013_V300.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V300 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_WEC2013_vs120.sln b/NetSSL_Win/samples/samples_WEC2013_vs120.sln new file mode 100644 index 000000000..3f5246c6e --- /dev/null +++ b/NetSSL_Win/samples/samples_WEC2013_vs120.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_WEC2013_vs120.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_WEC2013_vs120.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_WEC2013_vs120.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|SDK_AM335X_SK_WEC2013_V310 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + release_shared|SDK_AM335X_SK_WEC2013_V310 = release_shared|SDK_AM335X_SK_WEC2013_V310 + debug_static_mt|SDK_AM335X_SK_WEC2013_V310 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + release_static_mt|SDK_AM335X_SK_WEC2013_V310 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + debug_static_md|SDK_AM335X_SK_WEC2013_V310 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + release_static_md|SDK_AM335X_SK_WEC2013_V310 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_shared|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_shared|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_shared|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_mt|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_mt|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = debug_static_md|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|SDK_AM335X_SK_WEC2013_V310.ActiveCfg = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Build.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|SDK_AM335X_SK_WEC2013_V310.Deploy.0 = release_static_md|SDK_AM335X_SK_WEC2013_V310 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_vs100.sln b/NetSSL_Win/samples/samples_vs100.sln new file mode 100644 index 000000000..37d5deab0 --- /dev/null +++ b/NetSSL_Win/samples/samples_vs100.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs100.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs100.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs100.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_vs110.sln b/NetSSL_Win/samples/samples_vs110.sln new file mode 100644 index 000000000..ed247c027 --- /dev/null +++ b/NetSSL_Win/samples/samples_vs110.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs110.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs110.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs110.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_vs120.sln b/NetSSL_Win/samples/samples_vs120.sln new file mode 100644 index 000000000..3db78f8b7 --- /dev/null +++ b/NetSSL_Win/samples/samples_vs120.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs120.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs120.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs120.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_vs71.sln b/NetSSL_Win/samples/samples_vs71.sln new file mode 100644 index 000000000..66c343eae --- /dev/null +++ b/NetSSL_Win/samples/samples_vs71.sln @@ -0,0 +1,65 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs71.vcproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs71.vcproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs71.vcproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + debug_shared = debug_shared + release_shared = release_shared + debug_static_mt = debug_static_mt + release_static_mt = release_static_mt + debug_static_md = debug_static_md + release_static_md = release_static_md + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared.ActiveCfg = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared.Build.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md.Build.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared.ActiveCfg = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared.Build.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared.ActiveCfg = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared.Build.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt.ActiveCfg = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt.Build.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt.ActiveCfg = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt.Build.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md.ActiveCfg = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md.Build.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md.ActiveCfg = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared.ActiveCfg = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared.Build.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md.Build.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_vs80.sln b/NetSSL_Win/samples/samples_vs80.sln new file mode 100644 index 000000000..de8a399ba --- /dev/null +++ b/NetSSL_Win/samples/samples_vs80.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs80.vcproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs80.vcproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs80.vcproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_vs90.sln b/NetSSL_Win/samples/samples_vs90.sln new file mode 100644 index 000000000..ed82012a1 --- /dev/null +++ b/NetSSL_Win/samples/samples_vs90.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs90.vcproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs90.vcproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs90.vcproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_x64_vs100.sln b/NetSSL_Win/samples/samples_x64_vs100.sln new file mode 100644 index 000000000..878c4752d --- /dev/null +++ b/NetSSL_Win/samples/samples_x64_vs100.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_x64_vs100.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_x64_vs100.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_x64_vs100.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_x64_vs110.sln b/NetSSL_Win/samples/samples_x64_vs110.sln new file mode 100644 index 000000000..d93b615ca --- /dev/null +++ b/NetSSL_Win/samples/samples_x64_vs110.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_x64_vs110.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_x64_vs110.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_x64_vs110.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_x64_vs120.sln b/NetSSL_Win/samples/samples_x64_vs120.sln new file mode 100644 index 000000000..c03e39656 --- /dev/null +++ b/NetSSL_Win/samples/samples_x64_vs120.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_x64_vs120.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_x64_vs120.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_x64_vs120.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/samples/samples_x64_vs90.sln b/NetSSL_Win/samples/samples_x64_vs90.sln new file mode 100644 index 000000000..6b6324728 --- /dev/null +++ b/NetSSL_Win/samples/samples_x64_vs90.sln @@ -0,0 +1,77 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_x64_vs90.vcproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_x64_vs90.vcproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_x64_vs90.vcproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NetSSL_Win/src/AcceptCertificateHandler.cpp b/NetSSL_Win/src/AcceptCertificateHandler.cpp new file mode 100644 index 000000000..923e6b318 --- /dev/null +++ b/NetSSL_Win/src/AcceptCertificateHandler.cpp @@ -0,0 +1,40 @@ +// +// AcceptCertificateHandler.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/AcceptCertificateHandler.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: AcceptCertificateHandler +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/AcceptCertificateHandler.h" + + +namespace Poco { +namespace Net { + + +AcceptCertificateHandler::AcceptCertificateHandler(bool server): InvalidCertificateHandler(server) +{ +} + + +AcceptCertificateHandler::~AcceptCertificateHandler() +{ +} + + +void AcceptCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) +{ + errorCert.setIgnoreError(true); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/CertificateHandlerFactory.cpp b/NetSSL_Win/src/CertificateHandlerFactory.cpp new file mode 100644 index 000000000..8d37e0ded --- /dev/null +++ b/NetSSL_Win/src/CertificateHandlerFactory.cpp @@ -0,0 +1,46 @@ +// +// CertificateHandlerFactory.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/CertificateHandlerFactory.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: CertificateHandlerFactory +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/CertificateHandlerFactory.h" +#include "Poco/Net/SSLManager.h" + + +namespace Poco { +namespace Net { + + +CertificateHandlerFactory::CertificateHandlerFactory() +{ +} + + +CertificateHandlerFactory::~CertificateHandlerFactory() +{ +} + + +CertificateHandlerFactoryRegistrar::CertificateHandlerFactoryRegistrar(const std::string& name, CertificateHandlerFactory* pFactory) +{ + SSLManager::instance().certificateHandlerFactoryMgr().setFactory(name, pFactory); +} + + +CertificateHandlerFactoryRegistrar::~CertificateHandlerFactoryRegistrar() +{ +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/CertificateHandlerFactoryMgr.cpp b/NetSSL_Win/src/CertificateHandlerFactoryMgr.cpp new file mode 100644 index 000000000..04c4e240d --- /dev/null +++ b/NetSSL_Win/src/CertificateHandlerFactoryMgr.cpp @@ -0,0 +1,71 @@ +// +// CertificateHandlerFactoryMgr.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/CertificateHandlerFactoryMgr.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: CertificateHandlerFactoryMgr +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/CertificateHandlerFactoryMgr.h" +#include "Poco/Net/ConsoleCertificateHandler.h" +#include "Poco/Net/AcceptCertificateHandler.h" +#include "Poco/Net/RejectCertificateHandler.h" + + +namespace Poco { +namespace Net { + + +CertificateHandlerFactoryMgr::CertificateHandlerFactoryMgr() +{ + setFactory("ConsoleCertificateHandler", new CertificateHandlerFactoryImpl()); + setFactory("AcceptCertificateHandler", new CertificateHandlerFactoryImpl()); + setFactory("RejectCertificateHandler", new CertificateHandlerFactoryImpl()); +} + + +CertificateHandlerFactoryMgr::~CertificateHandlerFactoryMgr() +{ +} + + +void CertificateHandlerFactoryMgr::setFactory(const std::string& name, CertificateHandlerFactory* pFactory) +{ + bool success = _factories.insert(make_pair(name, Poco::SharedPtr(pFactory))).second; + if (!success) + delete pFactory; + poco_assert(success); +} + + +bool CertificateHandlerFactoryMgr::hasFactory(const std::string& name) const +{ + return _factories.find(name) != _factories.end(); +} + + +const CertificateHandlerFactory* CertificateHandlerFactoryMgr::getFactory(const std::string& name) const +{ + FactoriesMap::const_iterator it = _factories.find(name); + if (it != _factories.end()) + return it->second; + else + return 0; +} + + +void CertificateHandlerFactoryMgr::removeFactory(const std::string& name) +{ + _factories.erase(name); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/ConsoleCertificateHandler.cpp b/NetSSL_Win/src/ConsoleCertificateHandler.cpp new file mode 100644 index 000000000..17995018b --- /dev/null +++ b/NetSSL_Win/src/ConsoleCertificateHandler.cpp @@ -0,0 +1,55 @@ +// +// ConsoleCertificateHandler.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/ConsoleCertificateHandler.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: ConsoleCertificateHandler +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/ConsoleCertificateHandler.h" +#include + + +namespace Poco { +namespace Net { + + +ConsoleCertificateHandler::ConsoleCertificateHandler(bool server): InvalidCertificateHandler(server) +{ +} + + +ConsoleCertificateHandler::~ConsoleCertificateHandler() +{ +} + + +void ConsoleCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) +{ + const X509Certificate& aCert = errorCert.certificate(); + std::cout << "\n"; + std::cout << "WARNING: Certificate verification failed\n"; + std::cout << "----------------------------------------\n"; + std::cout << "Issuer Name: " << aCert.issuerName() << "\n"; + std::cout << "Subject Name: " << aCert.subjectName() << "\n\n"; + std::cout << "The certificate yielded the error: " << errorCert.errorMessage() << "\n\n"; + std::cout << "The error occurred in the certificate chain at position " << errorCert.errorDepth() << "\n"; + std::cout << "Accept the certificate (y,n)? "; + char c; + std::cin >> c; + if (c == 'y' || c == 'Y') + errorCert.setIgnoreError(true); + else + errorCert.setIgnoreError(false); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/Context.cpp b/NetSSL_Win/src/Context.cpp new file mode 100644 index 000000000..9fdfc1cde --- /dev/null +++ b/NetSSL_Win/src/Context.cpp @@ -0,0 +1,104 @@ +// +// Context.cpp +// +// $Id: //poco/1.4/NetSSL_Schannel/src/Context.cpp#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: Context +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/Context.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/SSLException.h" +#include "Poco/UnicodeConverter.h" + + +namespace Poco { +namespace Net { + + +const std::string Context::CERT_STORE_MY("MY"); +const std::string Context::CERT_STORE_ROOT("ROOT"); +const std::string Context::CERT_STORE_TRUST("TRUST"); +const std::string Context::CERT_STORE_CA("CA"); +const std::string Context::CERT_STORE_USERDS("USERDS"); + + +Context::Context(Usage usage, + const std::string& certName, + VerificationMode verMode, + int options, + const std::string& certStore): + _usage(usage), + _mode(verMode), + _options(options), + _certificateName(certName), + _certificateStoreName(certStore), + _hMemCertStore(0), + _hCollectionCertStore(0), + _hRootCertStore(0), + _mutex() +{ + _hMemCertStore = CertOpenStore( + CERT_STORE_PROV_MEMORY, // The memory provider type + 0, // The encoding type is not needed + NULL, // Use the default provider + 0, // Accept the default dwFlags + NULL); // pvPara is not used + + if (!_hMemCertStore) + throw SSLException("Failed to create memory certificate store", GetLastError()); + + _hCollectionCertStore = CertOpenStore( + CERT_STORE_PROV_COLLECTION, // A collection store + 0, // Encoding type; not used with a collection store + NULL, // Use the default provider + 0, // No flags + NULL); // Not needed + + if (!_hCollectionCertStore) + throw SSLException("Failed to create collection store", GetLastError()); + + if (!CertAddStoreToCollection(_hCollectionCertStore, _hMemCertStore, CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG, 1)) + throw SSLException("Failed to add memory certificate store to collection store", GetLastError()); + + if (_options & OPT_TRUST_ROOTS_WIN_CERT_STORE) + { + // add root certificates + std::wstring rootStore; + Poco::UnicodeConverter::convert(CERT_STORE_ROOT, rootStore); + _hRootCertStore = CertOpenSystemStoreW(0, rootStore.c_str()); + if (!_hRootCertStore) + throw SSLException("Failed to open root certificate store", GetLastError()); + if (!CertAddStoreToCollection(_hCollectionCertStore, _hRootCertStore, CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG, 1)) + throw SSLException("Failed to add root certificate store to collection store", GetLastError()); + } +} + + +Context::~Context() +{ + CertCloseStore(_hCollectionCertStore, 0); + CertCloseStore(_hMemCertStore, 0); + if (_hRootCertStore) + { + CertCloseStore(_hRootCertStore, 0); + } +} + + +void Context::addTrustedCert(const Poco::Net::X509Certificate& cert) +{ + Poco::FastMutex::ScopedLock lock(_mutex); + CertAddCertificateContextToStore(_hMemCertStore, cert.system(), CERT_STORE_ADD_REPLACE_EXISTING, 0); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/HTTPSClientSession.cpp b/NetSSL_Win/src/HTTPSClientSession.cpp new file mode 100644 index 000000000..07e66143c --- /dev/null +++ b/NetSSL_Win/src/HTTPSClientSession.cpp @@ -0,0 +1,192 @@ +// +// HTTPSClientSession.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/HTTPSClientSession.cpp#3 $ +// +// Library: NetSSL_Win +// Package: HTTPSClient +// Module: HTTPSClientSession +// +// Copyright (c) 2006-2010, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPSClientSession.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SecureStreamSocketImpl.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/SSLException.h" +#include "Poco/Net/HTTPRequest.h" +#include "Poco/Net/HTTPResponse.h" +#include "Poco/Net/NetException.h" +#include "Poco/NumberFormatter.h" + + +using Poco::NumberFormatter; +using Poco::IllegalStateException; + + +namespace Poco { +namespace Net { + + +HTTPSClientSession::HTTPSClientSession(): + HTTPClientSession(SecureStreamSocket()), + _pContext(SSLManager::instance().defaultClientContext()) +{ + setPort(HTTPS_PORT); +} + + +HTTPSClientSession::HTTPSClientSession(const SecureStreamSocket& socket): + HTTPClientSession(socket), + _pContext(socket.context()) +{ + setPort(HTTPS_PORT); +} + + +HTTPSClientSession::HTTPSClientSession(const SecureStreamSocket& socket, Session::Ptr pSession): + HTTPClientSession(socket), + _pContext(socket.context()), + _pSession(pSession) +{ + setPort(HTTPS_PORT); +} + + +HTTPSClientSession::HTTPSClientSession(const std::string& host, Poco::UInt16 port): + HTTPClientSession(SecureStreamSocket()), + _pContext(SSLManager::instance().defaultClientContext()) +{ + setHost(host); + setPort(port); + SecureStreamSocket sss(socket()); + sss.setPeerHostName(host); +} + + +HTTPSClientSession::HTTPSClientSession(Context::Ptr pContext): + HTTPClientSession(SecureStreamSocket(pContext)), + _pContext(pContext) +{ +} + + +HTTPSClientSession::HTTPSClientSession(Context::Ptr pContext, Session::Ptr pSession): + HTTPClientSession(SecureStreamSocket(pContext, pSession)), + _pContext(pContext), + _pSession(pSession) +{ +} + + +HTTPSClientSession::HTTPSClientSession(const std::string& host, Poco::UInt16 port, Context::Ptr pContext): + HTTPClientSession(SecureStreamSocket(pContext)), + _pContext(pContext) +{ + setHost(host); + setPort(port); + SecureStreamSocket sss(socket()); + sss.setPeerHostName(host); +} + + +HTTPSClientSession::HTTPSClientSession(const std::string& host, Poco::UInt16 port, Context::Ptr pContext, Session::Ptr pSession): + HTTPClientSession(SecureStreamSocket(pContext, pSession)), + _pContext(pContext), + _pSession(pSession) +{ + setHost(host); + setPort(port); + SecureStreamSocket sss(socket()); + sss.setPeerHostName(host); +} + + +HTTPSClientSession::~HTTPSClientSession() +{ +} + + +bool HTTPSClientSession::secure() const +{ + return true; +} + + +void HTTPSClientSession::abort() +{ + SecureStreamSocket sss(socket()); + sss.abort(); +} + + +X509Certificate HTTPSClientSession::serverCertificate() +{ + SecureStreamSocket sss(socket()); + return sss.peerCertificate(); +} + + +std::string HTTPSClientSession::proxyRequestPrefix() const +{ + return std::string(); +} + + +void HTTPSClientSession::proxyAuthenticate(HTTPRequest& request) +{ +} + + +void HTTPSClientSession::connect(const SocketAddress& address) +{ + if (getProxyHost().empty()) + { + SecureStreamSocket sss(socket()); + if (_pContext->sessionCacheEnabled()) + { + sss.useSession(_pSession); + } + HTTPSession::connect(address); + if (_pContext->sessionCacheEnabled()) + { + _pSession = sss.currentSession(); + } + } + else + { + StreamSocket proxySocket(proxyConnect()); + SecureStreamSocket secureSocket = SecureStreamSocket::attach(proxySocket, getHost(), _pContext, _pSession); + attachSocket(secureSocket); + if (_pContext->sessionCacheEnabled()) + { + _pSession = secureSocket.currentSession(); + } + } +} + + +int HTTPSClientSession::read(char* buffer, std::streamsize length) +{ + try + { + return HTTPSession::read(buffer, length); + } catch(SSLConnectionUnexpectedlyClosedException&) + { + return 0; + } +} + + +Session::Ptr HTTPSClientSession::sslSession() +{ + return _pSession; +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/HTTPSSessionInstantiator.cpp b/NetSSL_Win/src/HTTPSSessionInstantiator.cpp new file mode 100644 index 000000000..999dee9a0 --- /dev/null +++ b/NetSSL_Win/src/HTTPSSessionInstantiator.cpp @@ -0,0 +1,70 @@ +// +// HTTPSSessionInstantiator.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/HTTPSSessionInstantiator.cpp#2 $ +// +// Library: NetSSL_Win +// Package: HTTPSClient +// Module: HTTPSSessionInstantiator +// +// Copyright (c) 2006-2009, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPSSessionInstantiator.h" +#include "Poco/Net/HTTPSessionFactory.h" +#include "Poco/Net/HTTPSClientSession.h" + + +namespace Poco { +namespace Net { + + +HTTPSSessionInstantiator::HTTPSSessionInstantiator() +{ +} + + +HTTPSSessionInstantiator::HTTPSSessionInstantiator(Context::Ptr pContext) : + _pContext(pContext) +{ +} + + +HTTPSSessionInstantiator::~HTTPSSessionInstantiator() +{ +} + + +HTTPClientSession* HTTPSSessionInstantiator::createClientSession(const Poco::URI& uri) +{ + poco_assert (uri.getScheme() == "https"); + HTTPSClientSession* pSession = _pContext.isNull() ? new HTTPSClientSession(uri.getHost(), uri.getPort()) : new HTTPSClientSession(uri.getHost(), uri.getPort(), _pContext); + pSession->setProxy(proxyHost(), proxyPort()); + pSession->setProxyCredentials(proxyUsername(), proxyPassword()); + return pSession; +} + + +void HTTPSSessionInstantiator::registerInstantiator() +{ + HTTPSessionFactory::defaultFactory().registerProtocol("https", new HTTPSSessionInstantiator); +} + + +void HTTPSSessionInstantiator::registerInstantiator(Context::Ptr context) +{ + HTTPSessionFactory::defaultFactory().registerProtocol("https", new HTTPSSessionInstantiator(context)); +} + + +void HTTPSSessionInstantiator::unregisterInstantiator() +{ + HTTPSessionFactory::defaultFactory().unregisterProtocol("https"); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/HTTPSStreamFactory.cpp b/NetSSL_Win/src/HTTPSStreamFactory.cpp new file mode 100644 index 000000000..5e2367252 --- /dev/null +++ b/NetSSL_Win/src/HTTPSStreamFactory.cpp @@ -0,0 +1,174 @@ +// +// HTTPSStreamFactory.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/HTTPSStreamFactory.cpp#2 $ +// +// Library: NetSSL_Win +// Package: HTTPSClient +// Module: HTTPSStreamFactory +// +// Copyright (c) 2006-2012, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPSStreamFactory.h" +#include "Poco/Net/HTTPSClientSession.h" +#include "Poco/Net/HTTPIOStream.h" +#include "Poco/Net/HTTPRequest.h" +#include "Poco/Net/HTTPResponse.h" +#include "Poco/Net/HTTPCredentials.h" +#include "Poco/Net/NetException.h" +#include "Poco/URI.h" +#include "Poco/URIStreamOpener.h" +#include "Poco/UnbufferedStreamBuf.h" +#include "Poco/NullStream.h" +#include "Poco/StreamCopier.h" + + +using Poco::URIStreamFactory; +using Poco::URI; +using Poco::URIStreamOpener; +using Poco::UnbufferedStreamBuf; + + +namespace Poco { +namespace Net { + + +HTTPSStreamFactory::HTTPSStreamFactory(): + _proxyPort(HTTPSession::HTTP_PORT) +{ +} + + +HTTPSStreamFactory::HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort): + _proxyHost(proxyHost), + _proxyPort(proxyPort) +{ +} + + +HTTPSStreamFactory::HTTPSStreamFactory(const std::string& proxyHost, Poco::UInt16 proxyPort, const std::string& proxyUsername, const std::string& proxyPassword): + _proxyHost(proxyHost), + _proxyPort(proxyPort), + _proxyUsername(proxyUsername), + _proxyPassword(proxyPassword) +{ +} + + +HTTPSStreamFactory::~HTTPSStreamFactory() +{ +} + + +std::istream* HTTPSStreamFactory::open(const URI& uri) +{ + poco_assert (uri.getScheme() == "https" || uri.getScheme() == "http"); + + URI resolvedURI(uri); + URI proxyUri; + HTTPClientSession* pSession = 0; + HTTPResponse res; + try + { + bool retry = false; + bool authorize = false; + int redirects = 0; + std::string username; + std::string password; + + do + { + if (!pSession) + { + if (resolvedURI.getScheme() != "http") + pSession = new HTTPSClientSession(resolvedURI.getHost(), resolvedURI.getPort()); + else + pSession = new HTTPClientSession(resolvedURI.getHost(), resolvedURI.getPort()); + if (proxyUri.empty()) + pSession->setProxy(_proxyHost, _proxyPort); + else + pSession->setProxy(proxyUri.getHost(), proxyUri.getPort()); + pSession->setProxyCredentials(_proxyUsername, _proxyPassword); + } + std::string path = resolvedURI.getPathAndQuery(); + if (path.empty()) path = "/"; + HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1); + + if (authorize) + { + HTTPCredentials::extractCredentials(uri, username, password); + HTTPCredentials cred(username, password); + cred.authenticate(req, res); + } + + pSession->sendRequest(req); + std::istream& rs = pSession->receiveResponse(res); + bool moved = (res.getStatus() == HTTPResponse::HTTP_MOVED_PERMANENTLY || + res.getStatus() == HTTPResponse::HTTP_FOUND || + res.getStatus() == HTTPResponse::HTTP_SEE_OTHER || + res.getStatus() == HTTPResponse::HTTP_TEMPORARY_REDIRECT); + if (moved) + { + resolvedURI.resolve(res.get("Location")); + if (!username.empty()) + { + resolvedURI.setUserInfo(username + ":" + password); + authorize = false; + } + delete pSession; pSession = 0; + ++redirects; + retry = true; + } + else if (res.getStatus() == HTTPResponse::HTTP_OK) + { + return new HTTPResponseStream(rs, pSession); + } + else if (res.getStatus() == HTTPResponse::HTTP_USEPROXY && !retry) + { + // The requested resource MUST be accessed through the proxy + // given by the Location field. The Location field gives the + // URI of the proxy. The recipient is expected to repeat this + // single request via the proxy. 305 responses MUST only be generated by origin servers. + // only use for one single request! + proxyUri.resolve(res.get("Location")); + delete pSession; pSession = 0; + retry = true; // only allow useproxy once + } + else if (res.getStatus() == HTTPResponse::HTTP_UNAUTHORIZED && !authorize) + { + authorize = true; + retry = true; + Poco::NullOutputStream null; + Poco::StreamCopier::copyStream(rs, null); + } + else throw HTTPException(res.getReason(), uri.toString()); + } + while (retry && redirects < MAX_REDIRECTS); + throw HTTPException("Too many redirects", uri.toString()); + } + catch (...) + { + delete pSession; + throw; + } +} + + +void HTTPSStreamFactory::registerFactory() +{ + URIStreamOpener::defaultOpener().registerStreamFactory("https", new HTTPSStreamFactory); +} + + +void HTTPSStreamFactory::unregisterFactory() +{ + URIStreamOpener::defaultOpener().unregisterStreamFactory("https"); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/InvalidCertificateHandler.cpp b/NetSSL_Win/src/InvalidCertificateHandler.cpp new file mode 100644 index 000000000..8397ecff9 --- /dev/null +++ b/NetSSL_Win/src/InvalidCertificateHandler.cpp @@ -0,0 +1,47 @@ +// +// InvalidCertificateHandler.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/InvalidCertificateHandler.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: InvalidCertificateHandler +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/InvalidCertificateHandler.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Delegate.h" + + +using Poco::Delegate; + + +namespace Poco { +namespace Net { + + +InvalidCertificateHandler::InvalidCertificateHandler(bool handleErrorsOnServerSide): _handleErrorsOnServerSide(handleErrorsOnServerSide) +{ + if (_handleErrorsOnServerSide) + SSLManager::instance().ServerVerificationError += Delegate(this, &InvalidCertificateHandler::onInvalidCertificate); + else + SSLManager::instance().ClientVerificationError += Delegate(this, &InvalidCertificateHandler::onInvalidCertificate); +} + + +InvalidCertificateHandler::~InvalidCertificateHandler() +{ + if (_handleErrorsOnServerSide) + SSLManager::instance().ServerVerificationError -= Delegate(this, &InvalidCertificateHandler::onInvalidCertificate); + else + SSLManager::instance().ClientVerificationError -= Delegate(this, &InvalidCertificateHandler::onInvalidCertificate); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/RejectCertificateHandler.cpp b/NetSSL_Win/src/RejectCertificateHandler.cpp new file mode 100644 index 000000000..e7dd84edf --- /dev/null +++ b/NetSSL_Win/src/RejectCertificateHandler.cpp @@ -0,0 +1,40 @@ +// +// RejectCertificateHandler.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/RejectCertificateHandler.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: RejectCertificateHandler +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/RejectCertificateHandler.h" + + +namespace Poco { +namespace Net { + + +RejectCertificateHandler::RejectCertificateHandler(bool server): InvalidCertificateHandler(server) +{ +} + + +RejectCertificateHandler::~RejectCertificateHandler() +{ +} + + +void RejectCertificateHandler::onInvalidCertificate(const void*, VerificationErrorArgs& errorCert) +{ + errorCert.setIgnoreError(false); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SSLException.cpp b/NetSSL_Win/src/SSLException.cpp new file mode 100644 index 000000000..4fb128caa --- /dev/null +++ b/NetSSL_Win/src/SSLException.cpp @@ -0,0 +1,32 @@ +// +// SSLException.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/SSLException.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: SSLException +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SSLException.h" +#include + + +namespace Poco { +namespace Net { + + +POCO_IMPLEMENT_EXCEPTION(SSLException, NetException, "SSL Exception") +POCO_IMPLEMENT_EXCEPTION(SSLContextException, SSLException, "SSL context exception") +POCO_IMPLEMENT_EXCEPTION(InvalidCertificateException, SSLException, "Invalid certficate") +POCO_IMPLEMENT_EXCEPTION(CertificateValidationException, SSLException, "Certificate validation error") +POCO_IMPLEMENT_EXCEPTION(SSLConnectionUnexpectedlyClosedException, SSLException, "SSL connection unexpectedly closed") + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SSLManager.cpp b/NetSSL_Win/src/SSLManager.cpp new file mode 100644 index 000000000..a85561905 --- /dev/null +++ b/NetSSL_Win/src/SSLManager.cpp @@ -0,0 +1,256 @@ +// +// SSLManager.cpp +// +// $Id: //poco/1.4/NetSSL_Schannel/src/SSLManager.cpp#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: SSLManager +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Utility.h" +#include "Poco/SingletonHolder.h" +#include "Poco/Delegate.h" +#include "Poco/Util/Application.h" +#include "Poco/Util/OptionException.h" +#include "Poco/Util/LayeredConfiguration.h" + + +namespace Poco { +namespace Net { + + +const std::string SSLManager::CFG_CERT_NAME("certificateName"); +const std::string SSLManager::VAL_CERT_NAME(""); +const std::string SSLManager::CFG_CERT_STORE("certificateStore"); +const std::string SSLManager::VAL_CERT_STORE("MY"); +const std::string SSLManager::CFG_VER_MODE("verificationMode"); +const Context::VerificationMode SSLManager::VAL_VER_MODE(Context::VERIFY_RELAXED); +const std::string SSLManager::CFG_REVOCATION_CHECK("revocationChecking"); +const bool SSLManager::VAL_REVOCATION_CHECK(true); +const std::string SSLManager::CFG_TRUST_ROOTS("trustRoots"); +const bool SSLManager::VAL_TRUST_ROOTS(true); +const std::string SSLManager::CFG_USE_MACHINE_STORE("useMachineStore"); +const bool SSLManager::VAL_USE_MACHINE_STORE(false); +const std::string SSLManager::CFG_USE_STRONG_CRYPTO("useStrongCrypto"); +const bool SSLManager::VAL_USE_STRONG_CRYPTO(true); +const std::string SSLManager::CFG_CERTIFICATE_HANDLER("invalidCertificateHandler.name"); +const std::string SSLManager::VAL_CERTIFICATE_HANDLER("ConsoleCertificateHandler"); +const std::string SSLManager::CFG_SERVER_PREFIX("schannel.server."); +const std::string SSLManager::CFG_CLIENT_PREFIX("schannel.client."); +const std::string SSLManager::CFG_REQUIRE_TLSV1("requireTLSv1"); +const std::string SSLManager::CFG_REQUIRE_TLSV1_1("requireTLSv1_1"); +const std::string SSLManager::CFG_REQUIRE_TLSV1_2("requireTLSv1_2"); + + +SSLManager::SSLManager() +{ +} + + +SSLManager::~SSLManager() +{ + ClientVerificationError.clear(); + ServerVerificationError.clear(); + _ptrServerCertificateHandler = 0; + _ptrDefaultServerContext = 0; + _ptrClientCertificateHandler = 0; + _ptrDefaultClientContext = 0; +} + + +namespace +{ + static Poco::SingletonHolder singleton; +} + + +SSLManager& SSLManager::instance() +{ + return *singleton.get(); +} + + +void SSLManager::initializeServer(InvalidCertificateHandlerPtr& ptrHandler, Context::Ptr ptrContext) +{ + _ptrServerCertificateHandler = ptrHandler; + _ptrDefaultServerContext = ptrContext; +} + + +void SSLManager::initializeClient(InvalidCertificateHandlerPtr& ptrHandler, Context::Ptr ptrContext) +{ + _ptrClientCertificateHandler = ptrHandler; + _ptrDefaultClientContext = ptrContext; +} + + +Context::Ptr SSLManager::defaultServerContext() +{ + Poco::FastMutex::ScopedLock lock(_mutex); + + if (!_ptrDefaultServerContext) + initDefaultContext(true); + + return _ptrDefaultServerContext; +} + + +Context::Ptr SSLManager::defaultClientContext() +{ + Poco::FastMutex::ScopedLock lock(_mutex); + + if (!_ptrDefaultClientContext) + initDefaultContext(false); + + return _ptrDefaultClientContext; +} + + +SSLManager::InvalidCertificateHandlerPtr SSLManager::serverCertificateHandler() +{ + Poco::FastMutex::ScopedLock lock(_mutex); + + if (!_ptrServerCertificateHandler) + initCertificateHandler(true); + + return _ptrServerCertificateHandler; +} + + +SSLManager::InvalidCertificateHandlerPtr SSLManager::clientCertificateHandler() +{ + Poco::FastMutex::ScopedLock lock(_mutex); + + if (!_ptrClientCertificateHandler) + initCertificateHandler(false); + + return _ptrClientCertificateHandler; +} + + +void SSLManager::initDefaultContext(bool server) +{ + if (server && _ptrDefaultServerContext) return; + if (!server && _ptrDefaultClientContext) return; + + initEvents(server); + + const std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; + Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); + std::string certName = config.getString(prefix + CFG_CERT_NAME, VAL_CERT_NAME); + std::string certStore = config.getString(prefix + CFG_CERT_STORE, VAL_CERT_STORE); + + bool requireTLSv1 = config.getBool(prefix + CFG_REQUIRE_TLSV1, false); + bool requireTLSv1_1 = config.getBool(prefix + CFG_REQUIRE_TLSV1_1, false); + bool requireTLSv1_2 = config.getBool(prefix + CFG_REQUIRE_TLSV1_2, false); + + // optional options for which we have defaults defined + Context::VerificationMode verMode = VAL_VER_MODE; + if (config.hasProperty(prefix + CFG_VER_MODE)) + { + // either: none, relaxed, strict, once + std::string mode = config.getString(prefix + CFG_VER_MODE); + verMode = Utility::convertVerificationMode(mode); + } + bool revocChecking = config.getBool(prefix + CFG_REVOCATION_CHECK, VAL_REVOCATION_CHECK); + bool trustRoots = config.getBool(prefix + CFG_TRUST_ROOTS, VAL_TRUST_ROOTS); + bool useMachineStore = config.getBool(prefix + CFG_USE_MACHINE_STORE, VAL_USE_MACHINE_STORE); + bool useStrongCrypto = config.getBool(prefix + CFG_USE_STRONG_CRYPTO, VAL_USE_STRONG_CRYPTO); + + int options = 0; + if (revocChecking) options |= Context::OPT_PERFORM_REVOCATION_CHECK; + if (trustRoots) options |= Context::OPT_TRUST_ROOTS_WIN_CERT_STORE; + if (useMachineStore) options |= Context::OPT_USE_MACHINE_STORE; + if (useStrongCrypto) options |= Context::OPT_USE_STRONG_CRYPTO; + + Context::Usage usage; + if (server) + { + if (requireTLSv1_2) + usage = Context::TLSV1_2_SERVER_USE; + else if (requireTLSv1_1) + usage = Context::TLSV1_1_SERVER_USE; + else if (requireTLSv1) + usage = Context::TLSV1_SERVER_USE; + else + usage = Context::SERVER_USE; + _ptrDefaultServerContext = new Context(usage, certName, verMode, options, certStore); + } + else + { + if (requireTLSv1_2) + usage = Context::TLSV1_2_CLIENT_USE; + else if (requireTLSv1_1) + usage = Context::TLSV1_1_CLIENT_USE; + else if (requireTLSv1) + usage = Context::TLSV1_CLIENT_USE; + else + usage = Context::CLIENT_USE; + _ptrDefaultClientContext = new Context(usage, certName, verMode, options, certStore); + } +} + + +void SSLManager::initEvents(bool server) +{ + initCertificateHandler(server); +} + + +void SSLManager::initCertificateHandler(bool server) +{ + if (server && _ptrServerCertificateHandler) return; + if (!server && _ptrClientCertificateHandler) return; + + std::string prefix = server ? CFG_SERVER_PREFIX : CFG_CLIENT_PREFIX; + Poco::Util::LayeredConfiguration& config = Poco::Util::Application::instance().config(); + + std::string className(config.getString(prefix + CFG_CERTIFICATE_HANDLER, VAL_CERTIFICATE_HANDLER)); + + const CertificateHandlerFactory* pFactory = 0; + if (certificateHandlerFactoryMgr().hasFactory(className)) + { + pFactory = certificateHandlerFactoryMgr().getFactory(className); + } + + if (pFactory) + { + if (server) + _ptrServerCertificateHandler = pFactory->create(true); + else + _ptrClientCertificateHandler = pFactory->create(false); + } + else throw Poco::Util::UnknownOptionException("No InvalidCertificate handler known with the name", className); +} + + +void SSLManager::shutdown() +{ + ClientVerificationError.clear(); + ServerVerificationError.clear(); + _ptrDefaultServerContext = 0; + _ptrDefaultClientContext = 0; +} + + +void initializeSSL() +{ +} + + +void uninitializeSSL() +{ + SSLManager::instance().shutdown(); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SecureSMTPClientSession.cpp b/NetSSL_Win/src/SecureSMTPClientSession.cpp new file mode 100644 index 000000000..b08ed825b --- /dev/null +++ b/NetSSL_Win/src/SecureSMTPClientSession.cpp @@ -0,0 +1,66 @@ +// +// SecureSMTPClientSession.h +// +// $Id: //poco/1.4/NetSSL_Win/src/SecureSMTPClientSession.cpp#1 $ +// +// Library: NetSSL_Win +// Package: Mail +// Module: SecureSMTPClientSession +// +// Copyright (c) 2010, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SecureSMTPClientSession.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/DialogSocket.h" + + +namespace Poco { +namespace Net { + + +SecureSMTPClientSession::SecureSMTPClientSession(const StreamSocket& socket): + SMTPClientSession(socket) +{ +} + + +SecureSMTPClientSession::SecureSMTPClientSession(const std::string& host, Poco::UInt16 port): + SMTPClientSession(host, port), + _host(host) +{ +} + + +SecureSMTPClientSession::~SecureSMTPClientSession() +{ +} + + +bool SecureSMTPClientSession::startTLS() +{ + return startTLS(SSLManager::instance().defaultClientContext()); +} + + +bool SecureSMTPClientSession::startTLS(Context::Ptr pContext) +{ + int status = 0; + std::string response; + + status = sendCommand("STARTTLS", response); + if (!isPositiveCompletion(status)) return false; + + SecureStreamSocket sss(SecureStreamSocket::attach(socket(), _host, pContext)); + socket() = sss; + + return true; +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SecureServerSocket.cpp b/NetSSL_Win/src/SecureServerSocket.cpp new file mode 100644 index 000000000..019eb3078 --- /dev/null +++ b/NetSSL_Win/src/SecureServerSocket.cpp @@ -0,0 +1,123 @@ +// +// SecureServerSocket.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/SecureServerSocket.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureServerSocket +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SecureServerSocket.h" +#include "Poco/Net/SecureServerSocketImpl.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Exception.h" + + +using Poco::InvalidArgumentException; + + +namespace Poco { +namespace Net { + + +SecureServerSocket::SecureServerSocket(): + ServerSocket(new SecureServerSocketImpl(SSLManager::instance().defaultServerContext()), true) +{ +} + + +SecureServerSocket::SecureServerSocket(Context::Ptr pContext): + ServerSocket(new SecureServerSocketImpl(pContext), true) +{ +} + + +SecureServerSocket::SecureServerSocket(const Socket& socket): + ServerSocket(socket) +{ + if (!dynamic_cast(impl())) + throw InvalidArgumentException("Cannot assign incompatible socket"); +} + + +SecureServerSocket::SecureServerSocket(const SocketAddress& address, int backlog): + ServerSocket(new SecureServerSocketImpl(SSLManager::instance().defaultServerContext()), true) +{ + impl()->bind(address, true); + impl()->listen(backlog); +} + + +SecureServerSocket::SecureServerSocket(const SocketAddress& address, int backlog, Context::Ptr pContext): + ServerSocket(new SecureServerSocketImpl(pContext), true) +{ + impl()->bind(address, true); + impl()->listen(backlog); +} + + +SecureServerSocket::SecureServerSocket(Poco::UInt16 port, int backlog): + ServerSocket(new SecureServerSocketImpl(SSLManager::instance().defaultServerContext()), true) +{ + IPAddress wildcardAddr; + SocketAddress address(wildcardAddr, port); + impl()->bind(address, true); + impl()->listen(backlog); +} + +SecureServerSocket::SecureServerSocket(Poco::UInt16 port, int backlog, Context::Ptr pContext): + ServerSocket(new SecureServerSocketImpl(pContext), true) +{ + IPAddress wildcardAddr; + SocketAddress address(wildcardAddr, port); + impl()->bind(address, true); + impl()->listen(backlog); +} + + +SecureServerSocket::~SecureServerSocket() +{ +} + + +SecureServerSocket& SecureServerSocket::operator = (const Socket& socket) +{ + if (&socket != this) + { + if (dynamic_cast(socket.impl())) + ServerSocket::operator = (socket); + else + throw InvalidArgumentException("Cannot assign incompatible socket"); + } + return *this; +} + + +StreamSocket SecureServerSocket::acceptConnection(SocketAddress& clientAddr) +{ + return SecureStreamSocket(impl()->acceptConnection(clientAddr)); +} + + +StreamSocket SecureServerSocket::acceptConnection() +{ + SocketAddress clientAddr; + return SecureStreamSocket(impl()->acceptConnection(clientAddr)); +} + + +Context::Ptr SecureServerSocket::context() const +{ + return static_cast(impl())->context(); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SecureServerSocketImpl.cpp b/NetSSL_Win/src/SecureServerSocketImpl.cpp new file mode 100644 index 000000000..df97e3a40 --- /dev/null +++ b/NetSSL_Win/src/SecureServerSocketImpl.cpp @@ -0,0 +1,117 @@ +// +// SecureServerSocketImpl.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/SecureServerSocketImpl.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureServerSocketImpl +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SecureServerSocketImpl.h" + + +namespace Poco { +namespace Net { + + +SecureServerSocketImpl::SecureServerSocketImpl(Context::Ptr pContext): + _impl(new ServerSocketImpl, pContext) +{ +} + + +SecureServerSocketImpl::~SecureServerSocketImpl() +{ + reset(); +} + + +SocketImpl* SecureServerSocketImpl::acceptConnection(SocketAddress& clientAddr) +{ + return _impl.acceptConnection(clientAddr); +} + + +void SecureServerSocketImpl::connect(const SocketAddress& address) +{ + throw Poco::InvalidAccessException("Cannot connect() a SecureServerSocket"); +} + + +void SecureServerSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout) +{ + throw Poco::InvalidAccessException("Cannot connect() a SecureServerSocket"); +} + + +void SecureServerSocketImpl::connectNB(const SocketAddress& address) +{ + throw Poco::InvalidAccessException("Cannot connect() a SecureServerSocket"); +} + + +void SecureServerSocketImpl::bind(const SocketAddress& address, bool reuseAddress) +{ + _impl.bind(address, reuseAddress); + reset(_impl.sockfd()); +} + + +void SecureServerSocketImpl::listen(int backlog) +{ + _impl.listen(backlog); + reset(_impl.sockfd()); +} + + +void SecureServerSocketImpl::close() +{ + reset(); + _impl.close(); +} + + +int SecureServerSocketImpl::sendBytes(const void* buffer, int length, int flags) +{ + throw Poco::InvalidAccessException("Cannot sendBytes() on a SecureServerSocket"); +} + + +int SecureServerSocketImpl::receiveBytes(void* buffer, int length, int flags) +{ + throw Poco::InvalidAccessException("Cannot receiveBytes() on a SecureServerSocket"); +} + + +int SecureServerSocketImpl::sendTo(const void* buffer, int length, const SocketAddress& address, int flags) +{ + throw Poco::InvalidAccessException("Cannot sendTo() on a SecureServerSocket"); +} + + +int SecureServerSocketImpl::receiveFrom(void* buffer, int length, SocketAddress& address, int flags) +{ + throw Poco::InvalidAccessException("Cannot receiveFrom() on a SecureServerSocket"); +} + + +void SecureServerSocketImpl::sendUrgent(unsigned char data) +{ + throw Poco::InvalidAccessException("Cannot sendUrgent() on a SecureServerSocket"); +} + + +bool SecureServerSocketImpl::secure() const +{ + return true; +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SecureSocketImpl.cpp b/NetSSL_Win/src/SecureSocketImpl.cpp new file mode 100644 index 000000000..b9a68f250 --- /dev/null +++ b/NetSSL_Win/src/SecureSocketImpl.cpp @@ -0,0 +1,1851 @@ +// +// SecureSocketImpl.cpp +// +// $Id: //poco/1.4/NetSSL_Schannel/src/SecureSocketImpl.cpp#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLSockets +// Module: SecureSocketImpl +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SecureSocketImpl.h" +#include "Poco/Net/SSLException.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Net/Utility.h" +#include "Poco/Net/SecureStreamSocketImpl.h" +#include "Poco/Net/StreamSocket.h" +#include "Poco/Net/StreamSocketImpl.h" +#include "Poco/Net/NetException.h" +#include "Poco/Net/DNS.h" +#include "Poco/NumberFormatter.h" +#include "Poco/NumberParser.h" +#include "Poco/String.h" +#include "Poco/Format.h" +#include "Poco/UnicodeConverter.h" +#include + + +using Poco::IOException; +using Poco::TimeoutException; +using Poco::InvalidArgumentException; +using Poco::NumberFormatter; +using Poco::Timespan; + + +namespace Poco { +namespace Net { + + +class StateMachine +{ +public: + typedef bool (StateMachine::*ConditionMethod)(SOCKET sockfd); + typedef void (SecureSocketImpl::*StateImpl)(void); + + StateMachine(); + ~StateMachine(); + + static StateMachine& instance(); + + // Conditions + bool readable(SOCKET sockfd); + bool writable(SOCKET sockfd); + bool readOrWritable(SOCKET sockfd); + bool none(SOCKET sockfd); + void select(fd_set* fdRead, fd_set* fdWrite, SOCKET sockfd); + + void execute(SecureSocketImpl* pSock); + +private: + StateMachine(const StateMachine&); + StateMachine& operator=(const StateMachine&); + + typedef std::pair ConditionState; + std::vector _states; +}; + + +SecureSocketImpl::SecureSocketImpl(Poco::AutoPtr pSocketImpl, Context::Ptr pContext): + _pSocket(pSocketImpl), + _pContext(pContext), + _mode(pContext->isForServerUse() ? MODE_SERVER : MODE_CLIENT), + _useMachineStore((pContext->options() & Context::OPT_USE_MACHINE_STORE) != 0), + _clientAuthRequired(pContext->verificationMode() >= Context::VERIFY_STRICT), + _hCertificateStore(0), + _pServerCertificate(0), + _pPeerCertificate(0), + _hCreds(), + _hContext(), + _clientFlags(0), + _serverFlags(0), + _hSecurityModule(0), + _securityFunctions(), + _pReceiveBuffer(0), + _receiveBufferSize(0), + _pIOBuffer(0), + _pSendBuffer(), + _ioBufferOffset(0), + _ioBufferSize(0), + _streamSizes(), + _outSecBuffer(&_securityFunctions, true), + _inSecBuffer(&_securityFunctions, false), + _ioCharBuffer(IO_BUFFER_SIZE), + _extraSecBuffer(), + _doReadFirst(true), + _bytesRead(0), + _bytesReadSum(0), + _securityStatus(SEC_E_INCOMPLETE_MESSAGE), + _state(ST_INITIAL) +{ + _hCreds.dwLower = 0; + _hCreds.dwUpper = 0; + + _hContext.dwLower = 0; + _hContext.dwUpper = 0; + _streamSizes.cbBlockSize = _streamSizes.cbHeader = _streamSizes.cbMaximumMessage = _streamSizes.cbTrailer = 0; + + initCommon(); +} + + +SecureSocketImpl::~SecureSocketImpl() +{ + cleanup(); +} + + +void SecureSocketImpl::initCommon() +{ + loadSecurityLibrary(); + + DWORD commonFlags = ISC_REQ_SEQUENCE_DETECT + | ISC_REQ_REPLAY_DETECT + | ISC_REQ_CONFIDENTIALITY + | ISC_RET_EXTENDED_ERROR + | ISC_REQ_ALLOCATE_MEMORY + | ISC_REQ_STREAM; + + if (_pContext->verificationMode() == Context::VERIFY_NONE) + { + commonFlags |= ISC_REQ_MANUAL_CRED_VALIDATION; + } + else if (_pContext->verificationMode() == Context::VERIFY_RELAXED) + { + commonFlags |= ISC_REQ_INTEGRITY; + } + else if (_pContext->verificationMode() == Context::VERIFY_STRICT) + { + commonFlags |= ISC_REQ_INTEGRITY; + } + + _serverFlags = commonFlags; + _clientFlags = commonFlags; + + if (_pContext->verificationMode() == Context::VERIFY_RELAXED) + _clientFlags |= ISC_REQ_MANUAL_CRED_VALIDATION; +} + + +void SecureSocketImpl::cleanup() +{ + _hostName.clear(); + + if (_hCreds.dwLower != 0 && _hCreds.dwUpper != 0) + { + _securityFunctions.FreeCredentialsHandle(&_hCreds); + _hCreds.dwLower = 0; + _hCreds.dwUpper = 0; + } + + if (_hContext.dwLower != 0 && _hContext.dwUpper != 0) + { + _securityFunctions.DeleteSecurityContext(&_hContext); + _hContext.dwLower = 0; + _hContext.dwUpper = 0; + } + + if (_pServerCertificate) + { + CertFreeCertificateContext(_pServerCertificate); + _pServerCertificate = 0; + } + + if (_pPeerCertificate) + { + CertFreeCertificateContext(_pPeerCertificate); + _pPeerCertificate = 0; + } + + if (_hCertificateStore) + { + CertCloseStore(_hCertificateStore, 0); + _hCertificateStore = 0; + } + + if (_hSecurityModule) + { + FreeLibrary(_hSecurityModule); + _hSecurityModule = 0; + } + + delete [] _pReceiveBuffer; + _pReceiveBuffer = 0; + + delete [] _pIOBuffer; + _pIOBuffer = 0; +} + + +SocketImpl* SecureSocketImpl::acceptConnection(SocketAddress& clientAddr) +{ + StreamSocket ss = _pSocket->acceptConnection(clientAddr); + Poco::AutoPtr pSecureStreamSocketImpl = new SecureStreamSocketImpl(static_cast(ss.impl()), _pContext); + pSecureStreamSocketImpl->acceptSSL(); + pSecureStreamSocketImpl->duplicate(); + return pSecureStreamSocketImpl; +} + + +void SecureSocketImpl::connect(const SocketAddress& address, bool performHandshake) +{ + _state = ST_ERROR; + _pSocket->connect(address); + connectSSL(performHandshake); + _state = ST_DONE; +} + + +void SecureSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout, bool performHandshake) +{ + _state = ST_ERROR; + _pSocket->connect(address, timeout); + connectSSL(performHandshake); + _state = ST_DONE; +} + + +void SecureSocketImpl::connectNB(const SocketAddress& address) +{ + try + { + _state = ST_CONNECTING; + _pSocket->connectNB(address); + } + catch (...) + { + _state = ST_ERROR; + } +} + + +void SecureSocketImpl::bind(const SocketAddress& address, bool reuseAddress) +{ + _pSocket->bind(address, reuseAddress); +} + + +void SecureSocketImpl::listen(int backlog) +{ + _mode = MODE_SERVER; + + if ((_hCreds.dwLower == 0) && (_hCreds.dwUpper == 0)) + { + initServerContext(); + } + _pSocket->listen(backlog); +} + + +void SecureSocketImpl::shutdown() +{ + // TODO + if (_mode == MODE_SERVER) + serverDisconnect(&_hCreds, &_hContext); + else + clientDisconnect(&_hCreds, &_hContext); + + _pSocket->shutdown(); +} + + +void SecureSocketImpl::close() +{ + if (_mode == MODE_SERVER) + serverDisconnect(&_hCreds, &_hContext); + else + clientDisconnect(&_hCreds, &_hContext); + + _pSocket->close(); + cleanup(); +} + + +void SecureSocketImpl::abort() +{ + // TODO + _pSocket->shutdown(); +} + + +void SecureSocketImpl::acceptSSL() +{ + _state = ST_DONE; + initServerContext(); + serverConnect(); +} + + +int SecureSocketImpl::sendBytes(const void* buffer, int length, int flags) +{ + if (_state == ST_ERROR) + return 0; + + if (_state != ST_DONE) + { + bool establish = _pSocket->getBlocking(); + if (establish) + { + while (_state != ST_DONE) + stateMachine(); + } + else + { + stateMachine(); + return -1; + } + } + + int rc = 0; + int dataToSend = length; + int dataSent = 0; + const char* pBuffer = reinterpret_cast(buffer); + if (!_pSendBuffer || (_pSendBuffer->size() != _ioBufferSize)) + _pSendBuffer = new Poco::Buffer(_ioBufferSize); + + while (dataToSend > 0) + { + AutoSecBufferDesc<4> msg(&_securityFunctions, false); + int dataSize = dataToSend; + if (dataSize > _streamSizes.cbMaximumMessage) + dataSize = _streamSizes.cbMaximumMessage; + SecBuffer* pDataBuffer = 0; + SecBuffer* pExtraBuffer = 0; + + CopyMemory(_pSendBuffer->begin() + _streamSizes.cbHeader, pBuffer + dataSent, dataSize); + + msg.setSecBufferStreamHeader(0, _pSendBuffer->begin(), _streamSizes.cbHeader); + msg.setSecBufferData(1, _pSendBuffer->begin() + _streamSizes.cbHeader, dataSize); + msg.setSecBufferStreamTrailer(2, _pSendBuffer->begin() + _streamSizes.cbHeader + dataSize, _streamSizes.cbTrailer); + msg.setSecBufferEmpty(3); + + SECURITY_STATUS securityStatus = _securityFunctions.EncryptMessage(&_hContext, 0, &msg, 0); + + if (FAILED(securityStatus) && securityStatus != SEC_E_CONTEXT_EXPIRED) + throw SSLException("Failed to encrypt message", Utility::formatError(securityStatus)); + + int outBufferLen = msg[0].cbBuffer+msg[1].cbBuffer + msg[2].cbBuffer; + + int rcTmp = _pSocket->sendBytes(_pSendBuffer->begin(), outBufferLen, flags); + if (_pSocket->getBlocking() && rcTmp == -1) + { + if (dataSent == 0) + return -1; + return dataSent; + } + if (rcTmp != outBufferLen) + throw SSLException("Failed to send encrypted message"); + + dataToSend -= dataSize; + dataSent += dataSize; + rc += rcTmp; + } + return dataSent; +} + + +int SecureSocketImpl::sendRawBytes(const void* buffer, int length, int flags) +{ + return _pSocket->sendBytes(buffer, length, flags); +} + + +int SecureSocketImpl::receiveBytes(void* buffer, int length, int flags) +{ + if (_state == ST_ERROR) + return 0; + + if (_state != ST_DONE) + { + bool establish = _pSocket->getBlocking(); + if (establish) + { + while (_state != ST_DONE) + stateMachine(); + } + else + { + stateMachine(); + return -1; + } + } + + int rc(0); + if (_receiveBufferSize) // any remaining data from previous calls? + { + if (static_cast(length) < _receiveBufferSize) + { + rc = length; + CopyMemory(buffer, _pReceiveBuffer, rc); + MoveMemory(_pReceiveBuffer, _pReceiveBuffer + rc, _receiveBufferSize-rc); + _receiveBufferSize -= rc; + } + else + { + rc = _receiveBufferSize; + CopyMemory(buffer, _pReceiveBuffer, rc); + delete [] _pReceiveBuffer; + _pReceiveBuffer = 0; + _receiveBufferSize = 0; + } + } + else + { + poco_assert (!_pReceiveBuffer); + + if (!_pIOBuffer) + _pIOBuffer = new BYTE[_ioBufferSize]; + + bool cont = true; + do + { + int numBytes = _pSocket->receiveBytes(_pIOBuffer + _ioBufferOffset, _ioBufferSize - _ioBufferOffset); + + if (numBytes == -1) + return -1; + else if (numBytes == 0) + break; + else + _ioBufferOffset += numBytes; + + int bytesDecoded = 0; + _extraSecBuffer = SecBuffer(); + SECURITY_STATUS securityStatus = decodeBufferFull(_pIOBuffer, _ioBufferOffset, reinterpret_cast(buffer), length, bytesDecoded); + + if (_extraSecBuffer.cbBuffer > 0) + { + MoveMemory(_pIOBuffer, _extraSecBuffer.pvBuffer, _extraSecBuffer.cbBuffer); + _ioBufferOffset = _extraSecBuffer.cbBuffer; + } + else + { + _ioBufferOffset = 0; + cont = false; + } + + _extraSecBuffer.pvBuffer = 0; + _extraSecBuffer.cbBuffer = 0; + + if (bytesDecoded > 0) + { + // bytesDecoded contains everything including overflow data + rc = bytesDecoded; + if (rc > length) + rc = length; + + return rc; + } + + if (securityStatus == SEC_E_INCOMPLETE_MESSAGE) + { + if (!_pSocket->getBlocking()) + return -1; + continue; + } + + if (securityStatus == SEC_I_CONTEXT_EXPIRED) + { + SetLastError(securityStatus); + break; + } + + if (securityStatus != SEC_E_OK && securityStatus != SEC_I_RENEGOTIATE && securityStatus != SEC_I_CONTEXT_EXPIRED) + { + SetLastError(securityStatus); + break; + } + + if (securityStatus == SEC_I_RENEGOTIATE) + { + _doReadFirst = false; + _state = ST_CLIENTHANDSHAKECONDREAD; + if (!_pSocket->getBlocking()) + return -1; + + securityStatus = performClientHandshakeLoop(); + + if (securityStatus != SEC_E_OK) + break; + + if (_extraSecBuffer.pvBuffer) + { + MoveMemory(_pIOBuffer, _extraSecBuffer.pvBuffer, _extraSecBuffer.cbBuffer); + _ioBufferOffset = _extraSecBuffer.cbBuffer; + } + + delete [] _extraSecBuffer.pvBuffer; + } + } + while (cont); + } + + return rc; +} + + +SECURITY_STATUS SecureSocketImpl::decodeMessage(BYTE* pBuffer, DWORD bufSize, AutoSecBufferDesc<4>& msg, SecBuffer*& pDataBuffer, SecBuffer*& pExtraBuffer) +{ + msg.setSecBufferData(0, pBuffer, bufSize); + msg.setSecBufferEmpty(1); + msg.setSecBufferEmpty(2); + msg.setSecBufferEmpty(3); + pDataBuffer = 0; + pExtraBuffer = 0; + + SECURITY_STATUS securityStatus = _securityFunctions.DecryptMessage(&_hContext, &msg, 0, 0); + + if (securityStatus == SEC_E_OK || securityStatus == SEC_I_RENEGOTIATE) + { + for (int i = 1; i < 4; ++i) + { + if (pDataBuffer == 0 && msg[i].BufferType == SECBUFFER_DATA) + pDataBuffer = &msg[i]; + + if (pExtraBuffer == NULL && msg[i].BufferType == SECBUFFER_EXTRA) + pExtraBuffer = &msg[i]; + } + } + + return securityStatus; +} + + +SECURITY_STATUS SecureSocketImpl::decodeBufferFull(BYTE* pBuffer, DWORD bufSize, char* pOutBuffer, int outLength, int& bytesDecoded) +{ + poco_check_ptr (pBuffer); + poco_assert (bufSize > 0); + poco_check_ptr (pOutBuffer); + poco_assert (outLength > 0); + poco_assert (_pReceiveBuffer == 0); + + _extraSecBuffer.pvBuffer = 0; + _extraSecBuffer.cbBuffer = 0; + + SecBuffer* pDataBuffer = 0; + SecBuffer* pExtraBuffer = 0; + int bytes = 0; + bytesDecoded = 0; + +#ifdef _DEBUG + Poco::Buffer bufCpy(bufSize); + memcpy(bufCpy.begin(), pBuffer, bufSize); +#endif + + Poco::SharedPtr > ptrOverflow; + int overflowIdx = 0; + SECURITY_STATUS securityStatus = SEC_E_OK; + do + { + AutoSecBufferDesc<4> msg(&_securityFunctions, false); + securityStatus = decodeMessage(pBuffer, bufSize, msg, pDataBuffer, pExtraBuffer); + if (pDataBuffer && pDataBuffer->cbBuffer > 0) + { + bytes = pDataBuffer->cbBuffer; + bytesDecoded += bytes; + // do we have room for more data in pOutBuffer? + if (bytes <= outLength) // yes, everything fits in there + { + outLength -= bytes; + memcpy(pOutBuffer, pDataBuffer->pvBuffer, bytes); + pOutBuffer += bytes; + } + else + { + // not enough room in pOutBuffer, write overflow data + // simply reserve bufSize bytes (is large enough even in worst case scenario, no need to re-increase) + if (!ptrOverflow) + ptrOverflow = new Poco::Buffer(bufSize); + if (outLength > 0) + { + // make pOutBuffer full + memcpy(pOutBuffer, pDataBuffer->pvBuffer, outLength); + // no longer valid to write to pOutBuffer + pOutBuffer = 0; + // copy the rest to ptrOverflow + memcpy(ptrOverflow->begin(), reinterpret_cast(pDataBuffer->pvBuffer) + outLength, bytes - outLength); + overflowIdx = bytes - outLength; + outLength = 0; + } + else + { + // append to ptrOverflow + poco_assert_dbg (overflowIdx + bytes <= ptrOverflow->size()); + memcpy(ptrOverflow->begin() + overflowIdx, pDataBuffer->pvBuffer, bytes); + overflowIdx += bytes; + } + } + } + if (pExtraBuffer && pExtraBuffer->cbBuffer > 0) + { + // we have potentially more data to decode + // decode as much as possible + pBuffer = reinterpret_cast(pExtraBuffer->pvBuffer); + bufSize = pExtraBuffer->cbBuffer; + + poco_assert_dbg (memcmp(pBuffer, bufCpy.end() - bufSize, bufSize) == 0); + } + else + { + // everything decoded + if (securityStatus != SEC_E_OK && securityStatus != SEC_E_INCOMPLETE_MESSAGE && securityStatus != SEC_I_RENEGOTIATE && securityStatus != SEC_I_CONTEXT_EXPIRED) + { + throw SSLException("Failed to decode data", Utility::formatError(securityStatus)); + } + else if (securityStatus == SEC_E_OK) + { + pBuffer = 0; + bufSize = 0; + } + } + + if (securityStatus == SEC_I_RENEGOTIATE) + { + _doReadFirst = false; + securityStatus = performClientHandshakeLoop(); + if (securityStatus != SEC_E_OK) + break; + } + } + while (securityStatus == SEC_E_OK && pBuffer); + + if (overflowIdx > 0) + { + _pReceiveBuffer = new BYTE[overflowIdx]; + memcpy(_pReceiveBuffer, ptrOverflow->begin(), overflowIdx); + _receiveBufferSize = overflowIdx; + } + if (bufSize > 0) + { + _extraSecBuffer.cbBuffer = bufSize; + _extraSecBuffer.pvBuffer = pBuffer; + } + + if (pBuffer == 0) securityStatus = SEC_E_OK; + return securityStatus; +} + + +int SecureSocketImpl::receiveRawBytes(void* buffer, int length, int flags) +{ + return _pSocket->receiveBytes(buffer, length, flags); +} + + +void SecureSocketImpl::setPeerHostName(const std::string& peerHostName) +{ + _peerHostName = peerHostName; +} + + +PCCERT_CONTEXT SecureSocketImpl::loadCertificate(const std::string& certStore, const std::string& certName, bool useMachineStore, bool mustFindCertificate) +{ + PCCERT_CONTEXT pCert = 0; + + std::wstring wcertStore; + Poco::UnicodeConverter::convert(certStore, wcertStore); + if (!_hCertificateStore) + { + if (useMachineStore) + _hCertificateStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_LOCAL_MACHINE, certStore.c_str()); + else + _hCertificateStore = CertOpenSystemStoreW(0, wcertStore.c_str()); + } + if (!_hCertificateStore) + { + throw SSLException("Failed to open certificate store", certStore, GetLastError()); + } + if (!certName.empty()) + { + CERT_RDN_ATTR cert_rdn_attr; + cert_rdn_attr.pszObjId = szOID_COMMON_NAME; + cert_rdn_attr.dwValueType = CERT_RDN_ANY_TYPE; + cert_rdn_attr.Value.cbData = (DWORD) certName.size(); + cert_rdn_attr.Value.pbData = (BYTE *) certName.c_str(); + + CERT_RDN cert_rdn; + cert_rdn.cRDNAttr = 1; + cert_rdn.rgRDNAttr = &cert_rdn_attr; + + pCert = CertFindCertificateInStore(_hCertificateStore, X509_ASN_ENCODING, 0, CERT_FIND_SUBJECT_ATTR, &cert_rdn, NULL); + if (!pCert) + { + // we throw independently of mustFind. If a name is specified we consider it an error + // if we don't find the given certificate + throw SSLException(Poco::format("Failed to find certificate %s in store %s", certName, certStore)); + } + } + + if (mustFindCertificate && !pCert) + throw SSLException(Poco::format("Failed to find certificate %s in store %s", certName, certStore)); + + return pCert; +} + + +void SecureSocketImpl::acquireSchannelContext(Mode mode, PCCERT_CONTEXT pCertContext, CredHandle& outHandle) +{ + SCHANNEL_CRED schannelCred; + ZeroMemory(&schannelCred, sizeof(schannelCred)); + schannelCred.dwVersion = SCHANNEL_CRED_VERSION; + + if (pCertContext != 0) + { + schannelCred.cCreds = 1; // how many cred are stored in &pCertContext + schannelCred.paCred = &pCertContext; + } + + schannelCred.grbitEnabledProtocols = proto(); + + // Windows NT and Windows Me/98/95: revocation checking not supported via flags + if (_pContext->options() & Context::OPT_PERFORM_REVOCATION_CHECK) + schannelCred.dwFlags |= SCH_CRED_REVOCATION_CHECK_CHAIN; + else + schannelCred.dwFlags |= SCH_CRED_IGNORE_NO_REVOCATION_CHECK | SCH_CRED_IGNORE_REVOCATION_OFFLINE; + + if (mode == MODE_SERVER) + { + if (_pContext->verificationMode() == Context::VERIFY_STRICT) + schannelCred.dwFlags |= SCH_CRED_NO_SYSTEM_MAPPER; + + if (_pContext->verificationMode() == Context::VERIFY_NONE) + schannelCred.dwFlags |= SCH_CRED_MANUAL_CRED_VALIDATION; + } + else + { + if (_pContext->verificationMode() == Context::VERIFY_STRICT) + schannelCred.dwFlags |= SCH_CRED_NO_DEFAULT_CREDS; + else + schannelCred.dwFlags |= SCH_CRED_USE_DEFAULT_CREDS; + + if (_pContext->verificationMode() == Context::VERIFY_NONE) + schannelCred.dwFlags |= SCH_CRED_MANUAL_CRED_VALIDATION | SCH_CRED_NO_SERVERNAME_CHECK; + } + +#if defined(SCH_USE_STRONG_CRYPTO) + if (_pContext->options() & Context::OPT_USE_STRONG_CRYPTO) + schannelCred.dwFlags |= SCH_USE_STRONG_CRYPTO; +#endif + + schannelCred.hRootStore = _pContext->certificateStore(); + + TimeStamp tsExpiry; + tsExpiry.LowPart = tsExpiry.HighPart = 0; + SECURITY_STATUS status = _securityFunctions.AcquireCredentialsHandleW( + NULL, + UNISP_NAME_W, + mode == MODE_SERVER ? SECPKG_CRED_INBOUND : SECPKG_CRED_OUTBOUND, + NULL, + &schannelCred, + NULL, + NULL, + &outHandle, + &tsExpiry); + + if (status != SEC_E_OK) + { + cleanup(); + throw SSLException("Failed to acquire Schannel credentials", Utility::formatError(status)); + } +} + + +bool SecureSocketImpl::loadSecurityLibrary() +{ + if (_hSecurityModule) return true; + + OSVERSIONINFO VerInfo; + std::wstring dllPath; + + // Find out which security DLL to use, depending on + // whether we are on Win2k, NT or Win9x + + VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if (!GetVersionEx(&VerInfo)) + { + return false; + } + +#if defined(_WIN32_WCE) + dllPath = L"Secur32.dll"; +#else + if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT + && VerInfo.dwMajorVersion == 4) + { + dllPath = L"Security.dll"; + } + else if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS || + VerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT ) + { + dllPath = L"Secur32.dll"; + } + else + { + return false; + } +#endif + + // + // Load Security DLL + // + + _hSecurityModule = LoadLibraryW(dllPath.c_str()); + if(_hSecurityModule == 0) + { + return false; + } + +#if defined(_WIN32_WCE) + INIT_SECURITY_INTERFACE pInitSecurityInterface = (INIT_SECURITY_INTERFACE)GetProcAddressW( _hSecurityModule, L"InitSecurityInterfaceW"); +#else + INIT_SECURITY_INTERFACE pInitSecurityInterface = (INIT_SECURITY_INTERFACE)GetProcAddress( _hSecurityModule, "InitSecurityInterfaceW"); +#endif + + if (!pInitSecurityInterface) + { + FreeLibrary(_hSecurityModule); + _hSecurityModule = 0; + return false; + } + + PSecurityFunctionTable pSecurityFunc = pInitSecurityInterface(); + if (!pSecurityFunc) + { + FreeLibrary(_hSecurityModule); + _hSecurityModule = 0; + return false; + } + + CopyMemory(&_securityFunctions, pSecurityFunc, sizeof(_securityFunctions)); + + return true; +} + + +void SecureSocketImpl::connectSSL(bool completeHandshake) +{ + poco_assert_dbg(_pPeerCertificate == 0); + poco_assert_dbg(_hostName.empty()); + + _hostName = _pSocket->address().host().toString(); + + initClientContext(); + performClientHandshake(); + clientConnectVerify(); +} + + +void SecureSocketImpl::clientConnectVerify() +{ + poco_assert_dbg(!_pPeerCertificate); + poco_assert_dbg(!_hostName.empty()); + + try + { + SECURITY_STATUS securityStatus = _securityFunctions.QueryContextAttributesW(&_hContext, SECPKG_ATTR_REMOTE_CERT_CONTEXT, (PVOID) &_pPeerCertificate); + if (securityStatus != SEC_E_OK) + throw SSLException("Failed to obtain peer certificate", Utility::formatError(securityStatus)); + + clientVerifyCertificate(_pPeerCertificate, _hostName, 0); + + securityStatus = _securityFunctions.QueryContextAttributesW(&_hContext, SECPKG_ATTR_STREAM_SIZES, &_streamSizes); + if (securityStatus != SEC_E_OK) + throw SSLException("Failed to query stream sizes", Utility::formatError(securityStatus)); + + _ioBufferSize = _streamSizes.cbHeader + _streamSizes.cbMaximumMessage + _streamSizes.cbTrailer; + _state = ST_DONE; + } + catch (...) + { + if (_pPeerCertificate) + { + CertFreeCertificateContext(_pPeerCertificate); + _pPeerCertificate = 0; + } + throw; + } +} + + +void SecureSocketImpl::initClientContext() +{ + _pServerCertificate = loadCertificate(_pContext->certificateStoreName(), _pContext->certificateName(), _useMachineStore, false); + acquireSchannelContext(MODE_CLIENT, _pServerCertificate, _hCreds); +} + + +void SecureSocketImpl::performClientHandshake() +{ + performInitialClientHandshake(); + performClientHandshakeLoop(); +} + + +void SecureSocketImpl::performInitialClientHandshake() +{ + // get initial security token + _outSecBuffer = AutoSecBufferDesc<1>(&_securityFunctions, true); + _outSecBuffer.setSecBufferToken(0, 0, 0); + + TimeStamp ts; + DWORD contextAttributes(0); + std::wstring whostName; + Poco::UnicodeConverter::convert(_hostName, whostName); + _securityStatus = _securityFunctions.InitializeSecurityContextW( + &_hCreds, + 0, + const_cast(whostName.c_str()), + _clientFlags, + 0, + SECURITY_NATIVE_DREP, + 0, + 0, + &_hContext, // init hContext + &_outSecBuffer, + &contextAttributes, + &ts); + + if (_securityStatus != SEC_E_OK) + { + if (_securityStatus == SEC_I_INCOMPLETE_CREDENTIALS) + { + // the server is asking for client credentials, we didn't send one because we were not configured to do so, abort + throw SSLException("Handshake failed: No client credentials configured"); + } + else if (_securityStatus != SEC_I_CONTINUE_NEEDED) + { + throw SSLException("Handshake failed", Utility::formatError(_securityStatus)); + } + } + + // incomplete credentials: more calls to InitializeSecurityContext needed + // send the token + sendInitialTokenOutBuffer(); + + if (_securityStatus == SEC_E_OK) + { + // The security context was successfully initialized. + // There is no need for another InitializeSecurityContext (Schannel) call. + _state = ST_DONE; + return; + } + + //SEC_I_CONTINUE_NEEDED was returned: + // Wait for a return token. The returned token is then passed in + // another call to InitializeSecurityContext (Schannel). The output token can be empty. + + _extraSecBuffer = SecBuffer(); + _doReadFirst = true; + _state = ST_CLIENTHANDSHAKECONDREAD; + _securityStatus = SEC_E_INCOMPLETE_MESSAGE; +} + + +void SecureSocketImpl::sendInitialTokenOutBuffer() +{ + // send the token + if (_outSecBuffer[0].cbBuffer != 0 && _outSecBuffer[0].pvBuffer != 0) + { + int numBytes = sendRawBytes(_outSecBuffer[0].pvBuffer, _outSecBuffer[0].cbBuffer); + + if (numBytes != _outSecBuffer[0].cbBuffer) + throw SSLException("Failed to send token to the server"); + } +} + + +SECURITY_STATUS SecureSocketImpl::performClientHandshakeLoop() +{ + _bytesRead = 0; + _bytesReadSum = 0; + _securityStatus = SEC_E_INCOMPLETE_MESSAGE; + + while (_securityStatus == SEC_I_CONTINUE_NEEDED || _securityStatus == SEC_E_INCOMPLETE_MESSAGE || _securityStatus == SEC_I_INCOMPLETE_CREDENTIALS) + { + performClientHandshakeLoopCondRead(); + + if (_securityStatus == SEC_E_OK) + performClientHandshakeLoopOK(); + else if (_securityStatus == SEC_I_CONTINUE_NEEDED) + performClientHandshakeLoopContinueNeeded(); + else if (FAILED(_securityStatus)) + { + if (_outFlags & ISC_RET_EXTENDED_ERROR) + performClientHandshakeLoopExtError(); + else + performClientHandshakeLoopError(); + } + else + performClientHandshakeLoopIncompleteMessage(); + } + + if (FAILED(_securityStatus)) + { + performClientHandshakeLoopError(); + } + + return _securityStatus; +} + + + +void SecureSocketImpl::performClientHandshakeLoopExtError() +{ + poco_assert_dbg (FAILED(_securityStatus)); + + performClientHandshakeSendOutBuffer(); + performClientHandshakeLoopError(); +} + + +void SecureSocketImpl::performClientHandshakeLoopError() +{ + poco_assert_dbg (FAILED(_securityStatus)); + cleanup(); + _state = ST_ERROR; + throw SSLException("Error during handshake", Utility::formatError(_securityStatus)); +} + +void SecureSocketImpl::performClientHandshakeSendOutBuffer() +{ + if (_outSecBuffer[0].cbBuffer != 0 && _outSecBuffer[0].pvBuffer != NULL) + { + int numBytes = sendRawBytes(static_cast(_outSecBuffer[0].pvBuffer), _outSecBuffer[0].cbBuffer); + + if (numBytes != _outSecBuffer[0].cbBuffer) + { + cleanup(); + throw SSLException("Socket error during handshake"); + } + _bytesReadSum = 0; + _outSecBuffer.release(0); + } +} + + +void SecureSocketImpl::performClientHandshakeExtraBuffer() +{ + if (_inSecBuffer[1].BufferType == SECBUFFER_EXTRA) + { + _extraSecBuffer.pvBuffer = new BYTE[_inSecBuffer[1].cbBuffer]; + + MoveMemory(_extraSecBuffer.pvBuffer, _ioCharBuffer.begin() + (_bytesReadSum - _inSecBuffer[1].cbBuffer), _inSecBuffer[1].cbBuffer); + + _extraSecBuffer.cbBuffer = _inSecBuffer[1].cbBuffer; + _extraSecBuffer.BufferType = SECBUFFER_TOKEN; + } + else + { + _extraSecBuffer.pvBuffer = 0; + _extraSecBuffer.cbBuffer = 0; + _extraSecBuffer.BufferType = SECBUFFER_EMPTY; + } +} + + +void SecureSocketImpl::performClientHandshakeLoopOK() +{ + poco_assert_dbg(_securityStatus == SEC_E_OK); + + performClientHandshakeSendOutBuffer(); + performClientHandshakeExtraBuffer(); + _state = ST_VERIFY; +} + + +void SecureSocketImpl::performClientHandshakeLoopInit() +{ + _inSecBuffer = AutoSecBufferDesc<2> (&_securityFunctions, false); + _outSecBuffer = AutoSecBufferDesc<1>(&_securityFunctions, true); +} + + +void SecureSocketImpl::performClientHandshakeLoopRead() +{ + poco_assert_dbg (_doReadFirst); + + poco_assert (IO_BUFFER_SIZE > _bytesReadSum); + _bytesRead = receiveRawBytes((void *)(_ioCharBuffer.begin() + _bytesReadSum), IO_BUFFER_SIZE - _bytesReadSum); + if (_bytesRead <= 0) + throw SSLException("Error during handshake: failed to read data"); + + _bytesReadSum += _bytesRead; +} + + +void SecureSocketImpl::performClientHandshakeLoopCondRead() +{ + poco_assert_dbg (_securityStatus == SEC_E_INCOMPLETE_MESSAGE || SEC_I_CONTINUE_NEEDED); + + performClientHandshakeLoopInit(); + if (_doReadFirst) + { + performClientHandshakeLoopRead(); + } + else _doReadFirst = true; + + _inSecBuffer.setSecBufferToken(0, _ioCharBuffer.begin(), _bytesReadSum); + // inbuffer 1 should be empty + _inSecBuffer.setSecBufferEmpty(1); + + // outBuffer[0] should be empty + _outSecBuffer.setSecBufferToken(0, 0, 0); + + _outFlags = 0; + TimeStamp ts; + _securityStatus = _securityFunctions.InitializeSecurityContextW( + &_hCreds, + &_hContext, + 0, + _clientFlags, + 0, + SECURITY_NATIVE_DREP, + &_inSecBuffer, + 0, + 0, + &_outSecBuffer, + &_outFlags, + &ts); + + if (_securityStatus == SEC_E_OK) + { + _state = ST_CLIENTHANDSHAKEOK; + } + else if (_securityStatus == SEC_I_CONTINUE_NEEDED) + { + _state = ST_CLIENTHANDSHAKECONTINUE; + } + else if (FAILED(_securityStatus)) + { + if (_outFlags & ISC_RET_EXTENDED_ERROR) + _state = ST_CLIENTHANDSHAKEEXTERROR; + else + _state = ST_ERROR; + } + else + { + _state = ST_CLIENTHANDSHAKEINCOMPLETE; + } +} + + +void SecureSocketImpl::performClientHandshakeLoopContinueNeeded() +{ + performClientHandshakeSendOutBuffer(); + + if (_inSecBuffer[1].BufferType == SECBUFFER_EXTRA) + { + MoveMemory(_ioCharBuffer.begin(), + _ioCharBuffer.begin() + (_bytesReadSum - _inSecBuffer[1].cbBuffer), + _inSecBuffer[1].cbBuffer); + + _bytesReadSum = _inSecBuffer[1].cbBuffer; + } + else _bytesReadSum = 0; + + _state = ST_CLIENTHANDSHAKECONDREAD; +} + + +void SecureSocketImpl::performClientHandshakeLoopIncompleteMessage() +{ + _doReadFirst = true; + _state = ST_CLIENTHANDSHAKECONDREAD; +} + + +void SecureSocketImpl::initServerContext() +{ + _pServerCertificate = loadCertificate(_pContext->certificateStoreName(), _pContext->certificateName(), _useMachineStore, true); + acquireSchannelContext(MODE_SERVER, _pServerCertificate, _hCreds); +} + + +void SecureSocketImpl::serverConnect() +{ + serverHandshakeLoop(&_hContext, &_hCreds, _clientAuthRequired, TRUE, TRUE); + + SECURITY_STATUS securityStatus; + if (_clientAuthRequired) + { + poco_assert_dbg (!_pPeerCertificate); + securityStatus = _securityFunctions.QueryContextAttributesW(&_hContext, SECPKG_ATTR_REMOTE_CERT_CONTEXT, &_pPeerCertificate); + + if (securityStatus != SEC_E_OK) + { + if (_pPeerCertificate) + { + CertFreeCertificateContext(_pPeerCertificate); + _pPeerCertificate = 0; + } + throw SSLException("Cannot obtain client certificate", Utility::formatError(securityStatus)); + } + else + { + serverVerifyCertificate(_pPeerCertificate, 0); + } + } + + securityStatus = _securityFunctions.QueryContextAttributesW(&_hContext,SECPKG_ATTR_STREAM_SIZES, &_streamSizes); + if (securityStatus != SEC_E_OK) + { + throw SSLException("Cannot query stream sizes", Utility::formatError(securityStatus)); + } + + _ioBufferSize = _streamSizes.cbHeader + _streamSizes.cbMaximumMessage + _streamSizes.cbTrailer; +} + + +bool SecureSocketImpl::serverHandshakeLoop(PCtxtHandle phContext, PCredHandle phCred, BOOL requireClientAuth, BOOL fDoInitialRead, BOOL NewContext) +{ + TimeStamp tsExpiry; + DWORD err(0); + BOOL doRead = fDoInitialRead; + BOOL initContext = NewContext; + DWORD outFlags; + BYTE ioBuffer[IO_BUFFER_SIZE]; + DWORD ioBufferIdx = 0; + SECURITY_STATUS securityStatus = SEC_E_INCOMPLETE_MESSAGE; + + while (securityStatus == SEC_I_CONTINUE_NEEDED || securityStatus == SEC_E_INCOMPLETE_MESSAGE || securityStatus == SEC_I_INCOMPLETE_CREDENTIALS) + { + if (securityStatus == SEC_E_INCOMPLETE_MESSAGE) + { + if (doRead) + { + err = receiveRawBytes(ioBuffer+ioBufferIdx, IO_BUFFER_SIZE-ioBufferIdx); + + if (err == SOCKET_ERROR || err == 0) + throw SSLException("Failed to receive data in handshake"); + else + ioBufferIdx += err; + } + else doRead = TRUE; + } + + AutoSecBufferDesc<2> inBuffer(&_securityFunctions, false); + AutoSecBufferDesc<1> outBuffer(&_securityFunctions, true); + inBuffer.setSecBufferToken(0, ioBuffer, ioBufferIdx); + inBuffer.setSecBufferEmpty(1); + outBuffer.setSecBufferToken(0, 0, 0); + + securityStatus = _securityFunctions.AcceptSecurityContext( + phCred, + initContext ? NULL : phContext, + &inBuffer, + _serverFlags, + SECURITY_NATIVE_DREP, + initContext ? phContext : NULL, + &outBuffer, + &outFlags, + &tsExpiry); + + initContext = FALSE; + + if (securityStatus == SEC_E_OK || securityStatus == SEC_I_CONTINUE_NEEDED || (FAILED(securityStatus) && (0 != (outFlags & ISC_RET_EXTENDED_ERROR)))) + { + if (outBuffer[0].cbBuffer != 0 && outBuffer[0].pvBuffer != 0) + { + err = sendRawBytes(outBuffer[0].pvBuffer, outBuffer[0].cbBuffer); + outBuffer.release(0); + } + } + + if (securityStatus == SEC_E_OK ) + { + if (inBuffer[1].BufferType == SECBUFFER_EXTRA) + { + memcpy(ioBuffer, ioBuffer + (ioBufferIdx - inBuffer[1].cbBuffer), inBuffer[1].cbBuffer); + ioBufferIdx = inBuffer[1].cbBuffer; + } + else ioBufferIdx = 0; + return true; + } + else if (FAILED(securityStatus) && (securityStatus != SEC_E_INCOMPLETE_MESSAGE)) + { + throw SSLException("Handshake failure:", Utility::formatError(securityStatus)); + } + + if (securityStatus != SEC_E_INCOMPLETE_MESSAGE && securityStatus != SEC_I_INCOMPLETE_CREDENTIALS) + { + if (inBuffer[1].BufferType == SECBUFFER_EXTRA) + { + memcpy(ioBuffer, ioBuffer + (ioBufferIdx - inBuffer[1].cbBuffer), inBuffer[1].cbBuffer); + ioBufferIdx = inBuffer[1].cbBuffer; + } + else ioBufferIdx = 0; + } + } + + return FALSE; +} + + +void SecureSocketImpl::clientVerifyCertificate(PCCERT_CONTEXT pServerCert, const std::string& serverName, DWORD dwCertFlags) +{ + if (_pContext->verificationMode() == Context::VERIFY_NONE) + return; + + if (pServerCert == NULL) + throw SSLException("No Server certificate"); + + if (serverName.empty()) + throw SSLException("Server name not set"); + + int iRc = CertVerifyTimeValidity(NULL,pServerCert->pCertInfo); + if (iRc != 0) + { + X509Certificate cert(pServerCert, true); + VerificationErrorArgs args(cert, 0, SEC_E_CERT_EXPIRED, "The certificate is expired"); + SSLManager::instance().ClientVerificationError(this, args); + if (!args.getIgnoreError()) + throw InvalidCertificateException("Expired certificate"); + } + + CERT_CHAIN_PARA chainPara; + PCCERT_CHAIN_CONTEXT pChainContext = NULL; + ZeroMemory(&chainPara, sizeof(chainPara)); + chainPara.cbSize = sizeof(chainPara); + + if (!CertGetCertificateChain( + NULL, + pServerCert, + NULL, + NULL, + &chainPara, + 0, + NULL, + &pChainContext)) + { + CertFreeCertificateChain(pChainContext); + throw SSLException("Failed to get certificate chain", GetLastError()); + } + + verifyCertificateChainClient(pServerCert, pChainContext); +} + + + +void SecureSocketImpl::verifyCertificateChainClient(PCCERT_CONTEXT pServerCert, PCCERT_CHAIN_CONTEXT pChainContext) +{ + X509Certificate cert(pServerCert, true); + + HTTPSPolicyCallbackData polHttps; + memset(&polHttps, 0, sizeof(HTTPSPolicyCallbackData)); + polHttps.cbStruct = sizeof(HTTPSPolicyCallbackData); + polHttps.dwAuthType = AUTHTYPE_SERVER; + polHttps.fdwChecks = SECURITY_FLAG_IGNORE_UNKNOWN_CA; // we do our own CA verification! + polHttps.pwszServerName = 0;// not supported on Win98, ME! but ignored on client side anyway + + CERT_CHAIN_POLICY_PARA polPara; + memset(&polPara, 0, sizeof(polPara)); + polPara.cbSize = sizeof(polPara); + polPara.pvExtraPolicyPara = &polHttps; + + CERT_CHAIN_POLICY_STATUS polStatus; + memset(&polStatus, 0, sizeof(polStatus)); + polStatus.cbSize = sizeof(polStatus); + + if (!CertVerifyCertificateChainPolicy( + CERT_CHAIN_POLICY_SSL, + pChainContext, + &polPara, + &polStatus)) + { + VerificationErrorArgs args(cert, 0, GetLastError(), "Failed to verify certificate chain"); + SSLManager::instance().ClientVerificationError(this, args); + if (!args.getIgnoreError()) + { + CertFreeCertificateChain(pChainContext); + throw SSLException("Failed to verify certificate chain"); + } + else return; + } + + if (polStatus.dwError) + { + VerificationErrorArgs args(cert, polStatus.lElementIndex, polStatus.dwError, Utility::formatError(polStatus.dwError)); + SSLManager::instance().ClientVerificationError(this, args); + CertFreeCertificateChain(pChainContext); + if (!args.getIgnoreError()) + { + throw SSLException("Failed to verify certificate chain"); + } + else return; + } + + // now verify CA's + HCERTSTORE trustedCerts = _pContext->certificateStore(); + Poco::Buffer certs(pChainContext->cChain); + for (DWORD i = 0; i < pChainContext->cChain; i++) + { + certs[i] = (PCERT_CONTEXT)(pChainContext->rgpChain[i]->rgpElement[0]->pCertContext); + // each issuer of the pCert must be a member of the trustedCerts store + PCCERT_CONTEXT pResult = CertFindCertificateInStore(trustedCerts, certs[i]->dwCertEncodingType, 0, CERT_FIND_ISSUER_OF, certs[i], 0); + + if (!pResult) + { + poco_assert_dbg (GetLastError() == CRYPT_E_NOT_FOUND); + VerificationErrorArgs args(cert, i, 0, "Certificate Authority not trusted"); + SSLManager::instance().ClientVerificationError(this, args); + CertFreeCertificateChain(pChainContext); + if (!args.getIgnoreError()) + throw CertificateValidationException("Failed to verify certificate chain: CA not trusted"); + else + return; + } + CertFreeCertificateContext(pResult); + } + +#if !defined(_WIN32_WCE) + // check if cert is revoked + if (_pContext->options() & Context::OPT_PERFORM_REVOCATION_CHECK) + { + CERT_REVOCATION_STATUS revStat; + revStat.cbSize = sizeof(CERT_REVOCATION_STATUS); + + PCERT_CONTEXT* pCerts = certs.begin(); + BOOL rc = CertVerifyRevocation( + X509_ASN_ENCODING, + CERT_CONTEXT_REVOCATION_TYPE, + pChainContext->cChain, + (void **)pCerts, + CERT_VERIFY_REV_CHAIN_FLAG, + NULL, + &revStat); + + if (FALSE == rc) + { + VerificationErrorArgs args(cert, revStat.dwIndex, revStat.dwReason, Utility::formatError(revStat.dwError)); + SSLManager::instance().ClientVerificationError(this, args); + if (!args.getIgnoreError()) + { + CertFreeCertificateChain(pChainContext); + throw SSLException("Failed to verify revoked certificate chain"); + } + } + } +#endif + CertFreeCertificateChain(pChainContext); +} + + +void SecureSocketImpl::serverVerifyCertificate(PCCERT_CONTEXT pPeerCert, DWORD dwCertFlags) +{ + if (_pContext->verificationMode() < Context::VERIFY_STRICT) + return; + + DWORD status = SEC_E_OK; + + X509Certificate cert(pPeerCert, true); + // we are now in Strict mode + if (pPeerCert == 0) throw SSLException("No client certificate"); + + int iRc = CertVerifyTimeValidity(NULL, pPeerCert->pCertInfo); + if (iRc != 0) + { + VerificationErrorArgs args(cert, 0, SEC_E_CERT_EXPIRED, "The certificate is expired"); + SSLManager::instance().ServerVerificationError(this, args); + + if (!args.getIgnoreError()) + throw SSLException("Expired certificate"); + else + return; + } + + PCCERT_CHAIN_CONTEXT pChainContext = NULL; + CERT_CHAIN_PARA chainPara; + ZeroMemory(&chainPara, sizeof(chainPara)); + chainPara.cbSize = sizeof(chainPara); + + if (!CertGetCertificateChain( + NULL, + pPeerCert, + NULL, + NULL, + &chainPara, + CERT_CHAIN_REVOCATION_CHECK_CHAIN, + NULL, + &pChainContext)) + { + VerificationErrorArgs args(cert, 0, GetLastError(), "The certificate chain is expired"); + SSLManager::instance().ServerVerificationError(this, args); + if (pChainContext) CertFreeCertificateChain(pChainContext); + if (!args.getIgnoreError()) + { + throw SSLException("The certificate chain is expired"); + } + else return; + } + + HTTPSPolicyCallbackData polHttps; + ZeroMemory(&polHttps, sizeof(HTTPSPolicyCallbackData)); + polHttps.cbStruct = sizeof(HTTPSPolicyCallbackData); + polHttps.dwAuthType = AUTHTYPE_CLIENT; + polHttps.fdwChecks = dwCertFlags; + polHttps.pwszServerName = NULL; + + CERT_CHAIN_POLICY_PARA policyPara; + memset(&policyPara, 0, sizeof(policyPara)); + policyPara.cbSize = sizeof(policyPara); + policyPara.pvExtraPolicyPara = &polHttps; + + CERT_CHAIN_POLICY_STATUS policyStatus; + memset(&policyStatus, 0, sizeof(policyStatus)); + policyStatus.cbSize = sizeof(policyStatus); + + if (!CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_SSL, pChainContext, &policyPara, &policyStatus)) + { + VerificationErrorArgs args(cert, 0, GetLastError(), "Failed to verify certificate chain"); + SSLManager::instance().ServerVerificationError(this, args); + if (pChainContext) CertFreeCertificateChain(pChainContext); + if (!args.getIgnoreError()) + throw SSLException("Failed to verify certificate chain"); + else + return; + } + + if (policyStatus.dwError) + { + VerificationErrorArgs args(cert, policyStatus.lElementIndex, status, Utility::formatError(policyStatus.dwError)); + SSLManager::instance().ServerVerificationError(this, args); + if (pChainContext) CertFreeCertificateChain(pChainContext); + if (!args.getIgnoreError()) + throw SSLException("Failed to verify certificate chain"); + else + return; + } + +#if !defined(_WIN32_WCE) + PCERT_CONTEXT *pCerts = new PCERT_CONTEXT[pChainContext->cChain]; + for (DWORD i = 0; i < pChainContext->cChain; i++) + { + pCerts[i] = (PCERT_CONTEXT)(pChainContext->rgpChain[i]->rgpElement[0]->pCertContext); + } + + CERT_REVOCATION_STATUS revStat; + revStat.cbSize = sizeof(CERT_REVOCATION_STATUS); + + BOOL bRc = CertVerifyRevocation( + X509_ASN_ENCODING, + CERT_CONTEXT_REVOCATION_TYPE, + pChainContext->cChain, + (void **)pCerts, + CERT_VERIFY_REV_CHAIN_FLAG, + NULL, + &revStat); + if (!bRc) + { + VerificationErrorArgs args(cert, revStat.dwIndex, revStat.dwReason, Utility::formatError(revStat.dwReason)); + SSLManager::instance().ServerVerificationError(this, args); + if (!args.getIgnoreError()) + { + CertFreeCertificateChain(pChainContext); + delete [] pCerts; + throw SSLException("Failed to verify certificate chain"); + } + } + + delete [] pCerts; +#endif + if (pChainContext) + { + CertFreeCertificateChain(pChainContext); + } +} + + +LONG SecureSocketImpl::clientDisconnect(PCredHandle phCreds, CtxtHandle *phContext) +{ + AutoSecBufferDesc<1> tokBuffer(&_securityFunctions, false); + + DWORD dwType = SCHANNEL_SHUTDOWN; + tokBuffer.setSecBufferToken(0, &dwType, sizeof(dwType)); + DWORD status = _securityFunctions.ApplyControlToken(phContext, &tokBuffer); + + if (FAILED(status)) return status; + + DWORD dwSSPIFlags = ISC_REQ_SEQUENCE_DETECT + | ISC_REQ_REPLAY_DETECT + | ISC_REQ_CONFIDENTIALITY + | ISC_RET_EXTENDED_ERROR + | ISC_REQ_ALLOCATE_MEMORY + | ISC_REQ_STREAM; + + AutoSecBufferDesc<1> outBuffer(&_securityFunctions, true); + outBuffer.setSecBufferToken(0, 0, 0); + + DWORD dwSSPIOutFlags; + TimeStamp tsExpiry; + status = _securityFunctions.InitializeSecurityContextW( + phCreds, + phContext, + NULL, + dwSSPIFlags, + 0, + SECURITY_NATIVE_DREP, + NULL, + 0, + phContext, + &outBuffer, + &dwSSPIOutFlags, + &tsExpiry); + + return status; +} + + +LONG SecureSocketImpl::serverDisconnect(PCredHandle phCreds, CtxtHandle *phContext) +{ + AutoSecBufferDesc<1> tokBuffer(&_securityFunctions, false); + + DWORD dwType = SCHANNEL_SHUTDOWN; + tokBuffer.setSecBufferToken(0, &dwType, sizeof(dwType)); + DWORD status = _securityFunctions.ApplyControlToken(phContext, &tokBuffer); + + if (FAILED(status)) return status; + + DWORD dwSSPIFlags = ASC_REQ_SEQUENCE_DETECT + | ASC_REQ_REPLAY_DETECT + | ASC_REQ_CONFIDENTIALITY + | ASC_REQ_EXTENDED_ERROR + | ASC_REQ_ALLOCATE_MEMORY + | ASC_REQ_STREAM; + + AutoSecBufferDesc<1> outBuffer(&_securityFunctions, true); + outBuffer.setSecBufferToken(0,0,0); + + DWORD dwSSPIOutFlags; + TimeStamp tsExpiry; + status = _securityFunctions.AcceptSecurityContext( + phCreds, + phContext, + NULL, + dwSSPIFlags, + SECURITY_NATIVE_DREP, + NULL, + &outBuffer, + &dwSSPIOutFlags, + &tsExpiry); + + if (FAILED(status)) return status; + + PBYTE pbMessage = (BYTE *)(outBuffer[0].pvBuffer); + DWORD cbMessage = outBuffer[0].cbBuffer; + + if (pbMessage != NULL && cbMessage != 0) + { + DWORD cbData = sendRawBytes(pbMessage, cbMessage); + if (cbData == SOCKET_ERROR || cbData == 0) + { + status = WSAGetLastError(); + } + } + + return status; +} + + +DWORD SecureSocketImpl::proto() const +{ + switch (_pContext->usage()) + { + case Context::CLIENT_USE: + return SP_PROT_SSL3_CLIENT | SP_PROT_TLS1_CLIENT; + case Context::SERVER_USE: + return SP_PROT_SSL3_SERVER | SP_PROT_TLS1_SERVER; + case Context::TLSV1_CLIENT_USE: + return SP_PROT_TLS1_CLIENT; + case Context::TLSV1_SERVER_USE: + return SP_PROT_TLS1_SERVER; +#if defined(SP_PROT_TLS1_1) + case Context::TLSV1_1_CLIENT_USE: + return SP_PROT_TLS1_1_CLIENT; + case Context::TLSV1_1_SERVER_USE: + return SP_PROT_TLS1_1_SERVER; +#endif +#if defined(SP_PROT_TLS1_2) + case Context::TLSV1_2_CLIENT_USE: + return SP_PROT_TLS1_2_CLIENT; + case Context::TLSV1_2_SERVER_USE: + return SP_PROT_TLS1_2_SERVER; +#endif + default: + throw Poco::InvalidArgumentException("Unsupported SSL/TLS protocol version"); + } +} + + +void SecureSocketImpl::stateIllegal() +{ + throw Poco::IllegalStateException("SSL state machine"); +} + + +void SecureSocketImpl::stateConnected() +{ + _hostName = _pSocket->address().host().toString(); + initClientContext(); + performInitialClientHandshake(); +} + + +void SecureSocketImpl::stateMachine() +{ + StateMachine::instance().execute(this); +} + + +namespace +{ + static Poco::SingletonHolder stateMachineSingleton; +} + + +StateMachine& StateMachine::instance() +{ + return *stateMachineSingleton.get(); +} + + +bool StateMachine::readable(SOCKET sockfd) +{ + fd_set fdRead; + FD_ZERO(&fdRead); + FD_SET(sockfd, &fdRead); + select(&fdRead, 0, sockfd); + return (FD_ISSET(sockfd, &fdRead) != 0); +} + + +bool StateMachine::writable(SOCKET sockfd) +{ + fd_set fdWrite; + FD_ZERO(&fdWrite); + FD_SET(sockfd, &fdWrite); + select(0, &fdWrite, sockfd); + return (FD_ISSET(sockfd, &fdWrite) != 0); +} + + +bool StateMachine::readOrWritable(SOCKET sockfd) +{ + fd_set fdRead, fdWrite; + FD_ZERO(&fdRead); + FD_SET(sockfd, &fdRead); + fdWrite = fdRead; + select(&fdRead, &fdWrite, sockfd); + return (FD_ISSET(sockfd, &fdRead) != 0 || FD_ISSET(sockfd, &fdWrite) != 0); +} + + +bool StateMachine::none(SOCKET sockfd) +{ + return true; +} + + +void StateMachine::select(fd_set* fdRead, fd_set* fdWrite, SOCKET sockfd) +{ + Poco::Timespan remainingTime(((Poco::Timestamp::TimeDiff)SecureSocketImpl::TIMEOUT_MILLISECS)*1000); + int rc(0); + do + { + struct timeval tv; + tv.tv_sec = (long) remainingTime.totalSeconds(); + tv.tv_usec = (long) remainingTime.useconds(); + Poco::Timestamp start; + rc = ::select(int(sockfd) + 1, fdRead, fdWrite, 0, &tv); + if (rc < 0 && SecureSocketImpl::lastError() == POCO_EINTR) + { + Poco::Timestamp end; + Poco::Timespan waited = end - start; + if (waited < remainingTime) + remainingTime -= waited; + else + remainingTime = 0; + } + } + while (rc < 0 && SecureSocketImpl::lastError() == POCO_EINTR); +} + + +StateMachine::StateMachine(): + _states() +{ + //ST_INITIAL: 0, -> this one is illegal, you must call connectNB before + _states.push_back(std::make_pair(&StateMachine::none, &SecureSocketImpl::stateIllegal)); + //ST_CONNECTING: connectNB was called, check if the socket is already available for writing + _states.push_back(std::make_pair(&StateMachine::writable, &SecureSocketImpl::stateConnected)); + //ST_ESTABLISHTUNNELRECEIVED: we got the response, now start the handshake + _states.push_back(std::make_pair(&StateMachine::writable, &SecureSocketImpl::performInitialClientHandshake)); + //ST_CLIENTHANDSHAKECONDREAD: condread + _states.push_back(std::make_pair(&StateMachine::readable, &SecureSocketImpl::performClientHandshakeLoopCondRead)); + //ST_CLIENTHANDSHAKEINCOMPLETE, + _states.push_back(std::make_pair(&StateMachine::none, &SecureSocketImpl::performClientHandshakeLoopIncompleteMessage)); + //ST_CLIENTHANDSHAKEOK, + _states.push_back(std::make_pair(&StateMachine::writable, &SecureSocketImpl::performClientHandshakeLoopOK)); + //ST_CLIENTHANDSHAKEEXTERROR, + _states.push_back(std::make_pair(&StateMachine::writable, &SecureSocketImpl::performClientHandshakeLoopExtError)); + //ST_CLIENTHANDSHAKECONTINUE, + _states.push_back(std::make_pair(&StateMachine::writable, &SecureSocketImpl::performClientHandshakeLoopContinueNeeded)); + //ST_VERIFY, + _states.push_back(std::make_pair(&StateMachine::none, &SecureSocketImpl::clientConnectVerify)); + //ST_DONE, + _states.push_back(std::make_pair(&StateMachine::none, &SecureSocketImpl::stateIllegal)); + //ST_ERROR + _states.push_back(std::make_pair(&StateMachine::none, &SecureSocketImpl::performClientHandshakeLoopError)); +} + + +void StateMachine::execute(SecureSocketImpl* pSock) +{ + try + { + poco_assert_dbg (pSock); + ConditionState& state = _states[pSock->getState()]; + ConditionMethod& meth = state.first; + if ((this->*state.first)(pSock->sockfd())) + { + (pSock->*(state.second))(); + (pSock->getState() == SecureSocketImpl::ST_DONE); + } + } + catch (...) + { + pSock->setState(SecureSocketImpl::ST_ERROR); + throw; + } +} + + +StateMachine::~StateMachine() +{ +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SecureStreamSocket.cpp b/NetSSL_Win/src/SecureStreamSocket.cpp new file mode 100644 index 000000000..91c35a111 --- /dev/null +++ b/NetSSL_Win/src/SecureStreamSocket.cpp @@ -0,0 +1,271 @@ +// +// SecureStreamSocket.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/SecureStreamSocket.cpp#2 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureStreamSocket +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SecureStreamSocketImpl.h" +#include "Poco/Net/SocketImpl.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Exception.h" + + +using Poco::InvalidArgumentException; + + +namespace Poco { +namespace Net { + + +SecureStreamSocket::SecureStreamSocket(): + StreamSocket(new SecureStreamSocketImpl(SSLManager::instance().defaultClientContext())) +{ +} + + +SecureStreamSocket::SecureStreamSocket(Context::Ptr pContext): + StreamSocket(new SecureStreamSocketImpl(pContext)) +{ +} + + +SecureStreamSocket::SecureStreamSocket(Context::Ptr pContext, Session::Ptr pSession): + StreamSocket(new SecureStreamSocketImpl(pContext)) +{ + useSession(pSession); +} + + +SecureStreamSocket::SecureStreamSocket(const SocketAddress& address): + StreamSocket(new SecureStreamSocketImpl(SSLManager::instance().defaultClientContext())) +{ + connect(address); +} + + +SecureStreamSocket::SecureStreamSocket(const SocketAddress& address, const std::string& hostName): + StreamSocket(new SecureStreamSocketImpl(SSLManager::instance().defaultClientContext())) +{ + static_cast(impl())->setPeerHostName(hostName); + connect(address); +} + + +SecureStreamSocket::SecureStreamSocket(const SocketAddress& address, Context::Ptr pContext): + StreamSocket(new SecureStreamSocketImpl(pContext)) +{ + connect(address); +} + + +SecureStreamSocket::SecureStreamSocket(const SocketAddress& address, Context::Ptr pContext, Session::Ptr pSession): + StreamSocket(new SecureStreamSocketImpl(pContext)) +{ + useSession(pSession); + connect(address); +} + + +SecureStreamSocket::SecureStreamSocket(const SocketAddress& address, const std::string& hostName, Context::Ptr pContext): + StreamSocket(new SecureStreamSocketImpl(pContext)) +{ + static_cast(impl())->setPeerHostName(hostName); + connect(address); +} + + +SecureStreamSocket::SecureStreamSocket(const SocketAddress& address, const std::string& hostName, Context::Ptr pContext, Session::Ptr pSession): + StreamSocket(new SecureStreamSocketImpl(pContext)) +{ + static_cast(impl())->setPeerHostName(hostName); + useSession(pSession); + connect(address); +} + + +SecureStreamSocket::SecureStreamSocket(const Socket& socket): + StreamSocket(socket) +{ + if (!dynamic_cast(impl())) + throw InvalidArgumentException("Cannot assign incompatible socket"); +} + + +SecureStreamSocket::SecureStreamSocket(SocketImpl* pImpl): + StreamSocket(pImpl) +{ + if (!dynamic_cast(impl())) + throw InvalidArgumentException("Cannot assign incompatible socket"); +} + + +SecureStreamSocket::~SecureStreamSocket() +{ +} + + +SecureStreamSocket& SecureStreamSocket::operator = (const Socket& socket) +{ + if (dynamic_cast(socket.impl())) + StreamSocket::operator = (socket); + else + throw InvalidArgumentException("Cannot assign incompatible socket"); + return *this; +} + + +bool SecureStreamSocket::havePeerCertificate() const +{ + return static_cast(impl())->havePeerCertificate(); +} + + +X509Certificate SecureStreamSocket::peerCertificate() const +{ + return static_cast(impl())->peerCertificate(); +} + + +void SecureStreamSocket::setPeerHostName(const std::string& hostName) +{ + static_cast(impl())->setPeerHostName(hostName); +} + + +const std::string& SecureStreamSocket::getPeerHostName() const +{ + return static_cast(impl())->getPeerHostName(); +} + + +SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket) +{ + SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast(streamSocket.impl()), SSLManager::instance().defaultClientContext()); + SecureStreamSocket result(pImpl); + pImpl->connectSSL(); + return result; +} + + +SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket, Context::Ptr pContext) +{ + SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast(streamSocket.impl()), pContext); + SecureStreamSocket result(pImpl); + pImpl->connectSSL(); + return result; +} + + +SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket, Context::Ptr pContext, Session::Ptr pSession) +{ + SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast(streamSocket.impl()), pContext); + SecureStreamSocket result(pImpl); + result.useSession(pSession); + pImpl->connectSSL(); + return result; +} + + +SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket, const std::string& peerHostName) +{ + SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast(streamSocket.impl()), SSLManager::instance().defaultClientContext()); + SecureStreamSocket result(pImpl); + result.setPeerHostName(peerHostName); + pImpl->connectSSL(); + return result; +} + + +SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket, const std::string& peerHostName, Context::Ptr pContext) +{ + SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast(streamSocket.impl()), pContext); + SecureStreamSocket result(pImpl); + result.setPeerHostName(peerHostName); + pImpl->connectSSL(); + return result; +} + + +SecureStreamSocket SecureStreamSocket::attach(const StreamSocket& streamSocket, const std::string& peerHostName, Context::Ptr pContext, Session::Ptr pSession) +{ + SecureStreamSocketImpl* pImpl = new SecureStreamSocketImpl(static_cast(streamSocket.impl()), pContext); + SecureStreamSocket result(pImpl); + result.setPeerHostName(peerHostName); + result.useSession(pSession); + pImpl->connectSSL(); + return result; +} + + +Context::Ptr SecureStreamSocket::context() const +{ + return static_cast(impl())->context(); +} + + +void SecureStreamSocket::setLazyHandshake(bool flag) +{ + static_cast(impl())->setLazyHandshake(flag); +} + + +bool SecureStreamSocket::getLazyHandshake() const +{ + return static_cast(impl())->getLazyHandshake(); +} + + +void SecureStreamSocket::verifyPeerCertificate() +{ + static_cast(impl())->verifyPeerCertificate(); +} + + +void SecureStreamSocket::verifyPeerCertificate(const std::string& hostName) +{ + static_cast(impl())->verifyPeerCertificate(hostName); +} + + +int SecureStreamSocket::completeHandshake() +{ + return static_cast(impl())->completeHandshake(); +} + + +Session::Ptr SecureStreamSocket::currentSession() +{ + return static_cast(impl())->currentSession(); +} + + +void SecureStreamSocket::useSession(Session::Ptr pSession) +{ + static_cast(impl())->useSession(pSession); +} + + +bool SecureStreamSocket::sessionWasReused() +{ + return static_cast(impl())->sessionWasReused(); +} + + +void SecureStreamSocket::abort() +{ + static_cast(impl())->abort(); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/SecureStreamSocketImpl.cpp b/NetSSL_Win/src/SecureStreamSocketImpl.cpp new file mode 100644 index 000000000..0a8c5f135 --- /dev/null +++ b/NetSSL_Win/src/SecureStreamSocketImpl.cpp @@ -0,0 +1,221 @@ +// +// SecureStreamSocketImpl.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/SecureStreamSocketImpl.cpp#6 $ +// +// Library: NetSSL_Win +// Package: SSLSockets +// Module: SecureStreamSocketImpl +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/SecureStreamSocketImpl.h" +#include "Poco/Net/SSLException.h" +#include "Poco/Thread.h" + + +namespace Poco { +namespace Net { + + +SecureStreamSocketImpl::SecureStreamSocketImpl(Context::Ptr pContext): + _impl(new StreamSocketImpl, pContext), + _lazyHandshake(false) +{ +} + + +SecureStreamSocketImpl::SecureStreamSocketImpl(StreamSocketImpl* pStreamSocket, Context::Ptr pContext): + _impl(pStreamSocket, pContext), + _lazyHandshake(false) +{ + pStreamSocket->duplicate(); + reset(_impl.sockfd()); +} + + +SecureStreamSocketImpl::~SecureStreamSocketImpl() +{ + reset(); +} + + +SocketImpl* SecureStreamSocketImpl::acceptConnection(SocketAddress& clientAddr) +{ + throw Poco::InvalidAccessException("Cannot acceptConnection() on a SecureStreamSocketImpl"); +} + + +void SecureStreamSocketImpl::acceptSSL() +{ + _impl.acceptSSL(); +} + + +void SecureStreamSocketImpl::connect(const SocketAddress& address) +{ + _impl.connect(address, !_lazyHandshake); + reset(_impl.sockfd()); +} + + +void SecureStreamSocketImpl::connect(const SocketAddress& address, const Poco::Timespan& timeout) +{ + _impl.connect(address, timeout, !_lazyHandshake); + reset(_impl.sockfd()); +} + + +void SecureStreamSocketImpl::connectNB(const SocketAddress& address) +{ + _impl.connectNB(address); + reset(_impl.sockfd()); +} + + +void SecureStreamSocketImpl::connectSSL() +{ + _impl.connectSSL(!_lazyHandshake); +} + + +void SecureStreamSocketImpl::bind(const SocketAddress& address, bool reuseAddress) +{ + throw Poco::InvalidAccessException("Cannot bind() a SecureStreamSocketImpl"); +} + + +void SecureStreamSocketImpl::listen(int backlog) +{ + throw Poco::InvalidAccessException("Cannot listen() on a SecureStreamSocketImpl"); +} + + +void SecureStreamSocketImpl::close() +{ + reset(); + _impl.close(); +} + + +void SecureStreamSocketImpl::abort() +{ + reset(); + _impl.abort(); +} + + +int SecureStreamSocketImpl::sendBytes(const void* buffer, int length, int flags) +{ + return _impl.sendBytes(buffer, length, flags); +} + + +int SecureStreamSocketImpl::receiveBytes(void* buffer, int length, int flags) +{ + return _impl.receiveBytes(buffer, length, flags); +} + + +int SecureStreamSocketImpl::sendTo(const void* buffer, int length, const SocketAddress& address, int flags) +{ + throw Poco::InvalidAccessException("Cannot sendTo() on a SecureStreamSocketImpl"); +} + + +int SecureStreamSocketImpl::receiveFrom(void* buffer, int length, SocketAddress& address, int flags) +{ + throw Poco::InvalidAccessException("Cannot receiveFrom() on a SecureStreamSocketImpl"); +} + + +void SecureStreamSocketImpl::sendUrgent(unsigned char data) +{ + throw Poco::InvalidAccessException("Cannot sendUrgent() on a SecureStreamSocketImpl"); +} + + +int SecureStreamSocketImpl::available() +{ + return 0; // TODO _impl.available(); +} + + +void SecureStreamSocketImpl::shutdownReceive() +{ +} + + +void SecureStreamSocketImpl::shutdownSend() +{ +} + + +void SecureStreamSocketImpl::shutdown() +{ + _impl.shutdown(); +} + + +bool SecureStreamSocketImpl::secure() const +{ + return true; +} + + +bool SecureStreamSocketImpl::havePeerCertificate() const +{ + return _impl.peerCertificate() != 0; +} + + +X509Certificate SecureStreamSocketImpl::peerCertificate() const +{ + if (havePeerCertificate()) + { + return X509Certificate(_impl.peerCertificate(), true); + } + else throw SSLException("No certificate available"); +} + + +void SecureStreamSocketImpl::setLazyHandshake(bool flag) +{ + _lazyHandshake = flag; +} + + +bool SecureStreamSocketImpl::getLazyHandshake() const +{ + return _lazyHandshake; +} + + +void SecureStreamSocketImpl::verifyPeerCertificate() +{ + // TODO + // _impl.verifyPeerCertificate(); +} + + +void SecureStreamSocketImpl::verifyPeerCertificate(const std::string& hostName) +{ + // TODO + // _impl.verifyPeerCertificate(hostName); +} + + +int SecureStreamSocketImpl::completeHandshake() +{ + // TODO + // return _impl.completeHandshake(); + return 0; +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/Session.cpp b/NetSSL_Win/src/Session.cpp new file mode 100644 index 000000000..24a521482 --- /dev/null +++ b/NetSSL_Win/src/Session.cpp @@ -0,0 +1,40 @@ +// +// Session.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/Session.cpp#2 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: Session +// +// Copyright (c) 2010-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#if defined(__APPLE__) +// Some OpenSSL functions are deprecated in OS X 10.7 +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + + +#include "Poco/Net/Session.h" + + +namespace Poco { +namespace Net { + + +Session::Session() +{ +} + + +Session::~Session() +{ +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/Utility.cpp b/NetSSL_Win/src/Utility.cpp new file mode 100644 index 000000000..524cfffd8 --- /dev/null +++ b/NetSSL_Win/src/Utility.cpp @@ -0,0 +1,205 @@ +// +// Utility.cpp +// +// $Id: //poco/1.4/NetSSL_Schannel/src/Utility.cpp#1 $ +// +// Library: NetSSL_Schannel +// Package: SSLCore +// Module: Utility +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/Utility.h" +#include "Poco/String.h" +#include "Poco/NumberFormatter.h" +#include "Poco/Util/OptionException.h" +#include +#include + + +namespace Poco { +namespace Net { + + +Poco::FastMutex Utility::_mutex; + + +Context::VerificationMode Utility::convertVerificationMode(const std::string& vMode) +{ + std::string mode = Poco::toLower(vMode); + Context::VerificationMode verMode = Context::VERIFY_STRICT; + + if (mode == "none") + verMode = Context::VERIFY_NONE; + else if (mode == "relaxed") + verMode = Context::VERIFY_RELAXED; + else if (mode == "strict") + verMode = Context::VERIFY_STRICT; + else + throw Poco::Util::OptionException(std::string("Wrong value >") + vMode + std::string("< for a verificationMode. Can only be none, relaxed, strict or once.")); + + return verMode; +} + + +inline void add(std::map& messageMap, long key, const std::string& val) +{ + messageMap.insert(std::make_pair(key, val)); +} + + +std::map Utility::initSSPIErr() +{ + std::map messageMap; + add(messageMap, NTE_BAD_UID, "Bad UID"); + add(messageMap, NTE_BAD_HASH, "Bad Hash"); + add(messageMap, NTE_BAD_KEY, "Bad Key"); + add(messageMap, NTE_BAD_LEN, "Bad Length"); + add(messageMap, NTE_BAD_DATA, "Bad Data"); + add(messageMap, NTE_BAD_SIGNATURE, "Invalid signature"); + add(messageMap, NTE_BAD_VER, "Bad Version of provider"); + add(messageMap, NTE_BAD_ALGID, "Invalid algorithm specified"); + add(messageMap, NTE_BAD_FLAGS, "Invalid flags specified"); + add(messageMap, NTE_BAD_TYPE, "Invalid type specified"); + add(messageMap, NTE_BAD_KEY_STATE, "Key not valid for use in specified state"); + add(messageMap, NTE_BAD_HASH_STATE, "Hash not valid for use in specified state"); + add(messageMap, NTE_NO_KEY, "Key does not exist"); + add(messageMap, NTE_NO_MEMORY, "Insufficient memory available for the operation"); + add(messageMap, NTE_EXISTS, "Object already exists"); + add(messageMap, NTE_PERM, "Permission denied"); + add(messageMap, NTE_NOT_FOUND, "Object was not found"); + add(messageMap, NTE_DOUBLE_ENCRYPT, "Data already encrypted"); + add(messageMap, NTE_BAD_PROVIDER, "Invalid provider specified"); + add(messageMap, NTE_BAD_PROV_TYPE, "Invalid provider type specified"); + add(messageMap, NTE_BAD_PUBLIC_KEY, "Provider's public key is invalid"); + add(messageMap, NTE_BAD_KEYSET, "Keyset does not exist"); + add(messageMap, NTE_PROV_TYPE_NOT_DEF, "Provider type not defined"); + add(messageMap, NTE_PROV_TYPE_ENTRY_BAD, "Provider type as registered is invalid"); + add(messageMap, NTE_KEYSET_NOT_DEF, "The keyset is not defined"); + add(messageMap, NTE_KEYSET_ENTRY_BAD, "Keyset as registered is invalid"); + add(messageMap, NTE_PROV_TYPE_NO_MATCH, "Provider type does not match registered value"); + add(messageMap, NTE_SIGNATURE_FILE_BAD, "The digital signature file is corrupt"); + add(messageMap, NTE_PROVIDER_DLL_FAIL, "Provider DLL failed to initialize correctly"); + add(messageMap, NTE_PROV_DLL_NOT_FOUND, "Provider DLL could not be found"); + add(messageMap, NTE_BAD_KEYSET_PARAM, "The Keyset parameter is invalid"); + add(messageMap, NTE_FAIL, "NTE_FAIL: An internal error occurred"); + add(messageMap, NTE_SYS_ERR, "NTE_SYS_ERR: A base error occurred"); + add(messageMap, NTE_SILENT_CONTEXT, "Provider could not perform the action since the context was acquired as silent"); + add(messageMap, NTE_TOKEN_KEYSET_STORAGE_FULL, "The security token does not have storage space available for an additional container"); + add(messageMap, NTE_TEMPORARY_PROFILE, "The profile for the user is a temporary profile"); + add(messageMap, NTE_FIXEDPARAMETER, "The key parameters could not be set because the CSP uses fixed parameters"); + add(messageMap, SEC_E_INSUFFICIENT_MEMORY, "Not enough memory is available to complete this request"); + add(messageMap, SEC_E_INVALID_HANDLE, "The handle specified is invalid"); + add(messageMap, SEC_E_UNSUPPORTED_FUNCTION, "The function requested is not supported"); + add(messageMap, SEC_E_TARGET_UNKNOWN, "The specified target is unknown or unreachable"); + add(messageMap, SEC_E_INTERNAL_ERROR, "The Local Security Authority cannot be contacted"); + add(messageMap, SEC_E_SECPKG_NOT_FOUND, "The requested security package does not exist"); + add(messageMap, SEC_E_NOT_OWNER, "The caller is not the owner of the desired credentials"); + add(messageMap, SEC_E_CANNOT_INSTALL, "The security package failed to initialize, and cannot be installed"); + add(messageMap, SEC_E_INVALID_TOKEN, "The token supplied to the function is invalid"); + add(messageMap, SEC_E_CANNOT_PACK, "The security package is not able to marshall the logon buffer, so the logon attempt has failed"); + add(messageMap, SEC_E_QOP_NOT_SUPPORTED, "The per-message Quality of Protection is not supported by the security package"); + add(messageMap, SEC_E_NO_IMPERSONATION, "The security context does not allow impersonation of the client"); + add(messageMap, SEC_E_LOGON_DENIED, "The logon attempt failed"); + add(messageMap, SEC_E_UNKNOWN_CREDENTIALS, "The credentials supplied to the package were not recognized"); + add(messageMap, SEC_E_NO_CREDENTIALS, "No credentials are available in the security package"); + add(messageMap, SEC_E_MESSAGE_ALTERED, "The message or signature supplied for verification has been altered"); + add(messageMap, SEC_E_OUT_OF_SEQUENCE, "The message supplied for verification is out of sequence"); + add(messageMap, SEC_E_NO_AUTHENTICATING_AUTHORITY, "No authority could be contacted for authentication"); + add(messageMap, SEC_I_CONTINUE_NEEDED, "The function completed successfully, but must be called again to complete the context"); + add(messageMap, SEC_I_COMPLETE_NEEDED, "The function completed successfully, but CompleteToken must be called"); + add(messageMap, SEC_I_COMPLETE_AND_CONTINUE, "The function completed successfully, but both CompleteToken and this function must be called to complete the context"); + add(messageMap, SEC_I_LOCAL_LOGON, "The logon was completed, but no network authority was available. The logon was made using locally known information"); + add(messageMap, SEC_E_BAD_PKGID, "The requested security package does not exist"); + add(messageMap, SEC_E_CONTEXT_EXPIRED, "The context has expired and can no longer be used"); + add(messageMap, SEC_E_INCOMPLETE_MESSAGE, "The supplied message is incomplete. The signature was not verified"); + add(messageMap, SEC_E_INCOMPLETE_CREDENTIALS, "The credentials supplied were not complete, and could not be verified. The context could not be initialized"); + add(messageMap, SEC_E_BUFFER_TOO_SMALL, "The buffers supplied to a function was too small"); + add(messageMap, SEC_I_RENEGOTIATE, "The context data must be renegotiated with the peer"); + add(messageMap, SEC_E_WRONG_PRINCIPAL, "The target principal name is incorrect"); + add(messageMap, SEC_I_NO_LSA_CONTEXT, "There is no LSA mode context associated with this context"); + add(messageMap, SEC_E_TIME_SKEW, "The clocks on the client and server machines are skewed"); + add(messageMap, SEC_E_UNTRUSTED_ROOT, "The certificate chain was issued by an authority that is not trusted"); + add(messageMap, SEC_E_ILLEGAL_MESSAGE, "The message received was unexpected or badly formatted"); + add(messageMap, SEC_E_CERT_UNKNOWN, "An unknown error occurred while processing the certificate"); + add(messageMap, SEC_E_CERT_EXPIRED, "The received certificate has expired"); + add(messageMap, SEC_E_ENCRYPT_FAILURE, "The specified data could not be encrypted"); + add(messageMap, SEC_E_DECRYPT_FAILURE, "The specified data could not be decrypted"); + add(messageMap, SEC_E_ALGORITHM_MISMATCH, "The client and server cannot communicate, because they do not possess a common algorithm"); + add(messageMap, SEC_E_SECURITY_QOS_FAILED, "The security context could not be established due to a failure in the requested quality of service (e.g. mutual authentication or delegation)"); + add(messageMap, SEC_E_UNFINISHED_CONTEXT_DELETED, "A security context was deleted before the context was completed. This is considered a logon failure"); + add(messageMap, SEC_E_NO_TGT_REPLY, "The client is trying to negotiate a context and the server requires user-to-user but didn't send a TGT reply"); + add(messageMap, SEC_E_NO_IP_ADDRESSES, "Unable to accomplish the requested task because the local machine does not have any IP addresses"); + add(messageMap, SEC_E_WRONG_CREDENTIAL_HANDLE, "The supplied credential handle does not match the credential associated with the security context"); + add(messageMap, SEC_E_CRYPTO_SYSTEM_INVALID, "The crypto system or checksum function is invalid because a required function is unavailable"); + add(messageMap, SEC_E_MAX_REFERRALS_EXCEEDED, "The number of maximum ticket referrals has been exceeded"); + add(messageMap, SEC_E_MUST_BE_KDC, "The local machine must be a Kerberos KDC (domain controller) and it is not"); + add(messageMap, SEC_E_STRONG_CRYPTO_NOT_SUPPORTED, "The other end of the security negotiation is requires strong crypto but it is not supported on the local machine"); + add(messageMap, SEC_E_TOO_MANY_PRINCIPALS, "The KDC reply contained more than one principal name"); + add(messageMap, SEC_E_NO_PA_DATA, "Expected to find PA data for a hint of what type to use, but it was not found"); + //80092001 + add(messageMap, CRYPT_E_SELF_SIGNED, "The specified certificate is self signed"); + add(messageMap, CRYPT_E_DELETED_PREV, "The previous certificate or CRL context was deleted"); + add(messageMap, CRYPT_E_NO_MATCH, "Cannot find the requested object"); + add(messageMap, CRYPT_E_UNEXPECTED_MSG_TYPE, "The certificate does not have a property that references a private key"); + add(messageMap, CRYPT_E_NO_KEY_PROPERTY, "Cannot find the certificate and private key for decryption"); + add(messageMap, CRYPT_E_NO_DECRYPT_CERT, "Cannot find the certificate and private key to use for decryption"); + add(messageMap, CRYPT_E_BAD_MSG, "Not a cryptographic message or the cryptographic message is not formatted correctly"); + add(messageMap, CRYPT_E_NO_SIGNER, "The signed cryptographic message does not have a signer for the specified signer index"); + add(messageMap, CRYPT_E_PENDING_CLOSE, "Final closure is pending until additional frees or closes"); + add(messageMap, CRYPT_E_REVOKED, "The certificate is revoked"); + add(messageMap, CRYPT_E_NO_REVOCATION_DLL, "No Dll or exported function was found to verify revocation"); + add(messageMap, CRYPT_E_NO_REVOCATION_CHECK, "The revocation function was unable to check revocation for the certificate"); + add(messageMap, CRYPT_E_REVOCATION_OFFLINE, "The revocation function was unable to check revocation because the revocation server was offline"); + add(messageMap, CRYPT_E_NOT_IN_REVOCATION_DATABASE, "The certificate is not in the revocation server's database"); + add(messageMap, CRYPT_E_INVALID_NUMERIC_STRING, "The string contains a non-numeric character"); + add(messageMap, CRYPT_E_INVALID_PRINTABLE_STRING, "The string contains a non-printable character"); + add(messageMap, CRYPT_E_INVALID_IA5_STRING, "The string contains a character not in the 7 bit ASCII character set"); + add(messageMap, CRYPT_E_INVALID_X500_STRING, "The string contains an invalid X500 name attribute key, oid, value or delimiter"); + add(messageMap, CRYPT_E_NOT_CHAR_STRING, "The dwValueType for the CERT_NAME_VALUE is not one of the character strings. Most likely it is either a CERT_RDN_ENCODED_BLOB or CERT_TDN_OCTED_STRING"); + add(messageMap, CRYPT_E_FILERESIZED, "The Put operation can not continue. The file needs to be resized. However, there is already a signature present. A complete signing operation must be done"); + add(messageMap, CRYPT_E_SECURITY_SETTINGS, "The cryptographic operation failed due to a local security option setting"); + add(messageMap, CRYPT_E_NO_VERIFY_USAGE_DLL, "No DLL or exported function was found to verify subject usage"); + add(messageMap, CRYPT_E_NO_VERIFY_USAGE_CHECK, "The called function was unable to do a usage check on the subject"); + add(messageMap, CRYPT_E_VERIFY_USAGE_OFFLINE, "Since the server was offline, the called function was unable to complete the usage check"); + add(messageMap, CRYPT_E_NOT_IN_CTL, "The subject was not found in a Certificate Trust List (CTL)"); + add(messageMap, CRYPT_E_NO_TRUSTED_SIGNER, "None of the signers of the cryptographic message or certificate trust list is trusted"); + add(messageMap, CRYPT_E_MISSING_PUBKEY_PARA, "The public key's algorithm parameters are missing"); + add(messageMap, TRUST_E_CERT_SIGNATURE, "The signature of the certificate cannot be verified."); + add(messageMap, TRUST_E_BASIC_CONSTRAINTS, "The basic constraints of the certificate are not valid or missing"); + add(messageMap, CERT_E_UNTRUSTEDROOT, "A certification chain processed correctly but terminated in a root certificate not trusted by the trust provider"); + add(messageMap, CERT_E_UNTRUSTEDTESTROOT, "The root certificate is a testing certificate and policy settings disallow test certificates"); + add(messageMap, CERT_E_CHAINING, "A chain of certificates was not correctly created"); + add(messageMap, CERT_E_WRONG_USAGE, "The certificate is not valid for the requested usage"); + add(messageMap, CERT_E_EXPIRED, "A required certificate is not within its validity period"); + add(messageMap, CERT_E_VALIDITYPERIODNESTING, "The validity periods of the certification chain do not nest correctly"); + add(messageMap, CERT_E_PURPOSE, "A certificate is being used for a purpose that is not supported"); + add(messageMap, CERT_E_ROLE, "A certificate that can only be used as an end entity is being used as a CA or visa versa"); + add(messageMap, CERT_E_CN_NO_MATCH, "The CN name of the certificate does not match the passed value"); + add(messageMap, CERT_E_REVOKED, "A certificate in the chain has been explicitly revoked by its issuer"); + add(messageMap, CERT_E_REVOCATION_FAILURE, "The revocation process could not continue. The certificates could not be checked"); + return messageMap; +} + + +const std::string& Utility::formatError(long errCode) +{ + Poco::FastMutex::ScopedLock lock(_mutex); + + static const std::string def("Internal SSPI error"); + static const std::map errs(initSSPIErr()); + + const std::map::const_iterator it = errs.find(errCode); + if (it != errs.end()) + return it->second; + else + return def; +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/VerificationErrorArgs.cpp b/NetSSL_Win/src/VerificationErrorArgs.cpp new file mode 100644 index 000000000..121a91c47 --- /dev/null +++ b/NetSSL_Win/src/VerificationErrorArgs.cpp @@ -0,0 +1,39 @@ +// +// VerificationErrorArgs.cpp +// +// $Id: //poco/1.4/NetSSL_Win/src/VerificationErrorArgs.cpp#1 $ +// +// Library: NetSSL_Win +// Package: SSLCore +// Module: VerificationErrorArgs +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/VerificationErrorArgs.h" + + +namespace Poco { +namespace Net { + + +VerificationErrorArgs::VerificationErrorArgs(const X509Certificate& cert, int errDepth, int errNum, const std::string& errMsg): + _cert(cert), + _errorDepth(errDepth), + _errorNumber(errNum), + _errorMessage(errMsg), + _ignoreError(false) +{ +} + + +VerificationErrorArgs::~VerificationErrorArgs() +{ +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/src/X509Certificate.cpp b/NetSSL_Win/src/X509Certificate.cpp new file mode 100644 index 000000000..5e4f54395 --- /dev/null +++ b/NetSSL_Win/src/X509Certificate.cpp @@ -0,0 +1,256 @@ +// +// X509Certificate.cpp +// +// $Id: //poco/1.4/Crypto/src/X509Certificate.cpp#1 $ +// +// Library: Crypto +// Package: Certificate +// Module: X509Certificate +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/X509Certificate.h" +#include "Poco/StreamCopier.h" +#include "Poco/String.h" +#include "Poco/DateTimeParser.h" +#include "Poco/Base64Encoder.h" +#include "Poco/Base64Decoder.h" +#include "Poco/FileStream.h" +#include "Poco/UnicodeConverter.h" +#include + + +namespace Poco { +namespace Net { + + +X509Certificate::X509Certificate(std::istream& istr): + _pCert(0) +{ + load(istr); +} + + +X509Certificate::X509Certificate(const std::string& path): + _pCert(0) +{ + load(path); +} + + +X509Certificate::X509Certificate(PCCERT_CONTEXT pCert): + _pCert(pCert) +{ + poco_check_ptr(_pCert); + + init(); +} + + +X509Certificate::X509Certificate(const X509Certificate& cert): + _issuerName(cert._issuerName), + _subjectName(cert._subjectName), + _pCert(cert._pCert) +{ + _pCert = CertDuplicateCertificateContext(_pCert); +} + + +X509Certificate::X509Certificate(PCCERT_CONTEXT pCert, bool shared): + _pCert(pCert) +{ + poco_check_ptr(_pCert); + + if (shared) + { + _pCert = CertDuplicateCertificateContext(_pCert); + } + + init(); +} + + +X509Certificate& X509Certificate::operator = (const X509Certificate& cert) +{ + X509Certificate tmp(cert); + swap(tmp); + return *this; +} + + +void X509Certificate::swap(X509Certificate& cert) +{ + using std::swap; + swap(cert._issuerName, _issuerName); + swap(cert._subjectName, _subjectName); + swap(cert._pCert, _pCert); +} + + +X509Certificate::~X509Certificate() +{ + CertFreeCertificateContext(_pCert); +} + + +void X509Certificate::load(std::istream& istr) +{ + poco_assert (!_pCert); + + // TODO + + init(); +} + + +void X509Certificate::load(const std::string& path) +{ + Poco::FileInputStream istr(path); + load(istr); +} + + +void X509Certificate::save(std::ostream& stream) const +{ + // TODO +} + + +void X509Certificate::save(const std::string& path) const +{ + Poco::FileOutputStream ostr(path); + save(ostr); +} + + +void X509Certificate::init() +{ + wchar_t data[256]; + CertGetNameStringW(_pCert, CERT_NAME_SIMPLE_DISPLAY_TYPE, CERT_NAME_ISSUER_FLAG, NULL, data, 256); + Poco::UnicodeConverter::convert(data, _issuerName); + CertGetNameStringW(_pCert, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, NULL, data, 256); + Poco::UnicodeConverter::convert(data, _subjectName); +} + + +std::string X509Certificate::commonName() const +{ + return subjectName(NID_COMMON_NAME); +} + + +std::string X509Certificate::issuerName(NID nid) const +{ + std::string result; + wchar_t data[256]; + CertGetNameStringW(_pCert, CERT_NAME_ATTR_TYPE, CERT_NAME_ISSUER_FLAG, nid2oid(nid), data, 256); + Poco::UnicodeConverter::convert(data, result); + return result; +} + + +std::string X509Certificate::subjectName(NID nid) const +{ + std::string result; + wchar_t data[256]; + CertGetNameStringW(_pCert, CERT_NAME_ATTR_TYPE, 0, nid2oid(nid), data, 256); + Poco::UnicodeConverter::convert(data, result); + return result; +} + + +void X509Certificate::extractNames(std::string& cmnName, std::set& domainNames) const +{ + domainNames.clear(); + // TODO: extract subject alternative names + cmnName = commonName(); + if (!cmnName.empty() && domainNames.empty()) + { + domainNames.insert(cmnName); + } +} + + +Poco::DateTime X509Certificate::validFrom() const +{ + Poco::Timestamp ts = Poco::Timestamp::fromFileTimeNP(_pCert->pCertInfo->NotBefore.dwLowDateTime, _pCert->pCertInfo->NotBefore.dwHighDateTime); + return Poco::DateTime(ts); +} + + +Poco::DateTime X509Certificate::expiresOn() const +{ + Poco::Timestamp ts = Poco::Timestamp::fromFileTimeNP(_pCert->pCertInfo->NotAfter.dwLowDateTime, _pCert->pCertInfo->NotAfter.dwHighDateTime); + return Poco::DateTime(ts); +} + + +bool X509Certificate::issuedBy(const X509Certificate& issuerCertificate) const +{ + HCERTSTORE hCertStore = CertOpenSystemStoreW(NULL, L"CA"); + if (!hCertStore) throw Poco::SystemException("Cannot open CA store"); + // TODO + try + { + PCCERT_CONTEXT pIssuer = 0; + do + { + DWORD flags = CERT_STORE_REVOCATION_FLAG | CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG; + pIssuer = CertGetIssuerCertificateFromStore(hCertStore, _pCert, 0, &flags); + if (pIssuer) + { + X509Certificate issuer(pIssuer); + if (flags & CERT_STORE_NO_CRL_FLAG) + flags &= ~(CERT_STORE_NO_CRL_FLAG | CERT_STORE_REVOCATION_FLAG); + if (flags) + break; + } + else break; + } + while (pIssuer); + } + catch (...) + { + } + return false; +} + + +void* X509Certificate::nid2oid(NID nid) +{ + const char* result = 0; + switch (nid) + { + case NID_COMMON_NAME: + result = szOID_COMMON_NAME; + break; + case NID_COUNTRY: + result = szOID_COUNTRY_NAME; + break; + case NID_LOCALITY_NAME: + result = szOID_LOCALITY_NAME; + break; + case NID_STATE_OR_PROVINCE: + result = szOID_STATE_OR_PROVINCE_NAME; + break; + case NID_ORGANIZATION_NAME: + result = szOID_ORGANIZATION_NAME; + break; + case NID_ORGANIZATION_UNIT_NAME: + result = szOID_ORGANIZATIONAL_UNIT_NAME; + break; + default: + poco_bugcheck(); + result = ""; + break; + } + return const_cast(result); +} + + +} } // namespace Poco::Net diff --git a/NetSSL_Win/testsuite/TestSuite.progen b/NetSSL_Win/testsuite/TestSuite.progen new file mode 100644 index 000000000..dcc2941f4 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite.progen @@ -0,0 +1,18 @@ +vc.project.guid = 25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28 +vc.project.name = TestSuite +vc.project.target = TestSuite +vc.project.type = testsuite +vc.project.pocobase = ..\\.. +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = TestSuite_vs90.vcproj +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.debug_shared = +vc.project.linker.dependencies.release_shared = +vc.project.linker.dependencies.debug_static_md = +vc.project.linker.dependencies.release_static_md = +vc.project.linker.dependencies.debug_static_mt = +vc.project.linker.dependencies.release_static_mt = diff --git a/NetSSL_Win/testsuite/TestSuite.xml b/NetSSL_Win/testsuite/TestSuite.xml new file mode 100644 index 000000000..2c03eb7be --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite.xml @@ -0,0 +1,29 @@ + + + + ${system.nodeName} + none + false + + AcceptCertificateHandler + + + + + + relaxed + false + + AcceptCertificateHandler + + + + + + + + proxy.aon.at + 8080 + + + diff --git a/NetSSL_Win/testsuite/TestSuite_CE_vs90.vcproj b/NetSSL_Win/testsuite/TestSuite_CE_vs90.vcproj new file mode 100644 index 000000000..e7952fcd5 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_CE_vs90.vcproj @@ -0,0 +1,556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_WEC2013_vs110.vcxproj b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs110.vcxproj new file mode 100644 index 000000000..a2f485573 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs110.vcxproj @@ -0,0 +1,334 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V300 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + release_shared + SDK_AM335X_SK_WEC2013_V300 + + + release_static_md + SDK_AM335X_SK_WEC2013_V300 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V300 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V300 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Win32 + + + Disabled + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitd.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\TestSuited.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\TestSuited.pdb + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + true + Speed + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + CppUnit.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\TestSuite.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmtd.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\TestSuited.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\TestSuited.pdb + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + Default + true + Speed + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + CppUnitmt.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\TestSuite.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmdd.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\TestSuited.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\TestSuited.pdb + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + Default + true + Speed + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + CppUnitmd.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\TestSuite.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + wmainCRTStartup + WindowsCE + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_WEC2013_vs110.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs110.vcxproj.filters new file mode 100644 index 000000000..72d9ae8ed --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs110.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {af7c73a9-a83b-4212-b986-67f014409efc} + + + {c41aa2f9-17a5-442e-9ae6-3d72662aa135} + + + {c256c551-e3de-4891-bfd5-7ef78afa9041} + + + {70b009fe-43da-4eb9-910f-505cb0a95e12} + + + {1bca9936-cc21-4928-a09f-be19dd3f0b9b} + + + {f72c94b3-cc0b-4f57-ab7e-901e713773fd} + + + {877a8657-cd99-4f91-8c5e-cc0bd8e30dfa} + + + {394ad351-30d3-4707-86ee-2a31a5f11755} + + + {41535f38-38bf-4123-87bc-14101992c785} + + + {a8590c6e-57e5-4688-a0f2-0012ec6718b8} + + + {74725857-94dc-462f-83c6-d297def7d65e} + + + {174e16fc-48af-4ae1-8783-bc94d6d0c13b} + + + {32a82fd6-3f46-4c3f-bcde-7c827d0f89b7} + + + {ae962b68-d44e-4f22-8dea-5f13ab03a735} + + + {cf7fa9cc-93cc-41a9-ae5e-4b45e6992813} + + + {4b0334e6-9e8d-4faa-b86b-383d056ad102} + + + {72ae1f15-a094-4184-85f0-3c8b58bb6a0f} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_WEC2013_vs120.vcxproj b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs120.vcxproj new file mode 100644 index 000000000..03900c608 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs120.vcxproj @@ -0,0 +1,334 @@ + + + + + debug_shared + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_md + SDK_AM335X_SK_WEC2013_V310 + + + debug_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + release_shared + SDK_AM335X_SK_WEC2013_V310 + + + release_static_md + SDK_AM335X_SK_WEC2013_V310 + + + release_static_mt + SDK_AM335X_SK_WEC2013_V310 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + en-US + 11.0 + true + SDK_AM335X_SK_WEC2013_V310 + CE800 + + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + Application + Unicode + CE800 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\shared\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_mt\ + obj\$(Platform)\$(Configuration)\ + false + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + true + + + bin\$(Platform)\static_md\ + obj\$(Platform)\$(Configuration)\ + false + + + + Win32 + + + Disabled + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + _DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitd.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\TestSuited.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\shared\TestSuited.pdb + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + true + Speed + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + NDEBUG;$(ProjectName)_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + Level3 + ProgramDatabase + + + CppUnit.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\shared\TestSuite.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmtd.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\TestSuited.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_mt\TestSuited.pdb + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + Default + true + Speed + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreaded + false + true + + Level3 + ProgramDatabase + Default + + + CppUnitmt.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_mt\TestSuite.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + _DEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDebugDLL + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmdd.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\TestSuited.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + true + bin\$(Platform)\static_md\TestSuited.pdb + wmainCRTStartup + WindowsCE + + + + + Win32 + + + Disabled + Default + true + Speed + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + NDEBUG;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + + Level3 + ProgramDatabase + Default + + + CppUnitmd.lib;iphlpapi.lib;ws2.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\$(Platform)\static_md\TestSuite.exe + ..\..\lib\$(Platform);%(AdditionalLibraryDirectories) + false + + true + true + wmainCRTStartup + WindowsCE + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_WEC2013_vs120.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs120.vcxproj.filters new file mode 100644 index 000000000..58a6961ff --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_WEC2013_vs120.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {f17e53ea-4407-422c-91f1-9eddcafcff0e} + + + {c4064d99-03b4-40cb-b01e-d433eeabe89e} + + + {961d9056-9f64-4a0b-a2da-5ed564de96b8} + + + {56bd361e-875b-4ea0-aade-3a618610872e} + + + {8d682d15-6735-450d-b8e1-89e93ca1cc63} + + + {223dd841-9788-4744-879a-b1d7573350ca} + + + {3aad619d-9f31-4e8d-85ed-7253aa62d81e} + + + {040a0ec0-93ba-4c6a-b554-04070f0fc8f7} + + + {249d25e6-8338-45ef-aab2-c097e2396b8b} + + + {b25b6b15-5fbb-4944-bbb4-0b883ba2bae7} + + + {8886561e-d098-426e-8623-85ed4069d66a} + + + {8fc72360-8742-433c-bf4c-6f0a69bdbbc9} + + + {662dfcf8-9801-4a5c-bc13-2e0ae9b17552} + + + {08c2dd92-aa1f-4495-b9d8-a584243e75b8} + + + {982fa6dd-e642-4560-8184-906a8dc42e87} + + + {f29b2438-91db-48bd-b35c-3d0467fdc8d0} + + + {d49c707b-585c-436c-be52-e7a548196846} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_vs100.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs100.vcxproj new file mode 100644 index 000000000..a74ee3143 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs100.vcxproj @@ -0,0 +1,339 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + TestSuite + Win32Proj + + + + Application + Dynamic + MultiByte + + + Application + Dynamic + MultiByte + + + Application + Static + MultiByte + + + Application + Static + MultiByte + + + Application + Dynamic + MultiByte + + + Application + Dynamic + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin\ + obj\$(Configuration)\ + true + bin\ + obj\$(Configuration)\ + false + bin\static_mt\ + obj\$(Configuration)\ + true + bin\static_mt\ + obj\$(Configuration)\ + false + bin\static_md\ + obj\$(Configuration)\ + true + bin\static_md\ + obj\$(Configuration)\ + false + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitd.lib;WinTestRunnerd.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\TestSuited.pdb + Windows + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnit.lib;WinTestRunner.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmtd.lib;WinTestRunnermtd.lib;iphlpapi.lib;winmm.lib;nafxcwd.lib;libcmtd.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_mt\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + nafxcwd.lib;libcmtd.lib;%(IgnoreSpecificDefaultLibraries) + true + true + bin\static_mt\TestSuited.pdb + Windows + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmt.lib;WinTestRunnermt.lib;iphlpapi.lib;winmm.lib;nafxcw.lib;libcmt.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_mt\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + nafxcw.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + Windows + true + true + MachineX86 + %(AdditionalOptions) + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmdd.lib;WinTestRunnermdd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_md\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\TestSuited.pdb + Windows + MachineX86 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmd.lib;WinTestRunnermd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_md\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX86 + %(AdditionalOptions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_vs100.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs100.vcxproj.filters new file mode 100644 index 000000000..085b3edc7 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs100.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {3d359caf-558b-43fc-b575-36b0cb4f7dd2} + + + {451d815b-2ced-4a36-9d2e-b6fe441b7a87} + + + {802d97b4-ea4a-4679-9ec2-1cfdd68ccc99} + + + {7a34f1cf-6393-4716-8aea-deb8fd70d1c0} + + + {c96c0e31-4559-47b1-8592-9536e700b5a9} + + + {0a9343ff-0c3e-4bc7-8d2f-54bcc6e3cab4} + + + {495c2828-f855-4c07-8a6e-38512e3778f5} + + + {5cb32a9d-1766-44ae-9a1c-870364b14f76} + + + {ee66b499-7c14-44c6-9cdf-becffe1697b7} + + + {a5b51c63-a879-4709-a826-4340e134487e} + + + {199801e4-9112-4b64-ad9b-47a5a0537b03} + + + {bdbc69e5-4988-4ab3-8e8e-af6b1f95fd73} + + + {5cb1be8b-f705-4c4a-b0cc-75ec0ebe07af} + + + {b34d45bc-b692-468d-87c3-e9af798a375b} + + + {23d15521-d128-4eb2-99f4-ca1bd234fbd5} + + + {6a28dbcc-0eae-406a-9bb2-9432fcc3dc15} + + + {eb0f65ca-51ef-4394-b544-966d28762857} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_vs110.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs110.vcxproj new file mode 100644 index 000000000..2f3d9d7f9 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs110.vcxproj @@ -0,0 +1,339 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + TestSuite + Win32Proj + + + + Application + Dynamic + MultiByte + v110 + + + Application + Dynamic + MultiByte + v110 + + + Application + Static + MultiByte + v110 + + + Application + Static + MultiByte + v110 + + + Application + Dynamic + MultiByte + v110 + + + Application + Dynamic + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + CppUnitd.lib;WinTestRunnerd.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\TestSuited.pdb + Windows + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnit.lib;WinTestRunner.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX86 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + CppUnitmtd.lib;WinTestRunnermtd.lib;iphlpapi.lib;winmm.lib;nafxcwd.lib;libcmtd.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_mt\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + nafxcwd.lib;libcmtd.lib;%(IgnoreSpecificDefaultLibraries) + true + true + bin\static_mt\TestSuited.pdb + Windows + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + CppUnitmt.lib;WinTestRunnermt.lib;iphlpapi.lib;winmm.lib;nafxcw.lib;libcmt.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_mt\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + nafxcw.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + Windows + true + true + MachineX86 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + CppUnitmdd.lib;WinTestRunnermdd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_md\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\TestSuited.pdb + Windows + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnitmd.lib;WinTestRunnermd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_md\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_vs110.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs110.vcxproj.filters new file mode 100644 index 000000000..17da63ecf --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs110.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {ad659ee7-cb11-4318-a0e3-8458f19dd491} + + + {9b0df98f-933c-4a2c-9aeb-19c1aafff930} + + + {002e20ad-71d9-4edf-8b7e-377a8fb9fa00} + + + {9241e1b6-3a30-4f52-8be1-01f314135125} + + + {f18a4cdc-a880-4852-980b-9b2150c29224} + + + {46fa264b-06eb-4824-857e-adf9b7fd820d} + + + {004c05fe-02ea-4074-b04b-11eaaeb254ed} + + + {b8d483c9-ee69-439e-a9e6-bc7e24d7bb6b} + + + {a7ab3f50-91cc-4a9f-a1a5-c7af72545317} + + + {8b3cbac3-d086-4f36-b391-774e89289593} + + + {d77e7da5-91c9-469c-a91c-a2bdbd3e1e1a} + + + {62598349-6f88-48de-8818-18f2cf9ed2b7} + + + {1b1e26b2-d5ee-4dc4-be32-ca4162fd3c50} + + + {70a10f4b-057e-4c51-bccf-2dc3790bdd20} + + + {ac9beaba-38a3-4c0d-9975-eedbdeae1c53} + + + {3023f5ef-331b-4047-835f-d8a63741b491} + + + {1bef3884-8f9c-4c4c-aec7-a2a50c04b64c} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_vs120.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs120.vcxproj new file mode 100644 index 000000000..b5e8a5700 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs120.vcxproj @@ -0,0 +1,331 @@ + + + + + debug_shared + Win32 + + + debug_static_md + Win32 + + + debug_static_mt + Win32 + + + release_shared + Win32 + + + release_static_md + Win32 + + + release_static_mt + Win32 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + TestSuite + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + bin\ + obj\$(Configuration)\ + true + + + bin\ + obj\$(Configuration)\ + false + + + bin\static_mt\ + obj\$(Configuration)\ + true + + + bin\static_mt\ + obj\$(Configuration)\ + false + + + bin\static_md\ + obj\$(Configuration)\ + true + + + bin\static_md\ + obj\$(Configuration)\ + false + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\TestSuited.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnit.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + EditAndContinue + Default + + + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_mt\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_mt\TestSuited.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_mt\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + EditAndContinue + Default + + + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_md\TestSuited.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + true + bin\static_md\TestSuited.pdb + Console + MachineX86 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin\static_md\TestSuite.exe + ..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_vs120.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs120.vcxproj.filters new file mode 100644 index 000000000..bde21deb3 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs120.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {db48da57-8019-4180-ba32-1e55f00c62ff} + + + {17e9d52d-3e2a-42c5-8de1-76f6802797ce} + + + {ca187113-9c2f-4d70-b315-f78fa3532b84} + + + {07013709-e79f-4a05-a9ea-1fab7616c0db} + + + {0b5bbb7f-7848-4938-a5ef-14feaf95d2e6} + + + {e1b92a56-2d40-4376-948f-d3c3cc1963a6} + + + {796e18df-826c-42ec-bea7-d079a8dfc3af} + + + {43d0c37d-44cf-4cd7-b4d8-2ae46076097f} + + + {c3815f6c-c284-4475-af54-a5c188eb849d} + + + {bebf412d-8632-4cff-99f3-5558e7ac864d} + + + {98a96d0c-f52c-4a10-b2e6-d75801fa2453} + + + {ea4ccbc4-0df5-4c94-93d9-9434b8047d41} + + + {77936102-fdd0-40ad-82e8-9f5d929c993b} + + + {47c423e3-4c98-427b-bb88-b0794568d315} + + + {251921bf-da10-4e33-8376-906923a77164} + + + {5d9e5222-9d46-4c2a-9509-d1e41e7a5d83} + + + {af5f3aa7-1919-4fda-ba06-d055b157ee68} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_vs71.vcproj b/NetSSL_Win/testsuite/TestSuite_vs71.vcproj new file mode 100644 index 000000000..75a0174b6 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs71.vcproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_vs80.vcproj b/NetSSL_Win/testsuite/TestSuite_vs80.vcproj new file mode 100644 index 000000000..43eecf038 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs80.vcproj @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_vs90.vcproj b/NetSSL_Win/testsuite/TestSuite_vs90.vcproj new file mode 100644 index 000000000..c404b8c45 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_vs90.vcproj @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs100.vcxproj b/NetSSL_Win/testsuite/TestSuite_x64_vs100.vcxproj new file mode 100644 index 000000000..1429a79e1 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs100.vcxproj @@ -0,0 +1,339 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + TestSuite + Win32Proj + + + + Application + Dynamic + MultiByte + + + Application + Dynamic + MultiByte + + + Application + Static + MultiByte + + + Application + Static + MultiByte + + + Application + Dynamic + MultiByte + + + Application + Dynamic + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + bin64\ + obj64\$(Configuration)\ + true + bin64\ + obj64\$(Configuration)\ + false + bin64\static_mt\ + obj64\$(Configuration)\ + true + bin64\static_mt\ + obj64\$(Configuration)\ + false + bin64\static_md\ + obj64\$(Configuration)\ + true + bin64\static_md\ + obj64\$(Configuration)\ + false + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitd.lib;WinTestRunnerd.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\TestSuited.pdb + Windows + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnit.lib;WinTestRunner.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmtd.lib;WinTestRunnermtd.lib;iphlpapi.lib;winmm.lib;nafxcwd.lib;libcmtd.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_mt\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + nafxcwd.lib;libcmtd.lib;%(IgnoreSpecificDefaultLibraries) + true + true + bin64\static_mt\TestSuited.pdb + Windows + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmt.lib;WinTestRunnermt.lib;iphlpapi.lib;winmm.lib;nafxcw.lib;libcmt.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_mt\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + nafxcw.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + Windows + true + true + MachineX64 + %(AdditionalOptions) + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmdd.lib;WinTestRunnermdd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_md\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\TestSuited.pdb + Windows + MachineX64 + %(AdditionalOptions) + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + %(DisableSpecificWarnings) + %(AdditionalOptions) + + + CppUnitmd.lib;WinTestRunnermd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_md\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX64 + %(AdditionalOptions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs100.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_x64_vs100.vcxproj.filters new file mode 100644 index 000000000..85a7140db --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs100.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {17d85dae-d74f-4108-bd24-b156060bb638} + + + {5163dde6-bda6-4286-82ea-185c367388ea} + + + {fbf90b6f-e58b-4e38-9117-e89c1ced0ad1} + + + {fd645104-3ad4-4275-9515-d54cb4073ee8} + + + {f20e2621-aede-4ff8-ab0e-5cd69c07bda8} + + + {3b0d5b54-13c1-4939-b369-b062e473a2c7} + + + {3f35cf42-0919-450b-a326-a7705f2f5c17} + + + {3fb31fca-2afe-4e2b-88ef-d8406b8f555c} + + + {714fc73c-ca57-4808-bbc6-df776fe23299} + + + {616bff57-a614-462c-83aa-5c29e5fbf1d2} + + + {9e768f0a-70a2-46ba-ba41-b9752878f06a} + + + {56e5fd0e-48d8-4f1e-bba9-974e7d616d07} + + + {2bc094b9-060b-40b5-b289-6cf131634452} + + + {bd372c04-ed51-4fe2-982c-e85ef78e130d} + + + {bb0ec027-017f-4b21-acb7-54e8cd8198b2} + + + {9ca300c6-b499-40d8-96ff-b8a0ca8fc785} + + + {0359c41d-22df-4891-be7d-55286546cc7d} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs110.vcxproj b/NetSSL_Win/testsuite/TestSuite_x64_vs110.vcxproj new file mode 100644 index 000000000..fd399dbb8 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs110.vcxproj @@ -0,0 +1,339 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + TestSuite + Win32Proj + + + + Application + Dynamic + MultiByte + v110 + + + Application + Dynamic + MultiByte + v110 + + + Application + Static + MultiByte + v110 + + + Application + Static + MultiByte + v110 + + + Application + Dynamic + MultiByte + v110 + + + Application + Dynamic + MultiByte + v110 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitd.lib;WinTestRunnerd.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\TestSuited.pdb + Windows + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnit.lib;WinTestRunner.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX64 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmtd.lib;WinTestRunnermtd.lib;iphlpapi.lib;winmm.lib;nafxcwd.lib;libcmtd.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_mt\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + nafxcwd.lib;libcmtd.lib;%(IgnoreSpecificDefaultLibraries) + true + true + bin64\static_mt\TestSuited.pdb + Windows + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + CppUnitmt.lib;WinTestRunnermt.lib;iphlpapi.lib;winmm.lib;nafxcw.lib;libcmt.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_mt\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + nafxcw.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) + false + Windows + true + true + MachineX64 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmdd.lib;WinTestRunnermdd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_md\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\TestSuited.pdb + Windows + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnitmd.lib;WinTestRunnermd.lib;iphlpapi.lib;winmm.lib;WinTestRunner.res;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_md\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Windows + true + true + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs110.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_x64_vs110.vcxproj.filters new file mode 100644 index 000000000..1a322b60b --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs110.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {2e7b60a0-7daa-4f52-8b25-6cd602bb15ec} + + + {e9f2a57a-b40e-4ef1-b720-b91ca830d397} + + + {f71c0126-0243-4158-9fac-a281e96248dc} + + + {fa2fae90-dbb4-44f6-bd13-892ee3f837a1} + + + {3ebfe64f-8ff8-481f-abee-e83a4f3e5ad7} + + + {f11c6220-b0fe-442a-b213-d3b2ba605b1e} + + + {7320546b-8fd3-48e9-be3d-4a7cae820594} + + + {2f4565dd-28ac-4ed9-840f-342a73fd085a} + + + {e7368db8-f015-4af9-8afd-066dcf0f5015} + + + {73e5bb6f-9dcd-4355-883b-f0e858fd77cb} + + + {8783a216-4768-49b8-94c9-ee94ae3326bf} + + + {d3431762-32f4-46b8-9ef4-048cfd933a5d} + + + {e34b4732-a5ba-4dda-8d95-e833d7ba12b6} + + + {4d7285d9-a146-4b78-aec6-4a1f8a211f1a} + + + {b0f36de1-20a2-46ad-89f7-670d54cfa71a} + + + {654d697c-bcbc-41dc-9541-3735b444d6be} + + + {018a98ee-70fe-47ed-a941-dd3c3a46035f} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs120.vcxproj b/NetSSL_Win/testsuite/TestSuite_x64_vs120.vcxproj new file mode 100644 index 000000000..03783c9c4 --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs120.vcxproj @@ -0,0 +1,331 @@ + + + + + debug_shared + x64 + + + debug_static_md + x64 + + + debug_static_mt + x64 + + + release_shared + x64 + + + release_static_md + x64 + + + release_static_mt + x64 + + + + TestSuite + {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} + TestSuite + Win32Proj + + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + Application + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + + + bin64\ + obj64\$(Configuration)\ + true + + + bin64\ + obj64\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\$(Configuration)\ + false + + + bin64\static_md\ + obj64\$(Configuration)\ + true + + + bin64\static_md\ + obj64\$(Configuration)\ + false + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\TestSuited.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnit.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_mt\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_mt\TestSuited.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + + + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_mt\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + + + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_md\TestSuited.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + true + true + bin64\static_md\TestSuited.pdb + Console + MachineX64 + + + + + Disabled + OnlyExplicitInline + true + Speed + true + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + + + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + bin64\static_md\TestSuite.exe + ..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs120.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_x64_vs120.vcxproj.filters new file mode 100644 index 000000000..fc472d9dc --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs120.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {7f32cbff-f469-4e44-8fe7-80a39f80054f} + + + {56a15372-7768-4699-ab19-4df52485b11c} + + + {317c3bb2-0a6f-4233-a060-5d08acafe144} + + + {6e44df5b-4b10-45a8-ac51-68430cf8a753} + + + {59a1343e-9e87-4760-9711-3c7a26abe1e8} + + + {31fe010d-8cd4-469d-9f8c-9c1d85a0ce59} + + + {e62cd358-7608-4881-a07b-bcf0b109deed} + + + {840e0563-2f44-4aed-8ca4-0c36752de211} + + + {64892a5b-8283-47a0-8d05-ff8e4f306c7b} + + + {2451654a-25e4-4b11-8231-81725d41fbb0} + + + {19753529-634b-4721-89fc-aa2648a90774} + + + {96d013d3-71dc-432c-b7ff-432c818b742b} + + + {48a7b213-b697-4b66-bbc2-1f97e44e5df1} + + + {a42cb6f5-84b3-47ef-8fce-4192382d7367} + + + {2a355eb1-1f4e-4c61-937a-7b835155a6a0} + + + {657be179-2167-4000-adb2-6180ecd49828} + + + {94440611-c09b-4f86-9b5f-583407c8e950} + + + + + HTTPS\Header Files + + + _Suite\Header Files + + + TCPServer\Header Files + + + TCPServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSServer\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + HTTPSClient\Header Files + + + + + HTTPS\Source Files + + + _Suite\Source Files + + + _Driver\Source Files + + + TCPServer\Source Files + + + TCPServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSServer\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + HTTPSClient\Source Files + + + \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_x64_vs90.vcproj b/NetSSL_Win/testsuite/TestSuite_x64_vs90.vcproj new file mode 100644 index 000000000..473d7737d --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuite_x64_vs90.vcproj @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_Win/testsuite/TestSuitemt.xml b/NetSSL_Win/testsuite/TestSuitemt.xml new file mode 100644 index 000000000..2c03eb7be --- /dev/null +++ b/NetSSL_Win/testsuite/TestSuitemt.xml @@ -0,0 +1,29 @@ + + + + ${system.nodeName} + none + false + + AcceptCertificateHandler + + + + + + relaxed + false + + AcceptCertificateHandler + + + + + + + + proxy.aon.at + 8080 + + + diff --git a/NetSSL_Win/testsuite/src/Driver.cpp b/NetSSL_Win/testsuite/src/Driver.cpp new file mode 100644 index 000000000..9a497e4ad --- /dev/null +++ b/NetSSL_Win/testsuite/src/Driver.cpp @@ -0,0 +1,77 @@ +// +// Driver.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/Driver.cpp#1 $ +// +// Console-based test driver for Poco NetSSL. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "CppUnit/TestRunner.h" +#include "NetSSLTestSuite.h" +#include "Poco/Util/Application.h" +#include "Poco/Net/HTTPStreamFactory.h" +#include "Poco/Net/HTTPSStreamFactory.h" +#include + + +class NetSSLApp: public Poco::Util::Application +{ +public: + NetSSLApp() + { + Poco::Net::initializeSSL(); + Poco::Net::HTTPStreamFactory::registerFactory(); + Poco::Net::HTTPSStreamFactory::registerFactory(); + } + + ~NetSSLApp() + { + Poco::Net::uninitializeSSL(); + } + + int main(const std::vector& args) + { + CppUnit::TestRunner runner; + runner.addTest("NetSSLTestSuite", NetSSLTestSuite::suite()); + return runner.run(_targs) ? 0 : 1; + } + + void setup(int argc, char** argv) + { + init(1, argv); + for (int i = 0; i < argc; ++i) + _targs.push_back(std::string(argv[i])); + } + +protected: + void initialize(Poco::Util::Application& self) + { + loadConfiguration(); // load default configuration files, if present + Poco::Util::Application::initialize(self); + } + +private: + std::vector _targs; +}; + + +int main(int ac, char **av) +{ + NetSSLApp app; + try + { + app.setup(ac, av); + return app.run(); + } + catch (Poco::Exception& exc) + { + std::cout << exc.displayText() << std::endl; + return 1; + } +} diff --git a/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.cpp b/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.cpp new file mode 100644 index 000000000..230062ffa --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.cpp @@ -0,0 +1,433 @@ +// +// HTTPSClientSessionTest.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.cpp#2 $ +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "HTTPSClientSessionTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/Net/HTTPSClientSession.h" +#include "Poco/Net/HTTPRequest.h" +#include "Poco/Net/HTTPRequestHandler.h" +#include "Poco/Net/HTTPRequestHandlerFactory.h" +#include "Poco/Net/HTTPResponse.h" +#include "Poco/Net/HTTPServer.h" +#include "Poco/Net/HTTPServerResponse.h" +#include "Poco/Net/HTTPServerRequest.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Session.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Util/Application.h" +#include "Poco/Util/AbstractConfiguration.h" +#include "Poco/StreamCopier.h" +#include "Poco/Exception.h" +#include "Poco/DateTimeFormatter.h" +#include "Poco/DateTimeFormat.h" +#include "Poco/Thread.h" +#include "HTTPSTestServer.h" +#include +#include +#include + + +using namespace Poco::Net; +using Poco::Util::Application; +using Poco::StreamCopier; +using Poco::Thread; + + +class TestRequestHandler: public HTTPRequestHandler + /// Return a HTML document with the current date and time. +{ +public: + TestRequestHandler() + { + } + + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + response.setChunkedTransferEncoding(true); + response.setContentType(request.getContentType()); + std::ostream& ostr = response.send(); + Poco::StreamCopier::copyStream(request.stream(), ostr); + } + +}; + + +class TestRequestHandlerFactory: public HTTPRequestHandlerFactory +{ +public: + TestRequestHandlerFactory() + { + } + + HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) + { + return new TestRequestHandler(); + } +}; + + +HTTPSClientSessionTest::HTTPSClientSessionTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +HTTPSClientSessionTest::~HTTPSClientSessionTest() +{ +} + + +void HTTPSClientSessionTest::testGetSmall() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_GET, "/small"); + s.sendRequest(request); + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response.getContentType() == "text/plain"); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == HTTPSTestServer::SMALL_BODY); +} + + +void HTTPSClientSessionTest::testGetLarge() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_GET, "/large"); + s.sendRequest(request); + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getContentLength() == HTTPSTestServer::LARGE_BODY.length()); + assert (response.getContentType() == "text/plain"); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == HTTPSTestServer::LARGE_BODY); +} + + +void HTTPSClientSessionTest::testHead() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_HEAD, "/large"); + s.sendRequest(request); + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getContentLength() == HTTPSTestServer::LARGE_BODY.length()); + assert (response.getContentType() == "text/plain"); + std::ostringstream ostr; + assert (StreamCopier::copyStream(rs, ostr) == 0); +} + + +void HTTPSClientSessionTest::testPostSmallIdentity() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); + std::string body("this is a random request body\r\n0\r\n"); + request.setContentLength((int) body.length()); + s.sendRequest(request) << body; + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getContentLength() == body.length()); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == body); +} + + +void HTTPSClientSessionTest::testPostLargeIdentity() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); + std::string body(8000, 'x'); + body.append("\r\n0\r\n"); + request.setContentLength((int) body.length()); + s.sendRequest(request) << body; + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getContentLength() == body.length()); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == body); +} + + +void HTTPSClientSessionTest::testPostSmallChunked() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); + std::string body("this is a random request body"); + request.setChunkedTransferEncoding(true); + s.sendRequest(request) << body; + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getChunkedTransferEncoding()); + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == body); +} + + +void HTTPSClientSessionTest::testPostLargeChunked() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + HTTPRequest request(HTTPRequest::HTTP_POST, "/echo"); + std::string body(16000, 'x'); + request.setChunkedTransferEncoding(true); + s.sendRequest(request) << body; + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getChunkedTransferEncoding()); + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == body); +} + + +void HTTPSClientSessionTest::testPostLargeChunkedKeepAlive() +{ + SecureServerSocket svs(32322); + HTTPServer srv(new TestRequestHandlerFactory(), svs, new HTTPServerParams()); + srv.start(); + try + { + HTTPSClientSession s("localhost", srv.port()); + s.setKeepAlive(true); + for (int i = 0; i < 10; ++i) + { + HTTPRequest request(HTTPRequest::HTTP_POST, "/keepAlive", HTTPMessage::HTTP_1_1); + std::string body(16000, 'x'); + request.setChunkedTransferEncoding(true); + s.sendRequest(request) << body; + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assert (response.getChunkedTransferEncoding()); + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assert (ostr.str() == body); + } + srv.stop(); + } + catch (...) + { + srv.stop(); + throw; + } +} + + +void HTTPSClientSessionTest::testKeepAlive() +{ + HTTPSTestServer srv; + HTTPSClientSession s("localhost", srv.port()); + s.setKeepAlive(true); + HTTPRequest request(HTTPRequest::HTTP_HEAD, "/keepAlive", HTTPMessage::HTTP_1_1); + s.sendRequest(request); + HTTPResponse response; + std::istream& rs1 = s.receiveResponse(response); + assert (response.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response.getContentType() == "text/plain"); + assert (response.getKeepAlive()); + std::ostringstream ostr1; + assert (StreamCopier::copyStream(rs1, ostr1) == 0); + + request.setMethod(HTTPRequest::HTTP_GET); + request.setURI("/small"); + s.sendRequest(request); + std::istream& rs2 = s.receiveResponse(response); + assert (response.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response.getKeepAlive()); + std::ostringstream ostr2; + StreamCopier::copyStream(rs2, ostr2); + assert (ostr2.str() == HTTPSTestServer::SMALL_BODY); + + request.setMethod(HTTPRequest::HTTP_GET); + request.setURI("/large"); + s.sendRequest(request); + std::istream& rs3 = s.receiveResponse(response); + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + assert (response.getChunkedTransferEncoding()); + assert (response.getKeepAlive()); + std::ostringstream ostr3; + StreamCopier::copyStream(rs3, ostr3); + assert (ostr3.str() == HTTPSTestServer::LARGE_BODY); + + request.setMethod(HTTPRequest::HTTP_HEAD); + request.setURI("/large"); + s.sendRequest(request); + std::istream& rs4 = s.receiveResponse(response); + assert (response.getContentLength() == HTTPSTestServer::LARGE_BODY.length()); + assert (response.getContentType() == "text/plain"); + assert (!response.getKeepAlive()); + std::ostringstream ostr4; + assert (StreamCopier::copyStream(rs4, ostr4) == 0); +} + + +void HTTPSClientSessionTest::testInterop() +{ + HTTPSClientSession s("secure.appinf.com"); + HTTPRequest request(HTTPRequest::HTTP_GET, "/public/poco/NetSSL.txt"); + s.sendRequest(request); + Poco::Net::X509Certificate cert = s.serverCertificate(); + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + std::string str(ostr.str()); + assert (str == "This is a test file for NetSSL.\n"); + assert (cert.commonName() == "secure.appinf.com" || cert.commonName() == "*.appinf.com"); +} + + +void HTTPSClientSessionTest::testProxy() +{ + HTTPSTestServer srv; + HTTPSClientSession s("secure.appinf.com"); + s.setProxy( + Application::instance().config().getString("testsuite.proxy.host"), + Application::instance().config().getInt("testsuite.proxy.port") + ); + HTTPRequest request(HTTPRequest::HTTP_GET, "/public/poco/NetSSL.txt"); + s.sendRequest(request); + Poco::Net::X509Certificate cert = s.serverCertificate(); + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + std::string str(ostr.str()); + assert (str == "This is a test file for NetSSL.\n"); + assert (cert.commonName() == "secure.appinf.com" || cert.commonName() == "*.appinf.com"); +} + + +void HTTPSClientSessionTest::testCachedSession() +{ + // ensure OpenSSL machinery is fully setup + Context::Ptr pDefaultServerContext = SSLManager::instance().defaultServerContext(); + Context::Ptr pDefaultClientContext = SSLManager::instance().defaultClientContext(); + + Context::Ptr pServerContext = new Context( + Context::SERVER_USE, + ""); + //pServerContext->enableSessionCache(true, "TestSuite"); + //pServerContext->setSessionTimeout(10); + //pServerContext->setSessionCacheSize(1000); + //pServerContext->disableStatelessSessionResumption(); + + HTTPSTestServer srv(pServerContext); + + Context::Ptr pClientContext = new Context( + Context::CLIENT_USE, + ""); + //pClientContext->enableSessionCache(true); + + HTTPSClientSession s1("localhost", srv.port(), pClientContext); + HTTPRequest request1(HTTPRequest::HTTP_GET, "/small"); + s1.sendRequest(request1); + Session::Ptr pSession1 = s1.sslSession(); + HTTPResponse response1; + std::istream& rs1 = s1.receiveResponse(response1); + assert (response1.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response1.getContentType() == "text/plain"); + std::ostringstream ostr1; + StreamCopier::copyStream(rs1, ostr1); + assert (ostr1.str() == HTTPSTestServer::SMALL_BODY); + + HTTPSClientSession s2("localhost", srv.port(), pClientContext, pSession1); + HTTPRequest request2(HTTPRequest::HTTP_GET, "/small"); + s2.sendRequest(request2); + Session::Ptr pSession2 = s2.sslSession(); + HTTPResponse response2; + std::istream& rs2 = s2.receiveResponse(response2); + assert (response2.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response2.getContentType() == "text/plain"); + std::ostringstream ostr2; + StreamCopier::copyStream(rs2, ostr2); + assert (ostr2.str() == HTTPSTestServer::SMALL_BODY); + + assert (pSession1 == pSession2); + + HTTPRequest request3(HTTPRequest::HTTP_GET, "/small"); + s2.sendRequest(request3); + Session::Ptr pSession3 = s2.sslSession(); + HTTPResponse response3; + std::istream& rs3 = s2.receiveResponse(response3); + assert (response3.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response3.getContentType() == "text/plain"); + std::ostringstream ostr3; + StreamCopier::copyStream(rs3, ostr3); + assert (ostr3.str() == HTTPSTestServer::SMALL_BODY); + + assert (pSession1 == pSession3); + + Thread::sleep(15000); // wait for session to expire + //pServerContext->flushSessionCache(); + + HTTPRequest request4(HTTPRequest::HTTP_GET, "/small"); + s2.sendRequest(request4); + Session::Ptr pSession4 = s2.sslSession(); + HTTPResponse response4; + std::istream& rs4 = s2.receiveResponse(response4); + assert (response4.getContentLength() == HTTPSTestServer::SMALL_BODY.length()); + assert (response4.getContentType() == "text/plain"); + std::ostringstream ostr4; + StreamCopier::copyStream(rs4, ostr4); + assert (ostr4.str() == HTTPSTestServer::SMALL_BODY); + + assert (pSession1 != pSession4); +} + + +void HTTPSClientSessionTest::setUp() +{ +} + + +void HTTPSClientSessionTest::tearDown() +{ +} + + +CppUnit::Test* HTTPSClientSessionTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSClientSessionTest"); + + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testGetSmall); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testGetLarge); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testHead); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostSmallIdentity); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostLargeIdentity); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostSmallChunked); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostLargeChunked); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testPostLargeChunkedKeepAlive); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testKeepAlive); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testInterop); + CppUnit_addTest(pSuite, HTTPSClientSessionTest, testProxy); + //CppUnit_addTest(pSuite, HTTPSClientSessionTest, testCachedSession); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.h b/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.h new file mode 100644 index 000000000..fee50dcb2 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.h @@ -0,0 +1,51 @@ +// +// HTTPSClientSessionTest.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSClientSessionTest.h#1 $ +// +// Definition of the HTTPSClientSessionTest class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef HTTPSClientSessionTest_INCLUDED +#define HTTPSClientSessionTest_INCLUDED + + +#include "Poco/Net/Net.h" +#include "CppUnit/TestCase.h" + + +class HTTPSClientSessionTest: public CppUnit::TestCase +{ +public: + HTTPSClientSessionTest(const std::string& name); + ~HTTPSClientSessionTest(); + + void testGetSmall(); + void testGetLarge(); + void testHead(); + void testPostSmallIdentity(); + void testPostLargeIdentity(); + void testPostSmallChunked(); + void testPostLargeChunked(); + void testPostLargeChunkedKeepAlive(); + void testKeepAlive(); + void testInterop(); + void testProxy(); + void testCachedSession(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: +}; + + +#endif // HTTPSClientSessionTest_INCLUDED diff --git a/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.cpp b/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.cpp new file mode 100644 index 000000000..2728b41e8 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.cpp @@ -0,0 +1,26 @@ +// +// HTTPSClientTestSuite.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "HTTPSClientTestSuite.h" +#include "HTTPSClientSessionTest.h" +#include "HTTPSStreamFactoryTest.h" + + +CppUnit::Test* HTTPSClientTestSuite::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSClientTestSuite"); + + pSuite->addTest(HTTPSClientSessionTest::suite()); + pSuite->addTest(HTTPSStreamFactoryTest::suite()); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.h b/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.h new file mode 100644 index 000000000..dd83f9032 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.h @@ -0,0 +1,29 @@ +// +// HTTPSClientTestSuite.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSClientTestSuite.h#1 $ +// +// Definition of the HTTPSClientTestSuite class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef HTTPSClientTestSuite_INCLUDED +#define HTTPSClientTestSuite_INCLUDED + + +#include "CppUnit/TestSuite.h" + + +class HTTPSClientTestSuite +{ +public: + static CppUnit::Test* suite(); +}; + + +#endif // HTTPSClientTestSuite_INCLUDED diff --git a/NetSSL_Win/testsuite/src/HTTPSServerTest.cpp b/NetSSL_Win/testsuite/src/HTTPSServerTest.cpp new file mode 100644 index 000000000..8ccf04948 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSServerTest.cpp @@ -0,0 +1,351 @@ +// +// HTTPSServerTest.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSServerTest.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "HTTPSServerTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/Net/HTTPServer.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/HTTPRequestHandler.h" +#include "Poco/Net/HTTPRequestHandlerFactory.h" +#include "Poco/Net/HTTPSClientSession.h" +#include "Poco/Net/HTTPRequest.h" +#include "Poco/Net/HTTPServerRequest.h" +#include "Poco/Net/HTTPResponse.h" +#include "Poco/Net/HTTPServerResponse.h" +#include "Poco/Net/SecureServerSocket.h" +#include "Poco/StreamCopier.h" +#include + + +using Poco::Net::HTTPServer; +using Poco::Net::HTTPServerParams; +using Poco::Net::HTTPRequestHandler; +using Poco::Net::HTTPRequestHandlerFactory; +using Poco::Net::HTTPSClientSession; +using Poco::Net::HTTPRequest; +using Poco::Net::HTTPServerRequest; +using Poco::Net::HTTPResponse; +using Poco::Net::HTTPServerResponse; +using Poco::Net::HTTPMessage; +using Poco::Net::SecureServerSocket; +using Poco::StreamCopier; + + +namespace +{ + class EchoBodyRequestHandler: public HTTPRequestHandler + { + public: + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + if (request.getChunkedTransferEncoding()) + response.setChunkedTransferEncoding(true); + else if (request.getContentLength() != HTTPMessage::UNKNOWN_CONTENT_LENGTH) + response.setContentLength(request.getContentLength()); + + response.setContentType(request.getContentType()); + + std::istream& istr = request.stream(); + std::ostream& ostr = response.send(); + StreamCopier::copyStream(istr, ostr); + } + }; + + class EchoHeaderRequestHandler: public HTTPRequestHandler + { + public: + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + std::ostringstream osstr; + request.write(osstr); + int n = (int) osstr.str().length(); + response.setContentLength(n); + std::ostream& ostr = response.send(); + if (request.getMethod() != HTTPRequest::HTTP_HEAD) + request.write(ostr); + } + }; + + class RedirectRequestHandler: public HTTPRequestHandler + { + public: + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + response.redirect("http://www.appinf.com/"); + } + }; + + class AuthRequestHandler: public HTTPRequestHandler + { + public: + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + response.requireAuthentication("/auth"); + response.send(); + } + }; + + class RequestHandlerFactory: public HTTPRequestHandlerFactory + { + public: + HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) + { + if (request.getURI() == "/echoBody") + return new EchoBodyRequestHandler; + else if (request.getURI() == "/echoHeader") + return new EchoHeaderRequestHandler; + else if (request.getURI() == "/redirect") + return new RedirectRequestHandler(); + else if (request.getURI() == "/auth") + return new AuthRequestHandler(); + else + return 0; + } + }; +} + + +HTTPSServerTest::HTTPSServerTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +HTTPSServerTest::~HTTPSServerTest() +{ +} + + +void HTTPSServerTest::testIdentityRequest() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(false); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + std::string body(5000, 'x'); + HTTPRequest request("POST", "/echoBody"); + request.setContentLength((int) body.length()); + request.setContentType("text/plain"); + cs.sendRequest(request) << body; + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == body.size()); + assert (response.getContentType() == "text/plain"); + assert (rbody == body); +} + + +void HTTPSServerTest::testChunkedRequest() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(false); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + std::string body(5000, 'x'); + HTTPRequest request("POST", "/echoBody"); + request.setContentType("text/plain"); + request.setChunkedTransferEncoding(true); + cs.sendRequest(request) << body; + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + assert (response.getContentType() == "text/plain"); + assert (response.getChunkedTransferEncoding()); + assert (rbody == body); +} + + +void HTTPSServerTest::testIdentityRequestKeepAlive() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(true); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + cs.setKeepAlive(true); + std::string body(5000, 'x'); + HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); + request.setContentLength((int) body.length()); + request.setContentType("text/plain"); + cs.sendRequest(request) << body; + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == body.size()); + assert (response.getContentType() == "text/plain"); + assert (response.getKeepAlive()); + assert (rbody == body); + + body.assign(1000, 'y'); + request.setContentLength((int) body.length()); + request.setKeepAlive(false); + cs.sendRequest(request) << body; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == body.size()); + assert (response.getContentType() == "text/plain"); + assert (!response.getKeepAlive()); + assert (rbody == body);} + + +void HTTPSServerTest::testChunkedRequestKeepAlive() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(true); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + cs.setKeepAlive(true); + std::string body(5000, 'x'); + HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); + request.setContentType("text/plain"); + request.setChunkedTransferEncoding(true); + cs.sendRequest(request) << body; + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + assert (response.getContentType() == "text/plain"); + assert (response.getChunkedTransferEncoding()); + assert (rbody == body); + + body.assign(1000, 'y'); + request.setKeepAlive(false); + cs.sendRequest(request) << body; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); + assert (response.getContentType() == "text/plain"); + assert (response.getChunkedTransferEncoding()); + assert (!response.getKeepAlive()); + assert (rbody == body); +} + + +void HTTPSServerTest::test100Continue() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(false); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + std::string body(5000, 'x'); + HTTPRequest request("POST", "/echoBody"); + request.setContentLength((int) body.length()); + request.setContentType("text/plain"); + request.set("Expect", "100-Continue"); + cs.sendRequest(request) << body; + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getContentLength() == body.size()); + assert (response.getContentType() == "text/plain"); + assert (rbody == body); +} + + +void HTTPSServerTest::testRedirect() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(false); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + HTTPRequest request("GET", "/redirect"); + cs.sendRequest(request); + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getStatus() == HTTPResponse::HTTP_FOUND); + assert (response.get("Location") == "http://www.appinf.com/"); + assert (rbody.empty()); +} + + +void HTTPSServerTest::testAuth() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(false); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + HTTPRequest request("GET", "/auth"); + cs.sendRequest(request); + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getStatus() == HTTPResponse::HTTP_UNAUTHORIZED); + assert (response.get("WWW-Authenticate") == "Basic realm=\"/auth\""); + assert (rbody.empty()); +} + + +void HTTPSServerTest::testNotImpl() +{ + SecureServerSocket svs(0); + HTTPServerParams* pParams = new HTTPServerParams; + pParams->setKeepAlive(false); + HTTPServer srv(new RequestHandlerFactory, svs, pParams); + srv.start(); + + HTTPSClientSession cs("localhost", svs.address().port()); + HTTPRequest request("GET", "/notImpl"); + cs.sendRequest(request); + HTTPResponse response; + std::string rbody; + cs.receiveResponse(response) >> rbody; + assert (response.getStatus() == HTTPResponse::HTTP_NOT_IMPLEMENTED); + assert (rbody.empty()); +} + + +void HTTPSServerTest::setUp() +{ +} + + +void HTTPSServerTest::tearDown() +{ +} + + +CppUnit::Test* HTTPSServerTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSServerTest"); + + CppUnit_addTest(pSuite, HTTPSServerTest, testIdentityRequest); + CppUnit_addTest(pSuite, HTTPSServerTest, testChunkedRequest); + CppUnit_addTest(pSuite, HTTPSServerTest, testIdentityRequestKeepAlive); + CppUnit_addTest(pSuite, HTTPSServerTest, testChunkedRequestKeepAlive); + CppUnit_addTest(pSuite, HTTPSServerTest, test100Continue); + CppUnit_addTest(pSuite, HTTPSServerTest, testRedirect); + CppUnit_addTest(pSuite, HTTPSServerTest, testAuth); + CppUnit_addTest(pSuite, HTTPSServerTest, testNotImpl); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/HTTPSServerTest.h b/NetSSL_Win/testsuite/src/HTTPSServerTest.h new file mode 100644 index 000000000..9ba28c2c7 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSServerTest.h @@ -0,0 +1,47 @@ +// +// HTTPSServerTest.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSServerTest.h#1 $ +// +// Definition of the HTTPSServerTest class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef HTTPSServerTest_INCLUDED +#define HTTPSServerTest_INCLUDED + + +#include "Poco/Net/Net.h" +#include "CppUnit/TestCase.h" + + +class HTTPSServerTest: public CppUnit::TestCase +{ +public: + HTTPSServerTest(const std::string& name); + ~HTTPSServerTest(); + + void testIdentityRequest(); + void testChunkedRequest(); + void testIdentityRequestKeepAlive(); + void testChunkedRequestKeepAlive(); + void test100Continue(); + void testRedirect(); + void testAuth(); + void testNotImpl(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: +}; + + +#endif // HTTPSServerTest_INCLUDED diff --git a/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.cpp b/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.cpp new file mode 100644 index 000000000..be84e9838 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.cpp @@ -0,0 +1,24 @@ +// +// HTTPSServerTestSuite.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "HTTPSServerTestSuite.h" +#include "HTTPSServerTest.h" + + +CppUnit::Test* HTTPSServerTestSuite::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSServerTestSuite"); + + pSuite->addTest(HTTPSServerTest::suite()); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.h b/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.h new file mode 100644 index 000000000..e16548843 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.h @@ -0,0 +1,29 @@ +// +// HTTPSServerTestSuite.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSServerTestSuite.h#1 $ +// +// Definition of the HTTPSServerTestSuite class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef HTTPSServerTestSuite_INCLUDED +#define HTTPSServerTestSuite_INCLUDED + + +#include "CppUnit/TestSuite.h" + + +class HTTPSServerTestSuite +{ +public: + static CppUnit::Test* suite(); +}; + + +#endif // HTTPSServerTestSuite_INCLUDED diff --git a/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.cpp b/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.cpp new file mode 100644 index 000000000..6357eacfc --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.cpp @@ -0,0 +1,139 @@ +// +// HTTPSStreamFactoryTest.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "HTTPSStreamFactoryTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/Net/HTTPSStreamFactory.h" +#include "Poco/Net/NetException.h" +#include "Poco/Util/Application.h" +#include "Poco/Util/AbstractConfiguration.h" +#include "Poco/URI.h" +#include "Poco/Exception.h" +#include "Poco/StreamCopier.h" +#include "HTTPSTestServer.h" +#include +#include + + +using Poco::Net::HTTPSStreamFactory; +using Poco::Net::NetException; +using Poco::Net::HTTPException; +using Poco::Util::Application; +using Poco::URI; +using Poco::StreamCopier; + + +HTTPSStreamFactoryTest::HTTPSStreamFactoryTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +HTTPSStreamFactoryTest::~HTTPSStreamFactoryTest() +{ +} + + +void HTTPSStreamFactoryTest::testNoRedirect() +{ + HTTPSTestServer server; + HTTPSStreamFactory factory; + URI uri("https://localhost/large"); + uri.setPort(server.port()); + std::auto_ptr pStr(factory.open(uri)); + std::ostringstream ostr; + StreamCopier::copyStream(*pStr.get(), ostr); + assert (ostr.str() == HTTPSTestServer::LARGE_BODY); +} + + +void HTTPSStreamFactoryTest::testEmptyPath() +{ + HTTPSTestServer server; + HTTPSStreamFactory factory; + URI uri("https://localhost"); + uri.setPort(server.port()); + std::auto_ptr pStr(factory.open(uri)); + std::ostringstream ostr; + StreamCopier::copyStream(*pStr.get(), ostr); + assert (ostr.str() == HTTPSTestServer::SMALL_BODY); +} + + +void HTTPSStreamFactoryTest::testRedirect() +{ + HTTPSTestServer server; + HTTPSStreamFactory factory; + URI uri("https://localhost/redirect"); + uri.setPort(server.port()); + std::auto_ptr pStr(factory.open(uri)); + std::ostringstream ostr; + StreamCopier::copyStream(*pStr.get(), ostr); + assert (ostr.str() == HTTPSTestServer::LARGE_BODY); +} + + +void HTTPSStreamFactoryTest::testProxy() +{ + HTTPSTestServer server; + HTTPSStreamFactory factory( + Application::instance().config().getString("testsuite.proxy.host"), + Application::instance().config().getInt("testsuite.proxy.port") + ); + URI uri("https://secure.appinf.com/public/poco/NetSSL.txt"); + std::auto_ptr pStr(factory.open(uri)); + std::ostringstream ostr; + StreamCopier::copyStream(*pStr.get(), ostr); + assert (ostr.str().length() > 0); +} + + +void HTTPSStreamFactoryTest::testError() +{ + HTTPSTestServer server; + HTTPSStreamFactory factory; + URI uri("https://localhost/notfound"); + uri.setPort(server.port()); + try + { + std::istream* pStr = factory.open(uri); + fail("not found - must throw"); + } + catch (HTTPException& exc) + { + std::string m = exc.displayText(); + } +} + + +void HTTPSStreamFactoryTest::setUp() +{ +} + + +void HTTPSStreamFactoryTest::tearDown() +{ +} + + +CppUnit::Test* HTTPSStreamFactoryTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPSStreamFactoryTest"); + + CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testNoRedirect); + CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testEmptyPath); + CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testRedirect); + CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testProxy); + CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testError); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.h b/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.h new file mode 100644 index 000000000..df195c44a --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.h @@ -0,0 +1,44 @@ +// +// HTTPSStreamFactoryTest.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSStreamFactoryTest.h#1 $ +// +// Definition of the HTTPSStreamFactoryTest class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef HTTPSStreamFactoryTest_INCLUDED +#define HTTPSStreamFactoryTest_INCLUDED + + +#include "Poco/Net/Net.h" +#include "CppUnit/TestCase.h" + + +class HTTPSStreamFactoryTest: public CppUnit::TestCase +{ +public: + HTTPSStreamFactoryTest(const std::string& name); + ~HTTPSStreamFactoryTest(); + + void testNoRedirect(); + void testEmptyPath(); + void testRedirect(); + void testProxy(); + void testError(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: +}; + + +#endif // HTTPSStreamFactoryTest_INCLUDED diff --git a/NetSSL_Win/testsuite/src/HTTPSTestServer.cpp b/NetSSL_Win/testsuite/src/HTTPSTestServer.cpp new file mode 100644 index 000000000..0f32e78f4 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSTestServer.cpp @@ -0,0 +1,232 @@ +// +// HTTPSTestServer.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSTestServer.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "HTTPSTestServer.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SocketAddress.h" +#include "Poco/Timespan.h" +#include "Poco/NumberFormatter.h" +#include + + +using Poco::Net::Socket; +using Poco::Net::StreamSocket; +using Poco::Net::SecureStreamSocket; +using Poco::Net::SecureServerSocket; +using Poco::Net::SocketAddress; +using Poco::NumberFormatter; + + +const std::string HTTPSTestServer::SMALL_BODY("This is some random text data returned by the server"); +const std::string HTTPSTestServer::LARGE_BODY(4000, 'x'); + + +HTTPSTestServer::HTTPSTestServer(): + _socket(SocketAddress()), + _thread("HTTPSTestServer"), + _stop(false) +{ + _thread.start(*this); + _ready.wait(); + _lastRequest.reserve(4000); +} + + +HTTPSTestServer::HTTPSTestServer(Poco::Net::Context::Ptr pContext): + _socket(SocketAddress(), 64, pContext), + _thread("HTTPSTestServer"), + _stop(false) +{ + _thread.start(*this); + _ready.wait(); + _lastRequest.reserve(4000); +} + + +HTTPSTestServer::~HTTPSTestServer() +{ + _stop = true; + _thread.join(); +} + + +Poco::UInt16 HTTPSTestServer::port() const +{ + return _socket.address().port(); +} + + +const std::string& HTTPSTestServer::lastRequest() const +{ + return _lastRequest; +} + + +void HTTPSTestServer::run() +{ + _ready.set(); + Poco::Timespan span(250000); + while (!_stop) + { + if (_socket.poll(span, Socket::SELECT_READ)) + { + StreamSocket ss = _socket.acceptConnection(); + try + { + _lastRequest.clear(); + char buffer[256]; + int n = ss.receiveBytes(buffer, sizeof(buffer)); + while (n > 0 && !_stop) + { + _lastRequest.append(buffer, n); + if (!requestComplete()) + n = ss.receiveBytes(buffer, sizeof(buffer)); + else + n = 0; + } + std::string response = handleRequest(); + ss.sendBytes(response.data(), (int) response.size()); + Poco::Thread::sleep(1000); + } + catch (Poco::Exception& exc) + { + std::cerr << "HTTPSTestServer: " << exc.displayText() << std::endl; + } + } + } +} + + +bool HTTPSTestServer::requestComplete() const +{ + return ((_lastRequest.substr(0, 3) == "GET" || _lastRequest.substr(0, 4) == "HEAD") && + (_lastRequest.find("\r\n\r\n") != std::string::npos)) || + (_lastRequest.find("\r\n0\r\n") != std::string::npos); +} + + +std::string HTTPSTestServer::handleRequest() const +{ + std::string response; + response.reserve(16000); + if (_lastRequest.substr(0, 10) == "GET /small" || + _lastRequest.substr(0, 11) == "HEAD /small") + { + std::string body(SMALL_BODY); + response.append("HTTP/1.0 200 OK\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n"); + response.append("Connection: Close\r\n"); + response.append("\r\n"); + if (_lastRequest.substr(0, 3) == "GET") + response.append(body); + } + else if (_lastRequest.substr(0, 10) == "GET /large" || + _lastRequest.substr(0, 11) == "HEAD /large" || + _lastRequest.substr(0, 36) == "GET http://www.somehost.com:80/large") + { + std::string body(LARGE_BODY); + response.append("HTTP/1.0 200 OK\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n"); + response.append("Connection: Close\r\n"); + response.append("\r\n"); + if (_lastRequest.substr(0, 3) == "GET") + response.append(body); + } + else if (_lastRequest.substr(0, 4) == "POST") + { + std::string::size_type pos = _lastRequest.find("\r\n\r\n"); + pos += 4; + std::string body = _lastRequest.substr(pos); + response.append("HTTP/1.0 200 OK\r\n"); + response.append("Content-Type: text/plain\r\n"); + if (_lastRequest.find("Content-Length") != std::string::npos) + { + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n"); + } + else if (_lastRequest.find("chunked") != std::string::npos) + { + response.append("Transfer-Encoding: chunked\r\n"); + } + if (_lastRequest.substr(0,15) == "POST /keepAlive") + response.append("Connection: keep-alive\r\n"); + else + response.append("Connection: Close\r\n"); + response.append("\r\n"); + response.append(body); + } + else if (_lastRequest.substr(0, 15) == "HEAD /keepAlive") + { + std::string body(SMALL_BODY); + response.append("HTTP/1.1 200 OK\r\n"); + response.append("Connection: keep-alive\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n\r\n"); + response.append("HTTP/1.1 200 OK\r\n"); + response.append("Connection: Keep-Alive\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n\r\n"); + response.append(body); + body = LARGE_BODY; + response.append("HTTP/1.1 200 OK\r\n"); + response.append("Connection: keep-alive\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Transfer-Encoding: chunked\r\n\r\n"); + response.append(NumberFormatter::formatHex((unsigned) body.length())); + response.append("\r\n"); + response.append(body); + response.append("\r\n0\r\n\r\n"); + response.append("HTTP/1.1 200 OK\r\n"); + response.append("Connection: close\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n\r\n"); + } + else if (_lastRequest.substr(0, 13) == "GET /redirect") + { + response.append("HTTP/1.0 302 Found\r\n"); + response.append("Location: /large\r\n"); + response.append("\r\n"); + } + else if (_lastRequest.substr(0, 13) == "GET /notfound") + { + response.append("HTTP/1.0 404 Not Found\r\n"); + response.append("\r\n"); + } + else if (_lastRequest.substr(0, 5) == "GET /" || + _lastRequest.substr(0, 6) == "HEAD /") + { + std::string body(SMALL_BODY); + response.append("HTTP/1.0 200 OK\r\n"); + response.append("Content-Type: text/plain\r\n"); + response.append("Content-Length: "); + response.append(NumberFormatter::format((int) body.size())); + response.append("\r\n"); + response.append("Connection: Close\r\n"); + response.append("\r\n"); + if (_lastRequest.substr(0, 3) == "GET") + response.append(body); + } + return response; +} diff --git a/NetSSL_Win/testsuite/src/HTTPSTestServer.h b/NetSSL_Win/testsuite/src/HTTPSTestServer.h new file mode 100644 index 000000000..b0961e3d1 --- /dev/null +++ b/NetSSL_Win/testsuite/src/HTTPSTestServer.h @@ -0,0 +1,64 @@ +// +// HTTPSTestServer.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/HTTPSTestServer.h#1 $ +// +// Definition of the HTTPSTestServer class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef HTTPSTestServer_INCLUDED +#define HTTPSTestServer_INCLUDED + + +#include "Poco/Net/Net.h" +#include "Poco/Net/SecureServerSocket.h" +#include "Poco/Thread.h" +#include "Poco/Event.h" + + +class HTTPSTestServer: public Poco::Runnable + /// A simple sequential echo server. +{ +public: + HTTPSTestServer(); + /// Creates the HTTPSTestServer. + + explicit HTTPSTestServer(Poco::Net::Context::Ptr pContext); + /// Creates the HTTPSTestServer using the given Context. + + ~HTTPSTestServer(); + /// Destroys the HTTPSTestServer. + + Poco::UInt16 port() const; + /// Returns the port the echo server is + /// listening on. + + void run(); + /// Does the work. + + const std::string& lastRequest() const; + /// Returns the last request. + + static const std::string SMALL_BODY; + static const std::string LARGE_BODY; + +protected: + bool requestComplete() const; + std::string handleRequest() const; + +private: + Poco::Net::SecureServerSocket _socket; + Poco::Thread _thread; + Poco::Event _ready; + bool _stop; + std::string _lastRequest; +}; + + +#endif // HTTPSTestServer_INCLUDED diff --git a/NetSSL_Win/testsuite/src/NetSSLTestSuite.cpp b/NetSSL_Win/testsuite/src/NetSSLTestSuite.cpp new file mode 100644 index 000000000..3e6250d02 --- /dev/null +++ b/NetSSL_Win/testsuite/src/NetSSLTestSuite.cpp @@ -0,0 +1,30 @@ +// +// NetSSLTestSuite.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/NetSSLTestSuite.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "NetSSLTestSuite.h" + +#include "HTTPSClientTestSuite.h" +#include "TCPServerTestSuite.h" +#include "HTTPSServerTestSuite.h" + + +CppUnit::Test* NetSSLTestSuite::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("OpenSSLTestSuite"); + + + pSuite->addTest(HTTPSClientTestSuite::suite()); + pSuite->addTest(TCPServerTestSuite::suite()); + pSuite->addTest(HTTPSServerTestSuite::suite()); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/NetSSLTestSuite.h b/NetSSL_Win/testsuite/src/NetSSLTestSuite.h new file mode 100644 index 000000000..103b0cf51 --- /dev/null +++ b/NetSSL_Win/testsuite/src/NetSSLTestSuite.h @@ -0,0 +1,29 @@ +// +// NetSSLTestSuite.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/NetSSLTestSuite.h#1 $ +// +// Definition of the NetSSLTestSuite class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef NetSSLTestSuite_INCLUDED +#define NetSSLTestSuite_INCLUDED + + +#include "CppUnit/TestSuite.h" + + +class NetSSLTestSuite +{ +public: + static CppUnit::Test* suite(); +}; + + +#endif // NetSSLTestSuite_INCLUDED diff --git a/NetSSL_Win/testsuite/src/TCPServerTest.cpp b/NetSSL_Win/testsuite/src/TCPServerTest.cpp new file mode 100644 index 000000000..780510a67 --- /dev/null +++ b/NetSSL_Win/testsuite/src/TCPServerTest.cpp @@ -0,0 +1,395 @@ +// +// TCPServerTest.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/TCPServerTest.cpp#2 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "TCPServerTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/Net/TCPServer.h" +#include "Poco/Net/TCPServerConnection.h" +#include "Poco/Net/TCPServerConnectionFactory.h" +#include "Poco/Net/TCPServerParams.h" +#include "Poco/Net/SecureStreamSocket.h" +#include "Poco/Net/SecureServerSocket.h" +#include "Poco/Net/Context.h" +#include "Poco/Net/Session.h" +#include "Poco/Net/SSLManager.h" +#include "Poco/Util/Application.h" +#include "Poco/Util/AbstractConfiguration.h" +#include "Poco/Thread.h" +#include + + +using Poco::Net::TCPServer; +using Poco::Net::TCPServerConnection; +using Poco::Net::TCPServerConnectionFactory; +using Poco::Net::TCPServerConnectionFactoryImpl; +using Poco::Net::TCPServerParams; +using Poco::Net::StreamSocket; +using Poco::Net::SecureStreamSocket; +using Poco::Net::SecureServerSocket; +using Poco::Net::SocketAddress; +using Poco::Net::Context; +using Poco::Net::Session; +using Poco::Net::SSLManager; +using Poco::Thread; +using Poco::Util::Application; + + +namespace +{ + class EchoConnection: public TCPServerConnection + { + public: + EchoConnection(const StreamSocket& s): TCPServerConnection(s) + { + } + + void run() + { + StreamSocket& ss = socket(); + try + { + char buffer[256]; + int n = ss.receiveBytes(buffer, sizeof(buffer)); + while (n > 0) + { + ss.sendBytes(buffer, n); + n = ss.receiveBytes(buffer, sizeof(buffer)); + } + } + catch (Poco::Exception& exc) + { + std::cerr << "EchoConnection: " << exc.displayText() << std::endl; + } + } + }; +} + + +TCPServerTest::TCPServerTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +TCPServerTest::~TCPServerTest() +{ +} + + +void TCPServerTest::testOneConnection() +{ + SecureServerSocket svs(0); + TCPServer srv(new TCPServerConnectionFactoryImpl(), svs); + srv.start(); + assert (srv.currentConnections() == 0); + assert (srv.currentThreads() == 0); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 0); + + SocketAddress sa("localhost", svs.address().port()); + SecureStreamSocket ss1(sa); + std::string data("hello, world"); + ss1.sendBytes(data.data(), (int) data.size()); + char buffer[256]; + int n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + assert (srv.currentConnections() == 1); + assert (srv.currentThreads() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 1); + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); +} + + +void TCPServerTest::testTwoConnections() +{ + SecureServerSocket svs(0); + TCPServer srv(new TCPServerConnectionFactoryImpl(), svs); + srv.start(); + assert (srv.currentConnections() == 0); + assert (srv.currentThreads() == 0); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 0); + + SocketAddress sa("localhost", svs.address().port()); + SecureStreamSocket ss1(sa); + SecureStreamSocket ss2(sa); + std::string data("hello, world"); + ss1.sendBytes(data.data(), (int) data.size()); + ss2.sendBytes(data.data(), (int) data.size()); + + char buffer[256]; + int n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + + n = ss2.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + + assert (srv.currentConnections() == 2); + assert (srv.currentThreads() == 2); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 2); + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 1); + assert (srv.currentThreads() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 2); + ss2.close(); + + Thread::sleep(300); + assert (srv.currentConnections() == 0); +} + + +void TCPServerTest::testMultiConnections() +{ + SecureServerSocket svs(0); + TCPServerParams* pParams = new TCPServerParams; + pParams->setMaxThreads(4); + pParams->setMaxQueued(4); + pParams->setThreadIdleTime(100); + TCPServer srv(new TCPServerConnectionFactoryImpl(), svs, pParams); + srv.start(); + assert (srv.currentConnections() == 0); + assert (srv.currentThreads() == 0); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 0); + + SocketAddress sa("localhost", svs.address().port()); + SecureStreamSocket ss1(sa); + SecureStreamSocket ss2(sa); + SecureStreamSocket ss3(sa); + SecureStreamSocket ss4(sa); + std::string data("hello, world"); + ss1.sendBytes(data.data(), (int) data.size()); + ss2.sendBytes(data.data(), (int) data.size()); + ss3.sendBytes(data.data(), (int) data.size()); + ss4.sendBytes(data.data(), (int) data.size()); + + char buffer[256]; + int n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + + n = ss2.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + + n = ss3.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + + n = ss4.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + + assert (srv.currentConnections() == 4); + assert (srv.currentThreads() == 4); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 4); + + SecureStreamSocket ss5; + ss5.setLazyHandshake(); + ss5.connect(sa); + Thread::sleep(200); + assert (srv.queuedConnections() == 1); + SecureStreamSocket ss6; + ss6.setLazyHandshake(); + ss6.connect(sa); + Thread::sleep(200); + assert (srv.queuedConnections() == 2); + + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 4); + assert (srv.currentThreads() == 4); + assert (srv.queuedConnections() == 1); + assert (srv.totalConnections() == 5); + + ss2.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 4); + assert (srv.currentThreads() == 4); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 6); + + ss3.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 3); + assert (srv.currentThreads() == 3); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 6); + + ss4.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 2); + assert (srv.currentThreads() == 2); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 6); + + ss5.close(); + ss6.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); +} + + +void TCPServerTest::testReuseSocket() +{ + SecureServerSocket svs(0); + TCPServer srv(new TCPServerConnectionFactoryImpl(), svs); + srv.start(); + assert (srv.currentConnections() == 0); + assert (srv.currentThreads() == 0); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 0); + + SocketAddress sa("localhost", svs.address().port()); + SecureStreamSocket ss1(sa); + std::string data("hello, world"); + ss1.sendBytes(data.data(), (int) data.size()); + char buffer[256]; + int n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + assert (srv.currentConnections() == 1); + assert (srv.currentThreads() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 1); + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); + + ss1.connect(sa); + ss1.sendBytes(data.data(), (int) data.size()); + n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + assert (srv.currentConnections() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 2); + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); +} + + +void TCPServerTest::testReuseSession() +{ + // ensure SSL machinery is fully setup + Context::Ptr pDefaultServerContext = SSLManager::instance().defaultServerContext(); + Context::Ptr pDefaultClientContext = SSLManager::instance().defaultClientContext(); + + Context::Ptr pServerContext = new Context( + Context::SERVER_USE, + "test.appinf.com"); + //pServerContext->enableSessionCache(true, "TestSuite"); + //pServerContext->setSessionTimeout(10); + //pServerContext->setSessionCacheSize(1000); + //pServerContext->disableStatelessSessionResumption(); + + SecureServerSocket svs(0, 64, pServerContext); + TCPServer srv(new TCPServerConnectionFactoryImpl(), svs); + srv.start(); + assert (srv.currentConnections() == 0); + assert (srv.currentThreads() == 0); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 0); + + Context::Ptr pClientContext = new Context( + Context::CLIENT_USE, + ""); + //pClientContext->enableSessionCache(true); + + SocketAddress sa("localhost", svs.address().port()); + SecureStreamSocket ss1(sa, pClientContext); + assert (!ss1.sessionWasReused()); + std::string data("hello, world"); + ss1.sendBytes(data.data(), (int) data.size()); + char buffer[256]; + int n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + assert (srv.currentConnections() == 1); + assert (srv.currentThreads() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 1); + + Session::Ptr pSession = ss1.currentSession(); + + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); + + ss1.useSession(pSession); + ss1.connect(sa); + assert (ss1.sessionWasReused()); + assert (ss1.currentSession() == pSession); + ss1.sendBytes(data.data(), (int) data.size()); + n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + assert (srv.currentConnections() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 2); + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); + + Thread::sleep(15000); // wait for session to expire + //pServerContext->flushSessionCache(); + + ss1.useSession(pSession); + ss1.connect(sa); + assert (!ss1.sessionWasReused()); + assert (ss1.currentSession() != pSession); + ss1.sendBytes(data.data(), (int) data.size()); + n = ss1.receiveBytes(buffer, sizeof(buffer)); + assert (n > 0); + assert (std::string(buffer, n) == data); + assert (srv.currentConnections() == 1); + assert (srv.queuedConnections() == 0); + assert (srv.totalConnections() == 3); + ss1.close(); + Thread::sleep(300); + assert (srv.currentConnections() == 0); +} + + +void TCPServerTest::setUp() +{ +} + + +void TCPServerTest::tearDown() +{ +} + + +CppUnit::Test* TCPServerTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TCPServerTest"); + + CppUnit_addTest(pSuite, TCPServerTest, testOneConnection); + CppUnit_addTest(pSuite, TCPServerTest, testTwoConnections); + CppUnit_addTest(pSuite, TCPServerTest, testMultiConnections); + CppUnit_addTest(pSuite, TCPServerTest, testReuseSocket); + //CppUnit_addTest(pSuite, TCPServerTest, testReuseSession); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/TCPServerTest.h b/NetSSL_Win/testsuite/src/TCPServerTest.h new file mode 100644 index 000000000..a71fe40a2 --- /dev/null +++ b/NetSSL_Win/testsuite/src/TCPServerTest.h @@ -0,0 +1,44 @@ +// +// TCPServerTest.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/TCPServerTest.h#1 $ +// +// Definition of the TCPServerTest class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef TCPServerTest_INCLUDED +#define TCPServerTest_INCLUDED + + +#include "Poco/Net/Net.h" +#include "CppUnit/TestCase.h" + + +class TCPServerTest: public CppUnit::TestCase +{ +public: + TCPServerTest(const std::string& name); + ~TCPServerTest(); + + void testOneConnection(); + void testTwoConnections(); + void testMultiConnections(); + void testReuseSocket(); + void testReuseSession(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: +}; + + +#endif // TCPServerTest_INCLUDED diff --git a/NetSSL_Win/testsuite/src/TCPServerTestSuite.cpp b/NetSSL_Win/testsuite/src/TCPServerTestSuite.cpp new file mode 100644 index 000000000..4c622980d --- /dev/null +++ b/NetSSL_Win/testsuite/src/TCPServerTestSuite.cpp @@ -0,0 +1,24 @@ +// +// TCPServerTestSuite.cpp +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/TCPServerTestSuite.cpp#1 $ +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "TCPServerTestSuite.h" +#include "TCPServerTest.h" + + +CppUnit::Test* TCPServerTestSuite::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TCPServerTestSuite"); + + pSuite->addTest(TCPServerTest::suite()); + + return pSuite; +} diff --git a/NetSSL_Win/testsuite/src/TCPServerTestSuite.h b/NetSSL_Win/testsuite/src/TCPServerTestSuite.h new file mode 100644 index 000000000..e803a85d5 --- /dev/null +++ b/NetSSL_Win/testsuite/src/TCPServerTestSuite.h @@ -0,0 +1,29 @@ +// +// TCPServerTestSuite.h +// +// $Id: //poco/1.4/NetSSL_Win/testsuite/src/TCPServerTestSuite.h#1 $ +// +// Definition of the TCPServerTestSuite class. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef TCPServerTestSuite_INCLUDED +#define TCPServerTestSuite_INCLUDED + + +#include "CppUnit/TestSuite.h" + + +class TCPServerTestSuite +{ +public: + static CppUnit::Test* suite(); +}; + + +#endif // TCPServerTestSuite_INCLUDED diff --git a/NetSSL_Win/testsuite/src/WinCEDriver.cpp b/NetSSL_Win/testsuite/src/WinCEDriver.cpp new file mode 100644 index 000000000..54741c3d2 --- /dev/null +++ b/NetSSL_Win/testsuite/src/WinCEDriver.cpp @@ -0,0 +1,90 @@ +// +// WinCEDriver.cpp +// +// $Id: //poco/1.4/NetSSL_OpenSSL/testsuite/src/WinCEDriver.cpp#1 $ +// +// Console-based test driver for Windows CE. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "CppUnit/TestRunner.h" +#include "NetSSLTestSuite.h" +#include "Poco/Util/Application.h" +#include "Poco/Net/HTTPStreamFactory.h" +#include "Poco/Net/HTTPSStreamFactory.h" +#include + + +class NetSSLApp: public Poco::Util::Application +{ +public: + NetSSLApp() + { + Poco::Net::initializeSSL(); + Poco::Net::HTTPStreamFactory::registerFactory(); + Poco::Net::HTTPSStreamFactory::registerFactory(); + } + + ~NetSSLApp() + { + Poco::Net::uninitializeSSL(); + } + + int main(const std::vector& args) + { + CppUnit::TestRunner runner; + runner.addTest("NetSSLTestSuite", NetSSLTestSuite::suite()); + return runner.run(_targs) ? 0 : 1; + } + + void setup(const std::vector& args) + { + char* argv[] = + { + const_cast(args[0].c_str()) + }; + + init(1, argv); + for (std::size_t i = 0; i < args.size(); ++i) + _targs.push_back(args[i]); + } + +protected: + void initialize(Poco::Util::Application& self) + { + loadConfiguration(); // load default configuration files, if present + Poco::Util::Application::initialize(self); + } + +private: + std::vector _targs; +}; + + +int _tmain(int argc, wchar_t* argv[]) +{ + std::vector args; + for (int i = 0; i < argc; ++i) + { + char buffer[1024]; + std::wcstombs(buffer, argv[i], sizeof(buffer)); + args.push_back(std::string(buffer)); + } + + NetSSLApp app; + try + { + app.setup(args); + return app.run(); + } + catch (Poco::Exception& exc) + { + std::cout << exc.displayText() << std::endl; + return 1; + } +} diff --git a/NetSSL_Win/testsuite/src/WinDriver.cpp b/NetSSL_Win/testsuite/src/WinDriver.cpp new file mode 100644 index 000000000..7873ea0b1 --- /dev/null +++ b/NetSSL_Win/testsuite/src/WinDriver.cpp @@ -0,0 +1,77 @@ +// +// WinDriver.cpp +// +// $Id: //poco/1.4/NetSSL_OpenSSL/testsuite/src/WinDriver.cpp#1 $ +// +// Windows test driver for Poco NetSSL. +// +// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "WinTestRunner/WinTestRunner.h" +#include "NetSSLTestSuite.h" +#include "Poco/Util/Application.h" +#include "Poco/Net/HTTPStreamFactory.h" +#include "Poco/Net/HTTPSStreamFactory.h" + + +class NetSSLApp: public Poco::Util::Application +{ +public: + NetSSLApp() + { + Poco::Net::initializeSSL(); + Poco::Net::HTTPStreamFactory::registerFactory(); + Poco::Net::HTTPSStreamFactory::registerFactory(); + } + + ~NetSSLApp() + { + Poco::Net::uninitializeSSL(); + } + + int main(const std::vector& args) + { + CppUnit::WinTestRunner runner; + runner.addTest(NetSSLTestSuite::suite()); + runner.run(); + return 0; + } + +protected: + void initialize(Poco::Util::Application& self) + { + loadConfiguration(); // load default configuration files, if present + Poco::Util::Application::initialize(self); + } + +private: + std::vector _targs; +}; + + +class TestDriver: public CppUnit::WinTestRunnerApp +{ + void TestMain() + { + NetSSLApp app; + std::string argv("TestSuite"); + const char* pArgv = argv.c_str(); + try + { + app.init(1, (char**)&pArgv); + app.run(); + } + catch (Poco::Exception& exc) + { + app.logger().log(exc); + } + } +}; + + +static TestDriver theDriver; diff --git a/NetSSL_Win/testsuite/testrunner.xml b/NetSSL_Win/testsuite/testrunner.xml new file mode 100644 index 000000000..2c03eb7be --- /dev/null +++ b/NetSSL_Win/testsuite/testrunner.xml @@ -0,0 +1,29 @@ + + + + ${system.nodeName} + none + false + + AcceptCertificateHandler + + + + + + relaxed + false + + AcceptCertificateHandler + + + + + + + + proxy.aon.at + 8080 + + +