blob: 2e628e13c171e79ae60f15a6c8866c5b8792f11d [file] [log] [blame]
/*
* Copyright (c) 2019-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#ifndef __TFM_ATTEST_IAT_DEFS_H__
#define __TFM_ATTEST_IAT_DEFS_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "config_tfm.h"
#if ATTEST_TOKEN_PROFILE_PSA_IOT_1
/* In case of the original PSA_IOT_PROFILE_1 */
#define IAT_ARM_RANGE_BASE (-75000)
#define IAT_PROFILE_DEFINITION (IAT_ARM_RANGE_BASE - 0)
#define IAT_CLIENT_ID (IAT_ARM_RANGE_BASE - 1)
#define IAT_SECURITY_LIFECYCLE (IAT_ARM_RANGE_BASE - 2)
#define IAT_IMPLEMENTATION_ID (IAT_ARM_RANGE_BASE - 3)
#define IAT_BOOT_SEED (IAT_ARM_RANGE_BASE - 4)
#define IAT_CERTIFICATION_REFERENCE (IAT_ARM_RANGE_BASE - 5)
#define IAT_SW_COMPONENTS (IAT_ARM_RANGE_BASE - 6)
#define IAT_NO_SW_COMPONENTS (IAT_ARM_RANGE_BASE - 7)
#define IAT_NONCE (IAT_ARM_RANGE_BASE - 8)
#define IAT_INSTANCE_ID (IAT_ARM_RANGE_BASE - 9)
#define IAT_VERIFICATION_SERVICE (IAT_ARM_RANGE_BASE - 10)
/* Indicates that the boot status intentionally (i.e. the bootloader is not
* capable of producing it) does not contain any SW components' measurement.
* Required integer value for claim labeled IAT_NO_SW_COMPONENTS.
*/
#define NO_SW_COMPONENT_FIXED_VALUE 1
#elif ATTEST_TOKEN_PROFILE_PSA_2_0_0
/* In case of PSA_2_0_0 (updated PSA profile ) */
#define IAT_NONCE 10 /* EAT nonce */
#define IAT_INSTANCE_ID 256 /* EAT ueid */
#define IAT_PROFILE_DEFINITION 265 /* EAT eat_profile */
#define IAT_ARM_RANGE_BASE (2393)
#define IAT_CLIENT_ID (IAT_ARM_RANGE_BASE + 1)
#define IAT_SECURITY_LIFECYCLE (IAT_ARM_RANGE_BASE + 2)
#define IAT_IMPLEMENTATION_ID (IAT_ARM_RANGE_BASE + 3)
#define IAT_BOOT_SEED (IAT_ARM_RANGE_BASE + 4)
#define IAT_CERTIFICATION_REFERENCE (IAT_ARM_RANGE_BASE + 5)
#define IAT_SW_COMPONENTS (IAT_ARM_RANGE_BASE + 6)
#define IAT_VERIFICATION_SERVICE (IAT_ARM_RANGE_BASE + 7)
#elif ATTEST_TOKEN_PROFILE_ARM_CCA
/* In case of ARM_CCA profile */
#define IAT_NONCE 10 /* EAT nonce*/
#define IAT_INSTANCE_ID 256 /* EAT ueid */
#define IAT_PROFILE_DEFINITION 265 /* EAT eat_profile */
#define IAT_ARM_RANGE_BASE (2393)
#define IAT_CLIENT_ID (IAT_ARM_RANGE_BASE + 1)
#define IAT_SECURITY_LIFECYCLE (IAT_ARM_RANGE_BASE + 2)
#define IAT_IMPLEMENTATION_ID (IAT_ARM_RANGE_BASE + 3)
#define IAT_BOOT_SEED (IAT_ARM_RANGE_BASE + 4)
#define IAT_CERTIFICATION_REFERENCE (IAT_ARM_RANGE_BASE + 5)
#define IAT_SW_COMPONENTS (IAT_ARM_RANGE_BASE + 6)
#define IAT_VERIFICATION_SERVICE (IAT_ARM_RANGE_BASE + 7)
#define IAT_PLATFORM_CONFIG (IAT_ARM_RANGE_BASE + 8)
#define IAT_PLATFORM_HASH_ALGO_ID (IAT_ARM_RANGE_BASE + 9)
#else
#error "Attestation token profile is incorrect"
#endif
#define IAT_SW_COMPONENT_MEASUREMENT_TYPE (1)
#define IAT_SW_COMPONENT_MEASUREMENT_VALUE (2)
/* Reserved (3) */
#define IAT_SW_COMPONENT_VERSION (4)
#define IAT_SW_COMPONENT_SIGNER_ID (5)
#define IAT_SW_COMPONENT_MEASUREMENT_DESC (6)
#ifdef __cplusplus
}
#endif
#endif /* __TFM_ATTEST_IAT_DEFS_H__ */