From d7e953b25a28a846b0aafa7003f33432b7e107f5 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Mon, 29 Nov 2021 10:57:43 +0800 Subject: Fix Known Bugs. 1. Import Keys. 2. Import Keys From Server. 3. UID Management. --- src/gpg/function/GpgKeyGetter.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/gpg/function/GpgKeyGetter.cpp') diff --git a/src/gpg/function/GpgKeyGetter.cpp b/src/gpg/function/GpgKeyGetter.cpp index ce4c9899..18fbe649 100644 --- a/src/gpg/function/GpgKeyGetter.cpp +++ b/src/gpg/function/GpgKeyGetter.cpp @@ -23,16 +23,20 @@ */ #include "gpg/function/GpgKeyGetter.h" + #include + #include "GpgConstants.h" GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::GetKey(const std::string& fpr) { gpgme_key_t _p_key; gpgme_get_key(ctx, fpr.c_str(), &_p_key, 1); - if (_p_key == nullptr) - DLOG(WARNING) << "GpgKeyGetter GetKey _p_key Null"; - assert(_p_key != nullptr); - return GpgKey(std::move(_p_key)); + if (_p_key == nullptr) { + DLOG(WARNING) << "GpgKeyGetter GetKey Private _p_key Null fpr" << fpr; + return GetPubkey(fpr); + } else { + return GpgKey(std::move(_p_key)); + } } GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::GetPubkey( @@ -40,7 +44,7 @@ GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::GetPubkey( gpgme_key_t _p_key; gpgme_get_key(ctx, fpr.c_str(), &_p_key, 0); if (_p_key == nullptr) - DLOG(WARNING) << "GpgKeyGetter GetKey _p_key Null"; + DLOG(WARNING) << "GpgKeyGetter GetKey _p_key Null" << fpr; return GpgKey(std::move(_p_key)); } @@ -66,7 +70,6 @@ GpgFrontend::KeyLinkListPtr GpgFrontend::GpgKeyGetter::FetchKey() { GpgFrontend::KeyListPtr GpgFrontend::GpgKeyGetter::GetKeys( const KeyIdArgsListPtr& ids) { auto keys = std::make_unique(); - for (const auto& id : *ids) - keys->push_back(GetKey(id)); + for (const auto& id : *ids) keys->push_back(GetKey(id)); return keys; } -- cgit v1.2.3