From fccc48de43055a09f35f7c62f62aa543fc527021 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Mon, 12 May 2025 11:16:18 +0200 Subject: [PATCH] Fix change PIN when no PIN was introduced before. Fixes #32 Signed-off-by: Pol Henarejos --- src/openpgp/cmd_change_pin.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/openpgp/cmd_change_pin.c b/src/openpgp/cmd_change_pin.c index b39c098..e85a9f1 100644 --- a/src/openpgp/cmd_change_pin.c +++ b/src/openpgp/cmd_change_pin.c @@ -29,6 +29,10 @@ int cmd_change_pin() { } uint8_t pin_len = file_get_data(pw)[0]; uint16_t r = 0; + r = check_pin(pw, apdu.data, pin_len); + if (r != 0x9000) { + return r; + } if ((r = load_dek()) != PICOKEY_OK) { return SW_EXEC_ERROR(); } @@ -38,10 +42,6 @@ int cmd_change_pin() { dek[IV_SIZE + i] ^= otp_key_1[i]; } } - r = check_pin(pw, apdu.data, pin_len); - if (r != 0x9000) { - return r; - } uint8_t dhash[33]; dhash[0] = apdu.nc - pin_len; double_hash_pin(apdu.data + pin_len, apdu.nc - pin_len, dhash + 1);