aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2018-04-03 11:30:29 +0000
committerNIIBE Yutaka <[email protected]>2018-04-03 11:30:29 +0000
commitcb1731c23cddfa524d3f51cfd82029bff853a073 (patch)
tree74bb2cb1924d2a6328088fd820c716eaddb65a41
parentg10: Fix filtering by PK->REQ_USAGE. (diff)
downloadgnupg-cb1731c23cddfa524d3f51cfd82029bff853a073.tar.gz
gnupg-cb1731c23cddfa524d3f51cfd82029bff853a073.zip
scd: Writing KDF resets auth state.
* scd/app-openpgp.c (do_setattr): Clear auth state. Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--scd/app-openpgp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index ab57d90e6..9fcfa191e 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -2459,7 +2459,7 @@ do_setattr (app_t app, const char *name,
{ "SM-KEY-MAC", 0x00D2, 3, 0, 1 },
{ "KEY-ATTR", 0, 0, 3, 1 },
{ "AESKEY", 0x00D5, 3, 0, 1 },
- { "KDF", 0x00F9, 3, 0, 1 },
+ { "KDF", 0x00F9, 3, 4, 1 },
{ NULL, 0 }
};
int exmode;
@@ -2507,6 +2507,12 @@ do_setattr (app_t app, const char *name,
app->force_chv1 = (valuelen && *value == 0);
else if (table[idx].special == 2)
parse_login_data (app);
+ else if (table[idx].special == 4)
+ {
+ app->did_chv1 = 0;
+ app->did_chv2 = 0;
+ app->did_chv3 = 0;
+ }
return rc;
}