blob: 8f245a4551997ec8a8500851790ffa3b52c2f9b5 [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:
22 * https://github.com/JuulLabs-OSS/mcuboot
David Vincze401c7422019-06-21 20:44:05 +020023 * Git SHA of the original version: 3c469bc698a9767859ed73cd0201c44161204d5c
Tamas Ban81daed02019-05-20 15:05:22 +010024 * Modifications are Copyright (c) 2019 Arm Limited.
25 */
26
Tamas Banf70ef8c2017-12-19 15:35:09 +000027#include <bootutil/sign_key.h>
28
Tamas Ban1d37c342019-07-11 08:55:55 +010029#if !defined(MCUBOOT_HW_KEY)
Tamas Banf70ef8c2017-12-19 15:35:09 +000030#if defined(MCUBOOT_SIGN_RSA)
Tamas Ban81daed02019-05-20 15:05:22 +010031#if MCUBOOT_SIGN_RSA_LEN == 2048
32#define HAVE_KEYS
33const unsigned char rsa_pub_key[] = {
34 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
35 0x00, 0xd1, 0x06, 0x08, 0x1a, 0x18, 0x44, 0x2c,
36 0x18, 0xe8, 0xfb, 0xfd, 0xf7, 0x0d, 0xa3, 0x4f,
37 0x1f, 0xbb, 0xee, 0x5e, 0xf9, 0xaa, 0xd2, 0x4b,
38 0x18, 0xd3, 0x5a, 0xe9, 0x6d, 0x18, 0x80, 0x19,
39 0xf9, 0xf0, 0x9c, 0x34, 0x1b, 0xcb, 0xf3, 0xbc,
40 0x74, 0xdb, 0x42, 0xe7, 0x8c, 0x7f, 0x10, 0x53,
41 0x7e, 0x43, 0x5e, 0x0d, 0x57, 0x2c, 0x44, 0xd1,
42 0x67, 0x08, 0x0f, 0x0d, 0xbb, 0x5c, 0xee, 0xec,
43 0xb3, 0x99, 0xdf, 0xe0, 0x4d, 0x84, 0x0b, 0xaa,
44 0x77, 0x41, 0x60, 0xed, 0x15, 0x28, 0x49, 0xa7,
45 0x01, 0xb4, 0x3c, 0x10, 0xe6, 0x69, 0x8c, 0x2f,
46 0x5f, 0xac, 0x41, 0x4d, 0x9e, 0x5c, 0x14, 0xdf,
47 0xf2, 0xf8, 0xcf, 0x3d, 0x1e, 0x6f, 0xe7, 0x5b,
48 0xba, 0xb4, 0xa9, 0xc8, 0x88, 0x7e, 0x47, 0x3c,
49 0x94, 0xc3, 0x77, 0x67, 0x54, 0x4b, 0xaa, 0x8d,
50 0x38, 0x35, 0xca, 0x62, 0x61, 0x7e, 0xb7, 0xe1,
51 0x15, 0xdb, 0x77, 0x73, 0xd4, 0xbe, 0x7b, 0x72,
52 0x21, 0x89, 0x69, 0x24, 0xfb, 0xf8, 0x65, 0x6e,
53 0x64, 0x3e, 0xc8, 0x0e, 0xd7, 0x85, 0xd5, 0x5c,
54 0x4a, 0xe4, 0x53, 0x0d, 0x2f, 0xff, 0xb7, 0xfd,
55 0xf3, 0x13, 0x39, 0x83, 0x3f, 0xa3, 0xae, 0xd2,
56 0x0f, 0xa7, 0x6a, 0x9d, 0xf9, 0xfe, 0xb8, 0xce,
57 0xfa, 0x2a, 0xbe, 0xaf, 0xb8, 0xe0, 0xfa, 0x82,
58 0x37, 0x54, 0xf4, 0x3e, 0xe1, 0x2b, 0xd0, 0xd3,
59 0x08, 0x58, 0x18, 0xf6, 0x5e, 0x4c, 0xc8, 0x88,
60 0x81, 0x31, 0xad, 0x5f, 0xb0, 0x82, 0x17, 0xf2,
61 0x8a, 0x69, 0x27, 0x23, 0xf3, 0xab, 0x87, 0x3e,
62 0x93, 0x1a, 0x1d, 0xfe, 0xe8, 0xf8, 0x1a, 0x24,
63 0x66, 0x59, 0xf8, 0x1c, 0xab, 0xdc, 0xce, 0x68,
64 0x1b, 0x66, 0x64, 0x35, 0xec, 0xfa, 0x0d, 0x11,
65 0x9d, 0xaf, 0x5c, 0x3a, 0xa7, 0xd1, 0x67, 0xc6,
66 0x47, 0xef, 0xb1, 0x4b, 0x2c, 0x62, 0xe1, 0xd1,
67 0xc9, 0x02, 0x03, 0x01, 0x00, 0x01,
Tamas Banf70ef8c2017-12-19 15:35:09 +000068};
Tamas Ban81daed02019-05-20 15:05:22 +010069const unsigned int rsa_pub_key_len = 270;
Tamas Ban78676ac2019-07-11 09:05:54 +010070#if (MCUBOOT_IMAGE_NUMBER ==2)
71const unsigned char rsa_pub_key_1[] = {
72 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
73 0x00, 0xac, 0xd2, 0x74, 0x93, 0x3e, 0x5f, 0xe7,
74 0xaf, 0xf2, 0xc8, 0x6c, 0xe8, 0x58, 0x51, 0x63,
75 0x77, 0x0e, 0x52, 0xfe, 0x58, 0xd5, 0xbb, 0xa5,
76 0xe3, 0x9c, 0x8a, 0xcd, 0x14, 0x0a, 0x89, 0xc6,
77 0x15, 0xae, 0x49, 0x04, 0x9f, 0x5f, 0x3d, 0x2b,
78 0x89, 0x12, 0x1f, 0x3e, 0x7f, 0x05, 0xfc, 0x0b,
79 0x99, 0x26, 0x63, 0x5e, 0x96, 0xef, 0x33, 0xbc,
80 0x8c, 0x27, 0x68, 0x4d, 0x46, 0x8d, 0x66, 0x33,
81 0x99, 0x3b, 0x38, 0x11, 0x1b, 0xe3, 0xac, 0x18,
82 0x07, 0x95, 0x48, 0x87, 0xb2, 0xab, 0x4f, 0x2d,
83 0x0e, 0x12, 0x51, 0x1b, 0x7f, 0x33, 0xba, 0x78,
84 0xb1, 0xd5, 0xfa, 0x7f, 0xbf, 0x71, 0x4b, 0xe4,
85 0x5f, 0x67, 0x57, 0x67, 0xd5, 0xab, 0xbb, 0x64,
86 0x06, 0x17, 0x3d, 0x81, 0xeb, 0xd8, 0xc1, 0xf9,
87 0x7a, 0x57, 0xd3, 0x29, 0x5c, 0x10, 0xff, 0xa7,
88 0xd3, 0x3a, 0x58, 0x3f, 0x25, 0x8a, 0xc5, 0x84,
89 0x7b, 0x97, 0x27, 0xa5, 0xe4, 0x90, 0xe7, 0xdf,
90 0x1c, 0x33, 0xe6, 0x7c, 0xaf, 0x68, 0x77, 0x5e,
91 0x1f, 0x09, 0x6e, 0xdd, 0x92, 0x60, 0x4e, 0xac,
92 0x73, 0x84, 0xb0, 0xf7, 0xb6, 0x02, 0xc2, 0xce,
93 0x9f, 0xaf, 0xad, 0xb2, 0xb1, 0x57, 0xcc, 0xf9,
94 0x06, 0x1d, 0x6a, 0x25, 0x2f, 0x72, 0x2a, 0x7d,
95 0xfe, 0x0d, 0xed, 0xb8, 0xc2, 0x95, 0x88, 0x41,
96 0xf2, 0x45, 0xa8, 0x6e, 0x6a, 0x85, 0xee, 0xae,
97 0xfa, 0x8a, 0x79, 0xfa, 0xfe, 0x7e, 0x40, 0x49,
98 0x43, 0xec, 0x2c, 0x8e, 0x8e, 0x82, 0x7e, 0xe2,
99 0xf8, 0x0f, 0xf2, 0xe9, 0x7d, 0xa3, 0x7f, 0xac,
100 0x23, 0xbd, 0x0a, 0x42, 0xea, 0x18, 0xfb, 0x72,
101 0xa0, 0x9a, 0x24, 0x01, 0xc8, 0x27, 0x8c, 0x56,
102 0x24, 0x93, 0x82, 0xdf, 0x23, 0x19, 0x96, 0x73,
103 0xf2, 0x11, 0xc3, 0x05, 0xe6, 0xa5, 0xb8, 0x0b,
104 0xe0, 0x73, 0xce, 0x07, 0x9b, 0x57, 0xe6, 0x8e,
105 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01,
106};
107const unsigned int rsa_pub_key_len_1 = 270;
108#endif
Tamas Ban81daed02019-05-20 15:05:22 +0100109#elif MCUBOOT_SIGN_RSA_LEN == 3072
110#define HAVE_KEYS
111const unsigned char rsa_pub_key[] = {
112 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
113 0x00, 0x9c, 0xba, 0xc2, 0x5a, 0xbf, 0xcc, 0xc5,
114 0x4f, 0x20, 0x0c, 0x4f, 0x6f, 0x6c, 0x51, 0x4f,
115 0x5c, 0x0a, 0xab, 0x80, 0xb8, 0x6b, 0x10, 0xc4,
116 0x9b, 0x2b, 0xc4, 0x52, 0x32, 0x09, 0x4b, 0x3b,
117 0x27, 0x94, 0x6a, 0x1d, 0xd5, 0x4c, 0xa8, 0x5c,
118 0xa0, 0xc0, 0x76, 0x95, 0x7b, 0x26, 0x04, 0xb1,
119 0x13, 0x7e, 0x78, 0x27, 0xd6, 0x0c, 0xb4, 0xe8,
120 0xb0, 0x2d, 0x92, 0x52, 0x8a, 0xfb, 0x69, 0xff,
121 0x42, 0x10, 0xaa, 0x56, 0x0c, 0x83, 0xc8, 0x65,
122 0x6e, 0xba, 0x0d, 0x5f, 0x8e, 0xf7, 0x2b, 0x29,
123 0x92, 0xfc, 0x42, 0x2d, 0x2d, 0xf9, 0x80, 0xf5,
124 0x85, 0x21, 0x87, 0xea, 0xac, 0x40, 0xa8, 0xcb,
125 0xd0, 0xa8, 0x3b, 0xe2, 0xd2, 0xec, 0xf0, 0x14,
126 0x48, 0x0e, 0xcf, 0x2b, 0x8a, 0x4b, 0xa4, 0xcd,
127 0xa1, 0x05, 0x5b, 0x17, 0x66, 0x1d, 0xde, 0x6e,
128 0x44, 0xfe, 0x46, 0xa3, 0x0d, 0xd0, 0x69, 0xbf,
129 0x8c, 0xad, 0xa9, 0x16, 0x68, 0x51, 0xeb, 0x79,
130 0x91, 0x20, 0xe6, 0x81, 0x03, 0x07, 0x89, 0x40,
131 0x55, 0x4b, 0xeb, 0xcf, 0x67, 0xf8, 0x31, 0xc7,
132 0x1c, 0x54, 0x4e, 0x52, 0x0b, 0x60, 0xe8, 0xa2,
133 0x50, 0x07, 0xd1, 0xcf, 0xce, 0x12, 0x26, 0xcd,
134 0x8e, 0x82, 0x8d, 0x4e, 0x64, 0xa9, 0xf7, 0xc7,
135 0x21, 0x99, 0x25, 0x07, 0xdd, 0xc5, 0xd5, 0x5f,
136 0xf4, 0x63, 0xfa, 0xcc, 0x2b, 0xda, 0x06, 0x5c,
137 0x59, 0x67, 0xb0, 0x06, 0x35, 0xe9, 0xaa, 0x92,
138 0x45, 0x35, 0xe5, 0xa0, 0x03, 0xff, 0x1c, 0x02,
139 0xb5, 0xc7, 0x4e, 0x94, 0x4b, 0x6e, 0xad, 0x73,
140 0x9d, 0xce, 0x6f, 0x09, 0xb3, 0xb1, 0x8f, 0x60,
141 0x6c, 0xa2, 0xfa, 0xcd, 0x77, 0x0f, 0xcc, 0x27,
142 0xe6, 0x36, 0x58, 0xb3, 0x52, 0xf7, 0x8f, 0xbe,
143 0x49, 0x98, 0xb7, 0xe9, 0x60, 0xfd, 0x97, 0x57,
144 0xcd, 0xea, 0xd3, 0x0b, 0xdf, 0xa2, 0x42, 0xf7,
145 0x44, 0xd3, 0x87, 0xde, 0xe0, 0x10, 0x03, 0x94,
146 0xda, 0xfc, 0xbc, 0xdd, 0xbe, 0x93, 0xb3, 0x4a,
147 0x2b, 0x58, 0xdc, 0x96, 0x12, 0xf2, 0x6f, 0x23,
148 0xba, 0x3b, 0x37, 0xfe, 0xfc, 0x18, 0x1f, 0x75,
149 0x7d, 0x54, 0x01, 0x0e, 0xbe, 0x3d, 0x18, 0x13,
150 0xb3, 0x28, 0xb9, 0x34, 0x2c, 0xd5, 0xfb, 0xc5,
151 0x33, 0xbd, 0x87, 0xbd, 0x3b, 0xe4, 0x1d, 0xd7,
152 0x02, 0x3d, 0x1c, 0x72, 0x65, 0x72, 0x43, 0x43,
153 0x36, 0xa8, 0xfa, 0xe6, 0x73, 0x2d, 0xa4, 0x61,
154 0xe8, 0x02, 0x9c, 0x3a, 0x56, 0x4d, 0x1c, 0xd1,
155 0x76, 0x9c, 0x8c, 0xaa, 0x5f, 0x1b, 0xeb, 0x1c,
156 0x4a, 0xf5, 0xb9, 0xb8, 0x6f, 0x41, 0x4b, 0x27,
157 0x87, 0xde, 0xf6, 0x94, 0x1f, 0xdd, 0xe6, 0xf1,
158 0xa9, 0xc2, 0x02, 0xc2, 0x4f, 0xa3, 0xfc, 0xa4,
159 0x03, 0x5a, 0xd9, 0x6f, 0x78, 0xfd, 0x84, 0xf0,
160 0xe5, 0xfd, 0x3d, 0xa5, 0x4d, 0x1b, 0xad, 0x5b,
161 0x4b, 0x02, 0x03, 0x01, 0x00, 0x01,
162};
163const unsigned int rsa_pub_key_len = 398;
Tamas Ban78676ac2019-07-11 09:05:54 +0100164#if (MCUBOOT_IMAGE_NUMBER == 2)
165const unsigned char rsa_pub_key_1[] = {
166 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81,
167 0x00, 0xbf, 0xb7, 0xb0, 0x9f, 0xe8, 0xc8, 0xd1,
168 0xfe, 0x16, 0x1d, 0x53, 0x87, 0x97, 0x79, 0x1c,
169 0x15, 0xc7, 0x99, 0x16, 0x6c, 0xca, 0xb8, 0x2d,
170 0xca, 0xc2, 0x0d, 0x62, 0xf9, 0xeb, 0x8f, 0xe9,
171 0x3a, 0x18, 0x43, 0x47, 0xd7, 0xbb, 0xd5, 0x62,
172 0xbc, 0xe3, 0x33, 0x63, 0xa7, 0xa3, 0xa8, 0x5c,
173 0xf3, 0x23, 0x78, 0xfd, 0x2d, 0x07, 0x21, 0x1f,
174 0xb9, 0x54, 0x70, 0x28, 0xa9, 0x08, 0xda, 0x50,
175 0x7e, 0x9e, 0x8e, 0xcc, 0x68, 0x4e, 0x7f, 0x48,
176 0x0d, 0xea, 0x27, 0xe8, 0xc6, 0xef, 0xad, 0x5f,
177 0x9d, 0x46, 0x4a, 0xbc, 0x69, 0x9a, 0x30, 0x5f,
178 0x3b, 0xc1, 0x52, 0x92, 0xf8, 0xbc, 0x75, 0xd4,
179 0x3c, 0x27, 0x70, 0x40, 0x00, 0xa6, 0x2e, 0x28,
180 0x7f, 0x59, 0xe5, 0x60, 0x43, 0x11, 0xdc, 0x31,
181 0x09, 0x7d, 0xcf, 0x2f, 0x41, 0x3f, 0xb6, 0x52,
182 0x1a, 0xa3, 0x49, 0x16, 0xf2, 0xb5, 0xb3, 0x9c,
183 0x3c, 0xfb, 0x5e, 0x2c, 0x1f, 0x22, 0x86, 0xbd,
184 0xae, 0xbe, 0x36, 0x52, 0xbd, 0xc4, 0xf0, 0x58,
185 0x69, 0x36, 0xa7, 0x80, 0x3e, 0x81, 0xb3, 0x54,
186 0x98, 0xe4, 0x5d, 0x95, 0xed, 0x21, 0xf0, 0xba,
187 0xae, 0x21, 0xfb, 0xc4, 0x19, 0x87, 0x55, 0xd1,
188 0x2b, 0x4f, 0x00, 0xd8, 0x41, 0x58, 0xcb, 0xdb,
189 0xa9, 0x9a, 0x53, 0xe9, 0x6c, 0x67, 0xcb, 0x7c,
190 0x5d, 0xf6, 0x91, 0x06, 0x75, 0x52, 0xf2, 0xc0,
191 0x7e, 0xb1, 0x6b, 0x5d, 0x30, 0x40, 0x40, 0x2f,
192 0xd8, 0x1e, 0x95, 0x3c, 0x05, 0x97, 0x7f, 0xf0,
193 0x04, 0xf0, 0x4e, 0x2c, 0xd5, 0x39, 0x0e, 0x94,
194 0x3d, 0x7c, 0x03, 0x08, 0x1d, 0x09, 0x08, 0xf2,
195 0x8d, 0x44, 0x0d, 0xcf, 0xb3, 0x96, 0x3d, 0x5a,
196 0x76, 0xe8, 0xf6, 0xee, 0x93, 0x64, 0xe8, 0x57,
197 0xd1, 0xe2, 0xf5, 0x0b, 0x18, 0x69, 0x6f, 0xe9,
198 0xe1, 0x3d, 0xf8, 0x89, 0x49, 0x28, 0xe6, 0xaf,
199 0xb8, 0xa8, 0xc6, 0x42, 0x55, 0x2d, 0xc1, 0xdb,
200 0x8c, 0x5d, 0xb2, 0x6d, 0x7f, 0xfe, 0x26, 0xea,
201 0x75, 0xd9, 0xfd, 0x1f, 0xdc, 0x22, 0x3b, 0xa4,
202 0x1b, 0xa7, 0xad, 0xeb, 0x71, 0xdf, 0xbd, 0xb4,
203 0x37, 0xd1, 0xeb, 0xbe, 0x08, 0x10, 0x1c, 0x78,
204 0x84, 0x1c, 0x9a, 0x75, 0xc4, 0xad, 0xe5, 0xef,
205 0x73, 0x17, 0xac, 0x69, 0x78, 0xbc, 0xd6, 0x37,
206 0x8c, 0x0c, 0x14, 0x21, 0x06, 0x47, 0xbd, 0xf8,
207 0x0a, 0xac, 0x19, 0x09, 0x9d, 0x0d, 0x1d, 0x72,
208 0xe1, 0x3e, 0x1a, 0x74, 0xea, 0x86, 0xd9, 0x5c,
209 0x4a, 0xcd, 0xcc, 0xc6, 0x94, 0xa7, 0xfe, 0xda,
210 0x0b, 0x87, 0x11, 0xbb, 0x6b, 0xf0, 0x3a, 0xe3,
211 0x4f, 0x82, 0x4f, 0xb1, 0xe4, 0xa4, 0xcd, 0xbc,
212 0x70, 0x3c, 0x9d, 0x9c, 0x49, 0xf9, 0xcf, 0x28,
213 0x6d, 0xb8, 0xda, 0x6f, 0x7d, 0x38, 0x57, 0x55,
214 0x43, 0x2a, 0x73, 0x8d, 0xb6, 0x18, 0xfd, 0x70,
215 0xa7, 0x02, 0x03, 0x01, 0x00, 0x01,
216};
217const unsigned int rsa_pub_key_len_1 = 398;
218#endif
Tamas Ban81daed02019-05-20 15:05:22 +0100219#endif
Tamas Banf70ef8c2017-12-19 15:35:09 +0000220#else
221#error "No public key available for given signing algorithm."
222#endif
223
Tamas Ban81daed02019-05-20 15:05:22 +0100224#if defined(HAVE_KEYS)
Tamas Banf70ef8c2017-12-19 15:35:09 +0000225const struct bootutil_key bootutil_keys[] = {
226 {
Tamas Ban81daed02019-05-20 15:05:22 +0100227 .key = rsa_pub_key,
228 .len = &rsa_pub_key_len,
Tamas Banf70ef8c2017-12-19 15:35:09 +0000229 },
Tamas Ban78676ac2019-07-11 09:05:54 +0100230#if (MCUBOOT_IMAGE_NUMBER == 2)
231 {
232 .key = rsa_pub_key_1,
233 .len = &rsa_pub_key_len_1,
234 },
Tamas Banf70ef8c2017-12-19 15:35:09 +0000235#endif
Tamas Ban78676ac2019-07-11 09:05:54 +0100236};
237const int bootutil_key_cnt = MCUBOOT_IMAGE_NUMBER;
238#endif /* HAVE_KEYS */
239#else /* MCUBOOT_HW_KEY */
Tamas Ban1d37c342019-07-11 08:55:55 +0100240unsigned int pub_key_len;
241struct bootutil_key bootutil_keys[1] = {
242 {
243 .key = 0,
244 .len = &pub_key_len,
245 },
246};
247const int bootutil_key_cnt = 1;
248#endif