diff --git a/src/hsm/sc_hsm.c b/src/hsm/sc_hsm.c index 6cf2d48..be7f800 100644 --- a/src/hsm/sc_hsm.c +++ b/src/hsm/sc_hsm.c @@ -780,7 +780,6 @@ static int cmd_initialize() { } } } - //At least, the first DKEK shall exist file_t *tf_kd = search_by_fid(EF_KEY_DOMAIN, NULL, SPECIFY_EF); if (!tf_kd) return SW_EXEC_ERROR(); @@ -801,6 +800,11 @@ static int cmd_initialize() { return SW_EXEC_ERROR(); } } + else { + uint16_t d = 0x0000; + if (flash_write_data_to_file(tf_kd, (const uint8_t *)&d, sizeof(d)) != CCID_OK) + return SW_EXEC_ERROR(); + } if (kds) { uint8_t t[MAX_KEY_DOMAINS*2], k = MIN(*kds,MAX_KEY_DOMAINS); memset(t, 0xff, 2*k);