blob: e250429aec054c2d4542b1bad1ddca9afe32b38f [file] [log] [blame]
Tamas Banf70ef8c2017-12-19 15:35:09 +00001/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
Tamas Ban81daed02019-05-20 15:05:22 +010020/*
21 * Original code taken from mcuboot project at:
Tamas Banc5b2f2b2020-11-12 09:47:05 +000022 * https://github.com/mcu-tools/mcuboot
David Vincze2ddc1372019-10-25 11:10:08 +020023 * Git SHA of the original version: ac55554059147fff718015be9f4bd3108123f50a
Arnold Gabriel Benedict45216a22023-02-01 08:31:42 +000024 * Modifications are Copyright (c) 2019-2023 Arm Limited.
Tamas Ban81daed02019-05-20 15:05:22 +010025 */
26
David Vinczef5c1e062020-03-31 17:05:34 +020027#include <stddef.h>
Tamas Banf70ef8c2017-12-19 15:35:09 +000028#include <bootutil/sign_key.h>
Balint Matyi2fe04922020-02-18 12:27:38 +000029#include "mcuboot_config/mcuboot_config.h"
Raef Coles79809c72022-03-02 13:48:20 +000030#include "tfm_plat_rotpk.h"
Tamas Banf70ef8c2017-12-19 15:35:09 +000031
Balint Matyi5c476312020-03-31 13:15:39 +010032#ifdef MCUBOOT_ENC_IMAGES
33unsigned char enc_priv_key[] = {
34 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00,
35 0xb4, 0x26, 0x14, 0x49, 0x3d, 0x16, 0x13, 0x3a, 0x6d, 0x9c, 0x84, 0xa9,
36 0x8b, 0x6a, 0x10, 0x20, 0x61, 0xef, 0x48, 0x04, 0xa4, 0x4b, 0x24, 0xf3,
37 0x00, 0x32, 0xac, 0x22, 0xe0, 0x30, 0x27, 0x70, 0x18, 0xe5, 0x55, 0xc8,
38 0xb8, 0x05, 0x34, 0x03, 0xb0, 0xf8, 0xa5, 0x96, 0xd2, 0x48, 0x58, 0xef,
39 0x70, 0xb0, 0x09, 0xdb, 0xe3, 0x58, 0x62, 0xef, 0x99, 0x63, 0x01, 0xb2,
40 0x89, 0xc4, 0xb3, 0xf6, 0x9e, 0x62, 0xbf, 0x4d, 0xc2, 0x8a, 0xd0, 0xc9,
41 0x4d, 0x43, 0xa3, 0xd8, 0xe5, 0x1d, 0xec, 0x62, 0x63, 0x08, 0xe2, 0x20,
42 0xa5, 0xfc, 0x78, 0xd0, 0x3e, 0x74, 0xc8, 0xa4, 0x1b, 0x36, 0xad, 0x7b,
43 0xf5, 0x06, 0xae, 0x4d, 0x51, 0x9b, 0x40, 0xce, 0x30, 0x4f, 0x6c, 0xea,
44 0xf9, 0xe9, 0x74, 0xea, 0x06, 0xee, 0x9c, 0xe4, 0x14, 0x68, 0x20, 0xb9,
45 0x3d, 0xe7, 0x11, 0x14, 0x8b, 0x25, 0xa3, 0xff, 0x4c, 0x8a, 0xf3, 0x53,
46 0xee, 0x6b, 0x3e, 0xef, 0x34, 0xcd, 0x6a, 0x3f, 0x62, 0x68, 0xc0, 0xff,
47 0x78, 0x4c, 0xb0, 0xc3, 0xe6, 0x96, 0x61, 0xfc, 0x1f, 0x18, 0xf1, 0x7a,
48 0x82, 0xe2, 0x8f, 0x35, 0xa8, 0x2b, 0x86, 0x16, 0xa4, 0x46, 0xfb, 0xac,
49 0x7e, 0x41, 0xdb, 0x02, 0x05, 0x91, 0x6d, 0xdf, 0xc1, 0xde, 0x13, 0x95,
50 0x9c, 0xf9, 0x9e, 0x5e, 0x72, 0xba, 0xa7, 0x25, 0x93, 0xfb, 0xdc, 0xe8,
51 0xab, 0x86, 0x45, 0x88, 0x47, 0x2d, 0xed, 0xee, 0xee, 0x97, 0x9e, 0xce,
52 0x5d, 0x9b, 0x04, 0x04, 0x40, 0x7c, 0xcb, 0x7c, 0x3d, 0x2c, 0x74, 0xab,
53 0xa4, 0xcc, 0x64, 0xa3, 0x5c, 0x95, 0x3d, 0xd4, 0xa2, 0xdc, 0x92, 0xb2,
54 0xc8, 0x18, 0xcb, 0xf9, 0x00, 0x39, 0x81, 0x8f, 0x8f, 0x40, 0xc2, 0xdf,
55 0x99, 0x29, 0xac, 0x8a, 0xc2, 0x3b, 0xd8, 0xa4, 0xf2, 0xad, 0xaf, 0x74,
56 0xc0, 0x11, 0xc7, 0x99, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01,
57 0x00, 0x42, 0x47, 0x80, 0x4f, 0x31, 0xda, 0x5d, 0x58, 0xb1, 0xdb, 0x54,
58 0x33, 0xcc, 0xc7, 0x49, 0x07, 0xa1, 0x00, 0x98, 0x4e, 0x9c, 0xe3, 0xc8,
59 0xc4, 0x5e, 0xde, 0x45, 0xd6, 0xcf, 0x04, 0xe8, 0x7d, 0xa5, 0xab, 0x3a,
60 0xd4, 0x8e, 0x5f, 0xdb, 0xb3, 0x3f, 0xf9, 0x3b, 0x73, 0x32, 0x0a, 0xcc,
61 0x2d, 0xcc, 0x17, 0xf8, 0x88, 0x9e, 0x2c, 0x76, 0xba, 0x10, 0x85, 0x0c,
62 0xaa, 0xd3, 0x65, 0x3b, 0x91, 0x10, 0xd4, 0xe3, 0xed, 0x88, 0x15, 0xea,
63 0x9b, 0x25, 0x82, 0x2d, 0x56, 0x2f, 0x75, 0xc2, 0xf2, 0xaf, 0xdd, 0x24,
64 0xd5, 0x3e, 0x3c, 0x95, 0x76, 0x88, 0x84, 0x0f, 0x0d, 0xd1, 0xb5, 0x5c,
65 0x3e, 0xae, 0xf7, 0xb6, 0x49, 0x5c, 0x2c, 0xf2, 0xba, 0xe9, 0xab, 0x4f,
66 0x37, 0x64, 0x9b, 0x30, 0x18, 0xaa, 0x54, 0x40, 0x04, 0xea, 0x3d, 0x25,
67 0x4d, 0x02, 0x29, 0x71, 0x6f, 0x4d, 0x82, 0x9b, 0xc3, 0x44, 0x2a, 0x9d,
68 0x0c, 0x98, 0xd3, 0xc8, 0x15, 0x0d, 0x04, 0x93, 0x60, 0x30, 0xc7, 0x5e,
69 0x79, 0xea, 0x53, 0x9d, 0xc0, 0x0e, 0x81, 0xac, 0x90, 0xbc, 0x9e, 0x1e,
70 0xd2, 0x28, 0x0f, 0x10, 0xf5, 0x1f, 0xdf, 0x38, 0x7f, 0x8a, 0x90, 0x8d,
71 0x49, 0x07, 0x7d, 0x78, 0xcb, 0xa7, 0xef, 0x92, 0x6d, 0x3b, 0x13, 0x95,
72 0x9b, 0xba, 0x83, 0xc6, 0xb3, 0x71, 0x25, 0x27, 0x07, 0x99, 0x54, 0x82,
73 0x3d, 0xec, 0xc5, 0xf8, 0xb4, 0xa0, 0x38, 0x7a, 0x59, 0x6a, 0x0b, 0xca,
74 0x69, 0x6c, 0x17, 0xa4, 0x18, 0xe0, 0xb4, 0xaa, 0x89, 0x99, 0x8f, 0xcb,
75 0x71, 0x34, 0x09, 0x1b, 0x6e, 0xe6, 0x87, 0x00, 0xb5, 0xba, 0x70, 0x8a,
76 0x29, 0x3d, 0x9a, 0x06, 0x18, 0x2d, 0x66, 0x5e, 0x61, 0x37, 0xeb, 0xdd,
77 0x5e, 0xc8, 0x28, 0x92, 0x05, 0x30, 0xfd, 0xb8, 0x65, 0xb1, 0x7f, 0xbf,
78 0x2d, 0x55, 0x12, 0x91, 0xc1, 0x02, 0x81, 0x81, 0x00, 0xda, 0x65, 0xda,
79 0x38, 0x7c, 0x18, 0xfb, 0x00, 0x11, 0x60, 0xeb, 0x37, 0x65, 0xb8, 0x83,
80 0x62, 0x88, 0xc4, 0x3a, 0x4e, 0x64, 0x6a, 0xf3, 0x3e, 0x4e, 0xc0, 0x34,
81 0x19, 0x8a, 0xcb, 0x4a, 0xca, 0x2f, 0x5d, 0x50, 0x7a, 0xac, 0xf7, 0x9e,
82 0x87, 0x5a, 0xfc, 0x4d, 0x49, 0xd7, 0xf9, 0x21, 0xf5, 0x0b, 0x6f, 0x57,
83 0x41, 0x3d, 0x8f, 0xb8, 0xec, 0x7f, 0xcc, 0x92, 0x09, 0xbe, 0xd3, 0xa4,
84 0xc3, 0x14, 0x85, 0x21, 0x5d, 0x05, 0xa3, 0xaa, 0x20, 0xf6, 0x62, 0x44,
85 0x50, 0x03, 0x5e, 0x53, 0x4a, 0xcd, 0x6a, 0xb6, 0x65, 0x8e, 0x4e, 0x4b,
86 0x3f, 0x25, 0xc6, 0x16, 0x31, 0xf5, 0x99, 0x13, 0x77, 0x42, 0xda, 0xdc,
87 0x70, 0x4d, 0x65, 0xb0, 0x99, 0x0f, 0xdf, 0x5a, 0xb1, 0x45, 0xf0, 0xb9,
88 0x8e, 0xa0, 0xae, 0x4f, 0x4d, 0x65, 0x09, 0x84, 0xb5, 0x38, 0x29, 0xbf,
89 0x69, 0xe0, 0x88, 0x1f, 0x27, 0x02, 0x81, 0x81, 0x00, 0xd3, 0x2a, 0x59,
90 0xec, 0x28, 0xc3, 0x0d, 0x4f, 0x92, 0x96, 0xca, 0x67, 0x94, 0xfc, 0x2e,
91 0xa6, 0x86, 0x68, 0x45, 0x53, 0x92, 0xcc, 0x86, 0x7f, 0x8a, 0xe1, 0x5d,
92 0xe8, 0x1d, 0x9e, 0xbb, 0x1e, 0x00, 0x26, 0x1d, 0x80, 0x12, 0xff, 0x9c,
93 0x11, 0x0a, 0xbd, 0xa6, 0xc3, 0x8d, 0x48, 0xda, 0xfc, 0x10, 0xf7, 0x7a,
94 0x16, 0x07, 0x15, 0xa0, 0x3a, 0xd3, 0x94, 0xfb, 0x52, 0x87, 0x39, 0xee,
95 0xe7, 0xc4, 0x26, 0x49, 0x16, 0xc6, 0xc0, 0x83, 0x25, 0xbf, 0x6a, 0x4e,
96 0x8c, 0x0b, 0x10, 0x85, 0x66, 0xab, 0x7e, 0xae, 0xac, 0x4c, 0x69, 0x3c,
97 0x44, 0xeb, 0xcd, 0xe9, 0xf6, 0x64, 0x8b, 0x4a, 0xd8, 0x6a, 0x4d, 0x6d,
98 0x47, 0xa9, 0xb8, 0x55, 0x72, 0xc1, 0xfd, 0xf4, 0x81, 0x4c, 0x66, 0xbe,
99 0x49, 0xf2, 0x75, 0x4f, 0x80, 0xf1, 0x20, 0x38, 0xb8, 0x6a, 0x1b, 0x75,
100 0x41, 0x30, 0x0f, 0x1b, 0x3f, 0x02, 0x81, 0x80, 0x09, 0x35, 0xfa, 0x7a,
101 0x1f, 0x61, 0xbe, 0x54, 0x46, 0x67, 0x5c, 0x04, 0x3e, 0x1a, 0x06, 0x10,
102 0x85, 0xcc, 0x20, 0xd9, 0x65, 0x8a, 0xcd, 0x2f, 0x77, 0x8a, 0xcb, 0xa7,
103 0xb8, 0x1e, 0xd2, 0xcc, 0xac, 0x2a, 0xb7, 0x56, 0x35, 0x2d, 0x4c, 0x56,
104 0x51, 0x14, 0x0a, 0xfe, 0x6e, 0x49, 0x67, 0x91, 0x3a, 0x26, 0x3b, 0xfb,
105 0xd8, 0x68, 0xd3, 0x57, 0xc6, 0x1c, 0x0e, 0x9c, 0xb2, 0x9b, 0xa2, 0x7b,
106 0x47, 0xc6, 0x45, 0x9d, 0xf2, 0xba, 0xf0, 0x55, 0xeb, 0x8e, 0x41, 0x6b,
107 0x4e, 0x79, 0x0f, 0xf2, 0x3b, 0xaf, 0xa0, 0x79, 0xb0, 0x02, 0xc5, 0x51,
108 0xa8, 0x7a, 0x2e, 0x3d, 0x75, 0x2a, 0x3b, 0x93, 0xf0, 0x11, 0xe2, 0xf2,
109 0x29, 0x91, 0x7c, 0x5d, 0x38, 0x3a, 0x27, 0x4d, 0x0a, 0xb2, 0x18, 0x61,
110 0x57, 0x8d, 0x82, 0x72, 0xb5, 0x2c, 0x2d, 0x98, 0xa7, 0x01, 0xbb, 0xbc,
111 0xef, 0x67, 0x4e, 0x49, 0x02, 0x81, 0x81, 0x00, 0xb2, 0x70, 0x53, 0x54,
112 0x70, 0x8d, 0x82, 0xad, 0xff, 0x1d, 0x55, 0x24, 0x7a, 0x8d, 0x2f, 0x8e,
113 0xa0, 0x7d, 0x74, 0x37, 0xcf, 0x10, 0xed, 0x86, 0xd1, 0x80, 0xe7, 0xad,
114 0xc1, 0x79, 0xe4, 0x7c, 0xd1, 0x7b, 0x63, 0xea, 0x5a, 0x23, 0x8d, 0x6a,
115 0x09, 0x3d, 0x81, 0xb2, 0x35, 0xad, 0x9e, 0xfe, 0xea, 0x07, 0x76, 0x2f,
116 0x2f, 0x05, 0x63, 0x44, 0xd2, 0x8e, 0x4e, 0x61, 0xca, 0xcb, 0x75, 0xca,
117 0x7b, 0xc2, 0x2e, 0x79, 0x04, 0xb2, 0xa1, 0x20, 0x40, 0xc4, 0x40, 0x63,
118 0xae, 0xe5, 0xe3, 0x14, 0x83, 0x4e, 0xa5, 0xa4, 0x0b, 0x5d, 0xd2, 0x04,
119 0x1b, 0x8f, 0x01, 0x69, 0xa8, 0x44, 0xdc, 0x96, 0x4c, 0x1d, 0xe9, 0x7e,
120 0x69, 0x38, 0xcf, 0x5c, 0x0d, 0xf9, 0xdf, 0xa7, 0x73, 0x3c, 0x4f, 0x08,
121 0x85, 0xce, 0x03, 0xc4, 0xdd, 0xfd, 0x70, 0x70, 0xc5, 0x99, 0x36, 0x58,
122 0x43, 0x98, 0x40, 0x59, 0x02, 0x81, 0x81, 0x00, 0xd5, 0xaa, 0xfb, 0xec,
123 0x8d, 0xc6, 0xdd, 0xfa, 0x2b, 0x5a, 0x24, 0xd0, 0xda, 0x58, 0xbd, 0x87,
124 0x92, 0x1a, 0x29, 0x62, 0x13, 0x1d, 0x4b, 0x79, 0x1b, 0xbe, 0x79, 0x7d,
125 0xad, 0x79, 0xca, 0x17, 0x75, 0xda, 0xe8, 0x32, 0xe8, 0xa0, 0x9e, 0xa8,
126 0x77, 0x53, 0xac, 0x38, 0xd6, 0xeb, 0xe6, 0x22, 0x65, 0xc4, 0xaa, 0x4c,
127 0xc8, 0xd0, 0x33, 0x1a, 0x1e, 0xbe, 0xbd, 0x73, 0x09, 0x4a, 0xfa, 0x85,
128 0x5c, 0xf3, 0x0c, 0x9c, 0x81, 0x56, 0x30, 0xa7, 0xf7, 0x9b, 0xf4, 0x92,
129 0x9c, 0x6b, 0x93, 0x6a, 0x00, 0x33, 0xdc, 0x2f, 0x54, 0x1e, 0x78, 0xd4,
130 0x97, 0xec, 0x24, 0xa2, 0xdb, 0x3d, 0x03, 0x33, 0x09, 0xb2, 0x2c, 0x03,
131 0x05, 0x40, 0xde, 0x52, 0xf2, 0x9b, 0xfa, 0x00, 0x8d, 0x4b, 0xfe, 0x5b,
132 0x9b, 0x9c, 0x73, 0xad, 0xfb, 0x7a, 0x00, 0x42, 0x62, 0x9e, 0xa0, 0x95,
133 0x55, 0x50, 0x32, 0x87
134};
135static unsigned int enc_priv_key_len = 1192;
136
137const struct bootutil_key bootutil_enc_key = {
138 .key = enc_priv_key,
139 .len = &enc_priv_key_len,
140};
141#endif /* MCUBOOT_ENC_IMAGES */
142
Tamas Ban1d37c342019-07-11 08:55:55 +0100143#if !defined(MCUBOOT_HW_KEY)
Tamas Banf70ef8c2017-12-19 15:35:09 +0000144#if defined(MCUBOOT_SIGN_RSA)
Tamas Ban81daed02019-05-20 15:05:22 +0100145#if MCUBOOT_SIGN_RSA_LEN == 2048
146#define HAVE_KEYS
147const unsigned char rsa_pub_key[] = {
148 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
149 0x00, 0xd1, 0x06, 0x08, 0x1a, 0x18, 0x44, 0x2c,
150 0x18, 0xe8, 0xfb, 0xfd, 0xf7, 0x0d, 0xa3, 0x4f,
151 0x1f, 0xbb, 0xee, 0x5e, 0xf9, 0xaa, 0xd2, 0x4b,
152 0x18, 0xd3, 0x5a, 0xe9, 0x6d, 0x18, 0x80, 0x19,
153 0xf9, 0xf0, 0x9c, 0x34, 0x1b, 0xcb, 0xf3, 0xbc,
154 0x74, 0xdb, 0x42, 0xe7, 0x8c, 0x7f, 0x10, 0x53,
155 0x7e, 0x43, 0x5e, 0x0d, 0x57, 0x2c, 0x44, 0xd1,
156 0x67, 0x08, 0x0f, 0x0d, 0xbb, 0x5c, 0xee, 0xec,
157 0xb3, 0x99, 0xdf, 0xe0, 0x4d, 0x84, 0x0b, 0xaa,
158 0x77, 0x41, 0x60, 0xed, 0x15, 0x28, 0x49, 0xa7,
159 0x01, 0xb4, 0x3c, 0x10, 0xe6, 0x69, 0x8c, 0x2f,
160 0x5f, 0xac, 0x41, 0x4d, 0x9e, 0x5c, 0x14, 0xdf,
161 0xf2, 0xf8, 0xcf, 0x3d, 0x1e, 0x6f, 0xe7, 0x5b,
162 0xba, 0xb4, 0xa9, 0xc8, 0x88, 0x7e, 0x47, 0x3c,
163 0x94, 0xc3, 0x77, 0x67, 0x54, 0x4b, 0xaa, 0x8d,
164 0x38, 0x35, 0xca, 0x62, 0x61, 0x7e, 0xb7, 0xe1,
165 0x15, 0xdb, 0x77, 0x73, 0xd4, 0xbe, 0x7b, 0x72,
166 0x21, 0x89, 0x69, 0x24, 0xfb, 0xf8, 0x65, 0x6e,
167 0x64, 0x3e, 0xc8, 0x0e, 0xd7, 0x85, 0xd5, 0x5c,
168 0x4a, 0xe4, 0x53, 0x0d, 0x2f, 0xff, 0xb7, 0xfd,
169 0xf3, 0x13, 0x39, 0x83, 0x3f, 0xa3, 0xae, 0xd2,
170 0x0f, 0xa7, 0x6a, 0x9d, 0xf9, 0xfe, 0xb8, 0xce,
171 0xfa, 0x2a, 0xbe, 0xaf, 0xb8, 0xe0, 0xfa, 0x82,
172 0x37, 0x54, 0xf4, 0x3e, 0xe1, 0x2b, 0xd0, 0xd3,
173 0x08, 0x58, 0x18, 0xf6, 0x5e, 0x4c, 0xc8, 0x88,
174 0x81, 0x31, 0xad, 0x5f, 0xb0, 0x82, 0x17, 0xf2,
175 0x8a, 0x69, 0x27, 0x23, 0xf3, 0xab, 0x87, 0x3e,
176 0x93, 0x1a, 0x1d, 0xfe, 0xe8, 0xf8, 0x1a, 0x24,
177 0x66, 0x59, 0xf8, 0x1c, 0xab, 0xdc, 0xce, 0x68,
178 0x1b, 0x66, 0x64, 0x35, 0xec, 0xfa, 0x0d, 0x11,
179 0x9d, 0xaf, 0x5c, 0x3a, 0xa7, 0xd1, 0x67, 0xc6,
180 0x47, 0xef, 0xb1, 0x4b, 0x2c, 0x62, 0xe1, 0xd1,
181 0xc9, 0x02, 0x03, 0x01, 0x00, 0x01,
Tamas Banf70ef8c2017-12-19 15:35:09 +0000182};
Tamas Ban81daed02019-05-20 15:05:22 +0100183const unsigned int rsa_pub_key_len = 270;
Tintu Thomaseab1b472022-03-21 14:27:58 +0000184#if (MCUBOOT_IMAGE_NUMBER > 1)
Tamas Ban78676ac2019-07-11 09:05:54 +0100185const unsigned char rsa_pub_key_1[] = {
186 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
187 0x00, 0xac, 0xd2, 0x74, 0x93, 0x3e, 0x5f, 0xe7,
188 0xaf, 0xf2, 0xc8, 0x6c, 0xe8, 0x58, 0x51, 0x63,
189 0x77, 0x0e, 0x52, 0xfe, 0x58, 0xd5, 0xbb, 0xa5,
190 0xe3, 0x9c, 0x8a, 0xcd, 0x14, 0x0a, 0x89, 0xc6,
191 0x15, 0xae, 0x49, 0x04, 0x9f, 0x5f, 0x3d, 0x2b,
192 0x89, 0x12, 0x1f, 0x3e, 0x7f, 0x05, 0xfc, 0x0b,
193 0x99, 0x26, 0x63, 0x5e, 0x96, 0xef, 0x33, 0xbc,
194 0x8c, 0x27, 0x68, 0x4d, 0x46, 0x8d, 0x66, 0x33,
195 0x99, 0x3b, 0x38, 0x11, 0x1b, 0xe3, 0xac, 0x18,
196 0x07, 0x95, 0x48, 0x87, 0xb2, 0xab, 0x4f, 0x2d,
197 0x0e, 0x12, 0x51, 0x1b, 0x7f, 0x33, 0xba, 0x78,
198 0xb1, 0xd5, 0xfa, 0x7f, 0xbf, 0x71, 0x4b, 0xe4,
199 0x5f, 0x67, 0x57, 0x67, 0xd5, 0xab, 0xbb, 0x64,
200 0x06, 0x17, 0x3d, 0x81, 0xeb, 0xd8, 0xc1, 0xf9,
201 0x7a, 0x57, 0xd3, 0x29, 0x5c, 0x10, 0xff, 0xa7,
202 0xd3, 0x3a, 0x58, 0x3f, 0x25, 0x8a, 0xc5, 0x84,
203 0x7b, 0x97, 0x27, 0xa5, 0xe4, 0x90, 0xe7, 0xdf,
204 0x1c, 0x33, 0xe6, 0x7c, 0xaf, 0x68, 0x77, 0x5e,
205 0x1f, 0x09, 0x6e, 0xdd, 0x92, 0x60, 0x4e, 0xac,
206 0x73, 0x84, 0xb0, 0xf7, 0xb6, 0x02, 0xc2, 0xce,
207 0x9f, 0xaf, 0xad, 0xb2, 0xb1, 0x57, 0xcc, 0xf9,
208 0x06, 0x1d, 0x6a, 0x25, 0x2f, 0x72, 0x2a, 0x7d,
209 0xfe, 0x0d, 0xed, 0xb8, 0xc2, 0x95, 0x88, 0x41,
210 0xf2, 0x45, 0xa8, 0x6e, 0x6a, 0x85, 0xee, 0xae,
211 0xfa, 0x8a, 0x79, 0xfa, 0xfe, 0x7e, 0x40, 0x49,
212 0x43, 0xec, 0x2c, 0x8e, 0x8e, 0x82, 0x7e, 0xe2,
213 0xf8, 0x0f, 0xf2, 0xe9, 0x7d, 0xa3, 0x7f, 0xac,
214 0x23, 0xbd, 0x0a, 0x42, 0xea, 0x18, 0xfb, 0x72,
215 0xa0, 0x9a, 0x24, 0x01, 0xc8, 0x27, 0x8c, 0x56,
216 0x24, 0x93, 0x82, 0xdf, 0x23, 0x19, 0x96, 0x73,
217 0xf2, 0x11, 0xc3, 0x05, 0xe6, 0xa5, 0xb8, 0x0b,
218 0xe0, 0x73, 0xce, 0x07, 0x9b, 0x57, 0xe6, 0x8e,
219 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01,
220};
221const unsigned int rsa_pub_key_len_1 = 270;
Roland Mikhel00cefb02023-06-05 14:38:02 +0200222#endif /* MCUBOOT_IMAGE_NUMBER > 1 */
Tamas Ban81daed02019-05-20 15:05:22 +0100223#elif MCUBOOT_SIGN_RSA_LEN == 3072
224#define HAVE_KEYS
225const unsigned char rsa_pub_key[] = {
226 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
227 0x00, 0x9c, 0xba, 0xc2, 0x5a, 0xbf, 0xcc, 0xc5,
228 0x4f, 0x20, 0x0c, 0x4f, 0x6f, 0x6c, 0x51, 0x4f,
229 0x5c, 0x0a, 0xab, 0x80, 0xb8, 0x6b, 0x10, 0xc4,
230 0x9b, 0x2b, 0xc4, 0x52, 0x32, 0x09, 0x4b, 0x3b,
231 0x27, 0x94, 0x6a, 0x1d, 0xd5, 0x4c, 0xa8, 0x5c,
232 0xa0, 0xc0, 0x76, 0x95, 0x7b, 0x26, 0x04, 0xb1,
233 0x13, 0x7e, 0x78, 0x27, 0xd6, 0x0c, 0xb4, 0xe8,
234 0xb0, 0x2d, 0x92, 0x52, 0x8a, 0xfb, 0x69, 0xff,
235 0x42, 0x10, 0xaa, 0x56, 0x0c, 0x83, 0xc8, 0x65,
236 0x6e, 0xba, 0x0d, 0x5f, 0x8e, 0xf7, 0x2b, 0x29,
237 0x92, 0xfc, 0x42, 0x2d, 0x2d, 0xf9, 0x80, 0xf5,
238 0x85, 0x21, 0x87, 0xea, 0xac, 0x40, 0xa8, 0xcb,
239 0xd0, 0xa8, 0x3b, 0xe2, 0xd2, 0xec, 0xf0, 0x14,
240 0x48, 0x0e, 0xcf, 0x2b, 0x8a, 0x4b, 0xa4, 0xcd,
241 0xa1, 0x05, 0x5b, 0x17, 0x66, 0x1d, 0xde, 0x6e,
242 0x44, 0xfe, 0x46, 0xa3, 0x0d, 0xd0, 0x69, 0xbf,
243 0x8c, 0xad, 0xa9, 0x16, 0x68, 0x51, 0xeb, 0x79,
244 0x91, 0x20, 0xe6, 0x81, 0x03, 0x07, 0x89, 0x40,
245 0x55, 0x4b, 0xeb, 0xcf, 0x67, 0xf8, 0x31, 0xc7,
246 0x1c, 0x54, 0x4e, 0x52, 0x0b, 0x60, 0xe8, 0xa2,
247 0x50, 0x07, 0xd1, 0xcf, 0xce, 0x12, 0x26, 0xcd,
248 0x8e, 0x82, 0x8d, 0x4e, 0x64, 0xa9, 0xf7, 0xc7,
249 0x21, 0x99, 0x25, 0x07, 0xdd, 0xc5, 0xd5, 0x5f,
250 0xf4, 0x63, 0xfa, 0xcc, 0x2b, 0xda, 0x06, 0x5c,
251 0x59, 0x67, 0xb0, 0x06, 0x35, 0xe9, 0xaa, 0x92,
252 0x45, 0x35, 0xe5, 0xa0, 0x03, 0xff, 0x1c, 0x02,
253 0xb5, 0xc7, 0x4e, 0x94, 0x4b, 0x6e, 0xad, 0x73,
254 0x9d, 0xce, 0x6f, 0x09, 0xb3, 0xb1, 0x8f, 0x60,
255 0x6c, 0xa2, 0xfa, 0xcd, 0x77, 0x0f, 0xcc, 0x27,
256 0xe6, 0x36, 0x58, 0xb3, 0x52, 0xf7, 0x8f, 0xbe,
257 0x49, 0x98, 0xb7, 0xe9, 0x60, 0xfd, 0x97, 0x57,
258 0xcd, 0xea, 0xd3, 0x0b, 0xdf, 0xa2, 0x42, 0xf7,
259 0x44, 0xd3, 0x87, 0xde, 0xe0, 0x10, 0x03, 0x94,
260 0xda, 0xfc, 0xbc, 0xdd, 0xbe, 0x93, 0xb3, 0x4a,
261 0x2b, 0x58, 0xdc, 0x96, 0x12, 0xf2, 0x6f, 0x23,
262 0xba, 0x3b, 0x37, 0xfe, 0xfc, 0x18, 0x1f, 0x75,
263 0x7d, 0x54, 0x01, 0x0e, 0xbe, 0x3d, 0x18, 0x13,
264 0xb3, 0x28, 0xb9, 0x34, 0x2c, 0xd5, 0xfb, 0xc5,
265 0x33, 0xbd, 0x87, 0xbd, 0x3b, 0xe4, 0x1d, 0xd7,
266 0x02, 0x3d, 0x1c, 0x72, 0x65, 0x72, 0x43, 0x43,
267 0x36, 0xa8, 0xfa, 0xe6, 0x73, 0x2d, 0xa4, 0x61,
268 0xe8, 0x02, 0x9c, 0x3a, 0x56, 0x4d, 0x1c, 0xd1,
269 0x76, 0x9c, 0x8c, 0xaa, 0x5f, 0x1b, 0xeb, 0x1c,
270 0x4a, 0xf5, 0xb9, 0xb8, 0x6f, 0x41, 0x4b, 0x27,
271 0x87, 0xde, 0xf6, 0x94, 0x1f, 0xdd, 0xe6, 0xf1,
272 0xa9, 0xc2, 0x02, 0xc2, 0x4f, 0xa3, 0xfc, 0xa4,
273 0x03, 0x5a, 0xd9, 0x6f, 0x78, 0xfd, 0x84, 0xf0,
274 0xe5, 0xfd, 0x3d, 0xa5, 0x4d, 0x1b, 0xad, 0x5b,
275 0x4b, 0x02, 0x03, 0x01, 0x00, 0x01,
276};
277const unsigned int rsa_pub_key_len = 398;
Tintu Thomaseab1b472022-03-21 14:27:58 +0000278#if (MCUBOOT_IMAGE_NUMBER > 1)
Tamas Ban78676ac2019-07-11 09:05:54 +0100279const unsigned char rsa_pub_key_1[] = {
280 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
281 0x00, 0xbf, 0xb7, 0xb0, 0x9f, 0xe8, 0xc8, 0xd1,
282 0xfe, 0x16, 0x1d, 0x53, 0x87, 0x97, 0x79, 0x1c,
283 0x15, 0xc7, 0x99, 0x16, 0x6c, 0xca, 0xb8, 0x2d,
284 0xca, 0xc2, 0x0d, 0x62, 0xf9, 0xeb, 0x8f, 0xe9,
285 0x3a, 0x18, 0x43, 0x47, 0xd7, 0xbb, 0xd5, 0x62,
286 0xbc, 0xe3, 0x33, 0x63, 0xa7, 0xa3, 0xa8, 0x5c,
287 0xf3, 0x23, 0x78, 0xfd, 0x2d, 0x07, 0x21, 0x1f,
288 0xb9, 0x54, 0x70, 0x28, 0xa9, 0x08, 0xda, 0x50,
289 0x7e, 0x9e, 0x8e, 0xcc, 0x68, 0x4e, 0x7f, 0x48,
290 0x0d, 0xea, 0x27, 0xe8, 0xc6, 0xef, 0xad, 0x5f,
291 0x9d, 0x46, 0x4a, 0xbc, 0x69, 0x9a, 0x30, 0x5f,
292 0x3b, 0xc1, 0x52, 0x92, 0xf8, 0xbc, 0x75, 0xd4,
293 0x3c, 0x27, 0x70, 0x40, 0x00, 0xa6, 0x2e, 0x28,
294 0x7f, 0x59, 0xe5, 0x60, 0x43, 0x11, 0xdc, 0x31,
295 0x09, 0x7d, 0xcf, 0x2f, 0x41, 0x3f, 0xb6, 0x52,
296 0x1a, 0xa3, 0x49, 0x16, 0xf2, 0xb5, 0xb3, 0x9c,
297 0x3c, 0xfb, 0x5e, 0x2c, 0x1f, 0x22, 0x86, 0xbd,
298 0xae, 0xbe, 0x36, 0x52, 0xbd, 0xc4, 0xf0, 0x58,
299 0x69, 0x36, 0xa7, 0x80, 0x3e, 0x81, 0xb3, 0x54,
300 0x98, 0xe4, 0x5d, 0x95, 0xed, 0x21, 0xf0, 0xba,
301 0xae, 0x21, 0xfb, 0xc4, 0x19, 0x87, 0x55, 0xd1,
302 0x2b, 0x4f, 0x00, 0xd8, 0x41, 0x58, 0xcb, 0xdb,
303 0xa9, 0x9a, 0x53, 0xe9, 0x6c, 0x67, 0xcb, 0x7c,
304 0x5d, 0xf6, 0x91, 0x06, 0x75, 0x52, 0xf2, 0xc0,
305 0x7e, 0xb1, 0x6b, 0x5d, 0x30, 0x40, 0x40, 0x2f,
306 0xd8, 0x1e, 0x95, 0x3c, 0x05, 0x97, 0x7f, 0xf0,
307 0x04, 0xf0, 0x4e, 0x2c, 0xd5, 0x39, 0x0e, 0x94,
308 0x3d, 0x7c, 0x03, 0x08, 0x1d, 0x09, 0x08, 0xf2,
309 0x8d, 0x44, 0x0d, 0xcf, 0xb3, 0x96, 0x3d, 0x5a,
310 0x76, 0xe8, 0xf6, 0xee, 0x93, 0x64, 0xe8, 0x57,
311 0xd1, 0xe2, 0xf5, 0x0b, 0x18, 0x69, 0x6f, 0xe9,
312 0xe1, 0x3d, 0xf8, 0x89, 0x49, 0x28, 0xe6, 0xaf,
313 0xb8, 0xa8, 0xc6, 0x42, 0x55, 0x2d, 0xc1, 0xdb,
314 0x8c, 0x5d, 0xb2, 0x6d, 0x7f, 0xfe, 0x26, 0xea,
315 0x75, 0xd9, 0xfd, 0x1f, 0xdc, 0x22, 0x3b, 0xa4,
316 0x1b, 0xa7, 0xad, 0xeb, 0x71, 0xdf, 0xbd, 0xb4,
317 0x37, 0xd1, 0xeb, 0xbe, 0x08, 0x10, 0x1c, 0x78,
318 0x84, 0x1c, 0x9a, 0x75, 0xc4, 0xad, 0xe5, 0xef,
319 0x73, 0x17, 0xac, 0x69, 0x78, 0xbc, 0xd6, 0x37,
320 0x8c, 0x0c, 0x14, 0x21, 0x06, 0x47, 0xbd, 0xf8,
321 0x0a, 0xac, 0x19, 0x09, 0x9d, 0x0d, 0x1d, 0x72,
322 0xe1, 0x3e, 0x1a, 0x74, 0xea, 0x86, 0xd9, 0x5c,
323 0x4a, 0xcd, 0xcc, 0xc6, 0x94, 0xa7, 0xfe, 0xda,
324 0x0b, 0x87, 0x11, 0xbb, 0x6b, 0xf0, 0x3a, 0xe3,
325 0x4f, 0x82, 0x4f, 0xb1, 0xe4, 0xa4, 0xcd, 0xbc,
326 0x70, 0x3c, 0x9d, 0x9c, 0x49, 0xf9, 0xcf, 0x28,
327 0x6d, 0xb8, 0xda, 0x6f, 0x7d, 0x38, 0x57, 0x55,
328 0x43, 0x2a, 0x73, 0x8d, 0xb6, 0x18, 0xfd, 0x70,
329 0xa7, 0x02, 0x03, 0x01, 0x00, 0x01,
330};
331const unsigned int rsa_pub_key_len_1 = 398;
Roland Mikhel00cefb02023-06-05 14:38:02 +0200332#endif /* MCUBOOT_IMAGE_NUMBER > 1 */
333#endif /* MCUBOOT_SIGN_RSA_LEN */
334
335#elif defined(MCUBOOT_SIGN_EC256) || \
336 defined(MCUBOOT_SIGN_EC384)
337#define HAVE_KEYS
338#ifndef MCUBOOT_SIGN_EC384
339const unsigned char ecdsa_pub_key[] = {
340 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86,
341 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a,
342 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03,
343 0x42, 0x00, 0x04, 0x2a, 0xcb, 0x40, 0x3c, 0xe8,
344 0xfe, 0xed, 0x5b, 0xa4, 0x49, 0x95, 0xa1, 0xa9,
345 0x1d, 0xae, 0xe8, 0xdb, 0xbe, 0x19, 0x37, 0xcd,
346 0x14, 0xfb, 0x2f, 0x24, 0x57, 0x37, 0xe5, 0x95,
347 0x39, 0x88, 0xd9, 0x94, 0xb9, 0xd6, 0x5a, 0xeb,
348 0xd7, 0xcd, 0xd5, 0x30, 0x8a, 0xd6, 0xfe, 0x48,
349 0xb2, 0x4a, 0x6a, 0x81, 0x0e, 0xe5, 0xf0, 0x7d,
350 0x8b, 0x68, 0x34, 0xcc, 0x3a, 0x6a, 0xfc, 0x53,
351 0x8e, 0xfa, 0xc1, };
352const unsigned int ecdsa_pub_key_len = 91;
353#if (MCUBOOT_IMAGE_NUMBER > 1)
354const unsigned char ecdsa_pub_key_1[] = {
355 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86,
356 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a,
357 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03,
358 0x42, 0x00, 0x04, 0xe8, 0x09, 0x08, 0x12, 0x3a,
359 0x0f, 0xad, 0x40, 0xe0, 0x33, 0x8a, 0xa6, 0x54,
360 0xf8, 0x83, 0x95, 0x41, 0x8e, 0x44, 0x99, 0xa2,
361 0x0f, 0xae, 0x85, 0x69, 0x2b, 0xf9, 0x26, 0xb5,
362 0xe9, 0x9e, 0x16, 0x2c, 0x87, 0x76, 0x62, 0x7f,
363 0x32, 0x6c, 0x9b, 0x70, 0x78, 0x06, 0x52, 0x52,
364 0x52, 0xca, 0x2b, 0xd2, 0xb7, 0xc7, 0x50, 0x07,
365 0x66, 0x3b, 0x3b, 0xdf, 0xe1, 0x99, 0x69, 0x00,
366 0x26, 0x2c, 0x33,
367};
368const unsigned int ecdsa_pub_key_len_1 = 91;
369#endif /* MCUBOOT_IMAGE_NUMBER > 1 */
370#else /* !MCUBOOT_SIGN_EC384 */
371const unsigned char ecdsa_pub_key[] = {
372 0x30, 0x76, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86,
373 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b,
374 0x81, 0x04, 0x00, 0x22, 0x03, 0x62, 0x00, 0x04,
375 0x0c, 0x76, 0xca, 0xae, 0x72, 0x3a, 0xa5, 0xe8,
376 0xf0, 0xd4, 0xf1, 0x16, 0xb5, 0x02, 0xef, 0x77,
377 0xa1, 0x1b, 0x93, 0x61, 0x78, 0xc0, 0x09, 0x26,
378 0x7b, 0x3b, 0x40, 0x9c, 0xee, 0x49, 0x85, 0xe0,
379 0xc9, 0x4f, 0xe7, 0xf2, 0xba, 0x97, 0x6c, 0xf3,
380 0x82, 0x65, 0x14, 0x2c, 0xf5, 0x0c, 0x73, 0x33,
381 0x4d, 0x32, 0xe7, 0x9b, 0xd3, 0x42, 0xcc, 0x95,
382 0x5a, 0xe5, 0xe2, 0xf5, 0xf4, 0x6e, 0x45, 0xe0,
383 0xed, 0x20, 0x35, 0x5c, 0xaf, 0x52, 0x35, 0x81,
384 0xd4, 0xdc, 0x9c, 0xe3, 0x9e, 0x22, 0x3e, 0xfb,
385 0x3f, 0x22, 0x10, 0xda, 0x70, 0x03, 0x37, 0xad,
386 0xa8, 0xf2, 0x48, 0xfe, 0x3a, 0x60, 0x69, 0xa5,
387};
388const unsigned int ecdsa_pub_key_len = 120;
389#if (MCUBOOT_IMAGE_NUMBER > 1)
390const unsigned char ecdsa_pub_key_1[] = {
391 0x30, 0x76, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86,
392 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b,
393 0x81, 0x04, 0x00, 0x22, 0x03, 0x62, 0x00, 0x04,
394 0x34, 0x43, 0xad, 0x59, 0x83, 0xd9, 0x41, 0x65,
395 0xdc, 0x20, 0xb8, 0x62, 0x35, 0xf8, 0x7d, 0x94,
396 0x13, 0x5e, 0x75, 0xe6, 0xa8, 0x79, 0xe9, 0xcb,
397 0xfd, 0xa7, 0x2e, 0x92, 0x95, 0x82, 0xa6, 0xc5,
398 0xdd, 0x53, 0xc7, 0x3d, 0x46, 0xed, 0x75, 0xd5,
399 0x20, 0xb5, 0xbe, 0x74, 0x2a, 0x6d, 0x30, 0xe2,
400 0x31, 0x50, 0x1c, 0x7f, 0xc7, 0x7b, 0x4a, 0x73,
401 0x55, 0xf8, 0x92, 0x60, 0xff, 0x2f, 0x18, 0x04,
402 0xbc, 0xc7, 0xd9, 0xce, 0xda, 0xa6, 0x36, 0x52,
403 0xec, 0x2b, 0x64, 0x6e, 0x7a, 0x97, 0x60, 0x9d,
404 0x8c, 0xba, 0xfe, 0xec, 0x9a, 0xb0, 0xc2, 0x6e,
405 0x3d, 0x75, 0x2a, 0x98, 0xb2, 0xa3, 0x09, 0x84,
406};
407const unsigned int ecdsa_pub_key_len_1 = 120;
408#endif /* MCUBOOT_IMAGE_NUMBER > 1 */
409#endif /* !MCUBOOT_SIGN_EC384 */
Tamas Banf70ef8c2017-12-19 15:35:09 +0000410#else
411#error "No public key available for given signing algorithm."
412#endif
413
Tamas Ban81daed02019-05-20 15:05:22 +0100414#if defined(HAVE_KEYS)
Roland Mikhel00cefb02023-06-05 14:38:02 +0200415#if defined(MCUBOOT_SIGN_RSA)
Tamas Banf70ef8c2017-12-19 15:35:09 +0000416const struct bootutil_key bootutil_keys[] = {
417 {
Tamas Ban81daed02019-05-20 15:05:22 +0100418 .key = rsa_pub_key,
419 .len = &rsa_pub_key_len,
Tamas Banf70ef8c2017-12-19 15:35:09 +0000420 },
Tintu Thomaseab1b472022-03-21 14:27:58 +0000421#if (MCUBOOT_IMAGE_NUMBER > 1)
Tamas Ban78676ac2019-07-11 09:05:54 +0100422 {
423 .key = rsa_pub_key_1,
424 .len = &rsa_pub_key_len_1,
425 },
Tintu Thomaseab1b472022-03-21 14:27:58 +0000426#endif /* MCUBOOT_IMAGE_NUMBER > 1 */
427#if (MCUBOOT_IMAGE_NUMBER > 2)
428 {
429 /* FIXME assuming the image 0 key is reused here */
430 .key = rsa_pub_key,
431 .len = &rsa_pub_key_len,
432 },
433#endif /* MCUBOOT_IMAGE_NUMBER > 2 */
434#if (MCUBOOT_IMAGE_NUMBER > 3)
435 {
436 /* FIXME assuming the image 0 key is reused here */
437 .key = rsa_pub_key,
438 .len = &rsa_pub_key_len,
439 },
440#endif /* MCUBOOT_IMAGE_NUMBER > 3 */
Arnold Gabriel Benedict45216a22023-02-01 08:31:42 +0000441#if (MCUBOOT_IMAGE_NUMBER > 4)
442 {
443 /* FIXME assuming the image 0 key is reused here */
444 .key = rsa_pub_key,
445 .len = &rsa_pub_key_len,
446 },
447#endif /* MCUBOOT_IMAGE_NUMBER > 4 */
448#if (MCUBOOT_IMAGE_NUMBER > 5)
449 {
450 /* FIXME assuming the image 0 key is reused here */
451 .key = rsa_pub_key,
452 .len = &rsa_pub_key_len,
453 },
454#endif /* MCUBOOT_IMAGE_NUMBER > 5 */
455#if (MCUBOOT_IMAGE_NUMBER > 6)
456 {
457 /* FIXME assuming the image 0 key is reused here */
458 .key = rsa_pub_key,
459 .len = &rsa_pub_key_len,
460 },
461#endif /* MCUBOOT_IMAGE_NUMBER > 6 */
462#if (MCUBOOT_IMAGE_NUMBER > 7)
463 {
464 /* FIXME assuming the image 0 key is reused here */
465 .key = rsa_pub_key,
466 .len = &rsa_pub_key_len,
467 },
468#endif /* MCUBOOT_IMAGE_NUMBER > 7 */
469#if (MCUBOOT_IMAGE_NUMBER > 8)
470 {
471 /* FIXME assuming the image 0 key is reused here */
472 .key = rsa_pub_key,
473 .len = &rsa_pub_key_len,
474 },
475#endif /* MCUBOOT_IMAGE_NUMBER > 8 */
476#if (MCUBOOT_IMAGE_NUMBER > 9)
477#error "MCUBOOT_IMAGE_NUMBER Unsupported!"
478#endif /* MCUBOOT_IMAGE_NUMBER > 9 */
Tamas Ban78676ac2019-07-11 09:05:54 +0100479};
480const int bootutil_key_cnt = MCUBOOT_IMAGE_NUMBER;
Roland Mikhel00cefb02023-06-05 14:38:02 +0200481#elif defined(MCUBOOT_SIGN_EC256) || \
482 defined(MCUBOOT_SIGN_EC384)
483const struct bootutil_key bootutil_keys[] = {
484 {
485 .key = ecdsa_pub_key,
486 .len = &ecdsa_pub_key_len,
487 },
488#if (MCUBOOT_IMAGE_NUMBER > 1)
489 {
490 .key = ecdsa_pub_key_1,
491 .len = &ecdsa_pub_key_len_1,
492 },
493#endif /* MCUBOOT_IMAGE_NUMBER > 1 */
494#if (MCUBOOT_IMAGE_NUMBER > 2)
495 {
496 /* FIXME assuming the image 0 key is reused here */
497 .key = ecdsa_pub_key,
498 .len = &ecdsa_pub_key_len,
499 },
500#endif /* MCUBOOT_IMAGE_NUMBER > 2 */
501#if (MCUBOOT_IMAGE_NUMBER > 3)
502 {
503 /* FIXME assuming the image 0 key is reused here */
504 .key = ecdsa_pub_key,
505 .len = &ecdsa_pub_key,
506 },
507#endif /* MCUBOOT_IMAGE_NUMBER > 3 */
508};
509#endif /* MCUBOOT_SIGN_RSA */
Tamas Ban78676ac2019-07-11 09:05:54 +0100510#endif /* HAVE_KEYS */
511#else /* MCUBOOT_HW_KEY */
Tamas Ban1d37c342019-07-11 08:55:55 +0100512unsigned int pub_key_len;
513struct bootutil_key bootutil_keys[1] = {
514 {
515 .key = 0,
516 .len = &pub_key_len,
517 },
518};
519const int bootutil_key_cnt = 1;
David Vinczef5c1e062020-03-31 17:05:34 +0200520
521int boot_retrieve_public_key_hash(uint8_t image_index,
522 uint8_t *public_key_hash,
523 size_t *key_hash_size)
524{
525 return tfm_plat_get_rotpk_hash(image_index,
526 public_key_hash,
527 (uint32_t *)key_hash_size);
528}
529#endif /* !MCUBOOT_HW_KEY */