Add non-working PKIX unit test and test data.
authorScott Cantor <cantor.2@osu.edu>
Thu, 11 Aug 2011 18:56:32 +0000 (18:56 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 11 Aug 2011 18:56:32 +0000 (18:56 +0000)
14 files changed:
xmltoolingtest/Makefile.am
xmltoolingtest/PKIXEngineTest.h [new file with mode: 0644]
xmltoolingtest/data/x509/AnyPolicy.xml [new file with mode: 0644]
xmltoolingtest/data/x509/ExplicitPolicy.xml [new file with mode: 0644]
xmltoolingtest/data/x509/ExplicitPolicyMap.xml [new file with mode: 0644]
xmltoolingtest/data/x509/ExplicitPolicyNoMap.xml [new file with mode: 0644]
xmltoolingtest/data/x509/mdt-ica.1.crt.pem [new file with mode: 0644]
xmltoolingtest/data/x509/mdt-ica.2.crt.pem [new file with mode: 0644]
xmltoolingtest/data/x509/mdt-ica.3.crt.pem [new file with mode: 0644]
xmltoolingtest/data/x509/mdt-root.crt.pem [new file with mode: 0644]
xmltoolingtest/data/x509/mdt-signer.crt.pem [new file with mode: 0644]
xmltoolingtest/data/x509/mdt-signer.key [new file with mode: 0644]
xmltoolingtest/xmltoolingtest.vcxproj
xmltoolingtest/xmltoolingtest.vcxproj.filters

index a60d78a..8e56618 100644 (file)
@@ -23,6 +23,7 @@ xmlsec_sources = \
     FilesystemCredentialResolverTest.h \
     InlineKeyResolverTest.h \
     MemoryStorageServiceTest.h \
+    PKIXEngineTest.h \
     SecurityHelperTest.h \
     SignatureTest.h
 else
@@ -43,14 +44,17 @@ xmltoolingtest_h = \
     ${xmlsec_sources}
 
 noinst_HEADERS = \
-    XMLObjectBaseTestCase.h
+    XMLObjectBaseTestCase.h \
+    $(xmltoolingtest_h)
 
 nodist_xmltoolingtest_SOURCES = $(xmltoolingtest_h:.h=.cpp)
 
+BUILT_SOURCES = $(nodist_xmltoolingtest_SOURCES)
+
 CLEANFILES = $(nodist_xmltoolingtest_SOURCES)
 
 do-cxxtestgen:
-       if test $(HFILE) = "xmltoolingtest.h"; then \
+       if test "$(CPPFILE)" = "xmltoolingtest.cpp"; then \
                $(CXXTEST) --error-printer --have-eh --have-std --abort-on-fail -o $(CPPFILE) $(HFILE); \
        else \
                $(CXXTEST) --part --have-eh --have-std --abort-on-fail -o $(CPPFILE) $(HFILE); \
@@ -59,4 +63,4 @@ do-cxxtestgen:
 $(nodist_xmltoolingtest_SOURCES): %.cpp: %.h
        $(MAKE) do-cxxtestgen HFILE=$< CPPFILE=$@
 
-EXTRA_DIST = xmltoolingtest.vcxproj xmltoolingtest.vcxproj.filters $(xmltoolingtest_h) data
+EXTRA_DIST = xmltoolingtest.vcxproj xmltoolingtest.vcxproj.filters data
diff --git a/xmltoolingtest/PKIXEngineTest.h b/xmltoolingtest/PKIXEngineTest.h
new file mode 100644 (file)
index 0000000..1670104
--- /dev/null
@@ -0,0 +1,114 @@
+/**
+ * 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 <xmltooling/security/CredentialResolver.h>
+#include <xmltooling/security/SecurityHelper.h>
+#include <xmltooling/security/X509TrustEngine.h>
+
+#include <fstream>
+#include <xsec/enc/XSECCryptoKey.hpp>
+#include <xsec/enc/XSECCryptoX509.hpp>
+
+class PKIXEngineTest : public CxxTest::TestSuite {
+
+    X509TrustEngine* buildTrustEngine(const char* filename) {
+        string config = data_path + "x509/" + filename + ".xml";
+        ifstream in(config.c_str());
+        DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);
+        XercesJanitor<DOMDocument> janitor(doc);
+        return dynamic_cast<X509TrustEngine*>(
+            XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(
+                STATIC_PKIX_TRUSTENGINE, doc->getDocumentElement()
+                )
+            );
+    }
+
+    CredentialResolver* m_dummy;
+    XSECCryptoX509* m_ee;   // end entity
+    XSECCryptoX509* m_int1; // any policy
+    XSECCryptoX509* m_int2; // explicit policy
+    XSECCryptoX509* m_int3; // policy mapping
+
+public:
+    void setUp() {
+        m_dummy = XMLToolingConfig::getConfig().CredentialResolverManager.newPlugin(DUMMY_CREDENTIAL_RESOLVER, nullptr);
+
+        m_ee = m_int1 = m_int2 = m_int3 = nullptr;
+        vector<XSECCryptoX509*> certs;
+        string pathname = data_path + "x509/mdt-signer.crt.pem";
+        SecurityHelper::loadCertificatesFromFile(certs, pathname.c_str());
+        pathname = data_path + "x509/mdt-ica.1.crt.pem";
+        SecurityHelper::loadCertificatesFromFile(certs, pathname.c_str());
+        pathname = data_path + "x509/mdt-ica.2.crt.pem";
+        SecurityHelper::loadCertificatesFromFile(certs, pathname.c_str());
+        pathname = data_path + "x509/mdt-ica.3.crt.pem";
+        SecurityHelper::loadCertificatesFromFile(certs, pathname.c_str());
+        m_ee = certs[0];
+        m_int1 = certs[1];
+        m_int2 = certs[2];
+        m_int3 = certs[3];
+    }
+
+    void tearDown() {
+        delete m_dummy;
+        delete m_ee;
+        delete m_int1;
+        delete m_int2;
+        delete m_int3;
+    }
+
+
+    void testAnyPolicy() {
+        auto_ptr<X509TrustEngine> trust(buildTrustEngine("AnyPolicy"));
+
+        vector<XSECCryptoX509*> untrusted(1, m_int1);
+        TSM_ASSERT("PKIX validation failed", trust->validate(m_ee, untrusted, *m_dummy));
+    }
+
+    void testExplicitPolicy() {
+        auto_ptr<X509TrustEngine> trust(buildTrustEngine("ExplicitPolicy"));
+
+        vector<XSECCryptoX509*> untrusted(1, m_int1);
+        TSM_ASSERT("PKIX validation succeeded despite anyPolicyInhibit", !trust->validate(m_ee, untrusted, *m_dummy));
+
+        untrusted[0] = m_int2;
+        TSM_ASSERT("PKIX validation failed", trust->validate(m_ee, untrusted, *m_dummy));
+
+        untrusted[0] = m_int3;
+        TSM_ASSERT("PKIX validation failed", trust->validate(m_ee, untrusted, *m_dummy));
+    }
+
+    void testExplicitPolicyMap() {
+        auto_ptr<X509TrustEngine> trust(buildTrustEngine("ExplicitPolicyMap"));
+
+        vector<XSECCryptoX509*> untrusted(1, m_int3);
+        TSM_ASSERT("PKIX validation failed", trust->validate(m_ee, untrusted, *m_dummy));
+    }
+
+    void testExplicitPolicyNoMap() {
+        auto_ptr<X509TrustEngine> trust(buildTrustEngine("ExplicitPolicyNoMap"));
+
+        vector<XSECCryptoX509*> untrusted(1, m_int3);
+        TSM_ASSERT("PKIX validation succeeded despite policyMappingInhibit", !trust->validate(m_ee, untrusted, *m_dummy));
+    }
+
+};
diff --git a/xmltoolingtest/data/x509/AnyPolicy.xml b/xmltoolingtest/data/x509/AnyPolicy.xml
new file mode 100644 (file)
index 0000000..88cbc78
--- /dev/null
@@ -0,0 +1,4 @@
+<TrustEngine type="StaticPKIX" certificate="../xmltoolingtest/data/x509/mdt-root.crt.pem">
+    <TrustedName>Snakeoil Metadata Signer</TrustedName>
+    <PolicyOID>1.3.6.1.4.1.32473.2011.6.20</PolicyOID>
+</TrustEngine>
diff --git a/xmltoolingtest/data/x509/ExplicitPolicy.xml b/xmltoolingtest/data/x509/ExplicitPolicy.xml
new file mode 100644 (file)
index 0000000..549b808
--- /dev/null
@@ -0,0 +1,4 @@
+<TrustEngine type="StaticPKIX" certificate="../xmltoolingtest/data/x509/mdt-root.crt.pem" anyPolicyInhibit="true">
+    <TrustedName>Snakeoil Metadata Signer</TrustedName>
+    <PolicyOID>1.3.6.1.4.1.32473.2011.6.20</PolicyOID>
+</TrustEngine>
diff --git a/xmltoolingtest/data/x509/ExplicitPolicyMap.xml b/xmltoolingtest/data/x509/ExplicitPolicyMap.xml
new file mode 100644 (file)
index 0000000..2a47d30
--- /dev/null
@@ -0,0 +1,4 @@
+<TrustEngine type="StaticPKIX" certificate="../xmltoolingtest/data/x509/mdt-root.crt.pem" anyPolicyInhibit="true">
+    <TrustedName>Snakeoil Metadata Signer</TrustedName>
+    <PolicyOID>1.3.6.1.4.1.32473.2011.6.21</PolicyOID>
+</TrustEngine>
diff --git a/xmltoolingtest/data/x509/ExplicitPolicyNoMap.xml b/xmltoolingtest/data/x509/ExplicitPolicyNoMap.xml
new file mode 100644 (file)
index 0000000..204b992
--- /dev/null
@@ -0,0 +1,4 @@
+<TrustEngine type="StaticPKIX" certificate="../xmltoolingtest/data/x509/mdt-root.crt.pem" policyMappingInhibit=>"true">
+    <TrustedName>Snakeoil Metadata Signer</TrustedName>
+    <PolicyOID>1.3.6.1.4.1.32473.2011.6.21</PolicyOID>
+</TrustEngine>
diff --git a/xmltoolingtest/data/x509/mdt-ica.1.crt.pem b/xmltoolingtest/data/x509/mdt-ica.1.crt.pem
new file mode 100644 (file)
index 0000000..dc3dc9d
--- /dev/null
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDRjCCAi6gAwIBAgIUSnakeoilMetadataIssuingCA1wwDQYJKoZIhvcNAQEF
+BQAwGzEZMBcGA1UEAxMQU25ha2VvaWwgUm9vdCBDQTAeFw0xMTA2MjAwMDAwMDBa
+Fw0zODAxMTkwMzE0MDhaMCcxJTAjBgNVBAMTHFNuYWtlb2lsIE1ldGFkYXRhIElz
+c3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6DFQZPSPr
+yTWmV+i0UFl9d9AOGjH6nHTU35faoOh0alsLKJAxCRlU3WT+EySFOpYoOwNLWtid
+M8Fvxz0/cXtXQ6ivGKWEFtvzVock6jtRz/yUd6Oo/qo/TKlyrO+CtNxAexCgshLj
+xXkeyOv1JtSIvsCQ19dnGwOaSS7sWmPsUEEiJ24Iby2A+BtubQbAWI4M1gb+bbhi
+OVRA2f8Km2qqM2ijsEqfzYZbDFd1xoULR+iglagvtK4xfjZ+k/Qorax/MSSKg0cf
+nHz2LKMRMqXvKVPK6M9xCgqZxYwogUSlAXBc0vpP8FUU6B3minhpbAlrxXL9Frsz
+asEFaMQLsHiBAgMBAAGjdjB0MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
+AgEGMB0GA1UdDgQWBBQET29bgHGiIaw/RdgWWTALQ2PH4DAfBgNVHSMEGDAWgBQz
+2TQJ+Wbq9e8hujPnpCUJO79r6DARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcN
+AQEFBQADggEBACN6yB+JUZHNgkA9aSe4EDxgrpBrmG9SmZSiZmwYVXykWiw5m1OB
+3wLvtqusFxK1ohegKGzu36yGBCGv5q4mumbI8ejTrJ0n2qSyfgLZrqVb46CO2s6p
+5xKZZcVSAZD8xno9RiSDZrYucsOxxlDwjVeJkw+6sEJeWNMvN3NEzd7xZC1qilQl
+VJZQUmY5pzu2qxaGrmJrIWr8yxcKjbmzG3UvHPpv1NxR3F69sTz4e+dGZYclASIR
+2nwHLRuU/LH0oNrMy8+s5d9a5jg5u0Ew9pXdlpguQERNT5lJJ1z9S1Z7KQEX0rFt
+peZZ8oY/LKHVbU3ykmSnh5n3VgB6FxBgdfM=
+-----END CERTIFICATE-----
diff --git a/xmltoolingtest/data/x509/mdt-ica.2.crt.pem b/xmltoolingtest/data/x509/mdt-ica.2.crt.pem
new file mode 100644 (file)
index 0000000..8ccb4af
--- /dev/null
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTjCCAjagAwIBAgIUSnakeoilMetadataIssuingCA2wwDQYJKoZIhvcNAQEF
+BQAwGzEZMBcGA1UEAxMQU25ha2VvaWwgUm9vdCBDQTAeFw0xMTA2MjAwMDAwMDBa
+Fw0zODAxMTkwMzE0MDhaMCcxJTAjBgNVBAMTHFNuYWtlb2lsIE1ldGFkYXRhIElz
+c3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6DFQZPSPr
+yTWmV+i0UFl9d9AOGjH6nHTU35faoOh0alsLKJAxCRlU3WT+EySFOpYoOwNLWtid
+M8Fvxz0/cXtXQ6ivGKWEFtvzVock6jtRz/yUd6Oo/qo/TKlyrO+CtNxAexCgshLj
+xXkeyOv1JtSIvsCQ19dnGwOaSS7sWmPsUEEiJ24Iby2A+BtubQbAWI4M1gb+bbhi
+OVRA2f8Km2qqM2ijsEqfzYZbDFd1xoULR+iglagvtK4xfjZ+k/Qorax/MSSKg0cf
+nHz2LKMRMqXvKVPK6M9xCgqZxYwogUSlAXBc0vpP8FUU6B3minhpbAlrxXL9Frsz
+asEFaMQLsHiBAgMBAAGjfjB8MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
+AgEGMB0GA1UdDgQWBBQET29bgHGiIaw/RdgWWTALQ2PH4DAfBgNVHSMEGDAWgBQz
+2TQJ+Wbq9e8hujPnpCUJO79r6DAZBgNVHSAEEjAQMA4GDCsGAQQBgf1Zj1sGFDAN
+BgkqhkiG9w0BAQUFAAOCAQEACfLO1Mfw6/QHH7PVwGOUWgLYr87x5tRuFMoG8IAr
+HU02fF+0hEAQdw113Z8LZjuKWH3jZhLpGt3kkEDiGcbRxSjru/fYz6IhRExMnZAA
+udM8V7LCBmdoZJRUWKF0pXYooVRHuVkYt4VTzhoq1uvdN1VheKLTDzhkp+NMj3Zb
+Yc90ifQViWGWx2Aia9HzSo1oj4iu2M2RUblGbuUAola7i2kjCmZJBHTzqNbwf0FM
+2syAHqQdXUmqpm4R3ex9EKSIjOHuaafUWDEi2y4i3ZD3lzMKlRIlpgz69drBLPBF
+CFBlnENG5Hfkc44XerMTp0b4+Ch6PEUGtZOepyNkkGS/iA==
+-----END CERTIFICATE-----
diff --git a/xmltoolingtest/data/x509/mdt-ica.3.crt.pem b/xmltoolingtest/data/x509/mdt-ica.3.crt.pem
new file mode 100644 (file)
index 0000000..2ca9ada
--- /dev/null
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDiTCCAnGgAwIBAgIUSnakeoilMetadataIssuingCA3wwDQYJKoZIhvcNAQEF
+BQAwGzEZMBcGA1UEAxMQU25ha2VvaWwgUm9vdCBDQTAeFw0xMTA2MjAwMDAwMDBa
+Fw0zODAxMTkwMzE0MDhaMCcxJTAjBgNVBAMTHFNuYWtlb2lsIE1ldGFkYXRhIElz
+c3VpbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6DFQZPSPr
+yTWmV+i0UFl9d9AOGjH6nHTU35faoOh0alsLKJAxCRlU3WT+EySFOpYoOwNLWtid
+M8Fvxz0/cXtXQ6ivGKWEFtvzVock6jtRz/yUd6Oo/qo/TKlyrO+CtNxAexCgshLj
+xXkeyOv1JtSIvsCQ19dnGwOaSS7sWmPsUEEiJ24Iby2A+BtubQbAWI4M1gb+bbhi
+OVRA2f8Km2qqM2ijsEqfzYZbDFd1xoULR+iglagvtK4xfjZ+k/Qorax/MSSKg0cf
+nHz2LKMRMqXvKVPK6M9xCgqZxYwogUSlAXBc0vpP8FUU6B3minhpbAlrxXL9Frsz
+asEFaMQLsHiBAgMBAAGjgbgwgbUwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
+BAMCAQYwHQYDVR0OBBYEFARPb1uAcaIhrD9F2BZZMAtDY8fgMB8GA1UdIwQYMBaA
+FDPZNAn5Zur17yG6M+ekJQk7v2voMCkGA1UdIAQiMCAwDgYMKwYBBAGB/VmPWwYU
+MA4GDCsGAQQBgf1Zj1sGFTAnBgNVHSEEIDAeMBwGDCsGAQQBgf1Zj1sGFQYMKwYB
+BAGB/VmPWwYUMA0GCSqGSIb3DQEBBQUAA4IBAQCv0yZiKSpIYcSNWQbAi0Rbh8oj
+AGQZafYQWlMahy0ulw8FrFx4VFw8cEQsoFGwoyl4r8WQQ3swIjPVqvyQCwvn6mDi
+t2vrMwcPTzVy3ToHyK50qXQ0eoqlOM+NVWygs5oPhqAQDBPBrQKRr9CN9VdaByBv
+tXDS3zQCi/10E3tCL/YGjDG5s9rSAUkbEk5USZDJ5BSu0cmj85ykEyx5TqpUwEVs
+H99BVU8a80oPf+mpI3gE6hZwK+l9dMElHIqygS4JT1FZUUZ95hzBzZLCj6mjq7R/
+hHuqtUqMd9myRdAe/9pOTGikDr7JYeZblzcqRvl5PCiYXYAnDyv1lIOKKbDb
+-----END CERTIFICATE-----
diff --git a/xmltoolingtest/data/x509/mdt-root.crt.pem b/xmltoolingtest/data/x509/mdt-root.crt.pem
new file mode 100644 (file)
index 0000000..81c4e06
--- /dev/null
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/TCCAeWgAwIBAgILSnakeoilRootCA0wDQYJKoZIhvcNAQEFBQAwGzEZMBcG
+A1UEAxMQU25ha2VvaWwgUm9vdCBDQTAeFw0xMTA2MjAwMDAwMDBaFw0zODAxMTkw
+MzE0MDhaMBsxGTAXBgNVBAMTEFNuYWtlb2lsIFJvb3QgQ0EwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDthRs8czq6e7n74lDBJqe1Qpd51jO6NjHcHQZJ
+cZgW7II+EY7MJ5+kDDFoTo0v2O3J2rI5DojH6mhcT4BX/NUDVtwu2PgQNlHtLfBk
+sT4FHSritu78Q7Y1r+XlcawAIcbTtF2jnDCumyZUT/wMjdyM8ACchmKssQks2NXB
+f2bhHfZfsVaO7aO6qwA9q3Lpm8VxjmGLfCuKrM1PDEMLzAKWGpRgtUm+LKW++11T
+PZxP0z8X02j01qOXTDhDCP84HY0jWMk6P4H5DH/z0JIIaEG2Ph+SpMAuIs5YmDs8
+xBgtgAqsXjSJoCPnECTH6m2/SEqINyJuuWHd1XuoKAOOhq1RAgMBAAGjQjBAMA8G
+A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQz2TQJ+Wbq
+9e8hujPnpCUJO79r6DANBgkqhkiG9w0BAQUFAAOCAQEADV3g7LGZGFiK5MYPAzRP
+GBuhJKoYN8+6UVvt0WLSNC/MNWtLpF74r54CD5OGVFua7c8aIDEPKGXuyKGgz9r6
+WLPTjtZjBg0E3TZu9Pwpta+dC0kVF7ossDxXHPOHiDMFZ60EVI7dZR2NboFDirL9
+jHCvwlKLP8NWjB17aw7m0SM3g8krVj2Cxxdc99CmfYKsvWpvI06sP2O69K06Modi
+5aQZ37EJEpp8x/lFaRubAymWrM6azpRz9av1BbeFgVAP16yWGV1wl8HMhu69ULL4
+tmlA85snFNnlVZ6rI6goJhcc0yeurCQIpCKTwRnpcLDBo74lSjyOXMo0ppsDl7Jy
+DA==
+-----END CERTIFICATE-----
diff --git a/xmltoolingtest/data/x509/mdt-signer.crt.pem b/xmltoolingtest/data/x509/mdt-signer.crt.pem
new file mode 100644 (file)
index 0000000..ff1bb56
--- /dev/null
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQjCCAiqgAwIBAgIRSnakeoilMetadataSignerAwDQYJKoZIhvcNAQEFBQAw
+JzElMCMGA1UEAxMcU25ha2VvaWwgTWV0YWRhdGEgSXNzdWluZyBDQTAeFw0xMTA2
+MjAwMDAwMDBaFw0zODAxMTkwMzE0MDhaMCMxITAfBgNVBAMTGFNuYWtlb2lsIE1l
+dGFkYXRhIFNpZ25lcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALOx
+RpswhModNQdyDyFG7SISavkJCSi77OaBM/M6ZvqW+bg2BE1Ituzi8fnhDnV4HB2z
+hsKWK0FGoeHuuDVHJDJLQzPIadZMIJE7BzXb1Vy6PdAmMvb4fgqV7WAUfidKf15M
+Y9zMYLknnkb792or1I49SdJpTxpiFeju+wzauGC5g5DdXJfaBSBFnmQCIaPZpx2e
+VKK5XDWgw/6QYC1XQuHSHluEB4JwsDyz2BrtYpUKrw0d7Bef+cYbEjOYtuvgZPEn
+8mGirZxaztB7IYOqaTOvyMwtu8cH/N5d2xAZAzlrY9ODOZBCglqKoeOkhAnqvDaz
+AxjmiFgYLbWxPKUIH1UCAwEAAaNtMGswDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW
+BBS6UY1qJSWaNYsl/AMTl7jLqkQbmDAfBgNVHSMEGDAWgBQET29bgHGiIaw/RdgW
+WTALQ2PH4DAZBgNVHSAEEjAQMA4GDCsGAQQBgf1Zj1sGFDANBgkqhkiG9w0BAQUF
+AAOCAQEAO2e6CJK0fhzF6MFMAt7rjYt+Y/AuOP4VD14uCVG4TEGQ7aNsvaFGwbQ9
+Pnc/wxdh2tLp4ZU5N0oFKZeeHDoYNXsjBWKXEhtegQndKm56EpN0YjlLGqeeY5de
+D0qoQnXHl5SZhoXUCh09yLK4sNctJm1Fz74KzStg/nQK4E/QbvVXQduWv8hdKEMG
+mLNb01y5xXqXCMIKKZj4wtTOwXhTOmGo8oJbz9OKy/PkhF1M+V/BzwZizhpV6imO
+2EBL59C8fkkT416J5kYx+FgGEV0vU8wCyE8mkg1/Hi6VnU2ZTYJgM2TW0rjkKNRw
+fWwwrfK4x3a8hkKaLZmTgHnGL6J2VA==
+-----END CERTIFICATE-----
diff --git a/xmltoolingtest/data/x509/mdt-signer.key b/xmltoolingtest/data/x509/mdt-signer.key
new file mode 100644 (file)
index 0000000..4b8e466
--- /dev/null
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAs7FGmzCEyh01B3IPIUbtIhJq+QkJKLvs5oEz8zpm+pb5uDYE
+TUi27OLx+eEOdXgcHbOGwpYrQUah4e64NUckMktDM8hp1kwgkTsHNdvVXLo90CYy
+9vh+CpXtYBR+J0p/Xkxj3MxguSeeRvv3aivUjj1J0mlPGmIV6O77DNq4YLmDkN1c
+l9oFIEWeZAIho9mnHZ5UorlcNaDD/pBgLVdC4dIeW4QHgnCwPLPYGu1ilQqvDR3s
+F5/5xhsSM5i26+Bk8SfyYaKtnFrO0Hshg6ppM6/IzC27xwf83l3bEBkDOWtj04M5
+kEKCWoqh46SECeq8NrMDGOaIWBgttbE8pQgfVQIDAQABAoIBABdds/q2Im5NwfmH
+4WPIX0mQ74wWmrRLS5DluCWmsIFhZHOJwqFyFSdUk3aUx1aLGcza7WkcMd+5GY/R
+hO6Yo6JOmxx+sRSGra106YkdXu9B4IvSi8oFog4qVMWrpIPjchCHCm1JvkIVXsWI
+OjH6JReh7JmJzBl4K7UwbkDLqDIbdZdTgmCWndAXSGJKRS1XNC/S35A1UWg3zW3T
+uS60skBI1L5JH051ioSXJ5ngr4/wS86Q+QpXZiScvGZt0gYu1xo0OzjdUk3m1gk7
+Adf7278QC5WGfVGDFVXc7GtoZVD+fHI8JLY/Gw6g00tpSJ2l7FTX9JZwATB5u+Rl
+2ymHlwECgYEA5CiyCP7yeAq/LRCTQXPzE++Os21wa3+DsWcl2lZeX0HPnEOBd94/
+R+9Bf/A8FdxUzT/6kjqOB3Lq1ouTyNu/OQmTgBSTuYR5sOkL6uMSDTsYYG+zfvqZ
+dhHQUry+b5THj0Pidgt3vbgu6NQ0gq7aIzhec6WbZzHR4os+hJXqjPUCgYEAyZ6R
+h/vi2lNQegzhOTyvrRqA1qWMLl4AEI9UrvtDmYRmkfs8Xr++gWl0JBtNtEfDxKL/
+rOoYHsieNW7gcqi0zxwrcbo1AkuiRnS19IKBDnDB3Vl4pms15+ttFLjdOoDHO+/M
+SwwJgye9LLTwoqRYkucCv67BMo7n5a/klVnzzOECgYB5lWYqfRHg/nkaHrcaLhvf
+B83Xt/4sius24my9iUEJKhzkfOTFZ935C3qwHukmDR/zsKBqxGFjfs2+PusmIlQo
+pP3BRzXhqsLej5IWPaMlAdTfrybMB+c3kA6fyI0DERm3Msm/diT9KOV2lX7WFS+R
+jTxoDFxgBaB/RQyvwuQW8QKBgHZb8SE8PINgj4jm0LzyJEthmKrpim6Z3j3adqM2
+fAu+Txx5uYoB1EtSZczgfnBMBOAFtESFNF219jJ2Aast4N8IsXRVFNNhJUVpNHvy
+tOKOTTCtWoePvpiEe4fDspOqj8tezbZsvZTSGlsJaY6BHkI2/UUbyOzuObJ73JvU
+r6vhAoGBAKAb4tG2mJYi9FeYxaMKjkPx+/HAysYlCrMK8ZJyqk2ATzC0N+b6t88+
+dSXlcLwuI/iVXRAHXqU7m/Va8hQ0s1glUOtnQj13jOlElID2Lw7W7Ar3B1SxPLba
+3LgndcfbhNpdZjjrQC+i+c6DPiNDNEWUDJujEk0Ge+QyFV9UnPxJ
+-----END RSA PRIVATE KEY-----
index b808e5e..7957fb0 100644 (file)
     <ClCompile Include="MarshallingTest.cpp" />\r
     <ClCompile Include="MemoryStorageServiceTest.cpp" />\r
     <ClCompile Include="NonVisibleNamespaceTest.cpp" />\r
+    <ClCompile Include="PKIXEngineTest.cpp" />\r
     <ClCompile Include="SecurityHelperTest.cpp" />\r
     <ClCompile Include="SignatureTest.cpp" />\r
     <ClCompile Include="SOAPTest.cpp" />\r
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(Filename).cpp;%(Outputs)</Outputs>\r
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>\r
     </CustomBuild>\r
+    <CustomBuild Include="PKIXEngineTest.h">\r
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"\r
+</Command>\r
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(Filename).cpp;%(Outputs)</Outputs>\r
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"\r
+</Command>\r
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(Filename).cpp;%(Outputs)</Outputs>\r
+      <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>\r
+      <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>\r
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(Filename).cpp;%(Outputs)</Outputs>\r
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(Filename).cpp;%(Outputs)</Outputs>\r
+    </CustomBuild>\r
     <CustomBuild Include="SecurityHelperTest.h">\r
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">perl.exe -w $(CxxTestRoot)\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o "%(Filename)".cpp "%(FullPath)"\r
 </Command>\r
index 4b0094b..cc2f1cf 100644 (file)
@@ -41,6 +41,9 @@
     <ClCompile Include="NonVisibleNamespaceTest.cpp">\r
       <Filter>Generated Code</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="PKIXEngineTest.cpp">\r
+      <Filter>Generated Code</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="SecurityHelperTest.cpp">\r
       <Filter>Generated Code</Filter>\r
     </ClCompile>\r
     <CustomBuild Include="NonVisibleNamespaceTest.h">\r
       <Filter>Unit Tests</Filter>\r
     </CustomBuild>\r
+    <CustomBuild Include="PKIXEngineTest.h">\r
+      <Filter>Unit Tests</Filter>\r
+    </CustomBuild>\r
     <CustomBuild Include="SecurityHelperTest.h">\r
       <Filter>Unit Tests</Filter>\r
     </CustomBuild>\r