FilesystemCredentialResolverTest.h \
InlineKeyResolverTest.h \
MemoryStorageServiceTest.h \
+ PKIXEngineTest.h \
SecurityHelperTest.h \
SignatureTest.h
else
${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); \
$(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
--- /dev/null
+/**
+ * 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));
+ }
+
+};
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+-----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-----
--- /dev/null
+-----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-----
--- /dev/null
+-----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-----
--- /dev/null
+-----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-----
--- /dev/null
+-----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-----
--- /dev/null
+-----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-----
<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
<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