GpgFrontend-Doxygen/docs/latex/GpgGenKeyInfo_8h_source.tex
2022-05-09 03:59:26 +08:00

183 lines
15 KiB
TeX

\hypertarget{GpgGenKeyInfo_8h_source}{}\doxysection{Gpg\+Gen\+Key\+Info.\+h}
\label{GpgGenKeyInfo_8h_source}\index{src/core/GpgGenKeyInfo.h@{src/core/GpgGenKeyInfo.h}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\DoxyCodeLine{29 \textcolor{preprocessor}{\#ifndef GPGFRONTEND\_GPGGENKEYINFO\_H}}
\DoxyCodeLine{30 \textcolor{preprocessor}{\#define GPGFRONTEND\_GPGGENKEYINFO\_H}}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{preprocessor}{\#include <boost/date\_time.hpp>}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#include <boost/date\_time/gregorian/greg\_duration\_types.hpp>}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#include <boost/format.hpp>}}
\DoxyCodeLine{35 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{36 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{37 }
\DoxyCodeLine{38 \textcolor{preprocessor}{\#include "{}GpgFrontend.h"{}}}
\DoxyCodeLine{39 }
\DoxyCodeLine{40 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespaceGpgFrontend}{GpgFrontend}} \{}
\DoxyCodeLine{41 }
\DoxyCodeLine{42 \textcolor{keyword}{class }GPGFRONTEND\_CORE\_EXPORT \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo}{GenKeyInfo}} \{}
\DoxyCodeLine{43 \textcolor{keywordtype}{bool} standalone\_ = \textcolor{keyword}{false}; }
\DoxyCodeLine{44 \textcolor{keywordtype}{bool} subkey\_ = \textcolor{keyword}{false}; }
\DoxyCodeLine{45 std::string name\_; }
\DoxyCodeLine{46 std::string email\_; }
\DoxyCodeLine{47 std::string comment\_; }
\DoxyCodeLine{48 }
\DoxyCodeLine{49 std::string algo\_; }
\DoxyCodeLine{50 \textcolor{keywordtype}{int} key\_size\_ = 2048;}
\DoxyCodeLine{51 boost::posix\_time::ptime expired\_ =}
\DoxyCodeLine{52 boost::posix\_time::second\_clock::local\_time() +}
\DoxyCodeLine{53 boost::gregorian::years(2); }
\DoxyCodeLine{54 \textcolor{keywordtype}{bool} non\_expired\_ = \textcolor{keyword}{false}; }
\DoxyCodeLine{55 }
\DoxyCodeLine{56 \textcolor{keywordtype}{bool} no\_passphrase\_ = \textcolor{keyword}{false}; }
\DoxyCodeLine{57 \textcolor{keywordtype}{bool} allow\_no\_pass\_phrase\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{58 }
\DoxyCodeLine{59 \textcolor{keywordtype}{int} suggest\_max\_key\_size\_ = 4096; }
\DoxyCodeLine{60 \textcolor{keywordtype}{int} suggest\_size\_addition\_step\_ = 1024; }
\DoxyCodeLine{61 \textcolor{keywordtype}{int} suggest\_min\_key\_size\_ = 1024; }
\DoxyCodeLine{62 }
\DoxyCodeLine{63 std::string passphrase\_; }
\DoxyCodeLine{64 }
\DoxyCodeLine{65 \textcolor{keyword}{public}:}
\DoxyCodeLine{71 \textcolor{keyword}{static} \textcolor{keyword}{const} std::vector<std::string> \&GetSupportedKeyAlgo();}
\DoxyCodeLine{72 }
\DoxyCodeLine{78 \textcolor{keyword}{static} \textcolor{keyword}{const} std::vector<std::string> \&GetSupportedSubkeyAlgo();}
\DoxyCodeLine{79 }
\DoxyCodeLine{85 \textcolor{keyword}{static} \textcolor{keyword}{const} std::vector<std::string> \&GetSupportedKeyAlgoStandalone();}
\DoxyCodeLine{86 }
\DoxyCodeLine{92 \textcolor{keyword}{static} \textcolor{keyword}{const} std::vector<std::string> \&GetSupportedSubkeyAlgoStandalone();}
\DoxyCodeLine{93 }
\DoxyCodeLine{100 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a40a42ad975499566de124296c19e6c55}{IsSubKey}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} subkey\_; \}}
\DoxyCodeLine{101 }
\DoxyCodeLine{107 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_acd9f7742b739e1db60bd50489690dec1}{SetIsSubKey}}(\textcolor{keywordtype}{bool} m\_sub\_key) \{ GenKeyInfo::subkey\_ = m\_sub\_key; \}}
\DoxyCodeLine{108 }
\DoxyCodeLine{114 [[nodiscard]] std::string \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a4ee4a0659e76376d9bfc527c334392e1}{GetUserid}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{115 \textcolor{keyword}{auto} uid\_format = boost::format(\textcolor{stringliteral}{"{}\%1\%(\%2\%)<\%3\%>"{}}) \% this-\/>name\_ \%}
\DoxyCodeLine{116 this-\/>comment\_ \% this-\/>email\_;}
\DoxyCodeLine{117 \textcolor{keywordflow}{return} uid\_format.str();}
\DoxyCodeLine{118 \}}
\DoxyCodeLine{119 }
\DoxyCodeLine{125 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a65ebc487e0e64c325f65474c812615f7}{SetName}}(\textcolor{keyword}{const} std::string \&m\_name) \{ this-\/>name\_ = m\_name; \}}
\DoxyCodeLine{126 }
\DoxyCodeLine{132 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a656c81d56f77350184f9a94db1a3ce05}{SetEmail}}(\textcolor{keyword}{const} std::string \&m\_email) \{ this-\/>email\_ = m\_email; \}}
\DoxyCodeLine{133 }
\DoxyCodeLine{139 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a947886456f5699241b1c1b9332e4b29e}{SetComment}}(\textcolor{keyword}{const} std::string \&m\_comment) \{ this-\/>comment\_ = m\_comment; \}}
\DoxyCodeLine{140 }
\DoxyCodeLine{146 [[nodiscard]] std::string \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_abb3e1366dca0288bdc42123e55d77335}{GetName}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} name\_; \}}
\DoxyCodeLine{147 }
\DoxyCodeLine{153 [[nodiscard]] std::string \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a76721be08c18907762ba6f6ccc4afc8a}{GetEmail}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} email\_; \}}
\DoxyCodeLine{154 }
\DoxyCodeLine{160 [[nodiscard]] std::string \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_ab9f9775fd6363fba372bd0bcc2532892}{GetComment}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} comment\_; \}}
\DoxyCodeLine{161 }
\DoxyCodeLine{167 [[nodiscard]] \textcolor{keyword}{const} std::string \&\mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a93bad2a1ef8269f46f044bf3405c7838}{GetAlgo}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} algo\_; \}}
\DoxyCodeLine{168 }
\DoxyCodeLine{174 \textcolor{keywordtype}{void} SetAlgo(\textcolor{keyword}{const} std::string \&m\_algo);}
\DoxyCodeLine{175 }
\DoxyCodeLine{181 [[nodiscard]] std::string GetKeySizeStr() \textcolor{keyword}{const};}
\DoxyCodeLine{182 }
\DoxyCodeLine{188 [[nodiscard]] \textcolor{keywordtype}{int} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a4927a9091fa2b2f68f6b60ce78ab2fe9}{GetKeyLength}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} key\_size\_; \}}
\DoxyCodeLine{189 }
\DoxyCodeLine{195 \textcolor{keywordtype}{void} SetKeyLength(\textcolor{keywordtype}{int} m\_key\_size);}
\DoxyCodeLine{196 }
\DoxyCodeLine{202 [[nodiscard]] \textcolor{keyword}{const} boost::posix\_time::ptime \&\mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a5ef495960bc09d1ab2a983f322a3d636}{GetExpireTime}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{203 \textcolor{keywordflow}{return} expired\_;}
\DoxyCodeLine{204 \}}
\DoxyCodeLine{205 }
\DoxyCodeLine{211 \textcolor{keywordtype}{void} SetExpireTime(\textcolor{keyword}{const} boost::posix\_time::ptime \&m\_expired);}
\DoxyCodeLine{212 }
\DoxyCodeLine{219 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_aeef7697c91b5b5998088979e09332380}{IsNonExpired}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} non\_expired\_; \}}
\DoxyCodeLine{220 }
\DoxyCodeLine{226 \textcolor{keywordtype}{void} SetNonExpired(\textcolor{keywordtype}{bool} m\_non\_expired);}
\DoxyCodeLine{227 }
\DoxyCodeLine{234 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a848181796a99bec8d32dc5eac240ee01}{IsNoPassPhrase}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} this-\/>no\_passphrase\_; \}}
\DoxyCodeLine{235 }
\DoxyCodeLine{241 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a864407216cbdbef9e7b35e6be694d3ef}{SetNonPassPhrase}}(\textcolor{keywordtype}{bool} m\_non\_pass\_phrase) \{}
\DoxyCodeLine{242 GenKeyInfo::no\_passphrase\_ = m\_non\_pass\_phrase;}
\DoxyCodeLine{243 \}}
\DoxyCodeLine{244 }
\DoxyCodeLine{251 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_ad972292c408cb83c08e739327795a5f0}{IsAllowSigning}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} allow\_signing\_; \}}
\DoxyCodeLine{252 }
\DoxyCodeLine{259 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_af6a79124a4571ff7f37c1c5e6c1a9415}{IsAllowNoPassPhrase}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{260 \textcolor{keywordflow}{return} allow\_no\_pass\_phrase\_;}
\DoxyCodeLine{261 \}}
\DoxyCodeLine{262 }
\DoxyCodeLine{268 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a1a01518b24d40d95e187ef73f4dcd52a}{SetAllowSigning}}(\textcolor{keywordtype}{bool} m\_allow\_signing) \{}
\DoxyCodeLine{269 \textcolor{keywordflow}{if} (allow\_change\_signing\_) GenKeyInfo::allow\_signing\_ = m\_allow\_signing;}
\DoxyCodeLine{270 \}}
\DoxyCodeLine{271 }
\DoxyCodeLine{278 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a28ed8a65243e5bc69403305752c2cdc9}{IsAllowEncryption}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} allow\_encryption\_; \}}
\DoxyCodeLine{279 }
\DoxyCodeLine{285 \textcolor{keywordtype}{void} SetAllowEncryption(\textcolor{keywordtype}{bool} m\_allow\_encryption);}
\DoxyCodeLine{286 }
\DoxyCodeLine{293 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_ad47ceeb1ccfa8862843034e51b4d8be7}{IsAllowCertification}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{294 \textcolor{keywordflow}{return} allow\_certification\_;}
\DoxyCodeLine{295 \}}
\DoxyCodeLine{296 }
\DoxyCodeLine{302 \textcolor{keywordtype}{void} SetAllowCertification(\textcolor{keywordtype}{bool} m\_allow\_certification);}
\DoxyCodeLine{303 }
\DoxyCodeLine{310 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_aabdf981c65a0efde1e8905441b9b9c87}{IsAllowAuthentication}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{311 \textcolor{keywordflow}{return} allow\_authentication\_;}
\DoxyCodeLine{312 \}}
\DoxyCodeLine{313 }
\DoxyCodeLine{319 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_aac51d251682ed1bc1090416ebfeba4de}{SetAllowAuthentication}}(\textcolor{keywordtype}{bool} m\_allow\_authentication) \{}
\DoxyCodeLine{320 \textcolor{keywordflow}{if} (allow\_change\_authentication\_)}
\DoxyCodeLine{321 GenKeyInfo::allow\_authentication\_ = m\_allow\_authentication;}
\DoxyCodeLine{322 \}}
\DoxyCodeLine{323 }
\DoxyCodeLine{329 [[nodiscard]] \textcolor{keyword}{const} std::string \&\mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a82dcaf06e99d877e7b934108293e2f8a}{GetPassPhrase}}()\textcolor{keyword}{ const }\{ \textcolor{keywordflow}{return} passphrase\_; \}}
\DoxyCodeLine{330 }
\DoxyCodeLine{336 \textcolor{keywordtype}{void} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_afe1760d4ead397f6096925290a38e1a4}{SetPassPhrase}}(\textcolor{keyword}{const} std::string \&m\_pass\_phrase) \{}
\DoxyCodeLine{337 GenKeyInfo::passphrase\_ = m\_pass\_phrase;}
\DoxyCodeLine{338 \}}
\DoxyCodeLine{339 }
\DoxyCodeLine{346 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a06f95a8d26da79bcbe7d51e266879a94}{IsAllowChangeSigning}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{347 \textcolor{keywordflow}{return} allow\_change\_signing\_;}
\DoxyCodeLine{348 \}}
\DoxyCodeLine{349 }
\DoxyCodeLine{356 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_ad04a906300bea028c6fb6b1b2da1d149}{IsAllowChangeEncryption}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{357 \textcolor{keywordflow}{return} allow\_change\_encryption\_;}
\DoxyCodeLine{358 \}}
\DoxyCodeLine{359 }
\DoxyCodeLine{366 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_adbcddd0fa0a273f9b77fe1297633dabc}{IsAllowChangeCertification}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{367 \textcolor{keywordflow}{return} allow\_change\_certification\_;}
\DoxyCodeLine{368 \}}
\DoxyCodeLine{369 }
\DoxyCodeLine{376 [[nodiscard]] \textcolor{keywordtype}{bool} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_aaf8ab7c6564a2836837a537111d6f5b4}{IsAllowChangeAuthentication}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{377 \textcolor{keywordflow}{return} allow\_change\_authentication\_;}
\DoxyCodeLine{378 \}}
\DoxyCodeLine{379 }
\DoxyCodeLine{385 [[nodiscard]] \textcolor{keywordtype}{int} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_ae461a553176ad1ab0c1121ea6de6c8c2}{GetSuggestMaxKeySize}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{386 \textcolor{keywordflow}{return} suggest\_max\_key\_size\_;}
\DoxyCodeLine{387 \}}
\DoxyCodeLine{388 }
\DoxyCodeLine{394 [[nodiscard]] \textcolor{keywordtype}{int} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_a0b1612421148b86919b7130ed148ca51}{GetSuggestMinKeySize}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{395 \textcolor{keywordflow}{return} suggest\_min\_key\_size\_;}
\DoxyCodeLine{396 \}}
\DoxyCodeLine{397 }
\DoxyCodeLine{403 [[nodiscard]] \textcolor{keywordtype}{int} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo_ac211a7a615805ae97ff284b46abfeab7}{GetSizeChangeStep}}()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{404 \textcolor{keywordflow}{return} suggest\_size\_addition\_step\_;}
\DoxyCodeLine{405 \}}
\DoxyCodeLine{406 }
\DoxyCodeLine{407 \textcolor{keyword}{private}:}
\DoxyCodeLine{408 \textcolor{keywordtype}{bool} allow\_encryption\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{409 \textcolor{keywordtype}{bool} allow\_change\_encryption\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{410 \textcolor{keywordtype}{bool} allow\_certification\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{411 \textcolor{keywordtype}{bool} allow\_change\_certification\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{412 \textcolor{keywordtype}{bool} allow\_authentication\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{413 \textcolor{keywordtype}{bool} allow\_change\_authentication\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{414 \textcolor{keywordtype}{bool} allow\_signing\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{415 \textcolor{keywordtype}{bool} allow\_change\_signing\_ = \textcolor{keyword}{true}; }
\DoxyCodeLine{416 }
\DoxyCodeLine{421 \textcolor{keywordtype}{void} reset\_options();}
\DoxyCodeLine{422 }
\DoxyCodeLine{423 \textcolor{keyword}{public}:}
\DoxyCodeLine{430 \textcolor{keyword}{explicit} \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo}{GenKeyInfo}}(\textcolor{keywordtype}{bool} m\_is\_sub\_key = \textcolor{keyword}{false}, \textcolor{keywordtype}{bool} m\_standalone = \textcolor{keyword}{false});}
\DoxyCodeLine{431 \};}
\DoxyCodeLine{432 }
\DoxyCodeLine{433 \} \textcolor{comment}{// namespace GpgFrontend}}
\DoxyCodeLine{434 }
\DoxyCodeLine{435 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// GPGFRONTEND\_GPGGENKEYINFO\_H}}
\end{DoxyCode}