diff --git a/ChangeLog b/ChangeLog index e5a4489..b90c8b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-02-04 NIIBE Yutaka + + * src/openpgp.c (cmd_reset_user_password): Fix PINPAD_SUPPORT case + with reset code. + 2011-02-01 NIIBE Yutaka * Version 0.9. diff --git a/src/openpgp.c b/src/openpgp.c index a412e8f..172058c 100644 --- a/src/openpgp.c +++ b/src/openpgp.c @@ -408,17 +408,22 @@ cmd_reset_user_password (void) if (cmd_APDU_size == 4) /* Modification with pinpad */ { - pw_len = get_pinpad_input (PIN_INPUT_CURRENT); - if (pw_len < 0) + if (p1 == 0x00) /* by User with Reseting Code */ { - GPG_ERROR (); - return; + pw_len = get_pinpad_input (PIN_INPUT_CURRENT); + if (pw_len < 0) + { + GPG_ERROR (); + return; + } + + memcpy (&cmd_APDU[5], pin_input_buffer, pw_len); } + else + pw_len = 0; pw = &cmd_APDU[5]; - memcpy (&cmd_APDU[5], pin_input_buffer, pw_len); newpw = pw + pw_len; - newpw_len = get_pinpad_input (PIN_INPUT_NEW); if (newpw_len < 0) {