scd:openpgp: Add attribute "UIF" for convenience.

* scd/app-openpgp.c (do_getattr): New attrubute "UIF".
(do_learn_status): Use that.
--

Actually this is not just convenience but will make it easier to add
new keys to an openpgp card - we will need to change this only at one
place.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2020-05-26 16:13:15 +02:00
parent 2009088670
commit 11f0700282
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 11 additions and 5 deletions

View File

@ -1080,6 +1080,7 @@ do_getattr (app_t app, ctrl_t ctrl, const char *name)
{ "UIF-1", 0x00D6, 0 },
{ "UIF-2", 0x00D7, 0 },
{ "UIF-3", 0x00D8, 0 },
{ "UIF", 0x0000, -9 }, /* Shortcut for all UIF */
{ "KDF", 0x00F9, 5 },
{ "MANUFACTURER", 0x0000, -8 },
{ NULL, 0 }
@ -1180,6 +1181,15 @@ do_getattr (app_t app, ctrl_t ctrl, const char *name)
app->app_local->manufacturer,
get_manufacturer (app->app_local->manufacturer));
}
if (table[idx].special == -9)
{
rc = do_getattr (app, ctrl, "UIF-1");
if (!rc)
rc = do_getattr (app, ctrl, "UIF-2");
if (!rc)
rc = do_getattr (app, ctrl, "UIF-3");
return rc;
}
relptr = get_one_do (app, table[idx].tag, &value, &valuelen, &rc);
if (relptr)
@ -2002,11 +2012,7 @@ do_learn_status (app_t app, ctrl_t ctrl, unsigned int flags)
if (app->app_local->extcap.kdf_do)
do_getattr (app, ctrl, "KDF");
if (app->app_local->extcap.has_button)
{
do_getattr (app, ctrl, "UIF-1");
do_getattr (app, ctrl, "UIF-2");
do_getattr (app, ctrl, "UIF-3");
}
do_getattr (app, ctrl, "UIF");
if (app->app_local->extcap.private_dos)
{
do_getattr (app, ctrl, "PRIVATE-DO-1");