1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2023-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21  * DEALINGS IN THE SOFTWARE.
22  */
23 
24 #ifndef CC_KEYSTORE_H
25 #define CC_KEYSTORE_H
26 
27 //
28 // Keys are typically grouped in two's so that the first key is used for CPU-to-GPU encryption
29 // and the second key is used for GPU-to-CPU encryption.
30 //
31 
32 // Keyspace identifiers.
33 enum
34 {
35     CC_KEYSPACE_GSP,
36     CC_KEYSPACE_SEC2,
37     CC_KEYSPACE_LCE0,
38     CC_KEYSPACE_LCE1,
39     CC_KEYSPACE_LCE2,
40     CC_KEYSPACE_LCE3,
41     CC_KEYSPACE_LCE4,
42     CC_KEYSPACE_LCE5,
43     CC_KEYSPACE_LCE6,
44     CC_KEYSPACE_LCE7,
45     CC_KEYSPACE_SIZE // This is always the last element.
46 };
47 
48 enum
49 {
50     CC_LKEYID_CPU_GSP_LOCKED_RPC,
51     CC_LKEYID_GSP_CPU_LOCKED_RPC,
52     CC_LKEYID_CPU_GSP_DMA,
53     CC_LKEYID_GSP_CPU_DMA,
54     CC_LKEYID_CPU_GSP_RESERVED1,
55     CC_LKEYID_GSP_CPU_REPLAYABLE_FAULT,
56     CC_LKEYID_CPU_GSP_RESERVED2,
57     CC_LKEYID_GSP_CPU_NON_REPLAYABLE_FAULT,
58     CC_LKEYID_SEC2_GSP_LOCKED_RPC,
59     CC_LKEYID_GSP_SEC2_LOCKED_RPC,
60     CC_KEYSPACE_GSP_SIZE // This is always the last element.
61 };
62 // The fault buffers only support GPU-to-CPU encryption, so the CPU-to-GPU encryption slot
63 // is left reserved.
64 
65 #define CC_LKEYID_GSP_CPU_LOCKED_RPC_STR           "gsp_cpu_locked_rpc"
66 #define CC_LKEYID_CPU_GSP_LOCKED_RPC_STR           "cpu_gsp_locked_rpc"
67 #define CC_LKEYID_GSP_CPU_DMA_STR                  "gsp_cpu_dma"
68 #define CC_LKEYID_CPU_GSP_DMA_STR                  "cpu_gsp_dma"
69 #define CC_LKEYID_GSP_CPU_REPLAYABLE_FAULT_STR     "gsp_cpu_replayable_fault"
70 #define CC_LKEYID_GSP_CPU_NON_REPLAYABLE_FAULT_STR "gsp_cpu_non_replayable_fault"
71 
72 enum
73 {
74     CC_LKEYID_CPU_SEC2_DATA_USER,
75     CC_LKEYID_CPU_SEC2_HMAC_USER,
76     CC_LKEYID_CPU_SEC2_DATA_KERN,
77     CC_LKEYID_CPU_SEC2_HMAC_KERN,
78     CC_LKEYID_CPU_SEC2_DATA_SCRUBBER,
79     CC_LKEYID_CPU_SEC2_HMAC_SCRUBBER,
80     CC_KEYSPACE_SEC2_SIZE // This is always the last element.
81 };
82 
83 #define CC_LKEYID_CPU_SEC2_DATA_USER_STR     "cpu_sec2_data_user"
84 #define CC_LKEYID_CPU_SEC2_HMAC_USER_STR     "cpu_sec2_hmac_user"
85 #define CC_LKEYID_CPU_SEC2_DATA_KERN_STR     "cpu_sec2_data_kernel"
86 #define CC_LKEYID_CPU_SEC2_HMAC_KERN_STR     "cpu_sec2_hmac_kernel"
87 #define CC_LKEYID_CPU_SEC2_DATA_SCRUBBER_STR "cpu_sec2_data_scrubber"
88 #define CC_LKEYID_CPU_SEC2_HMAC_SCRUBBER_STR "cpu_sec2_hmac_scrubber"
89 
90 enum
91 {
92     CC_LKEYID_LCE_H2D_USER,
93     CC_LKEYID_LCE_D2H_USER,
94     CC_LKEYID_LCE_H2D_KERN,
95     CC_LKEYID_LCE_D2H_KERN,
96     CC_LKEYID_LCE_H2D_P2P,
97     CC_LKEYID_LCE_D2H_P2P,
98     CC_KEYSPACE_LCE_SIZE // This is always the last element.
99 };
100 
101 #define CC_KEYSPACE_TOTAL_SIZE (CC_KEYSPACE_GSP_SIZE + CC_KEYSPACE_SEC2_SIZE + (8 * CC_KEYSPACE_LCE_SIZE))
102 
103 #define CC_LKEYID_LCE0_H2D_USER_STR "Lce0_h2d_user"
104 #define CC_LKEYID_LCE0_D2H_USER_STR "Lce0_d2h_user"
105 #define CC_LKEYID_LCE0_H2D_KERN_STR "Lce0_h2d_kernel"
106 #define CC_LKEYID_LCE0_D2H_KERN_STR "Lce0_d2h_kernel"
107 #define CC_LKEYID_LCE0_H2D_P2P_STR  "Lce0_h2d_p2p"
108 #define CC_LKEYID_LCE0_D2H_P2P_STR  "Lce0_d2h_p2p"
109 
110 #define CC_LKEYID_LCE1_H2D_USER_STR "Lce1_h2d_user"
111 #define CC_LKEYID_LCE1_D2H_USER_STR "Lce1_d2h_user"
112 #define CC_LKEYID_LCE1_H2D_KERN_STR "Lce1_h2d_kernel"
113 #define CC_LKEYID_LCE1_D2H_KERN_STR "Lce1_d2h_kernel"
114 #define CC_LKEYID_LCE1_H2D_P2P_STR  "Lce1_h2d_p2p"
115 #define CC_LKEYID_LCE1_D2H_P2P_STR  "Lce1_d2h_p2p"
116 
117 #define CC_LKEYID_LCE2_H2D_USER_STR "Lce2_h2d_user"
118 #define CC_LKEYID_LCE2_D2H_USER_STR "Lce2_d2h_user"
119 #define CC_LKEYID_LCE2_H2D_KERN_STR "Lce2_h2d_kernel"
120 #define CC_LKEYID_LCE2_D2H_KERN_STR "Lce2_d2h_kernel"
121 #define CC_LKEYID_LCE2_H2D_P2P_STR  "Lce2_h2d_p2p"
122 #define CC_LKEYID_LCE2_D2H_P2P_STR  "Lce2_d2h_p2p"
123 
124 #define CC_LKEYID_LCE3_H2D_USER_STR "Lce3_h2d_user"
125 #define CC_LKEYID_LCE3_D2H_USER_STR "Lce3_d2h_user"
126 #define CC_LKEYID_LCE3_H2D_KERN_STR "Lce3_h2d_kernel"
127 #define CC_LKEYID_LCE3_D2H_KERN_STR "Lce3_d2h_kernel"
128 #define CC_LKEYID_LCE3_H2D_P2P_STR  "Lce3_h2d_p2p"
129 #define CC_LKEYID_LCE3_D2H_P2P_STR  "Lce3_d2h_p2p"
130 
131 #define CC_LKEYID_LCE4_H2D_USER_STR "Lce4_h2d_user"
132 #define CC_LKEYID_LCE4_D2H_USER_STR "Lce4_d2h_user"
133 #define CC_LKEYID_LCE4_H2D_KERN_STR "Lce4_h2d_kernel"
134 #define CC_LKEYID_LCE4_D2H_KERN_STR "Lce4_d2h_kernel"
135 #define CC_LKEYID_LCE4_H2D_P2P_STR  "Lce4_h2d_p2p"
136 #define CC_LKEYID_LCE4_D2H_P2P_STR  "Lce4_d2h_p2p"
137 
138 #define CC_LKEYID_LCE5_H2D_USER_STR "Lce5_h2d_user"
139 #define CC_LKEYID_LCE5_D2H_USER_STR "Lce5_d2h_user"
140 #define CC_LKEYID_LCE5_H2D_KERN_STR "Lce5_h2d_kernel"
141 #define CC_LKEYID_LCE5_D2H_KERN_STR "Lce5_d2h_kernel"
142 #define CC_LKEYID_LCE5_H2D_P2P_STR  "Lce5_h2d_p2p"
143 #define CC_LKEYID_LCE5_D2H_P2P_STR  "Lce5_d2h_p2p"
144 
145 #define CC_LKEYID_LCE6_H2D_USER_STR "Lce6_h2d_user"
146 #define CC_LKEYID_LCE6_D2H_USER_STR "Lce6_d2h_user"
147 #define CC_LKEYID_LCE6_H2D_KERN_STR "Lce6_h2d_kernel"
148 #define CC_LKEYID_LCE6_D2H_KERN_STR "Lce6_d2h_kernel"
149 #define CC_LKEYID_LCE6_H2D_P2P_STR  "Lce6_h2d_p2p"
150 #define CC_LKEYID_LCE6_D2H_P2P_STR  "Lce6_d2h_p2p"
151 
152 #define CC_LKEYID_LCE7_H2D_USER_STR "Lce7_h2d_user"
153 #define CC_LKEYID_LCE7_D2H_USER_STR "Lce7_d2h_user"
154 #define CC_LKEYID_LCE7_H2D_KERN_STR "Lce7_h2d_kernel"
155 #define CC_LKEYID_LCE7_D2H_KERN_STR "Lce7_d2h_kernel"
156 #define CC_LKEYID_LCE7_H2D_P2P_STR  "Lce7_h2d_p2p"
157 #define CC_LKEYID_LCE7_D2H_P2P_STR  "Lce7_d2h_p2p"
158 
159 // Generate a global key ID from a keyspace (a) and local key ID (b).
160 #define CC_GKEYID_GEN(a, b) (NvU32)(((a) << 16) | (b))
161 
162 // Get the keyspace component from a global key ID.
163 #define CC_GKEYID_GET_KEYSPACE(a) (NvU16)((a) >> 16)
164 
165 // Get the local key ID from a global key ID.
166 #define CC_GKEYID_GET_LKEYID(a) (NvU16)((a) & 0xffff)
167 
168 // Decrement/increment the local key ID portion of a global key ID.
169 #define CC_GKEYID_DEC_LKEYID(a) CC_GKEYID_GEN(CC_GKEYID_GET_KEYSPACE((a)), CC_GKEYID_GET_LKEYID((a)) - 1)
170 #define CC_GKEYID_INC_LKEYID(a) CC_GKEYID_GEN(CC_GKEYID_GET_KEYSPACE((a)), CC_GKEYID_GET_LKEYID((a)) + 1)
171 
172 // Get the unqiue string from a global key ID.
173 #define CC_GKEYID_GET_STR(a) \
174     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_GSP) ? \
175         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_GSP_CPU_LOCKED_RPC) ? \
176             CC_LKEYID_GSP_CPU_LOCKED_RPC_STR : \
177         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_GSP_LOCKED_RPC) ? \
178             CC_LKEYID_CPU_GSP_LOCKED_RPC_STR : \
179         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_GSP_CPU_DMA) ? \
180             CC_LKEYID_GSP_CPU_DMA_STR : \
181         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_GSP_DMA) ? \
182             CC_LKEYID_CPU_GSP_DMA_STR : \
183         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_GSP_CPU_REPLAYABLE_FAULT) ? \
184             CC_LKEYID_GSP_CPU_REPLAYABLE_FAULT_STR : \
185         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_GSP_CPU_NON_REPLAYABLE_FAULT) ? \
186             CC_LKEYID_GSP_CPU_NON_REPLAYABLE_FAULT_STR : NULL : \
187     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_SEC2) ? \
188         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_SEC2_DATA_USER) ? \
189             CC_LKEYID_CPU_SEC2_DATA_USER_STR : \
190         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_SEC2_HMAC_USER) ? \
191             CC_LKEYID_CPU_SEC2_HMAC_USER_STR : \
192         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_SEC2_DATA_KERN) ? \
193             CC_LKEYID_CPU_SEC2_DATA_KERN_STR : \
194         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_SEC2_HMAC_KERN) ? \
195             CC_LKEYID_CPU_SEC2_HMAC_KERN_STR : \
196         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_SEC2_DATA_SCRUBBER) ? \
197             CC_LKEYID_CPU_SEC2_DATA_SCRUBBER_STR : \
198         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_CPU_SEC2_HMAC_SCRUBBER) ? \
199             CC_LKEYID_CPU_SEC2_HMAC_SCRUBBER_STR : NULL : \
200     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE0) ? \
201         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
202             CC_LKEYID_LCE0_H2D_USER_STR : \
203         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
204             CC_LKEYID_LCE0_D2H_USER_STR : \
205         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
206             CC_LKEYID_LCE0_H2D_KERN_STR : \
207         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
208             CC_LKEYID_LCE0_D2H_KERN_STR : \
209         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
210             CC_LKEYID_LCE0_H2D_P2P_STR : \
211         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
212             CC_LKEYID_LCE0_D2H_P2P_STR : NULL : \
213     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE1) ? \
214         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
215             CC_LKEYID_LCE1_H2D_USER_STR : \
216         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
217             CC_LKEYID_LCE1_D2H_USER_STR : \
218         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
219             CC_LKEYID_LCE1_H2D_KERN_STR : \
220         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
221             CC_LKEYID_LCE1_D2H_KERN_STR : \
222         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
223             CC_LKEYID_LCE1_H2D_P2P_STR : \
224         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
225             CC_LKEYID_LCE1_D2H_P2P_STR : NULL : \
226     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE2) ? \
227         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
228             CC_LKEYID_LCE2_H2D_USER_STR : \
229         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
230             CC_LKEYID_LCE2_D2H_USER_STR : \
231         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
232             CC_LKEYID_LCE2_H2D_KERN_STR : \
233         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
234             CC_LKEYID_LCE2_D2H_KERN_STR : \
235         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
236             CC_LKEYID_LCE2_H2D_P2P_STR : \
237         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
238             CC_LKEYID_LCE2_D2H_P2P_STR : NULL : \
239     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE3) ? \
240         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
241             CC_LKEYID_LCE3_H2D_USER_STR : \
242         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
243             CC_LKEYID_LCE3_D2H_USER_STR : \
244         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
245             CC_LKEYID_LCE3_H2D_KERN_STR : \
246         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
247             CC_LKEYID_LCE3_D2H_KERN_STR : \
248         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
249             CC_LKEYID_LCE3_H2D_P2P_STR : \
250         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
251             CC_LKEYID_LCE3_D2H_P2P_STR : NULL : \
252     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE4) ? \
253         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
254             CC_LKEYID_LCE4_H2D_USER_STR : \
255         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
256             CC_LKEYID_LCE4_D2H_USER_STR : \
257         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
258             CC_LKEYID_LCE4_H2D_KERN_STR : \
259         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
260             CC_LKEYID_LCE4_D2H_KERN_STR : \
261         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
262             CC_LKEYID_LCE4_H2D_P2P_STR : \
263         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
264             CC_LKEYID_LCE4_D2H_P2P_STR : NULL : \
265     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE5) ? \
266         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
267             CC_LKEYID_LCE5_H2D_USER_STR : \
268         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
269             CC_LKEYID_LCE5_D2H_USER_STR : \
270         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
271             CC_LKEYID_LCE5_H2D_KERN_STR : \
272         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
273             CC_LKEYID_LCE5_D2H_KERN_STR : \
274         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
275             CC_LKEYID_LCE5_H2D_P2P_STR : \
276         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
277             CC_LKEYID_LCE5_D2H_P2P_STR : NULL : \
278     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE6) ? \
279         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
280             CC_LKEYID_LCE6_H2D_USER_STR : \
281         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
282             CC_LKEYID_LCE6_D2H_USER_STR : \
283         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
284             CC_LKEYID_LCE6_H2D_KERN_STR : \
285         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
286             CC_LKEYID_LCE6_D2H_KERN_STR : \
287         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
288             CC_LKEYID_LCE6_H2D_P2P_STR : \
289         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
290             CC_LKEYID_LCE6_D2H_P2P_STR : NULL : \
291     (CC_GKEYID_GET_KEYSPACE(a) == CC_KEYSPACE_LCE7) ? \
292         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_USER) ? \
293             CC_LKEYID_LCE7_H2D_USER_STR : \
294         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_USER) ? \
295             CC_LKEYID_LCE7_D2H_USER_STR : \
296         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_KERN) ? \
297             CC_LKEYID_LCE7_H2D_KERN_STR : \
298         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_KERN) ? \
299             CC_LKEYID_LCE7_D2H_KERN_STR : \
300         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_H2D_P2P) ? \
301             CC_LKEYID_LCE7_H2D_P2P_STR : \
302         (CC_GKEYID_GET_LKEYID(a) == CC_LKEYID_LCE_D2H_P2P) ? \
303             CC_LKEYID_LCE7_D2H_P2P_STR : NULL : NULL
304 
305 #define CC_EXPORT_MASTER_KEY_SIZE_BYTES 32
306 
307 #endif // CC_KEYSTORE_H
308