aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpg/function/GpgKeyOpera.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-11-28 07:29:39 +0000
committerSaturneric <[email protected]>2021-11-28 07:29:39 +0000
commitc5918a7245b6124916799c0345026ef3ec02265e (patch)
treefa4ba76fc21570f88cd7c94f28f4a0d54e7051ca /src/gpg/function/GpgKeyOpera.cpp
parentCan be compiled with minimal UI support. (diff)
downloadGpgFrontend-c5918a7245b6124916799c0345026ef3ec02265e.tar.gz
GpgFrontend-c5918a7245b6124916799c0345026ef3ec02265e.zip
Solve key generation and related update issues.
Diffstat (limited to '')
-rw-r--r--src/gpg/function/GpgKeyOpera.cpp67
1 files changed, 31 insertions, 36 deletions
diff --git a/src/gpg/function/GpgKeyOpera.cpp b/src/gpg/function/GpgKeyOpera.cpp
index f61534c5..0a222c3f 100644
--- a/src/gpg/function/GpgKeyOpera.cpp
+++ b/src/gpg/function/GpgKeyOpera.cpp
@@ -23,19 +23,19 @@
*/
#include "gpg/function/GpgKeyOpera.h"
-#include "gpg/GpgConstants.h"
-#include "gpg/GpgGenKeyInfo.h"
-#include "gpg/function/GpgCommandExecutor.h"
-#include "gpg/function/GpgKeyGetter.h"
#include <boost/asio/read_until.hpp>
#include <boost/date_time/posix_time/conversion.hpp>
-
#include <boost/process/async_pipe.hpp>
#include <memory>
#include <string>
#include <vector>
+#include "gpg/GpgConstants.h"
+#include "gpg/GpgGenKeyInfo.h"
+#include "gpg/function/GpgCommandExecutor.h"
+#include "gpg/function/GpgKeyGetter.h"
+
/**
* Delete keys
* @param uidList key ids
@@ -62,8 +62,7 @@ void GpgFrontend::GpgKeyOpera::DeleteKeys(
* @return if successful
*/
void GpgFrontend::GpgKeyOpera::SetExpire(
- const GpgKey& key,
- const SubkeyId& subkey_id,
+ const GpgKey& key, const SubkeyId& subkey_id,
std::unique_ptr<boost::gregorian::date>& expires) {
unsigned long expires_time = 0;
if (expires != nullptr) {
@@ -88,8 +87,7 @@ void GpgFrontend::GpgKeyOpera::SetExpire(
* @return the process doing this job
*/
void GpgFrontend::GpgKeyOpera::GenerateRevokeCert(
- const GpgKey& key,
- const std::string& output_file_name) {
+ const GpgKey& key, const std::string& output_file_name) {
auto args = std::vector<std::string>{"--command-fd", "0",
"--status-fd", "1",
"-o", output_file_name.c_str(),
@@ -117,7 +115,11 @@ GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::GenerateKey(
const std::unique_ptr<GenKeyInfo>& params) {
auto userid_utf8 = params->getUserid();
const char* userid = userid_utf8.c_str();
- auto algo_utf8 = (params->getAlgo() + params->getKeySizeStr());
+ auto algo_utf8 = params->getAlgo() + params->getKeySizeStr();
+
+ LOG(INFO) << "GpgFrontend::GpgKeyOpera::GenerateKey Params"
+ << params->getAlgo() << params->getKeySizeStr();
+
const char* algo = algo_utf8.c_str();
unsigned long expires = 0;
{
@@ -127,18 +129,15 @@ GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::GenerateKey(
unsigned int flags = 0;
- if (!params->isSubKey())
- flags |= GPGME_CREATE_CERT;
- if (params->isAllowEncryption())
- flags |= GPGME_CREATE_ENCR;
- if (params->isAllowSigning())
- flags |= GPGME_CREATE_SIGN;
- if (params->isAllowAuthentication())
- flags |= GPGME_CREATE_AUTH;
- if (params->isNonExpired())
- flags |= GPGME_CREATE_NOEXPIRE;
- if (params->isNoPassPhrase())
- flags |= GPGME_CREATE_NOPASSWD;
+ if (!params->isSubKey()) flags |= GPGME_CREATE_CERT;
+ if (params->isAllowEncryption()) flags |= GPGME_CREATE_ENCR;
+ if (params->isAllowSigning()) flags |= GPGME_CREATE_SIGN;
+ if (params->isAllowAuthentication()) flags |= GPGME_CREATE_AUTH;
+ if (params->isNonExpired()) flags |= GPGME_CREATE_NOEXPIRE;
+ if (params->isNoPassPhrase()) flags |= GPGME_CREATE_NOPASSWD;
+
+ LOG(INFO) << "GpgFrontend::GpgKeyOpera::GenerateKey Args: " << userid << algo
+ << expires << flags;
auto err = gpgme_op_createkey(ctx, userid, algo, 0, expires, nullptr, flags);
return check_gpg_error(err);
@@ -151,10 +150,8 @@ GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::GenerateKey(
* @return error info
*/
GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::GenerateSubkey(
- const GpgKey& key,
- const std::unique_ptr<GenKeyInfo>& params) {
- if (!params->isSubKey())
- return GPG_ERR_CANCELED;
+ const GpgKey& key, const std::unique_ptr<GenKeyInfo>& params) {
+ if (!params->isSubKey()) return GPG_ERR_CANCELED;
auto algo_utf8 = (params->getAlgo() + params->getKeySizeStr());
const char* algo = algo_utf8.c_str();
@@ -165,19 +162,17 @@ GpgFrontend::GpgError GpgFrontend::GpgKeyOpera::GenerateSubkey(
}
unsigned int flags = 0;
- if (!params->isSubKey())
- flags |= GPGME_CREATE_CERT;
- if (params->isAllowEncryption())
- flags |= GPGME_CREATE_ENCR;
- if (params->isAllowSigning())
- flags |= GPGME_CREATE_SIGN;
- if (params->isAllowAuthentication())
- flags |= GPGME_CREATE_AUTH;
- if (params->isNonExpired())
- flags |= GPGME_CREATE_NOEXPIRE;
+ if (!params->isSubKey()) flags |= GPGME_CREATE_CERT;
+ if (params->isAllowEncryption()) flags |= GPGME_CREATE_ENCR;
+ if (params->isAllowSigning()) flags |= GPGME_CREATE_SIGN;
+ if (params->isAllowAuthentication()) flags |= GPGME_CREATE_AUTH;
+ if (params->isNonExpired()) flags |= GPGME_CREATE_NOEXPIRE;
flags |= GPGME_CREATE_NOPASSWD;
+ LOG(INFO) << "GpgFrontend::GpgKeyOpera::GenerateSubkey Args: " << key.id()
+ << algo << expires << flags;
+
auto err =
gpgme_op_createsubkey(ctx, gpgme_key_t(key), algo, 0, expires, flags);
return check_gpg_error(err);