From b79db82ae7b65b0847ea8fb286d203fae0a0ceb5 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Mon, 11 Nov 2019 10:29:46 +0100 Subject: [PATCH] openpgp: Workaround non-compliant Yubikey 5 OpenPGP applets Fixes #1850 --- src/libopensc/pkcs15-openpgp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libopensc/pkcs15-openpgp.c b/src/libopensc/pkcs15-openpgp.c index c506809e..28b2b70f 100644 --- a/src/libopensc/pkcs15-openpgp.c +++ b/src/libopensc/pkcs15-openpgp.c @@ -166,7 +166,7 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card) sc_context_t *ctx = card->ctx; char string[256]; u8 c4data[10]; - u8 c5data[70]; + u8 c5data[100]; int r, i; const pgp_pin_cfg_t *pin_cfg = (card->type == SC_CARD_TYPE_OPENPGP_V1) ? pin_cfg_v1 : pin_cfg_v2; @@ -257,7 +257,7 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card) */ if ((r = read_file(card, "006E:0073:00C5", c5data, sizeof(c5data))) < 0) goto failed; - if (r != 60) { + if (r < 60) { sc_log(ctx, "finger print bytes have unexpected length (expected 60, got %d)\n", r); return SC_ERROR_OBJECT_NOT_VALID;