29#ifndef GPGFRONTEND_GPGGENKEYINFO_H
30#define GPGFRONTEND_GPGGENKEYINFO_H
32#include <boost/date_time.hpp>
33#include <boost/date_time/gregorian/greg_duration_types.hpp>
34#include <boost/format.hpp>
38#include "GpgFrontend.h"
43 bool standalone_ =
false;
51 boost::posix_time::ptime expired_ =
52 boost::posix_time::second_clock::local_time() +
53 boost::gregorian::years(2);
54 bool non_expired_ =
false;
56 bool no_passphrase_ =
false;
57 bool allow_no_pass_phrase_ =
true;
59 int suggest_max_key_size_ = 4096;
60 int suggest_size_addition_step_ = 1024;
61 int suggest_min_key_size_ = 1024;
63 std::string passphrase_;
71 static const std::vector<std::string> &GetSupportedKeyAlgo();
78 static const std::vector<std::string> &GetSupportedSubkeyAlgo();
85 static const std::vector<std::string> &GetSupportedKeyAlgoStandalone();
92 static const std::vector<std::string> &GetSupportedSubkeyAlgoStandalone();
100 [[nodiscard]]
bool IsSubKey()
const {
return subkey_; }
107 void SetIsSubKey(
bool m_sub_key) { GenKeyInfo::subkey_ = m_sub_key; }
115 auto uid_format = boost::format(
"%1%(%2%)<%3%>") % this->name_ %
116 this->comment_ % this->email_;
117 return uid_format.str();
125 void SetName(
const std::string &m_name) { this->name_ = m_name; }
132 void SetEmail(
const std::string &m_email) { this->email_ = m_email; }
139 void SetComment(
const std::string &m_comment) { this->comment_ = m_comment; }
146 [[nodiscard]] std::string
GetName()
const {
return name_; }
153 [[nodiscard]] std::string
GetEmail()
const {
return email_; }
160 [[nodiscard]] std::string
GetComment()
const {
return comment_; }
167 [[nodiscard]]
const std::string &
GetAlgo()
const {
return algo_; }
174 void SetAlgo(
const std::string &m_algo);
181 [[nodiscard]] std::string GetKeySizeStr()
const;
195 void SetKeyLength(
int m_key_size);
211 void SetExpireTime(
const boost::posix_time::ptime &m_expired);
226 void SetNonExpired(
bool m_non_expired);
242 GenKeyInfo::no_passphrase_ = m_non_pass_phrase;
260 return allow_no_pass_phrase_;
269 if (allow_change_signing_) GenKeyInfo::allow_signing_ = m_allow_signing;
285 void SetAllowEncryption(
bool m_allow_encryption);
294 return allow_certification_;
302 void SetAllowCertification(
bool m_allow_certification);
311 return allow_authentication_;
320 if (allow_change_authentication_)
321 GenKeyInfo::allow_authentication_ = m_allow_authentication;
329 [[nodiscard]]
const std::string &
GetPassPhrase()
const {
return passphrase_; }
337 GenKeyInfo::passphrase_ = m_pass_phrase;
347 return allow_change_signing_;
357 return allow_change_encryption_;
367 return allow_change_certification_;
377 return allow_change_authentication_;
386 return suggest_max_key_size_;
395 return suggest_min_key_size_;
404 return suggest_size_addition_step_;
408 bool allow_encryption_ =
true;
409 bool allow_change_encryption_ =
true;
410 bool allow_certification_ =
true;
411 bool allow_change_certification_ =
true;
412 bool allow_authentication_ =
true;
413 bool allow_change_authentication_ =
true;
414 bool allow_signing_ =
true;
415 bool allow_change_signing_ =
true;
421 void reset_options();
430 explicit GenKeyInfo(
bool m_is_sub_key =
false,
bool m_standalone =
false);
Definition: GpgGenKeyInfo.h:42
bool IsAllowChangeSigning() const
Definition: GpgGenKeyInfo.h:346
int GetSuggestMinKeySize() const
Get the Suggest Min Key Size object.
Definition: GpgGenKeyInfo.h:394
void SetAllowSigning(bool m_allow_signing)
Set the Allow Signing object.
Definition: GpgGenKeyInfo.h:268
bool IsAllowEncryption() const
Definition: GpgGenKeyInfo.h:278
bool IsSubKey() const
Definition: GpgGenKeyInfo.h:100
int GetKeyLength() const
Get the Key Size object.
Definition: GpgGenKeyInfo.h:188
std::string GetUserid() const
Get the Userid object.
Definition: GpgGenKeyInfo.h:114
const boost::posix_time::ptime & GetExpireTime() const
Get the Expired object.
Definition: GpgGenKeyInfo.h:202
void SetEmail(const std::string &m_email)
Set the Email object.
Definition: GpgGenKeyInfo.h:132
void SetName(const std::string &m_name)
Set the Name object.
Definition: GpgGenKeyInfo.h:125
std::string GetEmail() const
Get the Email object.
Definition: GpgGenKeyInfo.h:153
const std::string & GetPassPhrase() const
Get the Pass Phrase object.
Definition: GpgGenKeyInfo.h:329
bool IsNoPassPhrase() const
Definition: GpgGenKeyInfo.h:234
void SetNonPassPhrase(bool m_non_pass_phrase)
Set the Non Pass Phrase object.
Definition: GpgGenKeyInfo.h:241
const std::string & GetAlgo() const
Get the Algo object.
Definition: GpgGenKeyInfo.h:167
void SetComment(const std::string &m_comment)
Set the Comment object.
Definition: GpgGenKeyInfo.h:139
bool IsAllowAuthentication() const
Definition: GpgGenKeyInfo.h:310
void SetAllowAuthentication(bool m_allow_authentication)
Set the Allow Authentication object.
Definition: GpgGenKeyInfo.h:319
bool IsAllowChangeAuthentication() const
Definition: GpgGenKeyInfo.h:376
std::string GetComment() const
Get the Comment object.
Definition: GpgGenKeyInfo.h:160
std::string GetName() const
Get the Name object.
Definition: GpgGenKeyInfo.h:146
int GetSizeChangeStep() const
Get the Size Change Step object.
Definition: GpgGenKeyInfo.h:403
void SetIsSubKey(bool m_sub_key)
Set the Is Sub Key object.
Definition: GpgGenKeyInfo.h:107
bool IsAllowChangeEncryption() const
Definition: GpgGenKeyInfo.h:356
bool IsAllowCertification() const
Definition: GpgGenKeyInfo.h:293
bool IsAllowSigning() const
Definition: GpgGenKeyInfo.h:251
bool IsAllowChangeCertification() const
Definition: GpgGenKeyInfo.h:366
int GetSuggestMaxKeySize() const
Get the Suggest Max Key Size object.
Definition: GpgGenKeyInfo.h:385
bool IsNonExpired() const
Definition: GpgGenKeyInfo.h:219
bool IsAllowNoPassPhrase() const
Definition: GpgGenKeyInfo.h:259
void SetPassPhrase(const std::string &m_pass_phrase)
Set the Pass Phrase object.
Definition: GpgGenKeyInfo.h:336
Definition: CoreCommonUtil.cpp:29