summaryrefslogtreecommitdiff
path: root/xmlsecurity/inc
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2024-11-11 11:36:12 +0100
committerMiklos Vajna <vmiklos@collabora.com>2024-11-11 21:54:23 +0100
commit0de900cec7b04d75cf9ab0779d7a1ca3c730ae32 (patch)
treedfb38260cbe564c6a456b91f62673ebe61819990 /xmlsecurity/inc
parente02efcb136424958b18158f01d88d5f34966e523 (diff)
cool#9992 lok doc sign, hash extract: time for getCommandValues('Signature')
The final goal of this API is to give time & hash information about the PDF signature, so once a 3rd-party produces the PKCS#7 signature, that can be added to the document and the actual PDF sign can be re-run with the same parameters. This commit continues the replacement of XCertificate with svl::crypto::SigningContext up to the point that the timestamp used in svl/ can be exposed on the LOK API. This is done by updating DocumentSignatureManager::add(), PDFSignatureHelper::SetX509Certificate(), vcl::filter::PDFDocument::Sign() and finally the svl::crypto::Signing ctor to work with the signing context instead of an XCertificate directly. Time reporting works now, so add a test for that. The digest part still needs doing. Change-Id: I83f1274cd420b67194b7caf12b1027e623d4f7fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176404 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'xmlsecurity/inc')
-rw-r--r--xmlsecurity/inc/documentsignaturemanager.hxx6
-rw-r--r--xmlsecurity/inc/pdfsignaturehelper.hxx8
2 files changed, 11 insertions, 3 deletions
diff --git a/xmlsecurity/inc/documentsignaturemanager.hxx b/xmlsecurity/inc/documentsignaturemanager.hxx
index 56597106f9c1..3cf2151883d8 100644
--- a/xmlsecurity/inc/documentsignaturemanager.hxx
+++ b/xmlsecurity/inc/documentsignaturemanager.hxx
@@ -53,6 +53,10 @@ namespace uno
class XComponentContext;
}
}
+namespace svl::crypto
+{
+class SigningContext;
+}
class PDFSignatureHelper;
class Xmlsec;
@@ -93,7 +97,7 @@ public:
SignatureStreamHelper ImplOpenSignatureStream(sal_Int32 nStreamOpenMode, bool bTempStream);
/// Add a new signature, using xCert as a signing certificate, and rDescription as description.
- bool add(const css::uno::Reference<css::security::XCertificate>& xCert,
+ bool add(svl::crypto::SigningContext& rSigningContext,
const css::uno::Reference<css::xml::crypto::XXMLSecurityContext>& xSecurityContext,
const OUString& rDescription, sal_Int32& nSecurityId, bool bAdESCompliant,
const OUString& rSignatureLineId = OUString(),
diff --git a/xmlsecurity/inc/pdfsignaturehelper.hxx b/xmlsecurity/inc/pdfsignaturehelper.hxx
index ea24685d2ae4..a20598131db1 100644
--- a/xmlsecurity/inc/pdfsignaturehelper.hxx
+++ b/xmlsecurity/inc/pdfsignaturehelper.hxx
@@ -37,6 +37,10 @@ namespace xml::crypto
class XSecurityEnvironment;
}
}
+namespace svl::crypto
+{
+class SigningContext;
+}
class SvStream;
/// Handles signatures of a PDF file.
@@ -44,7 +48,7 @@ class XMLSECURITY_DLLPUBLIC PDFSignatureHelper
{
SignatureInformations m_aSignatureInfos;
- css::uno::Reference<css::security::XCertificate> m_xCertificate;
+ svl::crypto::SigningContext* m_pSigningContext = nullptr;
OUString m_aDescription;
public:
@@ -59,7 +63,7 @@ public:
/// Return the ID of the next created signature.
sal_Int32 GetNewSecurityId() const;
/// Certificate to be used next time signing is performed.
- void SetX509Certificate(const css::uno::Reference<css::security::XCertificate>& xCertificate);
+ void SetX509Certificate(svl::crypto::SigningContext& rSigningContext);
/// Comment / reason to be used next time signing is performed.
void SetDescription(const OUString& rDescription);
/// Append a new signature at the end of xInputStream.