[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