[cpp-xmltooling] branch master updated: CPPXT-136 tests for badly formed KeyInfo.
Rod Widdowson
rdw at steadingsoftware.com
Tue Aug 7 09:54:04 EDT 2018
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch master
in repository cpp-xmltooling.
View the commit online:
http://git.shibboleth.net/view/?p=cpp-xmltooling.git;a=commit;h=631682d490c9a6c0429774bcb9be1eb45bdb798d
The following commit(s) were added to refs/heads/master by this push:
new 631682d CPPXT-136 tests for badly formed KeyInfo.
631682d is described below
commit 631682d490c9a6c0429774bcb9be1eb45bdb798d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Aug 7 14:52:27 2018 +0100
CPPXT-136 tests for badly formed KeyInfo.
https://issues.shibboleth.net/jira/browse/CPPXT-136
Start with framework only and a simple test for a bad modulus in an RSA key.
Windows only. Linux follows.
---
.../vc15/xmltoolingtest/xmltoolingtest.vcxproj | 95 +++++++++++++++++++
.../xmltoolingtest/xmltoolingtest.vcxproj.filters | 6 ++
xmltoolingtest/BadKeyKeyInfoTest.h | 103 +++++++++++++++++++++
xmltoolingtest/data/RSABadMod.xml | 11 +++
xmltoolingtest/data/RSABadMod64.xml | 11 +++
5 files changed, 226 insertions(+)
diff --git a/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj b/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj
index 820bf05..3d8cd80 100644
--- a/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj
+++ b/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj
@@ -188,6 +188,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="BadKeyKeyInfoTest.cpp" />
<ClCompile Include="CloneInputStreamTest.cpp" />
<ClCompile Include="ComplexXMLObjectTest.cpp" />
<ClCompile Include="DataSealerTest.cpp" />
@@ -224,6 +225,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\ComplexXMLObjectTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -238,6 +243,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\DateTimeTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -252,6 +261,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\EncryptionTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -266,6 +279,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\ExceptionTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -280,6 +297,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\ExplicitKeyTrustEngineTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp ../../../xmltoolingtest/"%(FileName)".h"
@@ -294,6 +315,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp ../../../xmltoolingtest/"%(FileName)".h"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\FilesystemCredentialResolverTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -308,6 +333,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\InlineKeyResolverTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -322,6 +351,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\KeyInfoTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -336,6 +369,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\MarshallingTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -350,6 +387,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\MemoryStorageServiceTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -364,6 +405,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\NonVisibleNamespaceTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -376,6 +421,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(Filename).cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\PKIXEngineTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -388,6 +437,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(Filename).cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\SecurityHelperTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -402,6 +455,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\SignatureTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -416,6 +473,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\SOAPTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -430,6 +491,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\TemplateEngineTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -444,6 +509,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\UnmarshallingTest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -458,6 +527,10 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\XMLToolingTest\xmltoolingtest.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --error-printer --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"
@@ -482,6 +555,10 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(Filename).cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(Filename).cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
</CustomBuild>
<CustomBuild Include="..\..\..\xmltoolingtest\DirectoryWalkerTest.h">
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(Filename).cpp;%(Outputs)</Outputs>
@@ -492,6 +569,24 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\xmltoolingtest\BadKeyKeyInfoTest.h">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Performing Custom Build Tools %(FileName)</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"</Command>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Performing Custom Build Tools %(FileName)</Message>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(Filename).cpp;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>
</CustomBuild>
<ClInclude Include="..\..\..\XMLToolingTest\XMLObjectBaseTestCase.h" />
</ItemGroup>
diff --git a/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj.filters b/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj.filters
index 4703ab6..ed5c91d 100644
--- a/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj.filters
+++ b/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj.filters
@@ -74,11 +74,17 @@
<ClCompile Include="DirectoryWalkerTest.cpp">
<Filter>Generated Code</Filter>
</ClCompile>
+ <ClCompile Include="BadKeyKeyInfoTest.cpp">
+ <Filter>Generated Code</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\XMLToolingTest\XMLObjectBaseTestCase.h">
<Filter>Unit Tests</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\xmltoolingtest\BadKeyKeyInfoTest.h">
+ <Filter>Unit Tests</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\XMLToolingTest\Makefile.am" />
diff --git a/xmltoolingtest/BadKeyKeyInfoTest.h b/xmltoolingtest/BadKeyKeyInfoTest.h
new file mode 100644
index 0000000..90e550d
--- /dev/null
+++ b/xmltoolingtest/BadKeyKeyInfoTest.h
@@ -0,0 +1,103 @@
+/**
+ * Licensed to the University Corporation for Advanced Internet
+ * Development, Inc. (UCAID) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for
+ * additional information regarding copyright ownership.
+ *
+ * UCAID licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific
+ * language governing permissions and limitations under the License.
+ */
+
+#include "XMLObjectBaseTestCase.h"
+
+#include <fstream>
+
+#include <xmltooling/security/KeyInfoResolver.h>
+#include <xmltooling/security/Credential.h>
+#include <xmltooling/signature/KeyInfo.h>
+
+#include <xsec/framework/XSECException.hpp>
+#include <xsec/framework/XSECEnv.hpp>
+#include <xsec/dsig/DSIGKeyInfoList.hpp>
+#include <xsec/utils/XSECPlatformUtils.hpp>
+#include <xsec/enc/XSECCryptoKeyRSA.hpp>
+#include <xsec/enc/XSECCryptoKey.hpp>
+
+using namespace xmlsignature;
+
+class BadKeyInfoTest : public CxxTest::TestSuite {
+ KeyInfoResolver* m_resolver;
+
+public:
+ BadKeyInfoTest() : m_resolver(nullptr) {}
+
+ void setUp() {
+ string config = data_path + "InlineKeyResolver.xml";
+ ifstream in(config.c_str());
+ DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);
+ XercesJanitor<DOMDocument> janitor(doc);
+ m_resolver=XMLToolingConfig::getConfig().KeyInfoResolverManager.newPlugin(
+ INLINE_KEYINFO_RESOLVER, doc->getDocumentElement(), false
+ );
+ }
+
+ void tearDown() {
+ delete m_resolver;
+ m_resolver=nullptr;
+ }
+
+private:
+ void RSATest(const char* file, ParserPool& parser = XMLToolingConfig::getConfig().getValidatingParser()) {
+
+ string path=data_path + file;
+ ifstream fs(path.c_str());
+ // Non validating parser!
+ DOMDocument* doc=parser.parse(fs);
+ TS_ASSERT(doc!=nullptr);
+ const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());
+ TS_ASSERT(b!=nullptr);
+ const scoped_ptr<KeyInfo> kiObject(dynamic_cast<KeyInfo*>(b->buildFromDocument(doc)));
+ TS_ASSERT(kiObject.get()!=nullptr);
+
+ const scoped_ptr<Credential> toolingCred(dynamic_cast<Credential*>(m_resolver->resolve(kiObject.get())));
+ TSM_ASSERT("Unable to resolve KeyInfo into Credential.", toolingCred.get()!=nullptr);
+ TSM_ASSERT("Expected null Private Key", toolingCred->getPrivateKey()==nullptr);
+ TSM_ASSERT("Expected non-null Public Key", toolingCred->getPublicKey()!=nullptr);
+ TSM_ASSERT_EQUALS("Expected RSA key", toolingCred->getPublicKey()->getKeyType(), XSECCryptoKey::KEY_RSA_PUBLIC);
+
+ const scoped_ptr<const XSECEnv> env(new XSECEnv(doc));
+ const scoped_ptr<DSIGKeyInfoList> xencKey(new DSIGKeyInfoList(env.get()));
+ xencKey->loadListFromXML(doc->getDocumentElement());
+
+ const scoped_ptr<Credential> xsecCred(dynamic_cast<Credential*>(m_resolver->resolve(xencKey.get())));
+ TSM_ASSERT("Unable to resolve DSIGKeyInfoList into Credential.", xsecCred.get() != nullptr);
+ TSM_ASSERT("Expected null Private Key", xsecCred->getPrivateKey() == nullptr);
+ TSM_ASSERT("Expected non-null Public Key", xsecCred->getPublicKey() != nullptr);
+ TSM_ASSERT_EQUALS("Expected RSA key", xsecCred->getPublicKey()->getKeyType(), XSECCryptoKey::KEY_RSA_PUBLIC);
+
+ }
+
+public:
+
+ void testRSABadMod()
+ {
+ RSATest("RSABadMod.xml", XMLToolingConfig::getConfig().getParser());
+ }
+
+ void testRSABadMod64()
+ {
+ RSATest("RSABadMod64.xml");
+ }
+
+
+};
diff --git a/xmltoolingtest/data/RSABadMod.xml b/xmltoolingtest/data/RSABadMod.xml
new file mode 100644
index 0000000..f907278
--- /dev/null
+++ b/xmltoolingtest/data/RSABadMod.xml
@@ -0,0 +1,11 @@
+<ds:KeyInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/09/xmldsig# ../../schemas/xmldsig-core-schema.xsd"
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>Public Key for CN=xmldap.org, OU=Domain Control Validated, O=xmldap.org</ds:KeyName>
+ <ds:KeyValue>
+ <ds:RSAKeyValue>
+ <ds:Modulus>NibbleAHappyWarthog</ds:Modulus>
+ <ds:Exponent>AQAB</ds:Exponent>
+ </ds:RSAKeyValue>
+ </ds:KeyValue>
+</ds:KeyInfo>
diff --git a/xmltoolingtest/data/RSABadMod64.xml b/xmltoolingtest/data/RSABadMod64.xml
new file mode 100644
index 0000000..0bec6aa
--- /dev/null
+++ b/xmltoolingtest/data/RSABadMod64.xml
@@ -0,0 +1,11 @@
+<ds:KeyInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2000/09/xmldsig# ../../schemas/xmldsig-core-schema.xsd"
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:KeyName>Public Key for CN=xmldap.org, OU=Domain Control Validated, O=xmldap.org</ds:KeyName>
+ <ds:KeyValue>
+ <ds:RSAKeyValue>
+ <ds:Modulus>TmliYmxlQUhhcHB5V2FydGhvZw==</ds:Modulus><!-- Base64(NibbleAHappyWartHog)-->
+ <ds:Exponent>AQAB</ds:Exponent>
+ </ds:RSAKeyValue>
+ </ds:KeyValue>
+</ds:KeyInfo>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list