/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * */ #pragma once #include "xmlsecuritydllapi.h" #include namespace com::sun::star { namespace frame { class XModel; } namespace io { class XInputStream; } namespace security { class XCertificate; } namespace security { struct DocumentSignatureInformation; } namespace xml::crypto { class XSecurityEnvironment; } } class SvStream; /// Handles signatures of a PDF file. class XMLSECURITY_DLLPUBLIC PDFSignatureHelper { SignatureInformations m_aSignatureInfos; css::uno::Reference m_xCertificate; OUString m_aDescription; public: PDFSignatureHelper(); bool ReadAndVerifySignature(const css::uno::Reference& xInputStream); bool ReadAndVerifySignatureSvStream(SvStream& rStream); css::uno::Sequence GetDocumentSignatureInformations( const css::uno::Reference& xSecEnv) const; SignatureInformations const& GetSignatureInformations() const; /// 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& xCertificate); /// Comment / reason to be used next time signing is performed. void SetDescription(const OUString& rDescription); /// Append a new signature at the end of xInputStream. bool Sign(const css::uno::Reference& xModel, const css::uno::Reference& xInputStream, bool bAdES); /// Remove the signature at nPosition (and all dependent signatures) from xInputStream. static bool RemoveSignature(const css::uno::Reference& xInputStream, sal_uInt16 nPosition); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ o/collabora/co-2021'>distro/collabora/co-2021 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author