5 #ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_CERT_CERT_H_
6 #define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_CERT_CERT_H_
9 #include "sw/device/silicon_creator/lib/drivers/flash_ctrl.h"
10 #include "sw/device/silicon_creator/lib/drivers/hmac.h"
11 #include "sw/device/silicon_creator/lib/error.h"
21 kCertX509Asn1SerialNumberFieldByteOffset = 13,
22 kCertX509Asn1SerialNumberTagByteOffset =
23 kCertX509Asn1SerialNumberFieldByteOffset,
24 kCertX509Asn1SerialNumberLengthByteOffset =
25 kCertX509Asn1SerialNumberTagByteOffset + 1,
30 kCertX509Asn1SerialNumberSizeInBytes = 20,
35 kCertKeyIdSizeInBytes = kCertX509Asn1SerialNumberSizeInBytes,
38 enum dice_x509_cert_expectations {
43 kDiceX509SerialHeaderSizeBytes = 3,
49 kDiceX509SerialSizeBytes =
50 kDiceX509SerialHeaderSizeBytes + kCertKeyIdSizeInBytes,
56 kDiceX509SerialOffsetBytes = 13,
61 kDiceX509MinSizeBytes = kDiceX509SerialOffsetBytes + kDiceX509SerialSizeBytes,
64 typedef uint8_t cert_key_id_t[kCertKeyIdSizeInBytes];
70 typedef enum dice_cert_format {
71 kDiceCertFormatX509TcbInfo = 0,
72 kDiceCertFormatCWTAndroid = 1,
122 uint32_t cert_x509_asn1_decode_size_header(
const uint8_t *header);
139 rom_error_t cert_x509_asn1_check_serial_number(
const uint8_t *cert,
size_t size,
140 cert_key_id_t *expected_sn_bytes,