From d40975cbe8ff86fcc4a1b4963fdffc66ddee85ce Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 14 Dec 2015 14:37:18 +0900 Subject: [PATCH] scd: Fix regression for generating RSA keys on card. * scd/app-openpgp.c (do_genkey): Strip leading zeros for fingerprint computation. -- This bug is difficult to reproduce because the probability is 1/256, and key generation takes long time. The regression was introduced when we add the support for ECC. GnuPG-bug-id: 2150 --- scd/app-openpgp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index 581c5dd17..92330ecd2 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -3623,6 +3623,11 @@ do_genkey (app_t app, ctrl_t ctrl, const char *keynostr, unsigned int flags, send_status_info (ctrl, "KEY-CREATED-AT", numbuf, (size_t)strlen(numbuf), NULL, 0); + for (; mlen && !*m; mlen--, m++) /* strip leading zeroes */ + ; + for (; elen && !*e; elen--, e++) /* strip leading zeroes */ + ; + rc = store_fpr (app, keyno, (u32)created_at, fprbuf, PUBKEY_ALGO_RSA, m, mlen, e, elen); if (rc)