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