summaryrefslogtreecommitdiffstats
path: root/xmlsecurity/source/helper/pdfsignaturehelper.cxx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-10-13 16:11:02 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-10-13 18:18:16 +0000
commit3b6f7f38100c9c9d799756ffddbf281bf49364f4 (patch)
tree8dc82c34d4a91363d58c1f67b69f44d067ecd8f0 /xmlsecurity/source/helper/pdfsignaturehelper.cxx
parenttdf#102328 Add constraint for argument X in Calc function GAMMA.DIST. (diff)
downloadcore-3b6f7f38100c9c9d799756ffddbf281bf49364f4.tar.gz
core-3b6f7f38100c9c9d799756ffddbf281bf49364f4.zip
xmlsecuity: show PDF signature in the doc signatures dialog
It doesn't actually show any details yet, but it shows a selectable empty line, to be filled in with details. Change-Id: Ib35f13e5c779fe1a28933c1a0761682e9f5de62d Reviewed-on: https://gerrit.libreoffice.org/29775 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'xmlsecurity/source/helper/pdfsignaturehelper.cxx')
-rw-r--r--xmlsecurity/source/helper/pdfsignaturehelper.cxx25
1 files changed, 21 insertions, 4 deletions
diff --git a/xmlsecurity/source/helper/pdfsignaturehelper.cxx b/xmlsecurity/source/helper/pdfsignaturehelper.cxx
index 9a5ec842f13d..2054f2b6f2d9 100644
--- a/xmlsecurity/source/helper/pdfsignaturehelper.cxx
+++ b/xmlsecurity/source/helper/pdfsignaturehelper.cxx
@@ -52,7 +52,7 @@ bool PDFSignatureHelper::ReadAndVerifySignature(const uno::Reference<io::XInputS
for (size_t i = 0; i < aSignatures.size(); ++i)
{
- security::DocumentSignatureInformation aInfo;
+ SignatureInformation aInfo(i);
bool bDigestMatch;
if (!xmlsecurity::pdfio::PDFDocument::ValidateSignature(*pStream, aSignatures[i], bDigestMatch))
@@ -61,16 +61,33 @@ bool PDFSignatureHelper::ReadAndVerifySignature(const uno::Reference<io::XInputS
continue;
}
- aInfo.SignatureIsValid = bDigestMatch;
+ if (bDigestMatch)
+ aInfo.nStatus = xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED;
+ else
+ aInfo.nStatus = xml::crypto::SecurityOperationStatus_UNKNOWN;
m_aSignatureInfos.push_back(aInfo);
}
return true;
}
-uno::Sequence<security::DocumentSignatureInformation> PDFSignatureHelper::GetDocumentSignatureInformations()
+SignatureInformations PDFSignatureHelper::GetSignatureInformations() const
{
- return comphelper::containerToSequence(m_aSignatureInfos);
+ return m_aSignatureInfos;
+}
+
+uno::Sequence<security::DocumentSignatureInformation> PDFSignatureHelper::GetDocumentSignatureInformations() const
+{
+ uno::Sequence<security::DocumentSignatureInformation> aRet(m_aSignatureInfos.size());
+
+ for (size_t i = 0; i < m_aSignatureInfos.size(); ++i)
+ {
+ const SignatureInformation& rInternal = m_aSignatureInfos[i];
+ security::DocumentSignatureInformation& rExternal = aRet[i];
+ rExternal.SignatureIsValid = rInternal.nStatus == xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED;
+ }
+
+ return aRet;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */