\hypertarget{classGpgFrontend_1_1GpgKeyOpera}{}\doxysection{Gpg\+Frontend\+::Gpg\+Key\+Opera Class Reference} \label{classGpgFrontend_1_1GpgKeyOpera}\index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} Inheritance diagram for Gpg\+Frontend\+::Gpg\+Key\+Opera\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[height=550pt]{classGpgFrontend_1_1GpgKeyOpera__inherit__graph} \end{center} \end{figure} Collaboration diagram for Gpg\+Frontend\+::Gpg\+Key\+Opera\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classGpgFrontend_1_1GpgKeyOpera__coll__graph} \end{center} \end{figure} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a01d6a920156a38a34c57d9c49c361079}{Gpg\+Key\+Opera}} (int channel=\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}{Singleton\+Function\+Object\+::\+Get\+Default\+Channel}}()) \begin{DoxyCompactList}\small\item\em Construct a new Gpg Key Opera object. \end{DoxyCompactList}\item void \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a8a06d0f7a600d4428359b653a68f717e}{Delete\+Keys}} (Key\+Id\+Args\+List\+Ptr key\+\_\+ids) \item void \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a151c47b997951e9162f8b036c3cb15e0}{Delete\+Key}} (const Key\+Id \&key\+\_\+id) \item Gpg\+Error \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a12e6b05b23781861065d7e3243c9349e}{Set\+Expire}} (const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&key, const Subkey\+Id \&subkey\+\_\+fpr, std\+::unique\+\_\+ptr$<$ boost\+::posix\+\_\+time\+::ptime $>$ \&expires) \begin{DoxyCompactList}\small\item\em Set the Expire object. \end{DoxyCompactList}\item Gpg\+Frontend\+::\+Gpg\+Error \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_ab7e16d1f4cba23ea5b5b9f6009ce5ee2}{Modify\+Password}} (const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&key) \item Gpg\+Frontend\+::\+Gpg\+Error \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a76a7f59701add8a59d8835919dad2000}{Modify\+T\+O\+F\+U\+Policy}} (const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&key, gpgme\+\_\+tofu\+\_\+policy\+\_\+t tofu\+\_\+policy) \item Gpg\+Frontend\+::\+Gpg\+Error \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a4cc3ac91613164d7dc61a016a2b4caea}{Generate\+Key}} (const std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo}{Gen\+Key\+Info}} $>$ \¶ms, Gpg\+Gen\+Key\+Result \&result) \item Gpg\+Frontend\+::\+Gpg\+Error \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a882d99e8407cc22fb8b6e61c531fbe85}{Generate\+Subkey}} (const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&key, const std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo}{Gen\+Key\+Info}} $>$ \¶ms) \end{DoxyCompactItemize} \doxysubsection*{Static Public Member Functions} \begin{DoxyCompactItemize} \item static void \mbox{\hyperlink{classGpgFrontend_1_1GpgKeyOpera_a91a9a9f24f6b620ea7b906c529e3d9a4}{Generate\+Revoke\+Cert}} (const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&key, const std\+::string \&output\+\_\+file\+\_\+name) \end{DoxyCompactItemize} \doxysubsection*{Private Attributes} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classGpgFrontend_1_1GpgContext}{Gpg\+Context}} \& {\bfseries ctx\+\_\+} \end{DoxyCompactItemize} \doxysubsection*{Additional Inherited Members} \doxysubsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a01d6a920156a38a34c57d9c49c361079}\label{classGpgFrontend_1_1GpgKeyOpera_a01d6a920156a38a34c57d9c49c361079}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!GpgKeyOpera@{GpgKeyOpera}} \index{GpgKeyOpera@{GpgKeyOpera}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{GpgKeyOpera()}{GpgKeyOpera()}} {\footnotesize\ttfamily Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Gpg\+Key\+Opera (\begin{DoxyParamCaption}\item[{int}]{channel = {\ttfamily \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}{Singleton\+Function\+Object\+::\+Get\+Default\+Channel}}()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}} Construct a new Gpg Key Opera object. \begin{DoxyParams}{Parameters} {\em channel} & Copyright (C) 2021 Saturneric\\ \hline \end{DoxyParams} This file is part of \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}}. \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}} is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}} is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU General Public License for more details. You should have received a copy of the G\+NU General Public License along with \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}}. If not, see \href{https://www.gnu.org/licenses/}{\texttt{ https\+://www.\+gnu.\+org/licenses/}}. The initial version of the source code is inherited from the gpg4usb project, which is under G\+P\+L-\/3.\+0-\/or-\/later. All the source code of \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}} was modified and released by Saturneric\href{mailto:eric@bktus.com}{\texttt{ eric@bktus.\+com}} starting on May 12, 2021. S\+P\+D\+X-\/\+License-\/\+Identifier\+: G\+P\+L-\/3.\+0-\/or-\/later \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a151c47b997951e9162f8b036c3cb15e0}\label{classGpgFrontend_1_1GpgKeyOpera_a151c47b997951e9162f8b036c3cb15e0}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!DeleteKey@{DeleteKey}} \index{DeleteKey@{DeleteKey}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{DeleteKey()}{DeleteKey()}} {\footnotesize\ttfamily void Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Delete\+Key (\begin{DoxyParamCaption}\item[{const Key\+Id \&}]{key\+\_\+id }\end{DoxyParamCaption})} \begin{DoxyParams}{Parameters} {\em key\+\_\+id} & \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a8a06d0f7a600d4428359b653a68f717e}\label{classGpgFrontend_1_1GpgKeyOpera_a8a06d0f7a600d4428359b653a68f717e}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!DeleteKeys@{DeleteKeys}} \index{DeleteKeys@{DeleteKeys}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{DeleteKeys()}{DeleteKeys()}} {\footnotesize\ttfamily void Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Delete\+Keys (\begin{DoxyParamCaption}\item[{Gpg\+Frontend\+::\+Key\+Id\+Args\+List\+Ptr}]{key\+\_\+ids }\end{DoxyParamCaption})} \begin{DoxyParams}{Parameters} {\em key\+\_\+ids} & Delete keys \\ \hline {\em uid\+List} & key ids \\ \hline \end{DoxyParams} References Gpg\+Frontend\+::check\+\_\+gpg\+\_\+error(), Gpg\+Frontend\+::\+Singleton\+Function\+Object$<$ Gpg\+Key\+Getter $>$\+::\+Get\+Instance(), and Gpg\+Frontend\+::\+Gpg\+Key\+Getter\+::\+Get\+Key(). Referenced by Gpg\+Frontend\+::\+U\+I\+::\+Key\+Mgmt\+::delete\+\_\+keys\+\_\+with\+\_\+warning(). \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a4cc3ac91613164d7dc61a016a2b4caea}\label{classGpgFrontend_1_1GpgKeyOpera_a4cc3ac91613164d7dc61a016a2b4caea}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!GenerateKey@{GenerateKey}} \index{GenerateKey@{GenerateKey}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{GenerateKey()}{GenerateKey()}} {\footnotesize\ttfamily Gpg\+Frontend\+::\+Gpg\+Error Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Generate\+Key (\begin{DoxyParamCaption}\item[{const std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo}{Gen\+Key\+Info}} $>$ \&}]{params, }\item[{Gpg\+Gen\+Key\+Result \&}]{result }\end{DoxyParamCaption})} \begin{DoxyParams}{Parameters} {\em params} & \\ \hline {\em result} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Gpg\+Frontend\+::\+Gpg\+Error \end{DoxyReturn} Generate a new key pair \begin{DoxyParams}{Parameters} {\em params} & key generation args \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} error information \end{DoxyReturn} References Gpg\+Frontend\+::\+\_\+new\+\_\+result(), Gpg\+Frontend\+::check\+\_\+gpg\+\_\+error(), Gpg\+Frontend\+::check\+\_\+gpg\+\_\+error\+\_\+2\+\_\+err\+\_\+code(), Gpg\+Frontend\+::\+Gen\+Key\+Info\+::\+Get\+Algo(), Gpg\+Frontend\+::\+Gen\+Key\+Info\+::\+Get\+Key\+Size\+Str(), and Gpg\+Frontend\+::\+Gen\+Key\+Info\+::\+Get\+Userid(). Referenced by Gpg\+Frontend\+::\+U\+I\+::\+Key\+Gen\+Dialog\+::slot\+\_\+key\+\_\+gen\+\_\+accept(). \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a91a9a9f24f6b620ea7b906c529e3d9a4}\label{classGpgFrontend_1_1GpgKeyOpera_a91a9a9f24f6b620ea7b906c529e3d9a4}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!GenerateRevokeCert@{GenerateRevokeCert}} \index{GenerateRevokeCert@{GenerateRevokeCert}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{GenerateRevokeCert()}{GenerateRevokeCert()}} {\footnotesize\ttfamily void Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Generate\+Revoke\+Cert (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&}]{key, }\item[{const std\+::string \&}]{output\+\_\+file\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} \begin{DoxyParams}{Parameters} {\em key} & \\ \hline {\em output\+\_\+file\+\_\+name} & Generate revoke cert of a key pair \\ \hline {\em key} & target key pair \\ \hline {\em output\+File\+Name} & out file name(path) \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} the process doing this job \end{DoxyReturn} References Gpg\+Frontend\+::\+Gpg\+Command\+Executor\+::\+Execute(), Gpg\+Frontend\+::\+Gpg\+Key\+::\+Get\+Fingerprint(), and Gpg\+Frontend\+::\+Singleton\+Function\+Object$<$ Gpg\+Command\+Executor $>$\+::\+Get\+Instance(). \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a882d99e8407cc22fb8b6e61c531fbe85}\label{classGpgFrontend_1_1GpgKeyOpera_a882d99e8407cc22fb8b6e61c531fbe85}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!GenerateSubkey@{GenerateSubkey}} \index{GenerateSubkey@{GenerateSubkey}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{GenerateSubkey()}{GenerateSubkey()}} {\footnotesize\ttfamily Gpg\+Frontend\+::\+Gpg\+Error Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Generate\+Subkey (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&}]{key, }\item[{const std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classGpgFrontend_1_1GenKeyInfo}{Gen\+Key\+Info}} $>$ \&}]{params }\end{DoxyParamCaption})} \begin{DoxyParams}{Parameters} {\em key} & \\ \hline {\em params} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Gpg\+Frontend\+::\+Gpg\+Error \end{DoxyReturn} Generate a new subkey of a certain key pair \begin{DoxyParams}{Parameters} {\em key} & target key pair \\ \hline {\em params} & opera args \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} error info \end{DoxyReturn} References Gpg\+Frontend\+::check\+\_\+gpg\+\_\+error(), Gpg\+Frontend\+::\+Gen\+Key\+Info\+::\+Get\+Algo(), Gpg\+Frontend\+::\+Gpg\+Key\+::\+Get\+Id(), Gpg\+Frontend\+::\+Gen\+Key\+Info\+::\+Get\+Key\+Size\+Str(), and Gpg\+Frontend\+::\+Gen\+Key\+Info\+::\+Is\+Sub\+Key(). Referenced by Gpg\+Frontend\+::\+U\+I\+::\+Subkey\+Generate\+Dialog\+::slot\+\_\+key\+\_\+gen\+\_\+accept(). \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_ab7e16d1f4cba23ea5b5b9f6009ce5ee2}\label{classGpgFrontend_1_1GpgKeyOpera_ab7e16d1f4cba23ea5b5b9f6009ce5ee2}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!ModifyPassword@{ModifyPassword}} \index{ModifyPassword@{ModifyPassword}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{ModifyPassword()}{ModifyPassword()}} {\footnotesize\ttfamily Gpg\+Frontend\+::\+Gpg\+Error Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Modify\+Password (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&}]{key }\end{DoxyParamCaption})} \begin{DoxyParams}{Parameters} {\em key} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Gpg\+Frontend\+::\+Gpg\+Error \end{DoxyReturn} References Gpg\+Frontend\+::check\+\_\+gpg\+\_\+error(). \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a76a7f59701add8a59d8835919dad2000}\label{classGpgFrontend_1_1GpgKeyOpera_a76a7f59701add8a59d8835919dad2000}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!ModifyTOFUPolicy@{ModifyTOFUPolicy}} \index{ModifyTOFUPolicy@{ModifyTOFUPolicy}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{ModifyTOFUPolicy()}{ModifyTOFUPolicy()}} {\footnotesize\ttfamily Gpg\+Frontend\+::\+Gpg\+Error Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Modify\+T\+O\+F\+U\+Policy (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&}]{key, }\item[{gpgme\+\_\+tofu\+\_\+policy\+\_\+t}]{tofu\+\_\+policy }\end{DoxyParamCaption})} \begin{DoxyParams}{Parameters} {\em key} & \\ \hline {\em tofu\+\_\+policy} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Gpg\+Frontend\+::\+Gpg\+Error \end{DoxyReturn} References Gpg\+Frontend\+::check\+\_\+gpg\+\_\+error(). \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_a12e6b05b23781861065d7e3243c9349e}\label{classGpgFrontend_1_1GpgKeyOpera_a12e6b05b23781861065d7e3243c9349e}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!SetExpire@{SetExpire}} \index{SetExpire@{SetExpire}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{SetExpire()}{SetExpire()}} {\footnotesize\ttfamily Gpg\+Frontend\+::\+Gpg\+Error Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::\+Set\+Expire (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classGpgFrontend_1_1GpgKey}{Gpg\+Key}} \&}]{key, }\item[{const Subkey\+Id \&}]{subkey\+\_\+fpr, }\item[{std\+::unique\+\_\+ptr$<$ boost\+::posix\+\_\+time\+::ptime $>$ \&}]{expires }\end{DoxyParamCaption})} Set the Expire object. \begin{DoxyParams}{Parameters} {\em key} & \\ \hline {\em subkey\+\_\+fpr} & \\ \hline {\em expires} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Gpg\+Error \end{DoxyReturn} Set the expire date and time of a key pair(actually the primary key) or subkey \begin{DoxyParams}{Parameters} {\em key} & target key pair \\ \hline {\em subkey} & null if primary key \\ \hline {\em expires} & date and time \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} if successful \end{DoxyReturn} References Gpg\+Frontend\+::\+Gpg\+Key\+::\+Get\+Fingerprint(), and Gpg\+Frontend\+::\+Gpg\+Key\+::\+Get\+Id(). \doxysubsection{Member Data Documentation} \mbox{\Hypertarget{classGpgFrontend_1_1GpgKeyOpera_ab4086c8ccd6f1f926993e96b687dea69}\label{classGpgFrontend_1_1GpgKeyOpera_ab4086c8ccd6f1f926993e96b687dea69}} \index{GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}!ctx\_@{ctx\_}} \index{ctx\_@{ctx\_}!GpgFrontend::GpgKeyOpera@{GpgFrontend::GpgKeyOpera}} \doxysubsubsection{\texorpdfstring{ctx\_}{ctx\_}} {\footnotesize\ttfamily \mbox{\hyperlink{classGpgFrontend_1_1GpgContext}{Gpg\+Context}}\& Gpg\+Frontend\+::\+Gpg\+Key\+Opera\+::ctx\+\_\+\hspace{0.3cm}{\ttfamily [private]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{=} \DoxyCodeLine{ \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a70484d7cfe9f9dcbcd5f8bb749250f36}{GpgContext::GetInstance}}(\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_aa99440b9177f5d0c18840f08a40d64b7}{SingletonFunctionObject::GetChannel}}())} \end{DoxyCode} The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} \item src/core/function/gpg/Gpg\+Key\+Opera.\+h\item src/core/function/gpg/Gpg\+Key\+Opera.\+cpp\end{DoxyCompactItemize}