[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