1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2023, Arm Limited. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef ETHOSN_CERT_H 8*91f16700Schasinglulu #define ETHOSN_CERT_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include "ethosn_oid.h" 11*91f16700Schasinglulu #include <tbbr/tbb_ext.h> 12*91f16700Schasinglulu #include <tbbr/tbb_key.h> 13*91f16700Schasinglulu 14*91f16700Schasinglulu /* Arm(R) Ethos(TM)-N NPU Certificates */ 15*91f16700Schasinglulu #define ETHOSN_NPU_FW_KEY_CERT_DEF { \ 16*91f16700Schasinglulu .id = ETHOSN_NPU_FW_KEY_CERT, \ 17*91f16700Schasinglulu .opt = "npu-fw-key-cert", \ 18*91f16700Schasinglulu .help_msg = "Arm(R) Ethos(TM)-N NPU Firmware Key Certificate (output file)", \ 19*91f16700Schasinglulu .fn = NULL, \ 20*91f16700Schasinglulu .cn = "NPU Firmware Key Certificate", \ 21*91f16700Schasinglulu .key = NON_TRUSTED_WORLD_KEY, \ 22*91f16700Schasinglulu .issuer = ETHOSN_NPU_FW_KEY_CERT, \ 23*91f16700Schasinglulu .ext = { \ 24*91f16700Schasinglulu NON_TRUSTED_FW_NVCOUNTER_EXT, \ 25*91f16700Schasinglulu ETHOSN_NPU_FW_CONTENT_CERT_PK_EXT, \ 26*91f16700Schasinglulu }, \ 27*91f16700Schasinglulu .num_ext = 2 \ 28*91f16700Schasinglulu } 29*91f16700Schasinglulu 30*91f16700Schasinglulu #define ETHOSN_NPU_FW_CONTENT_CERT_DEF { \ 31*91f16700Schasinglulu .id = ETHOSN_NPU_FW_CONTENT_CERT, \ 32*91f16700Schasinglulu .opt = "npu-fw-cert", \ 33*91f16700Schasinglulu .help_msg = "Arm(R) Ethos(TM)-N NPU Firmware Content Certificate (output file)",\ 34*91f16700Schasinglulu .fn = NULL, \ 35*91f16700Schasinglulu .cn = "NPU Firmware Content Certificate", \ 36*91f16700Schasinglulu .key = ETHOSN_NPU_FW_CONTENT_CERT_KEY, \ 37*91f16700Schasinglulu .issuer = ETHOSN_NPU_FW_CONTENT_CERT, \ 38*91f16700Schasinglulu .ext = { \ 39*91f16700Schasinglulu NON_TRUSTED_FW_NVCOUNTER_EXT, \ 40*91f16700Schasinglulu ETHOSN_NPU_FW_HASH_EXT, \ 41*91f16700Schasinglulu }, \ 42*91f16700Schasinglulu .num_ext = 2 \ 43*91f16700Schasinglulu } 44*91f16700Schasinglulu 45*91f16700Schasinglulu /* NPU Extensions */ 46*91f16700Schasinglulu #define ETHOSN_NPU_FW_CONTENT_CERT_PK_EXT_DEF { \ 47*91f16700Schasinglulu .oid = ETHOSN_NPU_FW_CONTENT_CERT_PK_OID, \ 48*91f16700Schasinglulu .help_msg = "Arm(R) Ethos(TM)-N NPU Firmware content certificate public key", \ 49*91f16700Schasinglulu .sn = "NPUFirmwareContentCertPK", \ 50*91f16700Schasinglulu .ln = "NPU Firmware content cerificate public key", \ 51*91f16700Schasinglulu .asn1_type = V_ASN1_OCTET_STRING, \ 52*91f16700Schasinglulu .type = EXT_TYPE_PKEY, \ 53*91f16700Schasinglulu .attr.key = ETHOSN_NPU_FW_CONTENT_CERT_KEY \ 54*91f16700Schasinglulu } 55*91f16700Schasinglulu 56*91f16700Schasinglulu #define ETHOSN_NPU_FW_HASH_EXT_DEF { \ 57*91f16700Schasinglulu .oid = ETHOSN_NPU_FW_BINARY_OID, \ 58*91f16700Schasinglulu .opt = "npu-fw", \ 59*91f16700Schasinglulu .help_msg = "Arm(R) Ethos(TM)-N NPU Firmware image file (input file)", \ 60*91f16700Schasinglulu .sn = "NPUFirmwareHash", \ 61*91f16700Schasinglulu .ln = "NPU Firmware Hash (SHA256)", \ 62*91f16700Schasinglulu .asn1_type = V_ASN1_OCTET_STRING, \ 63*91f16700Schasinglulu .type = EXT_TYPE_HASH \ 64*91f16700Schasinglulu } 65*91f16700Schasinglulu 66*91f16700Schasinglulu /* NPU Keys */ 67*91f16700Schasinglulu #define ETHOSN_NPU_FW_CONTENT_CERT_KEY_DEF { \ 68*91f16700Schasinglulu .id = ETHOSN_NPU_FW_CONTENT_CERT_KEY, \ 69*91f16700Schasinglulu .opt = "npu-fw-key", \ 70*91f16700Schasinglulu .help_msg = "Arm(R) Ethos(TM)-N NPU Firmware Content Certificate key (input/output file)",\ 71*91f16700Schasinglulu .desc = "NPU Firmware Content Certificate key" \ 72*91f16700Schasinglulu } 73*91f16700Schasinglulu 74*91f16700Schasinglulu #endif /* ETHOSN_CERT_H */ 75