fix for pinpad with reseting code

This commit is contained in:
NIIBE Yutaka
2011-02-04 16:43:14 +09:00
parent 98048620ec
commit 103484c44a
2 changed files with 16 additions and 6 deletions

View File

@@ -1,3 +1,8 @@
2011-02-04 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp.c (cmd_reset_user_password): Fix PINPAD_SUPPORT case
with reset code.
2011-02-01 NIIBE Yutaka <gniibe@fsij.org> 2011-02-01 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.9. * Version 0.9.

View File

@@ -407,6 +407,8 @@ cmd_reset_user_password (void)
#if defined(PINPAD_SUPPORT) #if defined(PINPAD_SUPPORT)
if (cmd_APDU_size == 4) if (cmd_APDU_size == 4)
/* Modification with pinpad */ /* Modification with pinpad */
{
if (p1 == 0x00) /* by User with Reseting Code */
{ {
pw_len = get_pinpad_input (PIN_INPUT_CURRENT); pw_len = get_pinpad_input (PIN_INPUT_CURRENT);
if (pw_len < 0) if (pw_len < 0)
@@ -415,10 +417,13 @@ cmd_reset_user_password (void)
return; return;
} }
pw = &cmd_APDU[5];
memcpy (&cmd_APDU[5], pin_input_buffer, pw_len); memcpy (&cmd_APDU[5], pin_input_buffer, pw_len);
newpw = pw + pw_len; }
else
pw_len = 0;
pw = &cmd_APDU[5];
newpw = pw + pw_len;
newpw_len = get_pinpad_input (PIN_INPUT_NEW); newpw_len = get_pinpad_input (PIN_INPUT_NEW);
if (newpw_len < 0) if (newpw_len < 0)
{ {