Kaydet (Commit) c3de0478 authored tarafından Samuel Mehrbrodt's avatar Samuel Mehrbrodt

tdf#118567 Signature Line: Fix ooxml signing

Change-Id: Ie2467db7ab209f10e92b6db1f5680e7a9be614ab
Reviewed-on: https://gerrit.libreoffice.org/60676Reviewed-by: 's avatarSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: 's avatarSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
üst 02ae1077
...@@ -102,7 +102,8 @@ namespace DocumentSignatureHelper ...@@ -102,7 +102,8 @@ namespace DocumentSignatureHelper
void writeSignedProperties( void writeSignedProperties(
const css::uno::Reference<css::xml::sax::XDocumentHandler>& xDocumentHandler, const css::uno::Reference<css::xml::sax::XDocumentHandler>& xDocumentHandler,
const SignatureInformation& signatureInfo, const SignatureInformation& signatureInfo,
const OUString& sDate); const OUString& sDate,
const bool bWriteSignatureLineData);
}; };
#endif // INCLUDED_XMLSECURITY_INC_DOCUMENTSIGNATUREHELPER_HXX #endif // INCLUDED_XMLSECURITY_INC_DOCUMENTSIGNATUREHELPER_HXX
......
...@@ -515,7 +515,7 @@ void DocumentSignatureHelper::writeDigestMethod( ...@@ -515,7 +515,7 @@ void DocumentSignatureHelper::writeDigestMethod(
void DocumentSignatureHelper::writeSignedProperties( void DocumentSignatureHelper::writeSignedProperties(
const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler, const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler,
const SignatureInformation& signatureInfo, const SignatureInformation& signatureInfo,
const OUString& sDate) const OUString& sDate, const bool bWriteSignatureLineData)
{ {
{ {
rtl::Reference<SvXMLAttributeList> pAttributeList(new SvXMLAttributeList()); rtl::Reference<SvXMLAttributeList> pAttributeList(new SvXMLAttributeList());
...@@ -554,8 +554,8 @@ void DocumentSignatureHelper::writeSignedProperties( ...@@ -554,8 +554,8 @@ void DocumentSignatureHelper::writeSignedProperties(
xDocumentHandler->endElement("xd:SignaturePolicyImplied"); xDocumentHandler->endElement("xd:SignaturePolicyImplied");
xDocumentHandler->endElement("xd:SignaturePolicyIdentifier"); xDocumentHandler->endElement("xd:SignaturePolicyIdentifier");
if (!signatureInfo.ouSignatureLineId.isEmpty() && signatureInfo.aValidSignatureImage.is() if (bWriteSignatureLineData && !signatureInfo.ouSignatureLineId.isEmpty()
&& signatureInfo.aInvalidSignatureImage.is()) && signatureInfo.aValidSignatureImage.is() && signatureInfo.aInvalidSignatureImage.is())
{ {
rtl::Reference<SvXMLAttributeList> pAttributeList(new SvXMLAttributeList()); rtl::Reference<SvXMLAttributeList> pAttributeList(new SvXMLAttributeList());
pAttributeList->AddAttribute( pAttributeList->AddAttribute(
...@@ -574,7 +574,7 @@ void DocumentSignatureHelper::writeSignedProperties( ...@@ -574,7 +574,7 @@ void DocumentSignatureHelper::writeSignedProperties(
} }
{ {
// Write SignatureLineId element // Write SignatureLineValidImage element
xDocumentHandler->startElement( xDocumentHandler->startElement(
"loext:SignatureLineValidImage", "loext:SignatureLineValidImage",
Reference<XAttributeList>(new SvXMLAttributeList())); Reference<XAttributeList>(new SvXMLAttributeList()));
...@@ -589,7 +589,7 @@ void DocumentSignatureHelper::writeSignedProperties( ...@@ -589,7 +589,7 @@ void DocumentSignatureHelper::writeSignedProperties(
} }
{ {
// Write SignatureLineId element // Write SignatureLineInvalidImage element
xDocumentHandler->startElement( xDocumentHandler->startElement(
"loext:SignatureLineInvalidImage", "loext:SignatureLineInvalidImage",
Reference<XAttributeList>(new SvXMLAttributeList())); Reference<XAttributeList>(new SvXMLAttributeList()));
......
...@@ -359,9 +359,9 @@ void OOXMLSecExporter::Impl::writeSignatureInfo() ...@@ -359,9 +359,9 @@ void OOXMLSecExporter::Impl::writeSignatureInfo()
pAttributeList->AddAttribute("xmlns", "http://schemas.microsoft.com/office/2006/digsig"); pAttributeList->AddAttribute("xmlns", "http://schemas.microsoft.com/office/2006/digsig");
m_xDocumentHandler->startElement("SignatureInfoV1", uno::Reference<xml::sax::XAttributeList>(pAttributeList.get())); 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->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->startElement("SignatureText", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList()));
m_xDocumentHandler->endElement("SignatureText"); m_xDocumentHandler->endElement("SignatureText");
m_xDocumentHandler->startElement("SignatureImage", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList())); m_xDocumentHandler->startElement("SignatureImage", uno::Reference<xml::sax::XAttributeList>(new SvXMLAttributeList()));
...@@ -416,7 +416,7 @@ void OOXMLSecExporter::Impl::writePackageSignature() ...@@ -416,7 +416,7 @@ void OOXMLSecExporter::Impl::writePackageSignature()
m_xDocumentHandler->startElement("xd:QualifyingProperties", uno::Reference<xml::sax::XAttributeList>(pAttributeList.get())); 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("xd:QualifyingProperties");
m_xDocumentHandler->endElement("Object"); m_xDocumentHandler->endElement("Object");
......
...@@ -906,7 +906,7 @@ void XSecController::exportSignature( ...@@ -906,7 +906,7 @@ void XSecController::exportSignature(
xDocumentHandler->startElement( xDocumentHandler->startElement(
"xd:QualifyingProperties", "xd:QualifyingProperties",
cssu::Reference< cssxs::XAttributeList > (pAttributeList)); cssu::Reference< cssxs::XAttributeList > (pAttributeList));
DocumentSignatureHelper::writeSignedProperties(xDocumentHandler, signatureInfo, sDate); DocumentSignatureHelper::writeSignedProperties(xDocumentHandler, signatureInfo, sDate, true);
writeUnsignedProperties(xDocumentHandler, signatureInfo); writeUnsignedProperties(xDocumentHandler, signatureInfo);
xDocumentHandler->endElement( "xd:QualifyingProperties" ); xDocumentHandler->endElement( "xd:QualifyingProperties" );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment