From 40efcd71c3e6146b4e5547794cd5414ed4471edf Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Fri, 3 Jun 2022 20:10:53 +0200 Subject: [PATCH] Added device option KEY_COUNTER_ALL. When it is set, it enables the key usage counter for all keys when generated. Signed-off-by: Pol Henarejos --- src/hsm/sc_hsm.c | 9 ++++++--- src/hsm/sc_hsm.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) 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 */