From 25bec16d0bdcb9829a7b35c403cbb778b3b0c097 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 8 Sep 2020 11:41:33 +0900 Subject: [PATCH] scd: Add a workaround for Yubikey. * scd/app-openpgp.c (get_public_key): Handle wrong code for Yubikey. -- Backport master commit of: 0db9c83555b4a8a0c52f96e96ec20dbfd3d75272 Yubikey version 5 s/n 609074582 returns 0x6982, version 5.2.4 s/n 610616049 returns 0x6581, where 0x6a88 is expected. Signed-off-by: NIIBE Yutaka --- scd/app-openpgp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index b0ecb9243..e8a81f587 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -1756,6 +1756,12 @@ get_public_key (app_t app, int keyno) 2, le_value, &buffer, &buflen); if (err) { + /* Yubikey returns wrong code. Fix it up. */ + /* + * NOTE: It's not correct to blindly change the error code, + * however, for our experiences, it is only Yubikey... + */ + err = gpg_error (GPG_ERR_NO_OBJ); log_error (_("reading public key failed: %s\n"), gpg_strerror (err)); goto leave; }