1
0

feat: improve gpg utils

This commit is contained in:
saturneric 2023-12-03 04:26:36 -08:00
parent c187645fb3
commit 2875648cc4
3 changed files with 22 additions and 7 deletions

View File

@ -28,6 +28,7 @@
#pragma once
#include "core/model/DataObject.h"
namespace GpgFrontend {
class GpgKey; ///< forward declaration
@ -35,7 +36,9 @@ class GpgSubKey;
class GpgSignature;
class GpgTOFUInfo;
using GpgError = gpgme_error_t; ///< gpgme error code
using GpgError = gpgme_error_t; ///< gpgme error
using GpgErrorCode = gpg_err_code_t;
using GpgErrorDesc = std::pair<std::string, std::string>;
using KeyId = std::string; ///<
using SubkeyId = std::string; ///<
@ -52,5 +55,7 @@ using GpgKeyLinkList = std::list<GpgKey>; ///<
using KeyLinkListPtr = std::unique_ptr<GpgKeyLinkList>; ///<
using KeyPtr = std::unique_ptr<GpgKey>; ///<
using KeyPtrArgsList = const std::initializer_list<KeyPtr>; ///<
///
using GpgOperaRunnable = std::function<GpgError(DataObjectPtr)>;
using GpgOperationCallback = std::function<void(GpgError, DataObjectPtr)>;
} // namespace GpgFrontend

View File

@ -53,7 +53,7 @@ static inline auto Trim(std::string& s) -> std::string {
return s;
}
auto CheckGpgError(gpgme_error_t err) -> gpgme_error_t {
auto CheckGpgError(GpgError err) -> GpgError {
if (gpg_err_code(err) != GPG_ERR_NO_ERROR) {
SPDLOG_ERROR("[error: {}] source: {} description: {}", gpg_err_code(err),
gpgme_strsource(err), gpgme_strerror(err));
@ -61,8 +61,7 @@ auto CheckGpgError(gpgme_error_t err) -> gpgme_error_t {
return err;
}
auto CheckGpgError2ErrCode(gpgme_error_t err, gpgme_error_t predict)
-> gpg_err_code_t {
auto CheckGpgError2ErrCode(GpgError err, GpgError predict) -> GpgErrorCode {
auto err_code = gpg_err_code(err);
if (err_code != gpg_err_code(predict)) {
if (err_code == GPG_ERR_NO_ERROR)
@ -77,8 +76,11 @@ auto CheckGpgError2ErrCode(gpgme_error_t err, gpgme_error_t predict)
return err_code;
}
auto CheckGpgError(gpgme_error_t err, const std::string& comment)
-> gpgme_error_t {
auto DescribeGpgErrCode(GpgError err) -> GpgErrorDesc {
return {gpgme_strsource(err), gpgme_strerror(err)};
}
auto CheckGpgError(GpgError err, const std::string& /*comment*/) -> GpgError {
if (gpg_err_code(err) != GPG_ERR_NO_ERROR) {
SPDLOG_WARN("[Error {}] Source: {} description: {} predict: {}",
gpg_err_code(err), gpgme_strsource(err), gpgme_strerror(err),

View File

@ -121,6 +121,14 @@ auto GPGFRONTEND_CORE_EXPORT CheckGpgError2ErrCode(
gpgme_error_t err, gpgme_error_t predict = GPG_ERR_NO_ERROR)
-> gpg_err_code_t;
/**
* @brief
*
* @param err
* @return GpgErrorDesc
*/
auto GPGFRONTEND_CORE_EXPORT DescribeGpgErrCode(GpgError err) -> GpgErrorDesc;
// Check
/**