aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/utils/GpgUtils.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2025-04-12 23:03:57 +0000
committersaturneric <[email protected]>2025-04-12 23:03:57 +0000
commit571cfb16ccfd7ac6bc59b5acc77a94d0bdcf0990 (patch)
treea4efe7ba4d5344897c60513c03172d5de0191658 /src/core/utils/GpgUtils.cpp
parentfix: upgrade to gpgme 1.24.2 (diff)
downloadGpgFrontend-571cfb16ccfd7ac6bc59b5acc77a94d0bdcf0990.tar.gz
GpgFrontend-571cfb16ccfd7ac6bc59b5acc77a94d0bdcf0990.zip
feat: add openpgp smart card support
Diffstat (limited to 'src/core/utils/GpgUtils.cpp')
-rw-r--r--src/core/utils/GpgUtils.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/utils/GpgUtils.cpp b/src/core/utils/GpgUtils.cpp
index c7040cc2..22ba856e 100644
--- a/src/core/utils/GpgUtils.cpp
+++ b/src/core/utils/GpgUtils.cpp
@@ -353,4 +353,21 @@ auto GPGFRONTEND_CORE_EXPORT GetUsagesBySubkey(const GpgSubKey& key)
if (key.IsADSK()) usages += "R";
return usages;
}
+
+auto GPGFRONTEND_CORE_EXPORT GetGpgKeyByGpgAbstractKey(GpgAbstractKey* ab_key)
+ -> GpgKey {
+ if (!ab_key->IsGood()) return {};
+
+ if (ab_key->IsSubKey()) {
+ auto* s_key = dynamic_cast<GpgSubKey*>(ab_key);
+
+ assert(s_key != nullptr);
+ if (s_key == nullptr) return {};
+
+ return *s_key->Convert2GpgKey();
+ }
+
+ auto* key = dynamic_cast<GpgKey*>(ab_key);
+ return *key;
+}
} // namespace GpgFrontend