diff options
Diffstat (limited to 'src/core/function/gpg/GpgKeyGetter.cpp')
-rw-r--r-- | src/core/function/gpg/GpgKeyGetter.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/function/gpg/GpgKeyGetter.cpp b/src/core/function/gpg/GpgKeyGetter.cpp index 3419c18d..9fb0f6db 100644 --- a/src/core/function/gpg/GpgKeyGetter.cpp +++ b/src/core/function/gpg/GpgKeyGetter.cpp @@ -46,6 +46,8 @@ class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> { // find in cache first if (cache) { auto key = get_key_in_cache(key_id); + assert(key->KeyType() == GpgAbstractKeyType::kGPG_KEY); + if (key != nullptr) return qSharedPointerDynamicCast<GpgKey>(key); LOG_W() << "get gpg key" << key_id @@ -164,6 +166,10 @@ class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> { for (const auto& s_key : g_key->SubKeys()) { if (s_key.ID() == g_key->ID()) continue; auto p_s_key = QSharedPointer<GpgSubKey>::create(s_key); + + // don't add adsk key or it will cause bugs + if (p_s_key->IsADSK()) continue; + keys_search_cache_.insert(s_key.ID(), p_s_key); keys_search_cache_.insert(s_key.Fingerprint(), p_s_key); } |