diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2024-11-11 11:36:12 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2024-11-11 21:54:23 +0100 |
commit | 0de900cec7b04d75cf9ab0779d7a1ca3c730ae32 (patch) | |
tree | dfb38260cbe564c6a456b91f62673ebe61819990 /xmlsecurity/inc | |
parent | e02efcb136424958b18158f01d88d5f34966e523 (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.hxx | 6 | ||||
-rw-r--r-- | xmlsecurity/inc/pdfsignaturehelper.hxx | 8 |
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. |