• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  *
14  * Neither the name of ARM nor the names of its contributors may be used
15  * to endorse or promote products derived from this software without specific
16  * prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #include <stdio.h>
32 #include <string.h>
33 #include <openssl/err.h>
34 #include <openssl/x509v3.h>
35 #include "ext.h"
36 #include "platform_oid.h"
37 
38 ext_t tbb_ext[] = {
39 	{
40 		.oid = TZ_FW_NVCOUNTER_OID,
41 		.sn = "TrustedNvCounter",
42 		.ln = "Non-volatile trusted counter",
43 		.type = V_ASN1_INTEGER
44 	},
45 	{
46 		.oid = NTZ_FW_NVCOUNTER_OID,
47 		.sn = "NonTrustedNvCounter",
48 		.ln = "Non-volatile non-trusted counter",
49 		.type = V_ASN1_INTEGER
50 	},
51 	{
52 		.oid = BL2_HASH_OID,
53 		.sn = "TrustedBootFirmwareHash",
54 		.ln = "Trusted Boot Firmware (BL2) hash (SHA256)",
55 		.type = V_ASN1_OCTET_STRING
56 	},
57 	{
58 		.oid = TZ_WORLD_PK_OID,
59 		.sn = "TrustedWorldPublicKey",
60 		.ln = "Trusted World Public Key",
61 		.type = V_ASN1_OCTET_STRING
62 	},
63 	{
64 		.oid = NTZ_WORLD_PK_OID,
65 		.sn = "NonTrustedWorldPublicKey",
66 		.ln = "Non-Trusted World Public Key",
67 		.type = V_ASN1_OCTET_STRING
68 	},
69 	{
70 		.oid = BL31_CONTENT_CERT_PK_OID,
71 		.sn = "SoCFirmwareContentCertPK",
72 		.ln = "SoC Firmware content certificate public key",
73 		.type = V_ASN1_OCTET_STRING
74 	},
75 	{
76 		.oid = BL31_HASH_OID,
77 		.sn = "APROMPatchHash",
78 		.ln = "AP ROM patch hash",
79 		.type = V_ASN1_OCTET_STRING
80 	},
81 	{
82 		.oid = BL30_CONTENT_CERT_PK_OID,
83 		.sn = "SCPFirmwareContentCertPK",
84 		.ln = "SCP Firmware content certificate public key",
85 		.type = V_ASN1_OCTET_STRING
86 	},
87 	{
88 		.oid = BL30_HASH_OID,
89 		.sn = "SCPFirmwareHash",
90 		.ln = "SCP Firmware (BL30) hash (SHA256)",
91 		.type = V_ASN1_OCTET_STRING
92 	},
93 	{
94 		.oid = BL32_CONTENT_CERT_PK_OID,
95 		.sn = "TrustedOSFirmwareContentCertPK",
96 		.ln = "Trusted OS Firmware content certificate public key",
97 		.type = V_ASN1_OCTET_STRING
98 	},
99 	{
100 		.oid = BL32_HASH_OID,
101 		.sn = "TrustedOSHash",
102 		.ln = "Trusted OS (BL32) hash (SHA256)",
103 		.type = V_ASN1_OCTET_STRING
104 	},
105 	{
106 		.oid = BL33_CONTENT_CERT_PK_OID,
107 		.sn = "NonTrustedFirmwareContentCertPK",
108 		.ln = "Non-Trusted Firmware content certificate public key",
109 		.type = V_ASN1_OCTET_STRING
110 	},
111 	{
112 		.oid = BL33_HASH_OID,
113 		.sn = "NonTrustedWorldBootloaderHash",
114 		.ln = "Non-Trusted World (BL33) hash (SHA256)",
115 		.type = V_ASN1_OCTET_STRING
116 	},
117 	{ 0, 0, 0, 0 }
118 };
119