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