From 6f504e4f915f928e42b8574ca3f93eea5038984b Mon Sep 17 00:00:00 2001
From: saturneric
Date: Thu, 17 Apr 2025 19:44:04 +0200
Subject: feat: check scd version
---
src/ui/dialog/controller/SmartCardControllerDialog.cpp | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
(limited to 'src/ui/dialog/controller/SmartCardControllerDialog.cpp')
diff --git a/src/ui/dialog/controller/SmartCardControllerDialog.cpp b/src/ui/dialog/controller/SmartCardControllerDialog.cpp
index 450f1a35..254ed83c 100644
--- a/src/ui/dialog/controller/SmartCardControllerDialog.cpp
+++ b/src/ui/dialog/controller/SmartCardControllerDialog.cpp
@@ -42,7 +42,9 @@ namespace GpgFrontend::UI {
SmartCardControllerDialog::SmartCardControllerDialog(QWidget* parent)
: GeneralDialog("SmartCardControllerDialog", parent),
ui_(QSharedPointer::create()),
- channel_(kGpgFrontendDefaultChannel) {
+ channel_(kGpgFrontendDefaultChannel),
+ scd_version_supported_(
+ GpgSmartCardManager::GetInstance(channel_).IsSCDVersionSupported()) {
ui_->setupUi(this);
ui_->smartCardLabel->setText(tr("Smart Card(s):"));
@@ -384,6 +386,11 @@ void SmartCardControllerDialog::reset_status() {
"restarting the application.")
<< "
";
+ out << ""
+ << tr("Note: Smart card support of GpgFrontend requires GnuPG version "
+ "2.3.0 or later.")
+ << "
";
+
out << "" << tr("Read the GnuPG Smart Card HOWTO: ")
<< "https://gnupg.org/howtos/card-howto/en/" << "
";
@@ -391,6 +398,12 @@ void SmartCardControllerDialog::reset_status() {
}
void SmartCardControllerDialog::slot_listen_smart_card_changes() {
+ if (!scd_version_supported_) {
+ LOG_D() << "scd version is not suppored";
+ reset_status();
+ return;
+ }
+
auto serial_numbers =
GpgSmartCardManager::GetInstance(channel_).GetSerialNumbers();
--
cgit v1.2.3