summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/gnupg/files/gnupg-2.3.7-yubikey-workaround-fix.patch')
-rw-r--r--app-crypt/gnupg/files/gnupg-2.3.7-yubikey-workaround-fix.patch53
1 files changed, 0 insertions, 53 deletions
diff --git a/app-crypt/gnupg/files/gnupg-2.3.7-yubikey-workaround-fix.patch b/app-crypt/gnupg/files/gnupg-2.3.7-yubikey-workaround-fix.patch
deleted file mode 100644
index 94062c885b5b..000000000000
--- a/app-crypt/gnupg/files/gnupg-2.3.7-yubikey-workaround-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=f34b9147eb3070bce80d53febaa564164cd6c977
-
-From f34b9147eb3070bce80d53febaa564164cd6c977 Mon Sep 17 00:00:00 2001
-From: NIIBE Yutaka <gniibe@fsij.org>
-Date: Wed, 13 Jul 2022 10:40:55 +0900
-Subject: [PATCH] scd:openpgp: Fix workaround for Yubikey heuristics.
-
-* scd/app-openpgp.c (parse_algorithm_attribute): Handle the case
-of firmware 5.4, too.
-
---
-
-GnuPG-bug-id: 6070
-Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
---- a/scd/app-openpgp.c
-+++ b/scd/app-openpgp.c
-@@ -6259,15 +6259,28 @@ parse_algorithm_attribute (app_t app, int keyno)
- app->app_local->keyattr[keyno].ecc.algo = *buffer;
- app->app_local->keyattr[keyno].ecc.flags = 0;
-
-- if (APP_CARD(app)->cardtype == CARDTYPE_YUBIKEY
-- || buffer[buflen-1] == 0x00 || buffer[buflen-1] == 0xff)
-- { /* Found "pubkey required"-byte for private key template. */
-- oidlen--;
-- if (buffer[buflen-1] == 0xff)
-- app->app_local->keyattr[keyno].ecc.flags |= ECC_FLAG_PUBKEY;
-+ if (APP_CARD(app)->cardtype == CARDTYPE_YUBIKEY)
-+ {
-+ /* Yubikey implementations vary.
-+ * Firmware version 5.2 returns "pubkey required"-byte with
-+ * 0x00, but after removal and second time insertion, it
-+ * returns bogus value there.
-+ * Firmware version 5.4 returns none.
-+ */
-+ curve = ecc_curve (buffer + 1, oidlen);
-+ if (!curve)
-+ curve = ecc_curve (buffer + 1, oidlen - 1);
-+ }
-+ else
-+ {
-+ if (buffer[buflen-1] == 0x00 || buffer[buflen-1] == 0xff)
-+ { /* Found "pubkey required"-byte for private key template. */
-+ oidlen--;
-+ if (buffer[buflen-1] == 0xff)
-+ app->app_local->keyattr[keyno].ecc.flags |= ECC_FLAG_PUBKEY;
-+ }
-+ curve = ecc_curve (buffer + 1, oidlen);
- }
--
-- curve = ecc_curve (buffer + 1, oidlen);
-
- if (!curve)
- {