13#include "PdfAnnotation.h"
17#include <podofo/auxiliary/InputDevice.h>
18#include <podofo/auxiliary/OutputDevice.h>
24enum class PdfCertPermission : uint8_t
31struct PdfSignatureBeacons final
33 PdfSignatureBeacons();
34 charbuff ContentsBeacon;
35 charbuff ByteRangeBeacon;
36 std::shared_ptr<size_t> ContentsOffset;
37 std::shared_ptr<size_t> ByteRangeOffset;
40class PODOFO_API PdfSignature final :
public PdfField
42 friend class PdfField;
43 friend class PdfSigningContext;
46 PdfSignature(PdfAcroForm& acroform, std::shared_ptr<PdfField>&& parent);
48 PdfSignature(PdfAnnotationWidget& widget, std::shared_ptr<PdfField>&& parent);
50 PdfSignature(PdfObject& obj, PdfAcroForm* acroform);
57 void SetSignerName(nullable<const PdfString&> text);
63 void SetSignatureReason(nullable<const PdfString&> text);
69 void SetSignatureLocation(nullable<const PdfString&> text);
71 [[deprecated(
"Use the SetCreatingApplication method instead")]]
72 void SetSignatureCreator(nullable<const PdfString&> creator);
78 void SetCreatingApplication(nullable<const PdfName&> application);
82 void SetSignatureDate(nullable<const PdfDate&> sigDate);
88 void AddCertificationReference(PdfCertPermission perm = PdfCertPermission::NoPerms);
94 nullable<const PdfString&> GetSignerName()
const;
100 nullable<const PdfString&> GetSignatureReason()
const;
106 nullable<const PdfString&> GetSignatureLocation()
const;
112 nullable<PdfDate> GetSignatureDate()
const;
119 void EnsureValueObject();
121 PdfSignature* GetParent();
122 const PdfSignature* GetParent()
const;
129 bool TryGetPreviousRevision(InputStreamDevice& input, OutputStreamDevice& output)
const;
132 PdfObject* getValueObject()
const override;
148 void PrepareForSigning(
const std::string_view& filter,
149 const std::string_view& subFilter,
150 const std::string_view& type,
151 const PdfSignatureBeacons& beacons);
154 void SetContentsByteRangeNoDirtySet(
const bufferview& contents, PdfArray&& byteRange);
156 void ensureValueObject();
158 void init(PdfAcroForm& acroForm);
161 PdfObject* m_ValueObj;
SPDX-FileCopyrightText: (C) 2005 Dominik Seichter domseichter@web.de SPDX-FileCopyrightText: (C) 2020...
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16