Do not update CFG_FLAGS if slot is ChalResp.

Fixes #142

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2025-04-10 16:23:20 +02:00
parent 3212f95915
commit b6bf2e6c66

View File

@@ -92,8 +92,7 @@
#define OATH_FIXED_MODHEX2 0x40 // First two bytes in fixed part sent as modhex
#define OATH_FIXED_MODHEX 0x50 // Fixed part sent as modhex
#define OATH_FIXED_MASK 0x50 // Mask to get out fixed flags
#define CFGFLAG_UPDATE_MASK_STATIC (PACING_10MS | PACING_20MS)
#define CFGFLAG_UPDATE_MASK_CHAL (PACING_20MS)
#define CFGFLAG_UPDATE_MASK (PACING_10MS | PACING_20MS)
static uint8_t config_seq = { 1 };
@@ -436,12 +435,11 @@ int cmd_otp() {
odata->tkt_flags = (otpc->tkt_flags & ~TKTFLAG_UPDATE_MASK) |
(odata->tkt_flags & TKTFLAG_UPDATE_MASK);
if (!(otpc->tkt_flags & CHAL_RESP)) {
odata->cfg_flags = (otpc->cfg_flags & ~CFGFLAG_UPDATE_MASK_STATIC) |
(odata->cfg_flags & CFGFLAG_UPDATE_MASK_STATIC);
odata->cfg_flags = (otpc->cfg_flags & ~CFGFLAG_UPDATE_MASK) |
(odata->cfg_flags & CFGFLAG_UPDATE_MASK);
}
else {
odata->cfg_flags = (otpc->cfg_flags & ~CFGFLAG_UPDATE_MASK_CHAL) |
(odata->cfg_flags & CFGFLAG_UPDATE_MASK_CHAL);
odata->cfg_flags = otpc->cfg_flags;
}
file_put_data(ef, apdu.data, otp_config_size);
low_flash_available();