From 551334a447ae99cfbc4ada2cbf87aee00099b01d Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 22 Jan 2026 12:14:12 +0100 Subject: [PATCH] Clear dek on error. Signed-off-by: Pol Henarejos --- src/openpgp/openpgp.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/openpgp/openpgp.c b/src/openpgp/openpgp.c index e4bc2f9..2e1c876 100644 --- a/src/openpgp/openpgp.c +++ b/src/openpgp/openpgp.c @@ -219,6 +219,10 @@ void scan_files_openpgp() { low_flash_available(); } +void release_dek() { + memset(dek, 0, sizeof(dek)); +} + extern bool has_pwpiv; extern uint8_t session_pwpiv[32]; int load_dek() { @@ -245,6 +249,7 @@ int load_dek() { r = aes_decrypt_cfb_256(session_pwpiv, dek, dek + IV_SIZE, 32); } if (r != 0) { + release_dek(); return PICOKEY_EXEC_ERROR; } if (otp_key_1) { @@ -255,10 +260,6 @@ int load_dek() { return PICOKEY_OK; } -void release_dek() { - memset(dek, 0, sizeof(dek)); -} - int dek_encrypt(uint8_t *data, size_t len) { int r; if ((r = load_dek()) != PICOKEY_OK) {