a) File ID:0A-00-00-00 // VICAL file
b) File ID:0A-00-01-00 to 0A-00-01-0E // Individual filesa) File ID:0A-00-02-00 // CERT Store Tablea) File ID:0A-00-00-00 // VICAL file
b) File ID:0A-00-01-00 to 0A-00-01-0E // Individual files
c) File ID:0A-00-02-00 // CERT Store TableWrite vical_4_2_2026.cbor as File ID: 0A-00-00-00 to the unit Unsecured (0xD812)SendFile00 = data:{$SendFile(0A000000,$LoadFile(C:\Doc\mDL\Cert-Loading\certs\ vical_4_2_2026.cbor))}Write file_00.der as File ID: 0A-00-01-00 to the unit Secured (0xD811)SendFile1E = data:{$SendFile(0A000100,$LoadFile(C:\Doc\mDL\Cert-Loading\certs\file_00.der),MAC)}typedef struct
{
uint16_t year;
uint16_t mon;
uint8_t day;
uint8_t hour;
uint8_t min;
uint8_t sec;
} MDL_CERT_TIME;
typedef struct // 32 bytes total
{
uint8_t status[2]; // ACTIVE or empty
uint8_t ski[8]; // subject key identifier
uint8_t region[6]; // example: US-CA
MDL_CERT_TIME from_time; // not before time in RTC format
MDL_CERT_TIME to_time; // not after time in RTC format
} CERT_REC_T;
#define CERT_STORE_MAX_CNT 45 // the max number of entries in CERT Store
typedef struct
{
CERT_REC_T entry[CERT_STORE_MAX_CNT];
} CERT_STORE_T;--Index: 00 Region: US-MD
Status: 01-00 SKI: 4E9AD1CDA1412754
FROM: 2024-01-05 05:00:00 TO: 2029-01-04 05:00:00--Index: 01 Region: US-UT
Status: 01-00 SKI: 3C4C6CDFE782342E
FROM: 2023-12-18 12:25:47 TO: 2032-12-15 12:25:46--Index: 03 Region: US-VA
Status: 01-00 SKI: 9614BCEB5DD9FBBB
FROM: 2025-07-22 13:26:02 TO: 2027-07-22 13:26:01--Index: 26 Region: US-CA
Status: 01-00 SKI: BB7D7567927A6FCF
FROM: 2023-03-01 17:17:39 TO: 2033-01-07 17:17:39