From 365acbd68b3ae6b863b4f634adcb0090582eacc7 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Fri, 3 Feb 2023 20:21:14 +0100 Subject: [PATCH] Fix setting RC. When setting RC it was not hashed and then it was not recognized. Signed-off-by: Pol Henarejos --- src/openpgp/openpgp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/openpgp/openpgp.c b/src/openpgp/openpgp.c index f51f919..d092b32 100644 --- a/src/openpgp/openpgp.c +++ b/src/openpgp/openpgp.c @@ -933,7 +933,15 @@ static int cmd_put_data() { ef = currentEF; } if (apdu.nc > 0 && (ef->type & FILE_DATA_FLASH)) { - int r = flash_write_data_to_file(ef, apdu.data, apdu.nc); + int r = 0; + if (fid == EF_RC) { + uint8_t dhash[33]; + dhash[0] = apdu.nc; + double_hash_pin(apdu.data, apdu.nc, dhash+1); + r = flash_write_data_to_file(ef, dhash, sizeof(dhash)); + } + else + r = flash_write_data_to_file(ef, apdu.data, apdu.nc); if (r != CCID_OK) return SW_MEMORY_FAILURE(); low_flash_available();