From 95997d27106daf91336847f50efaaa32279b7fc7 Mon Sep 17 00:00:00 2001 From: saturneric Date: Mon, 16 Oct 2023 17:54:05 +0800 Subject: fix: check and update copyright at files --- src/core/function/gpg/GpgKeyManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index e556eec6..aad47f9d 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2021 Saturneric + * Copyright (C) 2021 Saturneric * * This file is part of GpgFrontend. * @@ -20,7 +20,7 @@ * the gpg4usb project, which is under GPL-3.0-or-later. * * All the source code of GpgFrontend was modified and released by - * Saturneric starting on May 12, 2021. + * Saturneric starting on May 12, 2021. * * SPDX-License-Identifier: GPL-3.0-or-later * -- cgit v1.2.3 From 124929609eabff19359caad276a10f1026793c0f Mon Sep 17 00:00:00 2001 From: saturneric Date: Wed, 25 Oct 2023 18:26:26 +0800 Subject: fix: solve some code tidy issues --- src/core/function/gpg/GpgKeyManager.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index aad47f9d..056dd9be 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -35,7 +35,6 @@ #include "GpgBasicOperator.h" #include "GpgKeyGetter.h" -#include "spdlog/spdlog.h" GpgFrontend::GpgKeyManager::GpgKeyManager(int channel) : SingletonFunctionObject(channel) {} -- cgit v1.2.3 From fd46d4667611c0db9cea3f06205727399b6fb5fd Mon Sep 17 00:00:00 2001 From: saturneric Date: Sun, 29 Oct 2023 02:46:15 +0800 Subject: refactor: start to tidy up code using clang-tidy --- src/core/function/gpg/GpgKeyManager.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 056dd9be..b2fd22da 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -30,8 +30,6 @@ #include #include -#include -#include #include "GpgBasicOperator.h" #include "GpgKeyGetter.h" -- cgit v1.2.3 From 5d7b1d5493df8723259eca0613a9ce0af6077289 Mon Sep 17 00:00:00 2001 From: saturneric Date: Mon, 30 Oct 2023 14:52:29 +0800 Subject: style: improve code style of core --- src/core/function/gpg/GpgKeyManager.cpp | 58 +++++++++++++++++---------------- 1 file changed, 30 insertions(+), 28 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index b2fd22da..f2c5920f 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -37,10 +37,10 @@ GpgFrontend::GpgKeyManager::GpgKeyManager(int channel) : SingletonFunctionObject(channel) {} -bool GpgFrontend::GpgKeyManager::SignKey( +auto GpgFrontend::GpgKeyManager::SignKey( const GpgFrontend::GpgKey& target, GpgFrontend::KeyArgsList& keys, const std::string& uid, - const std::unique_ptr& expires) { + const std::unique_ptr& expires) -> bool { using namespace boost::posix_time; GpgBasicOperator::GetInstance().SetSigners(keys); @@ -48,36 +48,38 @@ bool GpgFrontend::GpgKeyManager::SignKey( unsigned int flags = 0; unsigned int expires_time_t = 0; - if (expires == nullptr) + if (expires == nullptr) { flags |= GPGME_KEYSIGN_NOEXPIRE; - else + } else { expires_time_t = to_time_t(*expires); + } - auto err = check_gpg_error(gpgme_op_keysign( - ctx_, gpgme_key_t(target), uid.c_str(), expires_time_t, flags)); + auto err = + CheckGpgError(gpgme_op_keysign(ctx_, static_cast(target), + uid.c_str(), expires_time_t, flags)); - return check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR; + return CheckGpgError(err) == GPG_ERR_NO_ERROR; } -bool GpgFrontend::GpgKeyManager::RevSign( +auto GpgFrontend::GpgKeyManager::RevSign( const GpgFrontend::GpgKey& key, - const GpgFrontend::SignIdArgsListPtr& signature_id) { + const GpgFrontend::SignIdArgsListPtr& signature_id) -> bool { auto& key_getter = GpgKeyGetter::GetInstance(); for (const auto& sign_id : *signature_id) { auto signing_key = key_getter.GetKey(sign_id.first); assert(signing_key.IsGood()); - auto err = check_gpg_error(gpgme_op_revsig(ctx_, gpgme_key_t(key), - gpgme_key_t(signing_key), - sign_id.second.c_str(), 0)); - if (check_gpg_error_2_err_code(err) != GPG_ERR_NO_ERROR) return false; + auto err = CheckGpgError(gpgme_op_revsig(ctx_, gpgme_key_t(key), + gpgme_key_t(signing_key), + sign_id.second.c_str(), 0)); + if (CheckGpgError(err) != GPG_ERR_NO_ERROR) return false; } return true; } -bool GpgFrontend::GpgKeyManager::SetExpire( +auto GpgFrontend::GpgKeyManager::SetExpire( const GpgFrontend::GpgKey& key, std::unique_ptr& subkey, - std::unique_ptr& expires) { + std::unique_ptr& expires) -> bool { using namespace boost::posix_time; unsigned long expires_time = 0; @@ -88,14 +90,14 @@ bool GpgFrontend::GpgKeyManager::SetExpire( if (subkey != nullptr) sub_fprs = subkey->GetFingerprint().c_str(); - auto err = check_gpg_error( - gpgme_op_setexpire(ctx_, gpgme_key_t(key), expires_time, sub_fprs, 0)); + auto err = CheckGpgError(gpgme_op_setexpire( + ctx_, static_cast(key), expires_time, sub_fprs, 0)); - return check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR; + return CheckGpgError(err) == GPG_ERR_NO_ERROR; } -bool GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, - int trust_level) { +auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, + int trust_level) -> bool { if (trust_level < 0 || trust_level > 5) { SPDLOG_ERROR("illegal owner trust level: {}", trust_level); } @@ -109,8 +111,9 @@ bool GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, switch (state) { case AS_START: - if (status == "GET_LINE" && args == "keyedit.prompt") + if (status == "GET_LINE" && args == "keyedit.prompt") { return AS_COMMAND; + } return AS_ERROR; case AS_COMMAND: if (status == "GET_LINE" && args == "edit_ownertrust.value") { @@ -177,7 +180,7 @@ bool GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, GpgData data_out; - auto err = gpgme_op_interact(ctx_, gpgme_key_t(key), 0, + auto err = gpgme_op_interact(ctx_, static_cast(key), 0, GpgKeyManager::interactor_cb_fnc, (void*)&handel_struct, data_out); if (err != GPG_ERR_NO_ERROR) { @@ -185,14 +188,13 @@ bool GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, trust_level, key.GetId(), gpgme_strerror(err)); } - return check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR && - handel_struct.Success(); + return CheckGpgError(err) == GPG_ERR_NO_ERROR && handel_struct.Success(); } -gpgme_error_t GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, - const char* status, - const char* args, - int fd) { +auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, + const char* status, + const char* args, int fd) + -> gpgme_error_t { auto handle_struct = static_cast(handle); std::string status_s = status; std::string args_s = args; -- cgit v1.2.3 From b219d1c9d0f6e9542b0b4f3f62c4dd368413ddec Mon Sep 17 00:00:00 2001 From: saturneric Date: Thu, 2 Nov 2023 09:59:40 +0800 Subject: feat: add callback function to event --- src/core/function/gpg/GpgKeyManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index f2c5920f..a0e1108a 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -31,8 +31,8 @@ #include #include -#include "GpgBasicOperator.h" -#include "GpgKeyGetter.h" +#include "core/function/gpg/GpgBasicOperator.h" +#include "core/function/gpg/GpgKeyGetter.h" GpgFrontend::GpgKeyManager::GpgKeyManager(int channel) : SingletonFunctionObject(channel) {} -- cgit v1.2.3 From 0251f35c93e3f0e0a6853a50fb5bd82c1b9e4187 Mon Sep 17 00:00:00 2001 From: saturneric Date: Mon, 6 Nov 2023 17:17:47 +0800 Subject: refactor: clean up core's codes --- src/core/function/gpg/GpgKeyManager.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index a0e1108a..291e1594 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -41,8 +41,6 @@ auto GpgFrontend::GpgKeyManager::SignKey( const GpgFrontend::GpgKey& target, GpgFrontend::KeyArgsList& keys, const std::string& uid, const std::unique_ptr& expires) -> bool { - using namespace boost::posix_time; - GpgBasicOperator::GetInstance().SetSigners(keys); unsigned int flags = 0; -- cgit v1.2.3 From 889cb8092381b073a0f4a0411a4ede04cd7bdd14 Mon Sep 17 00:00:00 2001 From: saturneric Date: Mon, 6 Nov 2023 20:49:44 +0800 Subject: refactor: improve the code structure of core --- src/core/function/gpg/GpgKeyManager.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 291e1594..3e27f946 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -33,6 +33,7 @@ #include "core/function/gpg/GpgBasicOperator.h" #include "core/function/gpg/GpgKeyGetter.h" +#include "core/utils/GpgUtils.h" GpgFrontend::GpgKeyManager::GpgKeyManager(int channel) : SingletonFunctionObject(channel) {} -- cgit v1.2.3 From 4dcd2ac8c4f673fc21c4cf0072d6cb648ca64e7e Mon Sep 17 00:00:00 2001 From: saturneric Date: Tue, 7 Nov 2023 15:57:28 +0800 Subject: refactor: separate typedef and impl --- src/core/function/gpg/GpgKeyManager.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 3e27f946..726b2b66 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -31,6 +31,7 @@ #include #include +#include "core/GpgModel.h" #include "core/function/gpg/GpgBasicOperator.h" #include "core/function/gpg/GpgKeyGetter.h" #include "core/utils/GpgUtils.h" -- cgit v1.2.3 From 054e6e28cca2517dda2319ef683314b3318c39a6 Mon Sep 17 00:00:00 2001 From: saturneric Date: Sun, 3 Dec 2023 12:25:21 -0800 Subject: feat: standarized and speed up app env loading process --- src/core/function/gpg/GpgKeyManager.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 726b2b66..4a67a3f4 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -54,9 +54,9 @@ auto GpgFrontend::GpgKeyManager::SignKey( expires_time_t = to_time_t(*expires); } - auto err = - CheckGpgError(gpgme_op_keysign(ctx_, static_cast(target), - uid.c_str(), expires_time_t, flags)); + auto err = CheckGpgError( + gpgme_op_keysign(ctx_.DefaultContext(), static_cast(target), + uid.c_str(), expires_time_t, flags)); return CheckGpgError(err) == GPG_ERR_NO_ERROR; } @@ -69,9 +69,9 @@ auto GpgFrontend::GpgKeyManager::RevSign( for (const auto& sign_id : *signature_id) { auto signing_key = key_getter.GetKey(sign_id.first); assert(signing_key.IsGood()); - auto err = CheckGpgError(gpgme_op_revsig(ctx_, gpgme_key_t(key), - gpgme_key_t(signing_key), - sign_id.second.c_str(), 0)); + auto err = CheckGpgError( + gpgme_op_revsig(ctx_.DefaultContext(), gpgme_key_t(key), + gpgme_key_t(signing_key), sign_id.second.c_str(), 0)); if (CheckGpgError(err) != GPG_ERR_NO_ERROR) return false; } return true; @@ -90,8 +90,9 @@ auto GpgFrontend::GpgKeyManager::SetExpire( if (subkey != nullptr) sub_fprs = subkey->GetFingerprint().c_str(); - auto err = CheckGpgError(gpgme_op_setexpire( - ctx_, static_cast(key), expires_time, sub_fprs, 0)); + auto err = CheckGpgError(gpgme_op_setexpire(ctx_.DefaultContext(), + static_cast(key), + expires_time, sub_fprs, 0)); return CheckGpgError(err) == GPG_ERR_NO_ERROR; } @@ -180,9 +181,9 @@ auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, GpgData data_out; - auto err = gpgme_op_interact(ctx_, static_cast(key), 0, - GpgKeyManager::interactor_cb_fnc, - (void*)&handel_struct, data_out); + auto err = gpgme_op_interact( + ctx_.DefaultContext(), static_cast(key), 0, + GpgKeyManager::interactor_cb_fnc, (void*)&handel_struct, data_out); if (err != GPG_ERR_NO_ERROR) { SPDLOG_ERROR("fail to set owner trust level {} to key {}, err: {}", trust_level, key.GetId(), gpgme_strerror(err)); -- cgit v1.2.3 From f5cf83e4b3fdf1e9ae82b00f39e45e189809c419 Mon Sep 17 00:00:00 2001 From: saturneric Date: Fri, 15 Dec 2023 17:04:59 +0800 Subject: fix: slove some issues on memory and intilizations --- src/core/function/gpg/GpgKeyManager.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 4a67a3f4..7afc356a 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -184,11 +184,6 @@ auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, auto err = gpgme_op_interact( ctx_.DefaultContext(), static_cast(key), 0, GpgKeyManager::interactor_cb_fnc, (void*)&handel_struct, data_out); - if (err != GPG_ERR_NO_ERROR) { - SPDLOG_ERROR("fail to set owner trust level {} to key {}, err: {}", - trust_level, key.GetId(), gpgme_strerror(err)); - } - return CheckGpgError(err) == GPG_ERR_NO_ERROR && handel_struct.Success(); } -- cgit v1.2.3 From 9adf241f87c707ffdb644cfaff8441ff0a3c67b7 Mon Sep 17 00:00:00 2001 From: saturneric Date: Tue, 26 Dec 2023 14:48:04 +0800 Subject: fix: test basical operations of gpg at both test cases and gui --- src/core/function/gpg/GpgKeyManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 7afc356a..b2de0ed7 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -43,7 +43,7 @@ auto GpgFrontend::GpgKeyManager::SignKey( const GpgFrontend::GpgKey& target, GpgFrontend::KeyArgsList& keys, const std::string& uid, const std::unique_ptr& expires) -> bool { - GpgBasicOperator::GetInstance().SetSigners(keys); + GpgBasicOperator::GetInstance().SetSigners(keys, true); unsigned int flags = 0; unsigned int expires_time_t = 0; -- cgit v1.2.3 From 644aa4397b03dbef73f8bfedc13925b51cad836b Mon Sep 17 00:00:00 2001 From: saturneric Date: Fri, 5 Jan 2024 20:55:15 +0800 Subject: feat: integrate logging api to core --- src/core/function/gpg/GpgKeyManager.cpp | 110 ++++++++++++++++---------------- 1 file changed, 56 insertions(+), 54 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index b2de0ed7..38ebd040 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -100,58 +100,59 @@ auto GpgFrontend::GpgKeyManager::SetExpire( auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, int trust_level) -> bool { if (trust_level < 0 || trust_level > 5) { - SPDLOG_ERROR("illegal owner trust level: {}", trust_level); + GF_CORE_LOG_ERROR("illegal owner trust level: {}", trust_level); } - AutomatonNextStateHandler next_state_handler = - [](AutomatonState state, std::string status, std::string args) { - SPDLOG_DEBUG("next_state_handler state: {}, gpg_status: {}, args: {}", - state, status, args); - std::vector tokens; - boost::split(tokens, args, boost::is_any_of(" ")); + AutomatonNextStateHandler next_state_handler = [](AutomatonState state, + std::string status, + std::string args) { + GF_CORE_LOG_DEBUG("next_state_handler state: {}, gpg_status: {}, args: {}", + state, status, args); + std::vector tokens; + boost::split(tokens, args, boost::is_any_of(" ")); - switch (state) { - case AS_START: - if (status == "GET_LINE" && args == "keyedit.prompt") { - return AS_COMMAND; - } - return AS_ERROR; - case AS_COMMAND: - if (status == "GET_LINE" && args == "edit_ownertrust.value") { - return AS_VALUE; - } - return AS_ERROR; - case AS_VALUE: - if (status == "GET_LINE" && args == "keyedit.prompt") { - return AS_QUIT; - } else if (status == "GET_BOOL" && - args == "edit_ownertrust.set_ultimate.okay") { - return AS_REALLY_ULTIMATE; - } - return AS_ERROR; - case AS_REALLY_ULTIMATE: - if (status == "GET_LINE" && args == "keyedit.prompt") { - return AS_QUIT; - } - return AS_ERROR; - case AS_QUIT: - if (status == "GET_LINE" && args == "keyedit.save.okay") { - return AS_SAVE; - } - return AS_ERROR; - case AS_ERROR: - if (status == "GET_LINE" && args == "keyedit.prompt") { - return AS_QUIT; - } - return AS_ERROR; - default: - return AS_ERROR; - }; - }; + switch (state) { + case AS_START: + if (status == "GET_LINE" && args == "keyedit.prompt") { + return AS_COMMAND; + } + return AS_ERROR; + case AS_COMMAND: + if (status == "GET_LINE" && args == "edit_ownertrust.value") { + return AS_VALUE; + } + return AS_ERROR; + case AS_VALUE: + if (status == "GET_LINE" && args == "keyedit.prompt") { + return AS_QUIT; + } else if (status == "GET_BOOL" && + args == "edit_ownertrust.set_ultimate.okay") { + return AS_REALLY_ULTIMATE; + } + return AS_ERROR; + case AS_REALLY_ULTIMATE: + if (status == "GET_LINE" && args == "keyedit.prompt") { + return AS_QUIT; + } + return AS_ERROR; + case AS_QUIT: + if (status == "GET_LINE" && args == "keyedit.save.okay") { + return AS_SAVE; + } + return AS_ERROR; + case AS_ERROR: + if (status == "GET_LINE" && args == "keyedit.prompt") { + return AS_QUIT; + } + return AS_ERROR; + default: + return AS_ERROR; + }; + }; AutomatonActionHandler action_handler = [trust_level](AutomatonHandelStruct& handler, AutomatonState state) { - SPDLOG_DEBUG("action_handler state: {}", state); + GF_CORE_LOG_DEBUG("action_handler state: {}", state); switch (state) { case AS_COMMAND: return std::string("trust"); @@ -194,16 +195,17 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, auto handle_struct = static_cast(handle); std::string status_s = status; std::string args_s = args; - SPDLOG_DEBUG("cb start status: {}, args: {}, fd: {}, handle struct state: {}", - status_s, args_s, fd, handle_struct->CuurentStatus()); + GF_CORE_LOG_DEBUG( + "cb start status: {}, args: {}, fd: {}, handle struct state: {}", + status_s, args_s, fd, handle_struct->CuurentStatus()); if (status_s == "KEY_CONSIDERED") { std::vector tokens; boost::split(tokens, args, boost::is_any_of(" ")); if (tokens.empty() || tokens[0] != handle_struct->KeyFpr()) { - SPDLOG_ERROR("handle struct key fpr {} mismatch token: {}, exit...", - handle_struct->KeyFpr(), tokens[0]); + GF_CORE_LOG_ERROR("handle struct key fpr {} mismatch token: {}, exit...", + handle_struct->KeyFpr(), tokens[0]); return -1; } @@ -211,13 +213,13 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, } if (status_s == "GOT_IT" || status_s.empty()) { - SPDLOG_DEBUG("status GOT_IT, continue..."); + GF_CORE_LOG_DEBUG("status GOT_IT, continue..."); return 0; } AutomatonState next_state = handle_struct->NextState(status_s, args_s); if (next_state == AS_ERROR) { - SPDLOG_DEBUG("handle struct next state caught error, skipping..."); + GF_CORE_LOG_DEBUG("handle struct next state caught error, skipping..."); return GPG_ERR_FALSE; } @@ -228,8 +230,8 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, // set state and preform action handle_struct->SetStatus(next_state); Command cmd = handle_struct->Action(); - SPDLOG_DEBUG("handle struct action done, next state: {}, action cmd: {}", - next_state, cmd); + GF_CORE_LOG_DEBUG("handle struct action done, next state: {}, action cmd: {}", + next_state, cmd); if (!cmd.empty()) { gpgme_io_write(fd, cmd.c_str(), cmd.size()); gpgme_io_write(fd, "\n", 1); -- cgit v1.2.3 From bf538056b24a68b8fd235b1c50991ee8eb46a776 Mon Sep 17 00:00:00 2001 From: saturneric Date: Fri, 12 Jan 2024 14:02:37 +0800 Subject: refactor: use QString instead of std::string and improve threading system --- src/core/function/gpg/GpgKeyManager.cpp | 45 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 38ebd040..e6ff7214 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -41,7 +41,7 @@ GpgFrontend::GpgKeyManager::GpgKeyManager(int channel) auto GpgFrontend::GpgKeyManager::SignKey( const GpgFrontend::GpgKey& target, GpgFrontend::KeyArgsList& keys, - const std::string& uid, + const QString& uid, const std::unique_ptr& expires) -> bool { GpgBasicOperator::GetInstance().SetSigners(keys, true); @@ -56,7 +56,7 @@ auto GpgFrontend::GpgKeyManager::SignKey( auto err = CheckGpgError( gpgme_op_keysign(ctx_.DefaultContext(), static_cast(target), - uid.c_str(), expires_time_t, flags)); + uid.toUtf8(), expires_time_t, flags)); return CheckGpgError(err) == GPG_ERR_NO_ERROR; } @@ -71,7 +71,7 @@ auto GpgFrontend::GpgKeyManager::RevSign( assert(signing_key.IsGood()); auto err = CheckGpgError( gpgme_op_revsig(ctx_.DefaultContext(), gpgme_key_t(key), - gpgme_key_t(signing_key), sign_id.second.c_str(), 0)); + gpgme_key_t(signing_key), sign_id.second.toUtf8(), 0)); if (CheckGpgError(err) != GPG_ERR_NO_ERROR) return false; } return true; @@ -88,7 +88,7 @@ auto GpgFrontend::GpgKeyManager::SetExpire( const char* sub_fprs = nullptr; - if (subkey != nullptr) sub_fprs = subkey->GetFingerprint().c_str(); + if (subkey != nullptr) sub_fprs = subkey->GetFingerprint().toUtf8(); auto err = CheckGpgError(gpgme_op_setexpire(ctx_.DefaultContext(), static_cast(key), @@ -104,12 +104,11 @@ auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, } AutomatonNextStateHandler next_state_handler = [](AutomatonState state, - std::string status, - std::string args) { + QString status, + QString args) { GF_CORE_LOG_DEBUG("next_state_handler state: {}, gpg_status: {}, args: {}", state, status, args); - std::vector tokens; - boost::split(tokens, args, boost::is_any_of(" ")); + auto tokens = args.split(' '); switch (state) { case AS_START: @@ -155,25 +154,25 @@ auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, GF_CORE_LOG_DEBUG("action_handler state: {}", state); switch (state) { case AS_COMMAND: - return std::string("trust"); + return QString("trust"); case AS_VALUE: handler.SetSuccess(true); - return std::to_string(trust_level); + return QString::number(trust_level); case AS_REALLY_ULTIMATE: handler.SetSuccess(true); - return std::string("Y"); + return QString("Y"); case AS_QUIT: - return std::string("quit"); + return QString("quit"); case AS_SAVE: handler.SetSuccess(true); - return std::string("Y"); + return QString("Y"); case AS_START: case AS_ERROR: - return std::string(""); + return QString(""); default: - return std::string(""); + return QString(""); } - return std::string(""); + return QString(""); }; auto key_fpr = key.GetFingerprint(); @@ -193,15 +192,14 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, const char* args, int fd) -> gpgme_error_t { auto handle_struct = static_cast(handle); - std::string status_s = status; - std::string args_s = args; + QString status_s = status; + QString args_s = args; GF_CORE_LOG_DEBUG( "cb start status: {}, args: {}, fd: {}, handle struct state: {}", status_s, args_s, fd, handle_struct->CuurentStatus()); if (status_s == "KEY_CONSIDERED") { - std::vector tokens; - boost::split(tokens, args, boost::is_any_of(" ")); + auto tokens = QString(args).split(' '); if (tokens.empty() || tokens[0] != handle_struct->KeyFpr()) { GF_CORE_LOG_ERROR("handle struct key fpr {} mismatch token: {}, exit...", @@ -212,7 +210,7 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, return 0; } - if (status_s == "GOT_IT" || status_s.empty()) { + if (status_s == "GOT_IT" || status_s.isEmpty()) { GF_CORE_LOG_DEBUG("status GOT_IT, continue..."); return 0; } @@ -232,8 +230,9 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, Command cmd = handle_struct->Action(); GF_CORE_LOG_DEBUG("handle struct action done, next state: {}, action cmd: {}", next_state, cmd); - if (!cmd.empty()) { - gpgme_io_write(fd, cmd.c_str(), cmd.size()); + if (!cmd.isEmpty()) { + auto btye_array = cmd.toUtf8(); + gpgme_io_write(fd, btye_array, btye_array.size()); gpgme_io_write(fd, "\n", 1); } else if (status_s == "GET_LINE") { // avoid trapping in this state -- cgit v1.2.3 From 6983b5c1dd82d159236ebd06cf17f071cc9c1ee9 Mon Sep 17 00:00:00 2001 From: saturneric Date: Fri, 12 Jan 2024 23:08:38 +0800 Subject: refactor: remove boost and use QString instead of std::filesystem::path --- src/core/function/gpg/GpgKeyManager.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index e6ff7214..8d7d9a28 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -28,9 +28,6 @@ #include "GpgKeyManager.h" -#include -#include - #include "core/GpgModel.h" #include "core/function/gpg/GpgBasicOperator.h" #include "core/function/gpg/GpgKeyGetter.h" @@ -41,8 +38,7 @@ GpgFrontend::GpgKeyManager::GpgKeyManager(int channel) auto GpgFrontend::GpgKeyManager::SignKey( const GpgFrontend::GpgKey& target, GpgFrontend::KeyArgsList& keys, - const QString& uid, - const std::unique_ptr& expires) -> bool { + const QString& uid, const std::unique_ptr& expires) -> bool { GpgBasicOperator::GetInstance().SetSigners(keys, true); unsigned int flags = 0; @@ -51,7 +47,7 @@ auto GpgFrontend::GpgKeyManager::SignKey( if (expires == nullptr) { flags |= GPGME_KEYSIGN_NOEXPIRE; } else { - expires_time_t = to_time_t(*expires); + expires_time_t = expires->toSecsSinceEpoch(); } auto err = CheckGpgError( @@ -77,14 +73,13 @@ auto GpgFrontend::GpgKeyManager::RevSign( return true; } -auto GpgFrontend::GpgKeyManager::SetExpire( - const GpgFrontend::GpgKey& key, std::unique_ptr& subkey, - std::unique_ptr& expires) -> bool { - using namespace boost::posix_time; - +auto GpgFrontend::GpgKeyManager::SetExpire(const GpgFrontend::GpgKey& key, + std::unique_ptr& subkey, + std::unique_ptr& expires) + -> bool { unsigned long expires_time = 0; - if (expires != nullptr) expires_time = to_time_t(ptime(*expires)); + if (expires != nullptr) expires_time = expires->toSecsSinceEpoch(); const char* sub_fprs = nullptr; @@ -191,7 +186,7 @@ auto GpgFrontend::GpgKeyManager::interactor_cb_fnc(void* handle, const char* status, const char* args, int fd) -> gpgme_error_t { - auto handle_struct = static_cast(handle); + auto* handle_struct = static_cast(handle); QString status_s = status; QString args_s = args; GF_CORE_LOG_DEBUG( -- cgit v1.2.3 From 37848811b6c8ca6c2a707431ec077c8098918afe Mon Sep 17 00:00:00 2001 From: saturneric Date: Thu, 18 Jan 2024 00:14:13 +0800 Subject: fix: improve code quality, docs and ci files --- src/core/function/gpg/GpgKeyManager.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/core/function/gpg/GpgKeyManager.cpp') diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp index 8d7d9a28..b5efe141 100644 --- a/src/core/function/gpg/GpgKeyManager.cpp +++ b/src/core/function/gpg/GpgKeyManager.cpp @@ -176,9 +176,10 @@ auto GpgFrontend::GpgKeyManager::SetOwnerTrustLevel(const GpgKey& key, GpgData data_out; - auto err = gpgme_op_interact( - ctx_.DefaultContext(), static_cast(key), 0, - GpgKeyManager::interactor_cb_fnc, (void*)&handel_struct, data_out); + auto err = + gpgme_op_interact(ctx_.DefaultContext(), static_cast(key), 0, + GpgKeyManager::interactor_cb_fnc, + static_cast(&handel_struct), data_out); return CheckGpgError(err) == GPG_ERR_NO_ERROR && handel_struct.Success(); } -- cgit v1.2.3