summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2018-09-18 09:59:08 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-09-20 01:54:01 +0200
commit59cdc0023f2429be6fe25f4570e07fd81a8f5d00 (patch)
tree64544e459d6ac9708401fe801f49d93855c03d1a
parent4ceefe7c66f19e16e8e4414419e38f75c55ec6fd (diff)
tdf#118567 Signature Line: Fix ooxml signing
Change-Id: Ie2467db7ab209f10e92b6db1f5680e7a9be614ab Reviewed-on: https://gerrit.libreoffice.org/60676 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit c3de0478fbcbe1dc22ab5dea42b423bb8e45fcba) Reviewed-on: https://gerrit.libreoffice.org/60735 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--xmlsecurity/inc/documentsignaturehelper.hxx3
-rw-r--r--xmlsecurity/source/helper/documentsignaturehelper.cxx10
-rw-r--r--xmlsecurity/source/helper/ooxmlsecexporter.cxx6
-rw-r--r--xmlsecurity/source/helper/xsecctl.cxx2
4 files changed, 11 insertions, 10 deletions
diff --git a/xmlsecurity/inc/documentsignaturehelper.hxx b/xmlsecurity/inc/documentsignaturehelper.hxx
index 1c5d1b97a972..bacef66746cd 100644
--- a/xmlsecurity/inc/documentsignaturehelper.hxx
+++ b/xmlsecurity/inc/documentsignaturehelper.hxx
@@ -102,7 +102,8 @@ namespace DocumentSignatureHelper
void writeSignedProperties(
const css::uno::Reference<css::xml::sax::XDocumentHandler>& xDocumentHandler,
const SignatureInformation& signatureInfo,
- const OUString& sDate);
+ const OUString& sDate,
+ const bool bWriteSignatureLineData);
};
#endif // INCLUDED_XMLSECURITY_INC_DOCUMENTSIGNATUREHELPER_HXX
diff --git a/xmlsecurity/source/helper/documentsignaturehelper.cxx b/xmlsecurity/source/helper/documentsignaturehelper.cxx
index 8bb06b84e92a..37342b536349 100644
--- a/xmlsecurity/source/helper/documentsignaturehelper.cxx
+++ b/xmlsecurity/source/helper/documentsignaturehelper.cxx
@@ -548,7 +548,7 @@ void DocumentSignatureHelper::writeDigestMethod(
void DocumentSignatureHelper::writeSignedProperties(
const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler,
const SignatureInformation& signatureInfo,
- const OUString& sDate)
+ const OUString& sDate, const bool bWriteSignatureLineData)
{
{
rtl::Reference<SvXMLAttributeList> pAttributeList(new SvXMLAttributeList());
@@ -587,8 +587,8 @@ void DocumentSignatureHelper::writeSignedProperties(
xDocumentHandler->endElement("xd:SignaturePolicyImplied");
xDocumentHandler->endElement("xd:SignaturePolicyIdentifier");
- if (!signatureInfo.ouSignatureLineId.isEmpty() && signatureInfo.aValidSignatureImage.is()
- && signatureInfo.aInvalidSignatureImage.is())
+ if (bWriteSignatureLineData && !signatureInfo.ouSignatureLineId.isEmpty()
+ && signatureInfo.aValidSignatureImage.is() && signatureInfo.aInvalidSignatureImage.is())
{
rtl::Reference<SvXMLAttributeList> pAttributeList(new SvXMLAttributeList());
pAttributeList->AddAttribute(
@@ -607,7 +607,7 @@ void DocumentSignatureHelper::writeSignedProperties(
}
{
- // Write SignatureLineId element
+ // Write SignatureLineValidImage element
xDocumentHandler->startElement(
"loext:SignatureLineValidImage",
Reference<XAttributeList>(new SvXMLAttributeList()));
@@ -622,7 +622,7 @@ void DocumentSignatureHelper::writeSignedProperties(
}
{
- // Write SignatureLineId element
+ // Write SignatureLineInvalidImage element
xDocumentHandler->startElement(
"loext:SignatureLineInvalidImage",
Reference<XAttributeList>(new SvXMLAttributeList()));
diff --git a/xmlsecurity/source/helper/ooxmlsecexporter.cxx b/xmlsecurity/source/helper/ooxmlsecexporter.cxx
index 6f9b2eb946dc..08cf2788f554 100644
--- a/xmlsecurity/source/helper/ooxmlsecexporter.cxx
+++ b/xmlsecurity/source/helper/ooxmlsecexporter.cxx
@@ -353,9 +353,9 @@ void OOXMLSecExporter::Impl::writeSignatureInfo()
pAttributeList->AddAttribute("xmlns", "http://schemas.microsoft.com/office/2006/digsig");
m_xDocumentHandler->startElement("SignatureInfoV1", uno::Reference<xml::sax::XAttributeList>(pAttributeList.get()));
- m_xDocumentHandler->startElement("SetupId", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList()));
+ m_xDocumentHandler->startElement("SetupID", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList()));
m_xDocumentHandler->characters(m_rInformation.ouSignatureLineId);
- m_xDocumentHandler->endElement("SetupId");
+ m_xDocumentHandler->endElement("SetupID");
m_xDocumentHandler->startElement("SignatureText", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList()));
m_xDocumentHandler->endElement("SignatureText");
m_xDocumentHandler->startElement("SignatureImage", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList()));
@@ -410,7 +410,7 @@ void OOXMLSecExporter::Impl::writePackageSignature()
m_xDocumentHandler->startElement("xd:QualifyingProperties", uno::Reference<xml::sax::XAttributeList>(pAttributeList.get()));
}
- DocumentSignatureHelper::writeSignedProperties(m_xDocumentHandler, m_rInformation, m_aSignatureTimeValue);
+ DocumentSignatureHelper::writeSignedProperties(m_xDocumentHandler, m_rInformation, m_aSignatureTimeValue, false);
m_xDocumentHandler->endElement("xd:QualifyingProperties");
m_xDocumentHandler->endElement("Object");
diff --git a/xmlsecurity/source/helper/xsecctl.cxx b/xmlsecurity/source/helper/xsecctl.cxx
index c10e9f0d3c50..1d9906f27ed3 100644
--- a/xmlsecurity/source/helper/xsecctl.cxx
+++ b/xmlsecurity/source/helper/xsecctl.cxx
@@ -898,7 +898,7 @@ void XSecController::exportSignature(
xDocumentHandler->startElement(
"xd:QualifyingProperties",
cssu::Reference< cssxs::XAttributeList > (pAttributeList));
- DocumentSignatureHelper::writeSignedProperties(xDocumentHandler, signatureInfo, sDate);
+ DocumentSignatureHelper::writeSignedProperties(xDocumentHandler, signatureInfo, sDate, true);
writeUnsignedProperties(xDocumentHandler, signatureInfo);
xDocumentHandler->endElement( "xd:QualifyingProperties" );
}