Software APIs
Data Fields
dice_chain Struct Reference

Defines a class for parsing and building the DICE cert chain. More...

Data Fields

uint8_t data [FLASH_CTRL_PARAM_BYTES_PER_PAGE]
 RAM buffer that mirrors the DICE cert chain in a flash page.
 
hardened_bool_t data_dirty
 Indicate whether data needs to be written back to flash.
 
size_t tail_offset
 The amount of bytes in data that has been processed.
 
const flash_ctrl_info_page_tinfo_page
 Indicate the info page currently buffered in data. More...
 
cert_key_id_pair_t key_ids
 Id pair which points to the endorsement and cert ids below.
 
hmac_digest_t endorsement_pubkey_id
 Public key id for signing endorsement cert.
 
hmac_digest_t subject_pubkey_id
 Subject public key id of the current cert.
 
ecdsa_p256_public_key_t subject_pubkey
 Subject public key contents of the current cert.
 
uint8_t scratch_cert [kScratchCertSizeBytes]
 Scratch buffer for constructing CDI certs.
 
perso_tlv_cert_obj_t cert_obj
 The current tlv cert the builder is processing.
 
hardened_bool_t cert_valid
 Indicate whether the cert_obj is valid for the current subject_pubkey.
 

Detailed Description

Defines a class for parsing and building the DICE cert chain.

All of the fields in this struct should be considered private, and users should call the public dice_chain_* functions instead.

Definition at line 41 of file dice_chain.c.

Field Documentation

◆ cert_obj

perso_tlv_cert_obj_t dice_chain::cert_obj

The current tlv cert the builder is processing.

Definition at line 91 of file dice_chain.c.

◆ cert_valid

hardened_bool_t dice_chain::cert_valid

Indicate whether the cert_obj is valid for the current subject_pubkey.

Definition at line 96 of file dice_chain.c.

◆ data

uint8_t dice_chain::data[FLASH_CTRL_PARAM_BYTES_PER_PAGE]

RAM buffer that mirrors the DICE cert chain in a flash page.

Definition at line 45 of file dice_chain.c.

◆ data_dirty

hardened_bool_t dice_chain::data_dirty

Indicate whether data needs to be written back to flash.

Definition at line 50 of file dice_chain.c.

◆ endorsement_pubkey_id

hmac_digest_t dice_chain::endorsement_pubkey_id

Public key id for signing endorsement cert.

Definition at line 71 of file dice_chain.c.

◆ info_page

const flash_ctrl_info_page_t* dice_chain::info_page

Indicate the info page currently buffered in data.

This is used to skip unnecessary read ops.

Definition at line 61 of file dice_chain.c.

◆ key_ids

cert_key_id_pair_t dice_chain::key_ids

Id pair which points to the endorsement and cert ids below.

Definition at line 66 of file dice_chain.c.

◆ scratch_cert

uint8_t dice_chain::scratch_cert[kScratchCertSizeBytes]

Scratch buffer for constructing CDI certs.

Definition at line 86 of file dice_chain.c.

◆ subject_pubkey

ecdsa_p256_public_key_t dice_chain::subject_pubkey

Subject public key contents of the current cert.

Definition at line 81 of file dice_chain.c.

◆ subject_pubkey_id

hmac_digest_t dice_chain::subject_pubkey_id

Subject public key id of the current cert.

Definition at line 76 of file dice_chain.c.

◆ tail_offset

size_t dice_chain::tail_offset

The amount of bytes in data that has been processed.

Definition at line 55 of file dice_chain.c.