fixed project file, removed TODOs, work on RSA

This commit is contained in:
Günter Obiltschnig
2015-05-18 17:31:48 +02:00
8 changed files with 116 additions and 1194 deletions

View File

@@ -1,50 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto_Win", "Crypto_Win_vs71.vcproj", "{ACE069C0-B8FB-49C2-8D8F-410136C7D332}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs71.vcproj", "{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}"
ProjectSection(ProjectDependencies) = postProject
{ACE069C0-B8FB-49C2-8D8F-410136C7D332} = {ACE069C0-B8FB-49C2-8D8F-410136C7D332}
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
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_shared.ActiveCfg = debug_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_shared.Build.0 = debug_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_shared.ActiveCfg = release_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_shared.Build.0 = release_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_mt.ActiveCfg = debug_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_mt.Build.0 = debug_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_mt.ActiveCfg = release_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_mt.Build.0 = release_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_md.ActiveCfg = debug_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_md.Build.0 = debug_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_md.ActiveCfg = release_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_md.Build.0 = release_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared.ActiveCfg = debug_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared.Build.0 = debug_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared.ActiveCfg = release_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared.Build.0 = release_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt.ActiveCfg = debug_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt.Build.0 = debug_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt.ActiveCfg = release_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt.Build.0 = release_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md.ActiveCfg = debug_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md.Build.0 = debug_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md.ActiveCfg = release_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md.Build.0 = release_static_md|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

View File

@@ -1,515 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
Name="Crypto_Win"
Version="7.10"
ProjectType="Visual C++"
ProjectGUID="{ACE069C0-B8FB-49C2-8D8F-410136C7D332}"
RootNamespace="Crypto_Win"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;Crypto_Win_EXPORTS"
StringPooling="TRUE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\vc70.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"
CompileAs="0"
DisableSpecificWarnings="4800;"
AdditionalOptions=""/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Crypt32.lib iphlpapi.lib"
OutputFile="..\bin\PocoCryptoWind.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="..\bin\PocoCryptoWind.pdb"
AdditionalLibraryDirectories="..\lib"
SubSystem="1"
ImportLibrary="..\lib\PocoCryptoWind.lib"
TargetMachine="1"
AdditionalOptions=""/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;Crypto_Win_EXPORTS"
StringPooling="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\vc70.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="0"
CompileAs="0"
DisableSpecificWarnings="4800;"
AdditionalOptions=""/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Crypt32.lib iphlpapi.lib"
OutputFile="..\bin\PocoCryptoWin.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="FALSE"
AdditionalLibraryDirectories="..\lib"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="..\lib\PocoCryptoWin.lib"
TargetMachine="1"
AdditionalOptions=""/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="debug_static_mt|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="TRUE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
BufferSecurityCheck="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="..\lib\PocoCryptoWinmtd.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"
CompileAs="0"
DisableSpecificWarnings="4800;"
AdditionalOptions=""/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmtd.lib"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="release_static_mt|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="0"
BufferSecurityCheck="FALSE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\vc70.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="0"
CompileAs="0"
DisableSpecificWarnings="4800;"
AdditionalOptions=""/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmt.lib"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="debug_static_md|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="TRUE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="..\lib\PocoCryptoWinmdd.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="3"
CompileAs="0"
DisableSpecificWarnings="4800;"
AdditionalOptions=""/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmdd.lib"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="release_static_md|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="2"
BufferSecurityCheck="FALSE"
TreatWChar_tAsBuiltInType="TRUE"
ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="TRUE"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\vc70.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="0"
CompileAs="0"
DisableSpecificWarnings="4800;"
AdditionalOptions=""/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmd.lib"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References/>
<Files>
<Filter
Name="Cipher">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\Cipher.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherFactory.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherImpl.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherKey.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherKeyImpl.h"/>
<File
RelativePath=".\include\Poco\Crypto\CryptoStream.h"/>
<File
RelativePath=".\include\Poco\Crypto\CryptoTransform.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\Cipher.cpp"/>
<File
RelativePath=".\src\CipherFactory.cpp"/>
<File
RelativePath=".\src\CipherImpl.cpp"/>
<File
RelativePath=".\src\CipherKey.cpp"/>
<File
RelativePath=".\src\CipherKeyImpl.cpp"/>
<File
RelativePath=".\src\CryptoStream.cpp"/>
<File
RelativePath=".\src\CryptoTransform.cpp"/>
</Filter>
</Filter>
<Filter
Name="RSA">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\RSACipherImpl.h"/>
<File
RelativePath=".\include\Poco\Crypto\RSADigestEngine.h"/>
<File
RelativePath=".\include\Poco\Crypto\RSAKey.h"/>
<File
RelativePath=".\include\Poco\Crypto\RSAKeyImpl.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\RSACipherImpl.cpp"/>
<File
RelativePath=".\src\RSADigestEngine.cpp"/>
<File
RelativePath=".\src\RSAKey.cpp"/>
<File
RelativePath=".\src\RSAKeyImpl.cpp"/>
</Filter>
</Filter>
<Filter
Name="Certificate">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\X509Certificate.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\X509Certificate.cpp"/>
</Filter>
</Filter>
<Filter
Name="CryptoCore">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\Crypto.h"/>
<File
RelativePath=".\include\Poco\Crypto\ServiceProvider.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\ServiceProvider.cpp"/>
</Filter>
</Filter>
<Filter
Name="Digest">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\DigestEngine.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\DigestEngine.cpp"/>
</Filter>
</Filter>
<File
RelativePath="..\DLLVersion.rc">
<FileConfiguration
Name="debug_shared|Win32"
ExcludedFromBuild="TRUE">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="release_shared|Win32"
ExcludedFromBuild="TRUE">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="debug_static_mt|Win32"
ExcludedFromBuild="TRUE">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="release_static_mt|Win32"
ExcludedFromBuild="TRUE">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="debug_static_md|Win32"
ExcludedFromBuild="TRUE">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="release_static_md|Win32"
ExcludedFromBuild="TRUE">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
</File>
</Files>
<Globals/>
</VisualStudioProject>

