From abb4d2326ce976a6c42a4354e61c8ae16eeec5ff Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 8 Jan 2025 15:18:59 +0100 Subject: [PATCH] Fix change PIN for RP2350. Fixes #27. Signed-off-by: Pol Henarejos --- src/openpgp/cmd_change_pin.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/openpgp/cmd_change_pin.c b/src/openpgp/cmd_change_pin.c index 5ef9820..b39c098 100644 --- a/src/openpgp/cmd_change_pin.c +++ b/src/openpgp/cmd_change_pin.c @@ -16,6 +16,7 @@ */ #include "openpgp.h" +#include "otp.h" int cmd_change_pin() { if (P1(apdu) != 0x0) { @@ -31,6 +32,12 @@ int cmd_change_pin() { if ((r = load_dek()) != PICOKEY_OK) { return SW_EXEC_ERROR(); } + + if (otp_key_1) { + for (int i = 0; i < 32; i++) { + dek[IV_SIZE + i] ^= otp_key_1[i]; + } + } r = check_pin(pw, apdu.data, pin_len); if (r != 0x9000) { return r;