From 4020cd9d656264bec5e7fb5e45c5e06eff8656c3 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 10 Dec 2020 10:27:21 +0900 Subject: [PATCH] scd:nks: Add support of KEYGRIP for do_readcert. * scd/app-nks.c (do_readcert): Support KEYGRIP. -- GnuPG-bug-id: 5150 Signed-off-by: NIIBE Yutaka --- scd/app-nks.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/scd/app-nks.c b/scd/app-nks.c index 01db56b30..44ee222e2 100644 --- a/scd/app-nks.c +++ b/scd/app-nks.c @@ -1136,6 +1136,24 @@ do_readcert (app_t app, const char *certid, *cert = NULL; *certlen = 0; + /* Handle the case with KEYGRIP. */ + if (strlen (certid) == 40) + { + char keygripstr[2*KEYGRIP_LEN+1]; + + i = -1; + err = iterate_over_filelist (app, certid, 0, keygripstr, &i); + if (err) + return err; + + if (filelist[i].iskeypair > 0) + fid = filelist[i].iskeypair; + else + fid = filelist[i].fid; + + return readcert_from_ef (app, fid, cert, certlen); + } + if (!strncmp (certid, "NKS-NKS3.", 9)) nks_app_id = NKS_APP_NKS; else if (!strncmp (certid, "NKS-ESIGN.", 10))