diff options
author | NIIBE Yutaka <[email protected]> | 2020-12-10 01:27:21 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2020-12-10 01:40:35 +0000 |
commit | 4020cd9d656264bec5e7fb5e45c5e06eff8656c3 (patch) | |
tree | bf1a4423a5d7b14e26482af73ff7fca573db3f1d /scd/app-nks.c | |
parent | scd:nks: Factor out iteration over filelist. (diff) | |
download | gnupg-4020cd9d656264bec5e7fb5e45c5e06eff8656c3.tar.gz gnupg-4020cd9d656264bec5e7fb5e45c5e06eff8656c3.zip |
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 <[email protected]>
Diffstat (limited to 'scd/app-nks.c')
-rw-r--r-- | scd/app-nks.c | 18 |
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)) |