GpgFrontend Project
A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.
GpgTOFUInfo.h
1 
29 #pragma once
30 
31 #include <gpgme.h>
32 
33 #include "core/GpgFrontendCoreExport.h"
34 
35 namespace GpgFrontend {
40 class GPGFRONTEND_CORE_EXPORT GpgTOFUInfo {
41  public:
47  [[nodiscard]] auto GetValidity() const -> unsigned;
53  [[nodiscard]] auto GetPolicy() const -> unsigned;
54 
60  [[nodiscard]] auto GetSignCount() const -> unsigned long;
61 
67  [[nodiscard]] auto GetEncrCount() const -> unsigned long;
68 
74  [[nodiscard]] auto GetSignFirst() const -> unsigned long;
75 
81  [[nodiscard]] auto GetSignLast() const -> unsigned long;
82 
88  [[nodiscard]] auto GetEncrLast() const -> unsigned long;
89 
95  [[nodiscard]] auto GetDescription() const -> QString;
96 
102 
108  explicit GpgTOFUInfo(gpgme_tofu_info_t tofu_info);
109 
115  GpgTOFUInfo(GpgTOFUInfo&& o) noexcept;
116 
121  GpgTOFUInfo(const GpgTOFUInfo&) = delete;
122 
129  auto operator=(GpgTOFUInfo&& o) noexcept -> GpgTOFUInfo&;
130 
136  auto operator=(const GpgTOFUInfo&) -> GpgTOFUInfo& = delete;
137 
138  private:
139  using SubkeyRefHandler =
140  std::unique_ptr<struct _gpgme_tofu_info,
141  std::function<void(gpgme_tofu_info_t)>>;
142 
143  SubkeyRefHandler tofu_info_ref_ = nullptr;
144 };
145 
146 } // namespace GpgFrontend
Definition: GpgTOFUInfo.h:40
GpgTOFUInfo(const GpgTOFUInfo &)=delete
Construct a new Gpg T O F U Info object.
GpgTOFUInfo()
Construct a new Gpg T O F U Info object.
auto operator=(const GpgTOFUInfo &) -> GpgTOFUInfo &=delete
Definition: app.cpp:39