S32g2 HSE key config

Key catalog configuration

  • Each catalog entry represent a key group of the same key type.

  • Each group is identified by its index within the catalog.

  • a key group should not contain keys that have keybitLen < maxKeyBitLen

S32g2 ROM Key

/**  HSE ROM key handles.
  *  The ROM key catalog references keys that are provisioned by NXP and can be used by the host.
  *
  *  @note
  *       - The ROM keys have the following access restriction flags set:
  *      \code
  * 
  *             (#HSE_KF_ACCESS_WRITE_PROT | #HSE_KF_ACCESS_DEBUG_PROT)
  * 
  *      \endcode
  */

/** @brief  This key can be used for data encryption/decryption, having the following usage restrictions:
 * \code
 * 
 * (#HSE_KF_USAGE_ENCRYPT | #HSE_KF_USAGE_DECRYPT)
 * 
 * \endcode */
#define HSE_ROM_KEY_AES256_KEY0       ((hseKeyHandle_t)0x00000000UL)

/** @brief This key  can be used for key derivation and key provisioning, having the following usage restrictions:
 * \code
 * 
 * (#HSE_KF_USAGE_DERIVE | #HSE_KF_USAGE_VERIFY | #HSE_KF_USAGE_ENCRYPT | #HSE_KF_USAGE_DECRYPT | #HSE_KF_USAGE_KEY_PROVISION)
 * 
 * \endcode */
#define HSE_ROM_KEY_AES256_KEY1       ((hseKeyHandle_t)0x00000001UL)

/** @brief This key  can be used for RSA encrypt and signature verify, having the following usage restrictions:
 * \code
 * 
 * (#HSE_KF_USAGE_ENCRYPT | #HSE_KF_USAGE_VERIFY)
 * 
 * \endcode */
#define HSE_ROM_KEY_RSA2048_PUB_KEY2  ((hseKeyHandle_t)0x00000100UL)

/** @brief This key can be used for key provisioning having the following usage restrictions:
 * \code
 * 
 * (#HSE_KF_USAGE_VERIFY | #HSE_KF_USAGE_KEY_PROVISION)
 * 
 * \endcode */
#define HSE_ROM_KEY_ECC256_PUB_KEY3   ((hseKeyHandle_t)0x00000200UL)

S32g2 Key Catalog configuration:

/* S32g2 HSE KEY CATALOG CONFIGURATION */
/* hse nvm key catalog configuration 
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_AES, 5U, HSE_KEY128_BITS },
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_AES, 10U, HSE_KEY256_BITS },
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_HMAC, 5U, HSE_KEY512_BITS },
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_ECC_PAIR, 2U, HSE_KEY256_BITS },
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_ECC_PUB, 2U, HSE_KEY256_BITS },
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_ECC_PUB_EXT, 1U, HSE_KEY256_BITS },
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_RSA_PAIR, 2U, HSE_KEY2048_BITS},
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_RSA_PUB, 2U, HSE_KEY2048_BITS},
{ HSE_ALL_MU_MASK, HSE_KEY_OWNER_CUST, HSE_KEY_TYPE_RSA_PUB_EXT, 1U, HSE_KEY2048_BITS},
{ 0U, 0U, 0U, 0U, 0U }
*/

/* hse ram key catalog configuration 
{HSE_ALL_MU_MASK, HSE_KEY_OWNER_ANY, HSE_KEY_TYPE_RSA_PUB, 1u, HSE_KEY2048_BITS },
{HSE_ALL_MU_MASK, HSE_KEY_OWNER_ANY, HSE_KEY_TYPE_AES, 12u, HSE_KEY256_BITS },
{HSE_ALL_MU_MASK, HSE_KEY_OWNER_ANY, HSE_KEY_TYPE_HMAC, 6u, HSE_KEY512_BITS},
{HSE_ALL_MU_MASK, HSE_KEY_OWNER_ANY, HSE_KEY_TYPE_ECC_PUB, 1u, HSE_KEY256_BITS},
{0u, 0u, 0u, 0u, 0u}
*/

NVM key catalog (catalog id = 1)

group id

key type

max key size(bits)

number of keys

0

AES

128

5

1

AES

256

10

2

HMAC

512

5

3

ECC_PAIR

256

2

4

ECC_PUB

256

2

5

ECC_PUB_EXT

256

1

6

RSA_PAIR

2048

2

7

RSA_PUB

2048

2

8

RSA_PUB_EXT

2048

1

RAM key catalog (catalog id = 2)

group id

key type

max key size(bits)

number of keys

0

RSA_PUB

2038

1

1

AES

256

12

2

HMAC

512

6

3

ECC_PUB

256

1

最后更新于