summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-03-03 15:32:48 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-03-03 17:11:07 +0100
commit963264a417ce807201f0021fc6000ce7d6cf0245 (patch)
tree3bc150efa9e0ef8ab4a8fdbdb9a151c3022a0672
parent122c01989d4843db52725d375af22f866345d80a (diff)
xmlsecurity OOXML export: don't loose old signatures when adding a new one
With this, at least we don't completely throw away existing signatures. The roundtrip of them isn't perfect yet, though. Change-Id: Ibc3408364403a057169e384902afe13b1e397480
-rw-r--r--xmlsecurity/source/helper/documentsignaturemanager.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/xmlsecurity/source/helper/documentsignaturemanager.cxx b/xmlsecurity/source/helper/documentsignaturemanager.cxx
index 7f0fc66e7cd3..b5bc008b1ddf 100644
--- a/xmlsecurity/source/helper/documentsignaturemanager.cxx
+++ b/xmlsecurity/source/helper/documentsignaturemanager.cxx
@@ -269,6 +269,10 @@ bool DocumentSignatureManager::add(const uno::Reference<security::XCertificate>&
int nSignatureCount = maCurrentSignatureInformations.size() + 1;
maSignatureHelper.ExportSignatureRelations(aStreamHelper.xSignatureStorage, nSignatureCount);
+ // Export old signatures.
+ for (size_t i = 0; i < maCurrentSignatureInformations.size(); ++i)
+ maSignatureHelper.ExportOOXMLSignature(mxStore, aStreamHelper.xSignatureStorage, maCurrentSignatureInformations[i], i + 1);
+
// Create a new signature.
maSignatureHelper.CreateAndWriteOOXMLSignature(mxStore, aStreamHelper.xSignatureStorage, nSignatureCount);