diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-11-24 13:42:14 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-11-24 20:39:13 +0100 |
commit | 748f778d0f42f2cbb78a7ca7e013bfbd77cdf2b7 (patch) | |
tree | d730910e7a32f3d0a162f661cd358d58910ec9cf /xmlsecurity/qa | |
parent | 8a279d7de4cf94c99f655f6edd0da0c24ab4003c (diff) |
CppunitTest_xmlsecurity_signing: don't assume we always have a signing cert
This makes this suite in sync with CppunitTest_xmlsecurity_pdfsigning. A
signing certificate is available on 64bit NSS platforms, as there we
provide a pre-created NSS db, but on other platforms by default there is
just no signing certificate. The certificate.crt I added earlier is not
enough, that's just the certificate, but it doesn't provide a private
key.
Change-Id: Ie09d70fc9bc7ab752382eef96659bedb414553f5
Diffstat (limited to 'xmlsecurity/qa')
-rw-r--r-- | xmlsecurity/qa/unit/signing/data/certificate.crt | 27 | ||||
-rw-r--r-- | xmlsecurity/qa/unit/signing/data/key3.db | bin | 0 -> 16384 bytes | |||
-rw-r--r-- | xmlsecurity/qa/unit/signing/signing.cxx | 36 |
3 files changed, 18 insertions, 45 deletions
diff --git a/xmlsecurity/qa/unit/signing/data/certificate.crt b/xmlsecurity/qa/unit/signing/data/certificate.crt deleted file mode 100644 index f3f34b7c65ab..000000000000 --- a/xmlsecurity/qa/unit/signing/data/certificate.crt +++ /dev/null @@ -1,27 +0,0 @@ -MIIE7jCCAtagAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwVzELMAkGA1UEBhMCVUsx -EDAOBgNVBAgMB0VuZ2xhbmQxEjAQBgNVBAoMCVRTQ1AgVGVzdDEiMCAGA1UEAwwZ -VFNDUCBJbnRlcm1lZGlhdGUgUm9vdCBDQTAeFw0xNTEyMTgwNzU4MTlaFw0xNjEy -MjcwNzU4MTlaMFUxCzAJBgNVBAYTAlVLMRAwDgYDVQQIDAdFbmdsYW5kMRIwEAYD -VQQKDAlUU0NQIFRlc3QxIDAeBgNVBAMMF1RTQ1AgVGVzdCBleGFtcGxlIEFsaWNl -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3m2YNdX+nc1LkhlrNrcI -PI3yCWnv0/0k9zDKpKiwjMH4vjWM46M6ptAiupxVpAMW5ojnhEyxaNHvZNsCwddY -E6778hut2SJvz0szSBuHUuedcALI2EhVwdM0yLqfGo6WGeOIBDId49TemdNCMhk2 -zOpb1BqYhKls0LfdbxT/an3JaDmmLhPjvgYMJNYVX86L199OQFLJ1zLqQ0YirkKq -XL9cSPmyYBKjgnqQ4Z5YfPL63EP0TsEfa5oQmy/0gS5FB2Wz9CqIptB130v0GR4X -ObTpOkhPFfC5RDBFTMZoi4NCK10wn2NCbr7qZ3aMrOlfeKbsNIifwu0KYFHXyxL5 -AwIDAQABo4HFMIHCMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgWgMDMGCWCG -SAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGllbnQgQ2VydGlmaWNhdGUw -HQYDVR0OBBYEFCL6DzsuAbni8475Z+HkX5tv8iiWMB8GA1UdIwQYMBaAFMuejS1r -WjUf3x1+2QbPSVpuXFl+MA4GA1UdDwEB/wQEAwIF4DAdBgNVHSUEFjAUBggrBgEF -BQcDAgYIKwYBBQUHAwQwDQYJKoZIhvcNAQELBQADggIBAFs0DeCDjttHQ0UHsYcn -hfBCWRdOFdIr3F/IEbN2BL/grScGXoXRaYMIQJv/s5dKgZIuH7xMCVKazoftPVqU -4bOEduAv0IJ6hQF/wEMBueA0UjvQQVYZgsOALi7TD3gYpFqYcH2Wfx5/5Ln6dllL -8UsHoP+6gSLaYwjJd7FQ+IlNTzR65dRMLoJhoKqqyuM6cf/PM8sbK2NH2r8toypj -fPixvD/w3wP7xn4oo/IGXcRK4DTHBF/rSMqeR6ePwXm5tVHrQBfnxN3dsGsXkQgq -zBvvbPY0raraO4CPR7mZp4GVFHOsUNh5TI1SlfxWZ49HU3F5jWeiI9jPuw1RmuAy -ZdFEt403Wi67v6revXe1By6UqIZjq3b2pJGBKZH+60P1cJScawzrN8pi1qQFV8Ji -iJM6/MSciqplTT5F7SG0XZx1CjnBz5rMdYNhI9NNtF3oy9Xy9RvgYehFaC43ZlBB -UMDmZFj5a78hOOkkq1UnrHUdeXyWhiEFzv5d8My2i0kWGq8r0HuC25BmOa17lHVx -Q2o7Rdu9jDFP9oNizC7kQfA5QVRTfBFcWH7jml69RmVgfM+X+wdQgen9hJAILhBz -mDfeteJ5ZEaoEYtw3isOGkpSyg7odjgYq7I+bOiN1toDg07vzfIkvF9KxlkDeRLX -bmcFIvQsqFeF6cUwlZQYLOHA diff --git a/xmlsecurity/qa/unit/signing/data/key3.db b/xmlsecurity/qa/unit/signing/data/key3.db Binary files differnew file mode 100644 index 000000000000..8ab32c28d584 --- /dev/null +++ b/xmlsecurity/qa/unit/signing/data/key3.db diff --git a/xmlsecurity/qa/unit/signing/signing.cxx b/xmlsecurity/qa/unit/signing/signing.cxx index 51e536614ad6..4e6c20efd730 100644 --- a/xmlsecurity/qa/unit/signing/signing.cxx +++ b/xmlsecurity/qa/unit/signing/signing.cxx @@ -132,6 +132,7 @@ void SigningTest::setUp() OUString aTargetDir = m_directories.getURLFromWorkdir( "/CppunitTest/xmlsecurity_signing.test.user/"); osl::File::copy(aSourceDir + "cert8.db", aTargetDir + "cert8.db"); + osl::File::copy(aSourceDir + "key3.db", aTargetDir + "key3.db"); OUString aTargetPath; osl::FileBase::getSystemPathFromFileURL(aTargetDir, aTargetPath); setenv("MOZILLA_CERTIFICATE_FOLDER", aTargetPath.toUtf8().getStr(), 1); @@ -168,20 +169,14 @@ void SigningTest::createCalc(const OUString& rURL) uno::Reference<security::XCertificate> SigningTest::getCertificate(DocumentSignatureManager& rSignatureManager) { + uno::Reference<security::XCertificate> xCertificate; + uno::Reference<xml::crypto::XSecurityEnvironment> xSecurityEnvironment = rSignatureManager.getSecurityEnvironment(); - OUString aCertificate; - { - SvFileStream aStream(m_directories.getURLFromSrc(DATA_DIRECTORY) + "certificate.crt", StreamMode::READ); - OString aLine; - bool bMore = aStream.ReadLine(aLine); - while (bMore) - { - aCertificate += OUString::fromUtf8(aLine); - aCertificate += "\n"; - bMore = aStream.ReadLine(aLine); - } - } - return xSecurityEnvironment->createCertificateFromAscii(aCertificate); + uno::Sequence<uno::Reference<security::XCertificate>> aCertificates = xSecurityEnvironment->getPersonalCertificates(); + if (!aCertificates.hasElements()) + return xCertificate; + + return aCertificates[0]; } void SigningTest::testDescription() @@ -205,7 +200,8 @@ void SigningTest::testDescription() // Then add a signature document. uno::Reference<security::XCertificate> xCertificate = getCertificate(aManager); - CPPUNIT_ASSERT(xCertificate.is()); + if (!xCertificate.is()) + return; OUString aDescription("SigningTest::testDescription"); sal_Int32 nSecurityId; aManager.add(xCertificate, aDescription, nSecurityId, false); @@ -238,7 +234,8 @@ void SigningTest::testOOXMLDescription() // Then add a document signature. uno::Reference<security::XCertificate> xCertificate = getCertificate(aManager); - CPPUNIT_ASSERT(xCertificate.is()); + if (!xCertificate.is()) + return; OUString aDescription("SigningTest::testDescription"); sal_Int32 nSecurityId; aManager.add(xCertificate, aDescription, nSecurityId, false); @@ -271,7 +268,8 @@ void SigningTest::testOOXMLAppend() // Then add a second document signature. uno::Reference<security::XCertificate> xCertificate = getCertificate(aManager); - CPPUNIT_ASSERT(xCertificate.is()); + if (!xCertificate.is()) + return; sal_Int32 nSecurityId; aManager.add(xCertificate, OUString(), nSecurityId, false); @@ -297,7 +295,8 @@ void SigningTest::testOOXMLRemove() // Then remove the last added signature. uno::Reference<security::XCertificate> xCertificate = getCertificate(aManager); - CPPUNIT_ASSERT(xCertificate.is()); + if (!xCertificate.is()) + return; aManager.remove(0); // Read back the signatures and make sure that only purpose1 is left. @@ -327,7 +326,8 @@ void SigningTest::testOOXMLRemoveAll() // Then remove the only signature in the document. uno::Reference<security::XCertificate> xCertificate = getCertificate(aManager); - CPPUNIT_ASSERT(xCertificate.is()); + if (!xCertificate.is()) + return; aManager.remove(0); aManager.read(/*bUseTempStream=*/true); aManager.write(/*bXAdESCompliantIfODF=*/false); |