1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-14 00:19:50 +02:00

Prepare for OpenPGP cards with extended length support.

This commit is contained in:
Werner Koch 2009-04-01 14:38:22 +00:00
parent 0b99639624
commit 9d6a2a60c2
2 changed files with 13 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2009-04-01 Werner Koch <wk@g10code.com>
* app-openpgp.c (do_setattr, do_writekey): Prepare for extended
length cards.
2009-03-31 Werner Koch <wk@g10code.com> 2009-03-31 Werner Koch <wk@g10code.com>
* command.c (percent_plus_unescape): Remove. * command.c (percent_plus_unescape): Remove.

View File

@ -1772,9 +1772,11 @@ do_setattr (app_t app, const char *name,
will reread the data from the card and thus get synced in case of will reread the data from the card and thus get synced in case of
errors (e.g. data truncated by the card). */ errors (e.g. data truncated by the card). */
flush_cache_item (app, table[idx].tag); flush_cache_item (app, table[idx].tag);
/* For command chaining we use a value of 254 for this card. */
if (app->app_local->cardcap.cmd_chaining && valuelen > 254) if (app->app_local->cardcap.ext_lc_le && valuelen > 254)
exmode = -254; exmode = 1; /* Use extended length w/o a limit. */
else if (app->app_local->cardcap.cmd_chaining && valuelen > 254)
exmode = -254; /* Command chaining with max. 254 bytes. */
else else
exmode = 0; exmode = 0;
rc = iso7816_put_data (app->slot, exmode, table[idx].tag, value, valuelen); rc = iso7816_put_data (app->slot, exmode, table[idx].tag, value, valuelen);
@ -2432,7 +2434,9 @@ do_writekey (app_t app, ctrl_t ctrl,
goto leave; goto leave;
/* Store the key. */ /* Store the key. */
if (app->app_local->cardcap.cmd_chaining && template_len > 254) if (app->app_local->cardcap.ext_lc_le && template_len > 254)
exmode = 1; /* Use extended length w/o a limit. */
else if (app->app_local->cardcap.cmd_chaining && template_len > 254)
exmode = -254; exmode = -254;
else else
exmode = 0; exmode = 0;