mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
scd: Implement direct access by KEYGRIP for GETATTR and READKEY.
* scd/app-openpgp.c (do_readkey): Handle KEYGRIP access. * scd/command.c (do_readkey): New. (cmd_readkey): Use do_readkey supporting KEYGRIP access. (cmd_getattr): Supporting KEYGRIP access. Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
63bda3aad8
commit
0cfded4bb1
2 changed files with 127 additions and 58 deletions
|
@ -1920,7 +1920,21 @@ do_readkey (app_t app, ctrl_t ctrl, const char *keyid, unsigned int flags,
|
|||
int keyno;
|
||||
unsigned char *buf;
|
||||
|
||||
if (!strcmp (keyid, "OPENPGP.1"))
|
||||
if (strlen (keyid) == 40)
|
||||
{
|
||||
const unsigned char *keygrip_str;
|
||||
|
||||
for (keyno = 0; keyno < 3; keyno++)
|
||||
{
|
||||
keygrip_str = app->app_local->pk[keyno].keygrip_str;
|
||||
if (!strncmp (keygrip_str, keyid, 40))
|
||||
break;
|
||||
}
|
||||
|
||||
if (keyno >= 3)
|
||||
return gpg_error (GPG_ERR_INV_ID);
|
||||
}
|
||||
else if (!strcmp (keyid, "OPENPGP.1"))
|
||||
keyno = 0;
|
||||
else if (!strcmp (keyid, "OPENPGP.2"))
|
||||
keyno = 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue