[Libreoffice-commits] core.git: xmlsecurity/qa

Samuel Mehrbrodt Samuel.Mehrbrodt at cib.de
Mon Nov 6 11:17:44 UTC 2017


 xmlsecurity/qa/unit/signing/data/signatureline.docx |binary
 xmlsecurity/qa/unit/signing/signing.cxx             |   28 ++++++++++++++++++++
 2 files changed, 28 insertions(+)

New commits:
commit 193aa63a2aa697e3689eedd63775afffb6ed9ef1
Author: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
Date:   Thu Nov 2 15:47:32 2017 +0100

    tdf#65393 Test for signature line images
    
    Change-Id: I6f37919da5fef0a90fad314019db19e4a5604169
    Reviewed-on: https://gerrit.libreoffice.org/44220
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>

diff --git a/xmlsecurity/qa/unit/signing/data/signatureline.docx b/xmlsecurity/qa/unit/signing/data/signatureline.docx
new file mode 100644
index 000000000000..e1dae66989d3
Binary files /dev/null and b/xmlsecurity/qa/unit/signing/data/signatureline.docx differ
diff --git a/xmlsecurity/qa/unit/signing/signing.cxx b/xmlsecurity/qa/unit/signing/signing.cxx
index e17ccff09ef4..4724f56f234a 100644
--- a/xmlsecurity/qa/unit/signing/signing.cxx
+++ b/xmlsecurity/qa/unit/signing/signing.cxx
@@ -25,6 +25,8 @@
 #include <com/sun/star/xml/crypto/SEInitializer.hpp>
 #include <com/sun/star/io/TempFile.hpp>
 #include <com/sun/star/packages/manifest/ManifestReader.hpp>
+#include <com/sun/star/security/DocumentDigitalSignatures.hpp>
+#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
 
 #include <comphelper/processfactory.hxx>
 #include <comphelper/propertysequence.hxx>
@@ -98,6 +100,8 @@ public:
     void testXAdES();
     /// Works with an existing good XAdES signature.
     void testXAdESGood();
+    /// Test importing of signature line images
+    void testSignatureLineImages();
 
     CPPUNIT_TEST_SUITE(SigningTest);
     CPPUNIT_TEST(testDescription);
@@ -120,6 +124,7 @@ public:
     CPPUNIT_TEST(test96097Doc);
     CPPUNIT_TEST(testXAdES);
     CPPUNIT_TEST(testXAdESGood);
+    CPPUNIT_TEST(testSignatureLineImages);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -629,6 +634,29 @@ void SigningTest::testXAdESGood()
         (nActual == SignatureState::NOTVALIDATED
          || nActual == SignatureState::OK));
 }
+
+void SigningTest::testSignatureLineImages()
+{
+    // Given: A document (docx) with a signature line and a valid signature
+    uno::Reference< security::XDocumentDigitalSignatures > xSignatures(
+        security::DocumentDigitalSignatures::createWithVersion(
+            comphelper::getProcessComponentContext(), "1.2" ) );
+
+    uno::Reference<embed::XStorage> xStorage = comphelper::OStorageHelper::GetStorageOfFormatFromURL(
+        ZIP_STORAGE_FORMAT_STRING, m_directories.getURLFromSrc(DATA_DIRECTORY) + "signatureline.docx",
+         embed::ElementModes::READ);
+    CPPUNIT_ASSERT(xStorage.is());
+
+    uno::Sequence< security::DocumentSignatureInformation > xSignatureInfo =
+        xSignatures->verifyScriptingContentSignatures(xStorage, uno::Reference< io::XInputStream >());
+
+    // The signature should have a valid signature, and signature line with two valid images
+    CPPUNIT_ASSERT(xSignatureInfo[0].SignatureIsValid);
+    CPPUNIT_ASSERT_EQUAL(OUString("{DEE0514B-13E8-4674-A831-46E3CDB18BB4}"), xSignatureInfo[0].SignatureLineId);
+    CPPUNIT_ASSERT(xSignatureInfo[0].ValidSignatureLineImage.is());
+    CPPUNIT_ASSERT(xSignatureInfo[0].InvalidSignatureLineImage.is());
+}
+
 void SigningTest::registerNamespaces(xmlXPathContextPtr& pXmlXpathCtx)
 {
     xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("odfds"), BAD_CAST("urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0"));


More information about the Libreoffice-commits mailing list