1 /* 2 * Copyright (c) 2023, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 #ifndef __RSE_KMU_SLOT_IDS_H__ 9 #define __RSE_KMU_SLOT_IDS_H__ 10 11 #include "kmu_drv.h" 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 enum rse_kmu_slot_id_t { 18 RSE_KMU_SLOT_TRAM_KEY = KMU_USER_SLOT_MIN, 19 RSE_KMU_SLOT_VHUK, 20 RSE_KMU_SLOT_CPAK_SEED, 21 #ifdef RSE_BOOT_KEYS_CCA 22 RSE_KMU_SLOT_DAK_SEED, 23 #endif 24 #ifdef RSE_BOOT_KEYS_DPE 25 RSE_KMU_SLOT_ROT_CDI, 26 #endif 27 /* The session key is used for AEAD, so requires two contiguous slots. Only 28 * the first should be used for calls, the key loader and derivation code 29 * will transparently use the second where necessary. 30 */ 31 RSE_KMU_SLOT_SESSION_KEY_0, 32 _RSE_KMU_AEAD_RESERVED_SLOT_SESSION_KEY, 33 /* The CM provisioning key is used for AEAD, so requires two contiguous 34 * slots. Only the first should be used for calls, the key loader and 35 * derivation code will transparently use the second where necessary. 36 */ 37 RSE_KMU_SLOT_CM_PROVISIONING_KEY, 38 _RSE_KMU_AEAD_RESERVED_SLOT_CM_PROVISIONING_KEY, 39 /* The DM provisioning key is used for AEAD, so requires two contiguous 40 * slots. Only the first should be used for calls, the key loader and 41 * derivation code will transparently use the second where necessary. 42 */ 43 RSE_KMU_SLOT_DM_PROVISIONING_KEY, 44 _RSE_KMU_AEAD_RESERVED_SLOT_DM_PROVISIONING_KEY, 45 RSE_KMU_SLOT_SECURE_ENCRYPTION_KEY, 46 RSE_KMU_SLOT_NON_SECURE_ENCRYPTION_KEY, 47 }; 48 49 #ifdef __cplusplus 50 } 51 #endif 52 53 #endif /* __RSE_KMU_SLOT_IDS_H__ */ 54