![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Files | |
| file | fsl_nboot_hal.h |
Data Structures | |
| struct | nboot_sb3_header_t |
| NBOOT SB3.1 header type. More... | |
| struct | nboot_certificate_header_block_t |
| NBOOT type for the header of the certificate block. More... | |
| struct | nboot_ctrk_hash_table_t |
| NBOOT type for the hash table. More... | |
| struct | nboot_ecdsa_public_key_t |
| NBOOT type for an ECC point. More... | |
| struct | nboot_root_certificate_block_t |
| NBOOT type for the root certificate block. More... | |
| struct | nboot_ecdsa_signature_t |
| NBOOT type for an ECC signature. More... | |
| struct | nboot_isk_block_t |
| NBOOT type for the isk block. More... | |
| struct | nboot_certificate_block_t |
| NBOOT type for the certificate block. More... | |
Macros | |
| #define | NBOOT_UUID_SIZE_IN_WORD (4) |
| The size of the UUID. More... | |
| #define | NBOOT_PUF_AC_SIZE_IN_BYTE (996) |
| The size of the PUF activation code. More... | |
| #define | NBOOT_PUF_KC_SIZE_IN_BYTE (84) |
| The size of the PUF key code. More... | |
| #define | NBOOT_KEY_STORE_SIZE_IN_BYTE (NBOOT_PUF_AC_SIZE_IN_BYTE + 8) |
| The size of the key store. More... | |
| #define | NBOOT_ROOT_ROTKH_SIZE_IN_WORD (12) |
| The size of the root of trust key table hash. More... | |
| #define | NBOOT_KEY_BLOB_SIZE_IN_BYTE_256 (32) |
| The size of the blob with Key Blob. More... | |
| #define | NBOOT_DBG_AUTH_DBG_STATE_MASK (0x0000FFFFu) |
| The mask of the value of the debug state . More... | |
| #define | NBOOT_DBG_AUTH_DBG_STATE_SHIFT (16) |
| The shift inverted value of the debug state. More... | |
| #define | NBOOT_DBG_AUTH_DBG_STATE_ALL_DISABLED (0xFFFF0000u) |
| The value with all debug feature disabled. More... | |
| #define | NBOOT_DICE_CSR_SIZE_IN_WORD (36) |
| The size of the DICE certificate. More... | |
| #define | NBOOT_DICE_CSR_ADDRESS (0x30000000u) |
| The physical address to put the DICE certificate. More... | |
| #define | NBOOT_IPED_IV_OFFSET (3U) |
| The offset for the PRCINE/IPED erase region return by nboot mem checker. More... | |
Typedefs | |
| typedef uint32_t | nboot_timestamp_t [2] |
| NBOOT type for a timestamp. More... | |
| typedef uint8_t | nboot_ecc_coordinate_t [NBOOT_EC_COORDINATE_MAX_SIZE] |
| NBOOT type for an ECC coordinate. More... | |
Enumerations | |
| enum | nboot_hash_algo_t { kHASH_Sha1 = 1, kHASH_Sha256 = 2, kHASH_Sha512 = 3, kHASH_Aes = 4, kHASH_AesIcb = 5 } |
| Algorithm used for nboot HASH operation. More... | |
| struct nboot_sb3_header_t |
This type defines the header used in the SB3.1 manifest
Data Fields | |
| uint32_t | magic |
| offset 0x00: Fixed 4-byte string of 'sbv3' without the trailing NULL | |
| uint32_t | formatVersion |
| offset 0x04: (major = 3, minor = 1); The format version determines the manifest (block0) size. More... | |
| uint32_t | flags |
| offset 0x08: not defined yet, keep zero for future compatibility | |
| uint32_t | blockCount |
| offset 0x0C: Number of blocks not including the manifest (block0). More... | |
| uint32_t | blockSize |
| offset 0x10: Size in bytes of data block (repeated blockCount times for SB3 data stream). More... | |
| nboot_timestamp_t | timeStamp |
| offset 0x14: 64-bit value used as key derivation data. More... | |
| uint32_t | firmwareVersion |
| offset 0x1c: Version number of the included firmware | |
| uint32_t | imageTotalLength |
| offset 0x20: Total manifest length in bytes, including signatures etc. More... | |
| uint32_t | imageType |
| offset 0x24: image type and flags | |
| uint32_t | certificateBlockOffset |
| offset 0x28: Offset from start of header block to the certificate block. More... | |
| uint8_t | description [16] |
| offset 0x32: This field provides description of the file. More... | |
| uint32_t nboot_sb3_header_t::formatVersion |
| uint32_t nboot_sb3_header_t::blockCount |
| uint32_t nboot_sb3_header_t::blockSize |
| nboot_timestamp_t nboot_sb3_header_t::timeStamp |
| uint32_t nboot_sb3_header_t::imageTotalLength |
| uint32_t nboot_sb3_header_t::certificateBlockOffset |
| uint8_t nboot_sb3_header_t::description[16] |
It is an arbitrary string injected by the signing tool, which helps to identify the file.
| struct nboot_certificate_header_block_t |
This type defines the NBOOT header of the certificate block, it is part of the nboot_certificate_block_t
Data Fields | |
| uint32_t | magic |
| magic number. More... | |
| uint32_t | formatMajorMinorVersion |
| format major minor version | |
| uint32_t | certBlockSize |
| Size of the full certificate block. | |
| uint32_t nboot_certificate_header_block_t::magic |
| struct nboot_ctrk_hash_table_t |
This type defines the NBOOT hash table
| struct nboot_ecdsa_public_key_t |
This type defines the NBOOT ECC point type
Data Fields | |
| nboot_ecc_coordinate_t | x |
| x portion of the ECDSA public key, up to 384-bits. More... | |
| nboot_ecc_coordinate_t | y |
| y portion of the ECDSA public key, up to 384-bits. More... | |
| nboot_ecc_coordinate_t nboot_ecdsa_public_key_t::x |
big endian.
| nboot_ecc_coordinate_t nboot_ecdsa_public_key_t::y |
big endian.
| struct nboot_root_certificate_block_t |
This type defines the NBOOT root certificate block, it is part of the nboot_certificate_block_t
Data Fields | |
| uint32_t | flags |
| root certificate flags | |
| nboot_ctrk_hash_table_t | ctrkHashTable |
| hash table | |
| nboot_ecdsa_public_key_t | rootPublicKey |
| root public key | |
| struct nboot_ecdsa_signature_t |
This type defines the NBOOT ECC signature type
Data Fields | |
| nboot_ecc_coordinate_t | r |
| r portion of the ECDSA signature, up to 384-bits. More... | |
| nboot_ecc_coordinate_t | s |
| s portion of the ECDSA signature, up to 384-bits. More... | |
| nboot_ecc_coordinate_t nboot_ecdsa_signature_t::r |
big endian.
| nboot_ecc_coordinate_t nboot_ecdsa_signature_t::s |
big endian.
| struct nboot_isk_block_t |
This type defines the constant length part of an NBOOT isk block
Data Fields | |
| uint32_t | signatureOffset |
| Offset of signature in ISK block. More... | |
| uint32_t | constraints |
| Version number of signing certificate. More... | |
| uint32_t | iskFlags |
| Reserved for definiton of ISK certificate flags. More... | |
| nboot_ecdsa_public_key_t | iskPubKey |
| Public key of signing certificate. More... | |
| nboot_ecdsa_public_key_t | userData |
| Space for at lest one addition public key. | |
| nboot_ecdsa_signature_t | iskSign |
| ISK signature. | |
| uint32_t nboot_isk_block_t::signatureOffset |
| uint32_t nboot_isk_block_t::constraints |
| uint32_t nboot_isk_block_t::iskFlags |
| nboot_ecdsa_public_key_t nboot_isk_block_t::iskPubKey |
Variable length; only used to determine start address
| struct nboot_certificate_block_t |
This type defines the constant length part of an NBOOT certificate block
Data Fields | |
| nboot_isk_block_t | iskBlock |
| Details of selected root certificate (root certificate which will be used for ISK signing/SB3 header signing) | |
| #define NBOOT_UUID_SIZE_IN_WORD (4) |
| #define NBOOT_PUF_AC_SIZE_IN_BYTE (996) |
| #define NBOOT_PUF_KC_SIZE_IN_BYTE (84) |
| #define NBOOT_KEY_STORE_SIZE_IN_BYTE (NBOOT_PUF_AC_SIZE_IN_BYTE + 8) |
| #define NBOOT_ROOT_ROTKH_SIZE_IN_WORD (12) |
| #define NBOOT_KEY_BLOB_SIZE_IN_BYTE_256 (32) |
| #define NBOOT_DBG_AUTH_DBG_STATE_MASK (0x0000FFFFu) |
| #define NBOOT_DBG_AUTH_DBG_STATE_SHIFT (16) |
| #define NBOOT_DBG_AUTH_DBG_STATE_ALL_DISABLED (0xFFFF0000u) |
| #define NBOOT_DICE_CSR_SIZE_IN_WORD (36) |
| #define NBOOT_DICE_CSR_ADDRESS (0x30000000u) |
| #define NBOOT_IPED_IV_OFFSET (3U) |
| typedef uint32_t nboot_timestamp_t[2] |
This type defines the NBOOT timestamp
| typedef uint8_t nboot_ecc_coordinate_t[NBOOT_EC_COORDINATE_MAX_SIZE] |
This type defines the NBOOT ECC coordinate typeECC point coordinate, up to 384-bits. big endian.
| enum nboot_hash_algo_t |