diff --git a/src/hsm/sc_hsm.c b/src/hsm/sc_hsm.c index 0c0024c..a753305 100644 --- a/src/hsm/sc_hsm.c +++ b/src/hsm/sc_hsm.c @@ -941,9 +941,12 @@ int find_and_store_meta_key(uint8_t key_id) { } } if (lt[0] == 0 && pt[0] == NULL) { - lt[0] = 4; - pt[0] = t90; - meta_size += 6; + uint16_t opts = get_device_options(); + if (opts & HSM_OPT_KEY_COUNTER_ALL) { + lt[0] = 4; + pt[0] = t90; + meta_size += 6; + } } if (meta_size) { uint8_t *meta = (uint8_t *)calloc(1, meta_size), *m = meta; diff --git a/src/hsm/sc_hsm.h b/src/hsm/sc_hsm.h index c9caee8..9ba467a 100644 --- a/src/hsm/sc_hsm.h +++ b/src/hsm/sc_hsm.h @@ -56,6 +56,7 @@ extern const uint8_t sc_hsm_aid[]; #define HSM_OPT_COMBINED_AUTH 0x0010 #define HSM_OPT_RRC_RESET_ONLY 0x0020 #define HSM_OPT_BOOTSEL_BUTTON 0x0100 +#define HSM_OPT_KEY_COUNTER_ALL 0x0200 #define PRKD_PREFIX 0xC4 /* Hi byte in file identifier for PKCS#15 PRKD objects */ #define CD_PREFIX 0xC8 /* Hi byte in file identifier for PKCS#15 CD objects */