[cpp-xmltooling] 03/03: CPPXT-136 ECParameter tests
Rod Widdowson
rdw at steadingsoftware.com
Wed Oct 24 11:08:07 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=f8c5aaf12d15232a41881cf2db2e3148dc73e7ab
commit f8c5aaf12d15232a41881cf2db2e3148dc73e7ab
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Oct 24 16:03:51 2018 +0100
CPPXT-136 ECParameter tests
https://issues.shibboleth.net/jira/browse/CPPXT-136
---
xmltoolingtest/BadKeyInfoTest.h | 53 ++++++++++++++++++++++++++++++++++--
xmltoolingtest/data/ECParamGnB.xml | 25 +++++++++++++++++
xmltoolingtest/data/ECParamNone.xml | 9 ++++++
xmltoolingtest/data/ECParamPnB.xml | 28 +++++++++++++++++++
xmltoolingtest/data/ECParamPrime.xml | 25 +++++++++++++++++
xmltoolingtest/data/ECParamTnB.xml | 26 ++++++++++++++++++
6 files changed, 164 insertions(+), 2 deletions(-)
diff --git a/xmltoolingtest/BadKeyInfoTest.h b/xmltoolingtest/BadKeyInfoTest.h
index 741f6e3..d3813d5 100644
--- a/xmltoolingtest/BadKeyInfoTest.h
+++ b/xmltoolingtest/BadKeyInfoTest.h
@@ -316,8 +316,31 @@ private:
}
}
}
+
+ void ECTestParam(const char* file)
+ {
+ string path = data_path + file;
+ ifstream fs(path.c_str());
+ ParserPool& parser = XMLToolingConfig::getConfig().getValidatingParser();
+ 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<const XSECEnv> env(new XSECEnv(doc));
+ const scoped_ptr<DSIGKeyInfoList> xencKey(new DSIGKeyInfoList(env.get()));
+ TSM_ASSERT_THROWS("Bad EC key throws during load", xencKey->loadListFromXML(doc->getDocumentElement()), XSECException);
+ const scoped_ptr<X509Credential> toolingCred(dynamic_cast<X509Credential*>(m_resolver->resolve(kiObject.get())));
+ TSM_ASSERT("ToolCred was non null", toolingCred.get() == nullptr)
+ }
+
#else
-#define ECTest(msg, a, b, c) return
+#define ECTest(file, a, b, c) return
+#define ECTestParam(file) return
#endif
void DERTest(const char* file, bool xsecLoadThrows)
@@ -325,7 +348,7 @@ private:
string path = data_path + file;
ifstream fs(path.c_str());
- ParserPool& parser = XMLToolingConfig::getConfig().getParser();
+ ParserPool& parser = XMLToolingConfig::getConfig().getValidatingParser();
DOMDocument* doc = parser.parse(fs);
TS_ASSERT(doc != nullptr);
@@ -640,6 +663,32 @@ public:
ECTest("ECNoCurve.xml", false, true, true);
}
+ void testECParamPrime()
+ {
+ ECTestParam("ECParamPrime.xml");
+ }
+
+ void testECParamNone()
+ {
+ ECTestParam("ECParamNone.xml");
+ }
+
+
+ void testECParamPnB()
+ {
+ ECTestParam("ECParamPnB.xml");
+ }
+
+ void testECParamTnb()
+ {
+ ECTestParam("ECParamTnB.xml");
+ }
+
+ void testECParamGnB()
+ {
+ ECTestParam("ECParamGnB.xml");
+ }
+
void testDERBad()
{
DERTest("DERValueBad.xml", false);
diff --git a/xmltoolingtest/data/ECParamGnB.xml b/xmltoolingtest/data/ECParamGnB.xml
new file mode 100644
index 0000000..6bf4386
--- /dev/null
+++ b/xmltoolingtest/data/ECParamGnB.xml
@@ -0,0 +1,25 @@
+<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds11="http://www.w3.org/2009/xmldsig11#">
+ <ds:KeyValue>
+ <ds11:ECKeyValue>
+ <ds11:ECParameters>
+ <ds11:FieldID>
+ <ds11:GnB>
+ <ds11:M>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:M>
+ </ds11:GnB>
+ </ds11:FieldID>
+ <ds11:Curve>
+ <ds11:A>0</ds11:A>
+ <ds11:B>7</ds11:B>
+ </ds11:Curve>
+ <ds11:Base>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Base>
+ <ds11:Order>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Order>
+ <ds11:CoFactor>3</ds11:CoFactor>
+ <ds11:ValidationData hashAlgorithm="https://example.org">
+ <ds11:seed>123</ds11:seed>
+ </ds11:ValidationData>
+ </ds11:ECParameters>
+ <ds11:PublicKey>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==
+ </ds11:PublicKey>
+ </ds11:ECKeyValue>
+ </ds:KeyValue>
+</ds:KeyInfo>
diff --git a/xmltoolingtest/data/ECParamNone.xml b/xmltoolingtest/data/ECParamNone.xml
new file mode 100644
index 0000000..aad52d6
--- /dev/null
+++ b/xmltoolingtest/data/ECParamNone.xml
@@ -0,0 +1,9 @@
+<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds11="http://www.w3.org/2009/xmldsig11#">
+ <ds:KeyValue>
+ <ds11:ECKeyValue>
+ <ds11:ECParameters/>
+ <ds11:PublicKey>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==
+ </ds11:PublicKey>
+ </ds11:ECKeyValue>
+ </ds:KeyValue>
+</ds:KeyInfo>
diff --git a/xmltoolingtest/data/ECParamPnB.xml b/xmltoolingtest/data/ECParamPnB.xml
new file mode 100644
index 0000000..881f38a
--- /dev/null
+++ b/xmltoolingtest/data/ECParamPnB.xml
@@ -0,0 +1,28 @@
+<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds11="http://www.w3.org/2009/xmldsig11#">
+ <ds:KeyValue>
+ <ds11:ECKeyValue>
+ <ds11:ECParameters>
+ <ds11:FieldID>
+ <ds11:PnB>
+ <ds11:M>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:M>
+ <ds11:K1>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:K1>
+ <ds11:K2>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:K2>
+ <ds11:K3>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:K3>
+ </ds11:PnB>
+ </ds11:FieldID>
+ <ds11:Curve>
+ <ds11:A>0</ds11:A>
+ <ds11:B>7</ds11:B>
+ </ds11:Curve>
+ <ds11:Base>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Base>
+ <ds11:Order>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Order>
+ <ds11:CoFactor>3</ds11:CoFactor>
+ <ds11:ValidationData hashAlgorithm="https://example.org">
+ <ds11:seed>123</ds11:seed>
+ </ds11:ValidationData>
+ </ds11:ECParameters>
+ <ds11:PublicKey>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==
+ </ds11:PublicKey>
+ </ds11:ECKeyValue>
+ </ds:KeyValue>
+</ds:KeyInfo>
diff --git a/xmltoolingtest/data/ECParamPrime.xml b/xmltoolingtest/data/ECParamPrime.xml
new file mode 100644
index 0000000..09a93cc
--- /dev/null
+++ b/xmltoolingtest/data/ECParamPrime.xml
@@ -0,0 +1,25 @@
+<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds11="http://www.w3.org/2009/xmldsig11#">
+ <ds:KeyValue>
+ <ds11:ECKeyValue>
+ <ds11:ECParameters>
+ <ds11:FieldID>
+ <ds11:Prime>
+ <ds11:P>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:P>
+ </ds11:Prime>
+ </ds11:FieldID>
+ <ds11:Curve>
+ <ds11:A>0</ds11:A>
+ <ds11:B>7</ds11:B>
+ </ds11:Curve>
+ <ds11:Base>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Base>
+ <ds11:Order>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Order>
+ <ds11:CoFactor>3</ds11:CoFactor>
+ <ds11:ValidationData hashAlgorithm="https://example.org">
+ <ds11:seed>123</ds11:seed>
+ </ds11:ValidationData>
+ </ds11:ECParameters>
+ <ds11:PublicKey>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==
+ </ds11:PublicKey>
+ </ds11:ECKeyValue>
+ </ds:KeyValue>
+</ds:KeyInfo>
diff --git a/xmltoolingtest/data/ECParamTnB.xml b/xmltoolingtest/data/ECParamTnB.xml
new file mode 100644
index 0000000..33f3961
--- /dev/null
+++ b/xmltoolingtest/data/ECParamTnB.xml
@@ -0,0 +1,26 @@
+<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds11="http://www.w3.org/2009/xmldsig11#">
+ <ds:KeyValue>
+ <ds11:ECKeyValue>
+ <ds11:ECParameters>
+ <ds11:FieldID>
+ <ds11:TnB>
+ <ds11:M>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:M>
+ <ds11:K>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:K>
+ </ds11:TnB>
+ </ds11:FieldID>
+ <ds11:Curve>
+ <ds11:A>0</ds11:A>
+ <ds11:B>7</ds11:B>
+ </ds11:Curve>
+ <ds11:Base>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Base>
+ <ds11:Order>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==</ds11:Order>
+ <ds11:CoFactor>3</ds11:CoFactor>
+ <ds11:ValidationData hashAlgorithm="https://example.org">
+ <ds11:seed>123</ds11:seed>
+ </ds11:ValidationData>
+ </ds11:ECParameters>
+ <ds11:PublicKey>BAYIncGnewJiUxZdqjsBiRpzGGnXTQWSZFUxkVPmPr25FH1ckqX+2xiYsA==
+ </ds11:PublicKey>
+ </ds11:ECKeyValue>
+ </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