aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2020-12-10 10:27:21 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2020-12-10 10:40:35 +0900
commit4020cd9d656264bec5e7fb5e45c5e06eff8656c3 (patch)
treebf1a4423a5d7b14e26482af73ff7fca573db3f1d
parent6c4365847666cefac73ccc743a99fac473da2186 (diff)
downloadgnupg-4020cd9d656264bec5e7fb5e45c5e06eff8656c3.tar.gz
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 <gniibe@fsij.org>
-rw-r--r--scd/app-nks.c18
1 files changed, 18 insertions, 0 deletions
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))