View File

@@ -1,60 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto_Win", "Crypto_Win_vs80.vcproj", "{ACE069C0-B8FB-49C2-8D8F-410136C7D332}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs80.vcproj", "{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}"
ProjectSection(ProjectDependencies) = postProject
{ACE069C0-B8FB-49C2-8D8F-410136C7D332} = {ACE069C0-B8FB-49C2-8D8F-410136C7D332}
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
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_shared|Win32.ActiveCfg = debug_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_shared|Win32.Build.0 = debug_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_shared|Win32.Deploy.0 = debug_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_shared|Win32.ActiveCfg = release_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_shared|Win32.Build.0 = release_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_shared|Win32.Deploy.0 = release_shared|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_mt|Win32.Build.0 = release_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_md|Win32.Build.0 = debug_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_md|Win32.ActiveCfg = release_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_md|Win32.Build.0 = release_static_md|Win32
{ACE069C0-B8FB-49C2-8D8F-410136C7D332}.release_static_md|Win32.Deploy.0 = release_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Build.0 = debug_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.ActiveCfg = release_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Build.0 = release_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Deploy.0 = release_shared|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Build.0 = release_static_md|Win32
{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -1,536 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
Name="Crypto_Win"
Version="8.00"
ProjectType="Visual C++"
ProjectGUID="{ACE069C0-B8FB-49C2-8D8F-410136C7D332}"
RootNamespace="Crypto_Win"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<ToolFiles/>
<Configurations>
<Configuration
Name="debug_shared|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;Crypto_Win_EXPORTS"
StringPooling="true"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="true"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
CompileAs="0"
DisableSpecificWarnings=""
AdditionalOptions=""/>
<Tool
Name="VCManagedResourceCompilerTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Crypt32.lib iphlpapi.lib"
OutputFile="..\bin\PocoCryptoWind.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile="..\bin\PocoCryptoWind.pdb"
AdditionalLibraryDirectories="..\lib"
SubSystem="1"
ImportLibrary="..\lib\PocoCryptoWind.lib"
TargetMachine="1"
AdditionalOptions=""/>
<Tool
Name="VCALinkTool"/>
<Tool
Name="VCManifestTool"/>
<Tool
Name="VCXDCMakeTool"/>
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCFxCopTool"/>
<Tool
Name="VCAppVerifierTool"/>
<Tool
Name="VCPostBuildEventTool"/>
</Configuration>
<Configuration
Name="release_shared|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;Crypto_Win_EXPORTS"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="0"
CompileAs="0"
DisableSpecificWarnings=""
AdditionalOptions=""/>
<Tool
Name="VCManagedResourceCompilerTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Crypt32.lib iphlpapi.lib"
OutputFile="..\bin\PocoCryptoWin.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="false"
AdditionalLibraryDirectories="..\lib"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
OptimizeForWindows98="0"
ImportLibrary="..\lib\PocoCryptoWin.lib"
TargetMachine="1"
AdditionalOptions=""/>
<Tool
Name="VCALinkTool"/>
<Tool
Name="VCManifestTool"/>
<Tool
Name="VCXDCMakeTool"/>
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCFxCopTool"/>
<Tool
Name="VCAppVerifierTool"/>
<Tool
Name="VCPostBuildEventTool"/>
</Configuration>
<Configuration
Name="debug_static_mt|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="true"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
BufferSecurityCheck="true"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
ProgramDataBaseFileName="..\lib\PocoCryptoWinmtd.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
CompileAs="0"
DisableSpecificWarnings=""
AdditionalOptions=""/>
<Tool
Name="VCManagedResourceCompilerTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmtd.lib"/>
<Tool
Name="VCALinkTool"/>
<Tool
Name="VCXDCMakeTool"/>
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCFxCopTool"/>
<Tool
Name="VCPostBuildEventTool"/>
</Configuration>
<Configuration
Name="release_static_mt|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="true"
RuntimeLibrary="0"
BufferSecurityCheck="false"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="0"
CompileAs="0"
DisableSpecificWarnings=""
AdditionalOptions=""/>
<Tool
Name="VCManagedResourceCompilerTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmt.lib"/>
<Tool
Name="VCALinkTool"/>
<Tool
Name="VCXDCMakeTool"/>
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCFxCopTool"/>
<Tool
Name="VCPostBuildEventTool"/>
</Configuration>
<Configuration
Name="debug_static_md|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="true"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="true"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
ProgramDataBaseFileName="..\lib\PocoCryptoWinmdd.pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
CompileAs="0"
DisableSpecificWarnings=""
AdditionalOptions=""/>
<Tool
Name="VCManagedResourceCompilerTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmdd.lib"/>
<Tool
Name="VCALinkTool"/>
<Tool
Name="VCXDCMakeTool"/>
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCFxCopTool"/>
<Tool
Name="VCPostBuildEventTool"/>
</Configuration>
<Configuration
Name="release_static_md|Win32"
OutputDirectory="obj\$(ConfigurationName)"
IntermediateDirectory="obj\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2">
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCCLCompilerTool"
Optimization="4"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories=".\include;..\Foundation\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
TreatWChar_tAsBuiltInType="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="0"
CompileAs="0"
DisableSpecificWarnings=""
AdditionalOptions=""/>
<Tool
Name="VCManagedResourceCompilerTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\lib\PocoCryptoWinmd.lib"/>
<Tool
Name="VCALinkTool"/>
<Tool
Name="VCXDCMakeTool"/>
<Tool
Name="VCBscMakeTool"/>
<Tool
Name="VCFxCopTool"/>
<Tool
Name="VCPostBuildEventTool"/>
</Configuration>
</Configurations>
<References/>
<Files>
<Filter
Name="Cipher">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\Cipher.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherFactory.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherImpl.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherKey.h"/>
<File
RelativePath=".\include\Poco\Crypto\CipherKeyImpl.h"/>
<File
RelativePath=".\include\Poco\Crypto\CryptoStream.h"/>
<File
RelativePath=".\include\Poco\Crypto\CryptoTransform.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\Cipher.cpp"/>
<File
RelativePath=".\src\CipherFactory.cpp"/>
<File
RelativePath=".\src\CipherImpl.cpp"/>
<File
RelativePath=".\src\CipherKey.cpp"/>
<File
RelativePath=".\src\CipherKeyImpl.cpp"/>
<File
RelativePath=".\src\CryptoStream.cpp"/>
<File
RelativePath=".\src\CryptoTransform.cpp"/>
</Filter>
</Filter>
<Filter
Name="RSA">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\RSACipherImpl.h"/>
<File
RelativePath=".\include\Poco\Crypto\RSADigestEngine.h"/>
<File
RelativePath=".\include\Poco\Crypto\RSAKey.h"/>
<File
RelativePath=".\include\Poco\Crypto\RSAKeyImpl.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\RSACipherImpl.cpp"/>
<File
RelativePath=".\src\RSADigestEngine.cpp"/>
<File
RelativePath=".\src\RSAKey.cpp"/>
<File
RelativePath=".\src\RSAKeyImpl.cpp"/>
</Filter>
</Filter>
<Filter
Name="Certificate">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\X509Certificate.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\X509Certificate.cpp"/>
</Filter>
</Filter>
<Filter
Name="CryptoCore">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\Crypto.h"/>
<File
RelativePath=".\include\Poco\Crypto\ServiceProvider.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\ServiceProvider.cpp"/>
</Filter>
</Filter>
<Filter
Name="Digest">
<Filter
Name="Header Files">
<File
RelativePath=".\include\Poco\Crypto\DigestEngine.h"/>
</Filter>
<Filter
Name="Source Files">
<File
RelativePath=".\src\DigestEngine.cpp"/>
</Filter>
</Filter>
<File
RelativePath="..\DLLVersion.rc">
<FileConfiguration
Name="debug_shared|Win32"
ExcludedFromBuild="true">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="release_shared|Win32"
ExcludedFromBuild="true">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="debug_static_mt|Win32"
ExcludedFromBuild="true">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="release_static_mt|Win32"
ExcludedFromBuild="true">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="debug_static_md|Win32"
ExcludedFromBuild="true">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
<FileConfiguration
Name="release_static_md|Win32"
ExcludedFromBuild="true">
<Tool
Name="VCResourceCompilerTool"/>
</FileConfiguration>
</File>
</Files>
<Globals/>
</VisualStudioProject>

View File

@@ -114,15 +114,14 @@ namespace
DWORD RSAEncryptImpl::encrypt(unsigned char* output, std::streamsize outputLength, BOOL isFinal)
{
DWORD flags = _paddingMode == RSA_PADDING_PKCS1_OAEP ? CRYPT_OAEP : 0;
DWORD n = static_cast<DWORD>(_pos + 1);
DWORD n = static_cast<DWORD>(_pos);
if (!CryptEncrypt(_pKey->publicKey(), NULL, isFinal, flags, NULL, &n, 0))
error("RSACipher cannot obtain length of encrypted data");
poco_assert(n > _pos);
//poco_assert_dbg(n <= maxDataSize());
std::vector<BYTE> data(n);
n = static_cast<DWORD>(_pos + 1);
n = static_cast<DWORD>(_pos /*+ 1*/);
std::memcpy(&data[0], _pBuf, n);
if (!CryptEncrypt(_pKey->publicKey(), NULL, isFinal, flags, &data[0], &n, data.size()))
if (!CryptEncrypt(_pKey->publicKey(), NULL, isFinal, flags, &data[0], &n, static_cast<DWORD>(data.size())))
error("RSACipher cannot encrypt data");
poco_assert(n <= outputLength);
std::memcpy(output, &data[0], n);
@@ -235,7 +234,7 @@ namespace
DWORD RSADecryptImpl::decrypt(unsigned char* output, std::streamsize outputLength, BOOL isFinal)
{
DWORD n = static_cast<DWORD>(_pos + 1);
DWORD n = static_cast<DWORD>(_pos);
DWORD flags = _paddingMode == RSA_PADDING_PKCS1_OAEP ? CRYPT_OAEP : 0;
std::vector<BYTE> data(n);
std::memcpy(&data[0], _pBuf, n);

View File

@@ -56,7 +56,7 @@ RSAKeyImpl::RSAKeyImpl(int keyLength, unsigned long):
{
DWORD flags = keyLength << 16;
flags |= CRYPT_EXPORTABLE;
if (!CryptGenKey(_sp.handle(), AT_SIGNATURE, flags, &_hPrivateKey))
if (!CryptGenKey(_sp.handle(), AT_KEYEXCHANGE, flags, &_hPrivateKey))
{
error("Cannot generate RSA key pair");
}
@@ -121,13 +121,13 @@ void RSAKeyImpl::extractPublicKey()
DWORD size = 0;
DWORD rc = CryptExportPublicKeyInfo(_sp.handle(),
AT_SIGNATURE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
AT_KEYEXCHANGE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
NULL, &size);
if (rc)
{
keyBuffer.resize(size);
rc = CryptExportPublicKeyInfo(_sp.handle(),
AT_SIGNATURE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
AT_KEYEXCHANGE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
reinterpret_cast<PCERT_PUBLIC_KEY_INFO>(keyBuffer.begin()), &size);
if (rc)
{

View File

@@ -199,7 +199,6 @@ void RSATest::testRSACipher()
void RSATest::testRSACipherLarge()
{
/*TODO
std::vector<std::size_t> sizes;
sizes.push_back (2047);
sizes.push_back (2048);
@@ -222,7 +221,6 @@ void RSATest::testRSACipherLarge()
std::string dec = pCipher->decryptString(enc);
assert (dec == val);
}
*/
}
@@ -264,13 +262,14 @@ CppUnit::Test* RSATest::suite()
CppUnit_addTest(pSuite, RSATest, testRSACipher);
CppUnit_addTest(pSuite, RSATest, testRSACipherLarge);
CppUnit_addTest(pSuite, RSATest, testCertificate);
CppUnit_addTest(pSuite, RSATest, testCryptoAPI);
//CppUnit_addTest(pSuite, RSATest, testCAPIEncryptDecrypt);
//CppUnit_addTest(pSuite, RSATest, testCAPIKeys);
return pSuite;
}
void RSATest::testCryptoAPI()
void RSATest::testCAPIKeys()
{
HCRYPTPROV hProv = 0;
BOOL rc = FALSE;
@@ -307,21 +306,15 @@ void RSATest::testCryptoAPI()
rc = CryptGenKey(hProv, AT_SIGNATURE, flags, &hPrivateKey);
if (!rc) goto bad;
/* extract public key */
rc = CryptExportPublicKeyInfo(hProv,
AT_SIGNATURE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
NULL, &size);
/* extport public key */
rc = CryptExportKey(hPrivateKey, NULL, PUBLICKEYBLOB, 0, NULL, &size);
if (!rc) goto bad;
pKeyInfo = (PCERT_PUBLIC_KEY_INFO)LocalAlloc(0, size);
rc = CryptExportPublicKeyInfo(hProv,
AT_SIGNATURE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
pKeyInfo, &size);
pPubKeyBLOB = (LPBYTE)LocalAlloc(0, size);
rc = CryptExportKey(hPrivateKey, NULL, PUBLICKEYBLOB, 0, pPubKeyBLOB, &size);
if (!rc) goto bad;
rc = CryptImportPublicKeyInfo(hProv,
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
pKeyInfo, &hPublicKey);
rc = CryptImportKey(hProv, pPubKeyBLOB, size, 0, CRYPT_EXPORTABLE, &hPublicKey);
if (!rc) goto bad;
/* export private key */
@@ -395,7 +388,6 @@ void RSATest::testCryptoAPI()
rc = CryptBinaryToStringA(pDER, encSize,
CRYPT_STRING_BASE64HEADER, pPEM, &pemSize);
if (!rc) goto bad;
printf("\r\n%s\r\n", pPEM);
/*************************************************************/
/* start fresh and import both keys from the private key PEM */
@@ -471,25 +463,23 @@ void RSATest::testCryptoAPI()
if (!rc) goto bad;
/* import public key */
/* Error: "Key does not exist"
rc = CryptExportPublicKeyInfo(hProv,
AT_SIGNATURE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
NULL, &size);
AT_KEYEXCHANGE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
NULL, &size);
if (!rc) goto bad;
LocalFree(pKeyInfo);
pKeyInfo = (PCERT_PUBLIC_KEY_INFO)LocalAlloc(0, size);
rc = CryptExportPublicKeyInfo(hProv,
AT_SIGNATURE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
pKeyInfo, &size);
AT_KEYEXCHANGE, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
pKeyInfo, &size);
if (!rc) goto bad;
hPublicKey = 0;
rc = CryptImportPublicKeyInfo(hProv,
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
pKeyInfo, &hPublicKey);
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
pKeyInfo, &hPublicKey);
if (!rc) goto bad;
*/
/* clean up */
if (hPublicKey) CryptDestroyKey(hPublicKey);
@@ -526,4 +516,97 @@ bad:
LocalFree(pPubKeyBLOB);
LocalFree(pKeyInfo);
LocalFree(pIV);
}
void RSATest::testCAPIEncryptDecrypt()
{
HCRYPTPROV hProv = 0;
BOOL rc = FALSE;
LPBYTE pPrivKeyBLOB = 0;
LPBYTE pPubKeyBLOB = 0;
HCRYPTKEY hSessionKey = 0;
HCRYPTKEY hPrivateKey = 0;
DWORD flags = 0;
DWORD size = 0;
PCERT_PUBLIC_KEY_INFO pKeyInfo = 0;
HCRYPTKEY hPublicKey = 0;
Poco::Buffer<BYTE> data(1);
data[0] = 'x';
/* get provider */
rc = CryptAcquireContext(&hProv,
NULL, MS_ENH_RSA_AES_PROV, PROV_RSA_AES,
CRYPT_VERIFYCONTEXT | CRYPT_SILENT);
if (!rc) goto bad;
/* generate private key */
flags = 1024 /*key length*/ << 16;
flags |= CRYPT_EXPORTABLE;
rc = CryptGenKey(hProv, AT_KEYEXCHANGE/*AT_SIGNATURE*/, flags, &hSessionKey);
if (!rc) goto bad;
/* extract public key */
rc = CryptExportKey(hSessionKey, NULL, PUBLICKEYBLOB, 0, NULL, &size);
if (!rc) goto bad;
pPubKeyBLOB = (LPBYTE)LocalAlloc(0, size);
rc = CryptExportKey(hSessionKey, NULL, PUBLICKEYBLOB, 0, pPubKeyBLOB, &size);
if (!rc) goto bad;
rc = CryptImportKey(hProv, pPubKeyBLOB, size, 0, CRYPT_EXPORTABLE, &hPublicKey);
if (!rc) goto bad;
/* extract private key */
rc = CryptExportKey(hSessionKey, NULL, PRIVATEKEYBLOB, 0, NULL, &size);
if (!rc) goto bad;
pPrivKeyBLOB = (LPBYTE)LocalAlloc(0, size);
rc = CryptExportKey(hSessionKey, NULL, PRIVATEKEYBLOB, 0, pPrivKeyBLOB, &size);
if (!rc) goto bad;
rc = CryptImportKey(hProv, pPrivKeyBLOB, size, 0, CRYPT_EXPORTABLE, &hPrivateKey);
if (!rc) goto bad;
DWORD dataSize = static_cast<DWORD>(data.size());
DWORD n = dataSize;
rc = CryptEncrypt(hPublicKey, NULL, TRUE, 0, NULL, &n, 0);
if (!rc) goto bad;
data.resize(n, true);
n = dataSize;
rc = CryptEncrypt(hPublicKey, NULL, TRUE, 0, data.begin(), &n, static_cast<DWORD>(data.size()));
if (!rc) goto bad;
n = static_cast<DWORD>(data.size());
rc = CryptDecrypt(hPrivateKey, NULL, TRUE, 0, data.begin(), &n);
if (!rc) goto bad;
CryptDestroyKey(hPublicKey);
CryptDestroyKey(hPrivateKey);
CryptReleaseContext(hProv, 0);
LocalFree(pPubKeyBLOB);
LocalFree(pPrivKeyBLOB);
return;
bad:
DWORD errorCode = GetLastError();
DWORD dwFlg = FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS;
LPTSTR lpMsgBuf = 0;
FormatMessageA(dwFlg, 0, errorCode, 0, (LPTSTR)& lpMsgBuf, 0, NULL);
printf("%s", lpMsgBuf);
LocalFree(lpMsgBuf);
if (hPublicKey) CryptDestroyKey(hPublicKey);
if (hPrivateKey) CryptDestroyKey(hPrivateKey);
if (hProv) CryptReleaseContext(hProv, 0);
LocalFree(pPubKeyBLOB);
LocalFree(pPrivKeyBLOB);
return;
}

View File

@@ -37,7 +37,8 @@ public:
void setUp();
void tearDown();
void testCryptoAPI();
void testCAPIKeys();
void testCAPIEncryptDecrypt();
static CppUnit::Test* suite();