From cb1731c23cddfa524d3f51cfd82029bff853a073 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 3 Apr 2018 20:30:29 +0900 Subject: [PATCH] scd: Writing KDF resets auth state. * scd/app-openpgp.c (do_setattr): Clear auth state. Signed-off-by: NIIBE Yutaka --- scd/app-openpgp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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; }