5 #include "sw/device/lib/testing/test_framework/check.h"
7 #include "sw/device/silicon_creator/lib/sigverify/sphincsplus/verify.h"
8 #include "sw/device/silicon_creator/lib/sigverify/spx_verify.h"
27 static const char kMessage[] =
"test message";
28 static const size_t kMessageLen =
sizeof(kMessage) - 1;
29 static const uint32_t kPrivKey[] = {
30 0xf54ec8c7, 0x31112318, 0xef4eb42d, 0xb33a8bed, 0x48353913, 0x2ebafb0e,
31 0x8194c228, 0x603a35a9, 0xa23b5d15, 0x4db20189, 0xa240ce5a, 0x85b9169e,
32 0x7679c7b8, 0xf73998fc, 0xd2c1b3d2, 0xcd9108e3, 0xf54ec8c7, 0x31112318,
33 0xef4eb42d, 0xb33a8bed, 0x48353913, 0x2ebafb0e, 0x8194c228, 0x603a35a9,
50 0x869eff7d, 0x7c7f52ca, 0xd900ccee, 0x8ea0b717, 0x12150170, 0x01ec6688,
51 0x6af5c0d3, 0x33ad19f0, 0x9429b8c6, 0x75e32d9a, 0x1d37436b, 0xbb57ddfb,
52 0xc13de2c6, 0x28a0e4f9, 0x5f0c7483, 0x88725ff1, 0x8b90e1ee, 0xbaea34f1,
53 0x18b9ccd0, 0x8a71a16e, 0x025f52cd, 0x760949fa, 0x4e18f80f, 0x38d69eb7,
54 0xac0987de, 0xd131a78c, 0x35ed2cd3, 0x17dc56a4, 0x6e22ef33, 0xea2a9d27,
55 0xe0490bbe, 0x57163228, 0xe90766d4, 0x023ea16e, 0xaac8893c, 0xf32ee26a,
56 0xdd0d2660, 0x8465f977, 0x3096c82f, 0xb8193f3b, 0x0efdf54c, 0xb0611799,
57 0x02ceb414, 0x8dfe9bd0, 0x51c36f42, 0xeb4e664e, 0x3ce2c8a7, 0xdc88c8e7,
58 0xec0fc362, 0xf0b08eb5, 0x798517c0, 0x445c7afa, 0xfa5da126, 0x68d10a21,
59 0xe59ebf49, 0x00a161e7, 0xce0631d7, 0xac0b94c1, 0xfe864019, 0x1f34844a,
60 0xa47f1d9a, 0xd59e869b, 0x61ba1bac, 0x7fc031aa, 0x1c788047, 0x0626bf96,
61 0x19633ef8, 0x4a7de09c, 0x097b4414, 0x2d0922b9, 0x08f34c87, 0xff7e7df3,
62 0x9372ff46, 0x8fcaa9c6, 0x16bd3c55, 0x6b946042, 0x19203647, 0xb8d813f7,
63 0xa1bb2f7e, 0xf010be1d, 0xa93d06c6, 0x4725cb47, 0x21a4f8e3, 0x8e5f464b,
64 0x86b1d736, 0x3841d2ce, 0xbeb2b144, 0x1047ea51, 0xffb17be9, 0xb404aa1f,
65 0xc05b366a, 0xade9adac, 0x58168ed8, 0x29a604bf, 0xe5d7e884, 0x3f8c114a,
66 0xa36c8226, 0xc5b1d1c2, 0x24b672a9, 0xcf3a5db5, 0x08e2bf94, 0x7fe505b0,
67 0x8a791047, 0x40f2c26c, 0x7adc1fe1, 0x3799035c, 0x4d388562, 0xb5075093,
68 0x4a345eaa, 0x39081d34, 0xd596eb2e, 0x8f8a6dbf, 0xe57d1c7f, 0x9e6635a5,
69 0x328ae54c, 0x41ff990c, 0x6878e543, 0x374cf261, 0x60b5eaef, 0xf5b43512,
70 0x4fc636ed, 0x51b98fe6, 0x9d460295, 0x03796ecf, 0xca8cd615, 0x16477d58,
71 0x8844c380, 0xb0b1df6b, 0x1fef3284, 0x569043f6, 0xd0b61d47, 0x8bceaedd,
72 0x54ccc0e2, 0xdd4b8656, 0xd8b6c2d3, 0x08873801, 0x3108afd5, 0x068bc450,
73 0x35e11db2, 0xb0201be5, 0x2c346868, 0xead8b8d9, 0xc74f84d6, 0x98a0a9ca,
74 0x1990e619, 0x7bee850c, 0xc86d645b, 0xcbdf93d0, 0xd48f987b, 0x1b96b02e,
75 0x1f79863e, 0xc9669046, 0x3deecb95, 0x308ce80d, 0xce96cfc6, 0x33622777,
76 0xfbc59607, 0x503fcc32, 0x44c3a262, 0x1da89ac4, 0x1e0b01bb, 0x55febab9,
77 0x5a768392, 0x4ee75792, 0xf229294d, 0xfdfd5d38, 0x61d9cabb, 0x907d4121,
78 0xe03ca22e, 0x005ea68f, 0x80a3142d, 0xa2b8b775, 0xe878679a, 0x03d27bb5,
79 0xa6ed3bf8, 0x9114fc43, 0x79da47c0, 0x1f86eb4b, 0xd5a3ba4a, 0x0991e078,
80 0x6eeb4be3, 0x194de504, 0x4bc7ae4c, 0x9103d77a, 0x17ca72c0, 0x8aee5b81,
81 0x6a780408, 0xa0df0a20, 0xc4896c94, 0x2dc447e2, 0xd859287b, 0x731a9be2,
82 0xb70aba07, 0x6fca07dc, 0xf9f9a1e5, 0x32e9f180, 0x71abe7f3, 0xa1d86fd2,
83 0xf412d821, 0xab5865e0, 0x3bcb9497, 0x72630aa5, 0xa7678822, 0x04eb47c0,
84 0xe1951915, 0x60aeb38a, 0x28dcb11f, 0xbe1921f4, 0xe1c0404b, 0xb07a5b9f,
85 0x8a7d9fd0, 0x4c53903c, 0xe4b2b619, 0x10a321a0, 0x54af925e, 0xb462d640,
86 0x275bbf83, 0xeb617967, 0xd0afb3d1, 0x2f4be408, 0x046d2ec2, 0x6974abb3,
87 0x0d300635, 0x6ab71492, 0xde1e4082, 0xa2a1a5db, 0x40bcaba5, 0x5bb397c7,
88 0x47b431b1, 0x9974e53d, 0x2a6b7e30, 0x1c808ae9, 0x443d97cb, 0x6e71749f,
89 0xf507b4f0, 0x31bf5591, 0xbb5c3bdc, 0xcba21a45, 0x029df423, 0x8c8ced75,
90 0x9c2be3ed, 0x37e04b78, 0xa8829f79, 0x02f71901, 0x74c2693a, 0xfb5224c8,
91 0x0acd01b6, 0xfacef64e, 0xb3700b3c, 0xee5f7f24, 0x4869f59c, 0x6d928682,
92 0xe3472302, 0x9e16f08c, 0xfc9b4983, 0xd1ed7b00, 0xe607225f, 0x87603a2e,
93 0x69efbd15, 0x71b90ce5, 0xae8a32c9, 0xa0448a5a, 0x3c9a9ab2, 0xc55d5ffe,
94 0xbba6ec1d, 0x76803c10, 0x0b5066bb, 0x2ab6773c, 0x5c558a3a, 0x99b37685,
95 0xb7d40844, 0xc90b412a, 0x770054e5, 0x0693b91e, 0xe741cc39, 0x55239700,
96 0x7ed0e5a3, 0xc520b006, 0x58f4383c, 0x5aa8ad8a, 0x64081b40, 0x1ae003b7,
97 0x49217a08, 0xee59bc10, 0x7ca391bc, 0x006a0e4d, 0x46ee8bef, 0xcad82ad6,
98 0x5444189d, 0x10cfccf5, 0x5ee9c280, 0xa3e109ae, 0x24dc2cc5, 0x27cb56b8,
99 0xe159ebba, 0x12994d83, 0x8640e28e, 0x3ffdda05, 0x2fa07e3e, 0x51ed7f86,
100 0x0486eb76, 0xb466dcab, 0x077543e6, 0x18286cf3, 0x8b6bf294, 0xa045f9b1,
101 0x2b7cbc5e, 0x77142b64, 0xcb2bb933, 0x870095b7, 0xc0f2925a, 0xbecb5351,
102 0x5cc3dc50, 0x87c58656, 0xb94d14e7, 0xf660ac25, 0xa4d96e7e, 0x96598b2b,
103 0xe16431e0, 0xf471774e, 0x51dfd993, 0xfd97615e, 0xcb2284bd, 0x1b8fe34b,
104 0x4b2f2961, 0xeb15ec04, 0x62731463, 0xb3c1507b, 0xe9c2c13b, 0xec9c4aec,
105 0x6eb6f769, 0x9ef0e729, 0xabbb78ae, 0x1c9ddded, 0x60713fb1, 0x1a1fdc75,
106 0xf9637636, 0x75467d90, 0x5ca2e24f, 0x4863371d, 0x1888c199, 0xd4cbdb0f,
107 0x4ad5303e, 0x4a3aa828, 0x5bb41066, 0x20e5ebe3, 0xec6468d4, 0x8516aa05,
108 0xb1f1316f, 0xdeaaaf06, 0x96856dfc, 0x73cea67a, 0xa9f34bfb, 0xf445b772,
109 0x2a5177b5, 0x2557ff8c, 0x7cfa4cb5, 0xd3453de3, 0x87acf7b2, 0x20cfc76a,
110 0x9ddf5744, 0x4da8c64f, 0x4386a249, 0x38eb2bbb, 0x05b7a48d, 0x20600eef,
111 0x6ef2f0d6, 0xb3720673, 0x65a920ef, 0xc527fc1f, 0xe4e48d6b, 0x8273136f,
112 0x02c5ad82, 0x6d6bc7e2, 0xb6903a96, 0x11cb985d, 0x1ec8debd, 0xf9042c62,
113 0xfdfc3513, 0xb950cfef, 0xb97dba8e, 0x1d2318d0, 0xbab32b1b, 0xc5116c81,
114 0x126f019a, 0x76a48038, 0x12be70e4, 0x7bc6ee26, 0x9be09044, 0x201a4cac,
115 0x97140e47, 0x4e37073b, 0x4e4ed830, 0x03399a53, 0xcc2d81d6, 0x3cc25359,
116 0x5301f88a, 0xa3362256, 0x5a113e36, 0x2dc86d7c, 0x99a38cfa, 0x9b65c10d,
117 0xc172e20f, 0xe65a747a, 0x437ea6d9, 0x6fb8c2d5, 0x1d70f1ab, 0x4a3534f2,
118 0x39feaea5, 0xef448d6a, 0xacc2fc5e, 0xf03704a1, 0xda45fb92, 0x78187955,
119 0x3fd2af26, 0x08f4e5de, 0xcc4999ba, 0x1c126004, 0x3d644824, 0x46d602fc,
120 0xfc907eb3, 0x5a7c5a7b, 0x2fc20b46, 0x9d5b97f0, 0x248e8b64, 0xc6fcf285,
121 0xe48006ef, 0x7c1746f4, 0xeaf4be1b, 0x89a15c82, 0x0c272be1, 0x6cba6809,
122 0x99cc7a37, 0x33381528, 0xf1d36134, 0xf1318511, 0x3c178b8f, 0x2ec0d616,
123 0x4107bdd0, 0x225b8d3d, 0x1f2a461f, 0x1052a278, 0xabfb5809, 0xd8d919d1,
124 0xb17b1e4b, 0x0a0bd7df, 0x811917a1, 0xe0064e42, 0xa3ed683a, 0xfa5fe074,
125 0xb6e0cadd, 0x30311081, 0xa11edff0, 0xa4a36709, 0x52e0ea84, 0xe5ce1b05,
126 0x58b87dfd, 0x90643bd0, 0x004452b0, 0xa7106336, 0xd3ef6ea0, 0xef66a4b9,
127 0x686d9851, 0x244d8cd3, 0xa67228af, 0xf1821ec3, 0xd17c19ba, 0xba80f706,
128 0x97da9711, 0xe4921cab, 0x62355267, 0xd6750285, 0x5fa6af4e, 0xaa5ff99d,
129 0x40eb4792, 0xb432cf77, 0xa79c47ef, 0x5ae36cf5, 0x412a79b7, 0xc46ad360,
130 0x2fe9885c, 0x83b7cd68, 0xbc717a40, 0x28b34008, 0x15392744, 0x412f0068,
131 0xc317c096, 0xaa5f2217, 0x982e7502, 0x12cbe593, 0x0bf5205b, 0xf1046c86,
132 0xb304b189, 0xeff73dae, 0x5e46b357, 0xd01c0225, 0x27d50303, 0xc97df07d,
133 0x62a15e7b, 0x5a54ed21, 0xfda7cf2c, 0xd98dd67d, 0x716b74ef, 0x8cd1d74e,
134 0xafd98ce4, 0xb3a31f23, 0xba2e8af0, 0xb4f6cb45, 0xeaa4ba33, 0x30204fdd,
135 0xc0d16614, 0x059b7e37, 0x2f563cd7, 0x2b68f97e, 0x7091b164, 0xd58762b7,
136 0x663bcc1b, 0x7c39e10a, 0x24f513da, 0x341af293, 0xca9124ae, 0x98724a56,
137 0x9eaafaeb, 0x71373430, 0xab5c5379, 0xd4c86495, 0x76e4851f, 0x662a5221,
138 0xf62102d0, 0xa4fabacd, 0x362432be, 0xecbecbfd, 0xbf276088, 0xfd446b0d,
139 0xe6120673, 0xe972ccf9, 0xb4d6d606, 0x62bb0c7b, 0x456863df, 0x47171e17,
140 0xffbad8e3, 0x04b0f4f5, 0x7835f18b, 0x617d8850, 0xe5b1978e, 0x01c71f14,
141 0x088e97e8, 0xdaf06c7e, 0xd10c0863, 0x0c926779, 0x0f5e016a, 0x8c3eab3b,
142 0xb9f6971e, 0xd016a637, 0x85853b81, 0xa5d715dc, 0xe683658b, 0x7c530694,
143 0x0168ee76, 0x64c514ab, 0xfca5f130, 0xbbfc5cad, 0xfea5bbd4, 0x98fa1204,
144 0xa07b3c4f, 0xa802c234, 0x183cf416, 0x9daa86d6, 0x6aea3de6, 0x039ba283,
145 0xcea48593, 0xbf9ac83b, 0x609e1a4c, 0x3b7067d7, 0x9d085932, 0x05977b35,
146 0xe92ad466, 0x96d559c1, 0xf0cf2983, 0xe332bcfe, 0x655c5951, 0xcd34d040,
147 0x5b7905bb, 0x0a3ef093, 0xfb1b4b5d, 0x78454443, 0xe9f5ab71, 0x08bb3ce8,
148 0x34e7c5fa, 0x0ff3773c, 0xa7131d35, 0xbc031f59, 0x5c545ef7, 0x4ac02433,
149 0x47e3cdae, 0x413da13e, 0x35146238, 0x018e0e32, 0xfa3cd245, 0x22b3ab26,
150 0xaf89a0ec, 0xb7a5c5da, 0x09fe75e8, 0x57613bce, 0x330f8b1e, 0x00835129,
151 0xeb8ebb13, 0x4a620943, 0xdf46066e, 0xf13f2bd7, 0x9ea9e256, 0xea6b4e2d,
152 0xd1500e60, 0x5846ecbd, 0x1964e978, 0x18796f9a, 0x71093db5, 0xcc7f34f4,
153 0xe333bfb1, 0x9b7c5c50, 0xa2f83019, 0x352cc045, 0x8a3ffea0, 0xd0f58bca,
154 0x8f99e8f1, 0xecac4739, 0xfc671399, 0x81306c15, 0x711bd91b, 0x9081b8d7,
155 0xdd578fcb, 0x0ec41250, 0x060efdfc, 0x28db027d, 0x37f37151, 0xeb56ec26,
156 0x326c23ed, 0xf7c32b9c, 0x9c11ee5b, 0xf419e4be, 0x40fae05a, 0x9ba58693,
157 0x5638e4bb, 0xdb6bc0e9, 0x332c6e15, 0x0009a19e, 0xb5af55db, 0x1401945e,
158 0x8c192664, 0xac7a7235, 0xd2cd0b58, 0x48387de9, 0xfd6703a0, 0x7362cb7b,
159 0x1cc644af, 0x8a3d3a29, 0x0e2bae7b, 0x47278f39, 0x3f203a7a, 0x5910427b,
160 0xf82a2704, 0xd2f8a2cb, 0x15482a33, 0xe182eaca, 0x00c8781e, 0x7f23822a,
161 0xa595328d, 0x727c67d4, 0x3e8605ee, 0x14de66be, 0x0be4ba89, 0xb7d04d9b,
162 0x72f1e11e, 0x4ed78aab, 0x69746198, 0x3944dcb9, 0xf8e199f3, 0xb1e7663e,
163 0xedf50b64, 0x819370bc, 0x0fe9004d, 0xc4164611, 0x48102da3, 0xb1db7357,
164 0xd08c1e3d, 0x4f28f551, 0xd3561993, 0x29d9da35, 0x911c93fa, 0xcaaef82a,
165 0x9705fe49, 0x2b8acfe2, 0xafaaf801, 0xbfcf73b8, 0x15bfad24, 0xfdd9b41e,
166 0x3c0bd749, 0x96e5b3eb, 0x987ba72c, 0xb99b8c38, 0x54937f4d, 0xc81ba1bd,
167 0x75070cca, 0xacd998c0, 0xbb2464f8, 0x3b5bac55, 0xdc5f1e41, 0x90b162fb,
168 0xc210a156, 0xd8987506, 0x20d39c75, 0x4a9a4813, 0xe8a2c6b2, 0x910f4bbe,
169 0x2ee18500, 0xc91c1dd9, 0xba84f016, 0xeeeec8bd, 0x49c7a28b, 0xdc0a416f,
170 0x6e39d298, 0x1b558c97, 0xe856e9bb, 0x36cf58d2, 0x4dcc85bc, 0x0522418d,
171 0xe4c8657c, 0x31808d72, 0xf4cc787b, 0x6be51f89, 0xb3ea9632, 0x1c017820,
172 0x472757ae, 0x24f97eab, 0xd1112d9d, 0x55dfee5d, 0xf2af56ae, 0x8385be85,
173 0xb36f09c3, 0xaf087659, 0xabcbe435, 0xd3bc18b0, 0x76526be6, 0xb5ef461d,
174 0xbf2d9d13, 0xe5487abb, 0x9a436bcf, 0x08d62030, 0xb9842348, 0x68c2cebc,
175 0xd536e1ed, 0x5941918f, 0x32de3114, 0xaf0dd940, 0x830bf357, 0x069e9efa,
176 0x55724f75, 0x8c0ce92d, 0x123d7b91, 0xd1c758df, 0x81c0f120, 0x9b138a10,
177 0x8d6cfcb8, 0x7d6f7e5f, 0x3ebef170, 0x383a9495, 0x6b95caad, 0xf26c980e,
178 0x276889b7, 0x2f9d66ad, 0x2743b2e2, 0x151faca7, 0x6166d6fd, 0xd4bae121,
179 0x4c1f045f, 0x82ed770a, 0x2da45b9e, 0x31a56faf, 0x756ac1ea, 0x79104bc4,
180 0x71a8ad9a, 0x70057d3b, 0x30afdefb, 0xb58d05e3, 0x02aba334, 0x02f6de56,
181 0x07163cb4, 0x9b688ead, 0x6037804f, 0x070115f1, 0x6f6b4313, 0x07308789,
182 0x74f56ca3, 0x57ee2cba, 0x3f692b63, 0x474795b5, 0x1f8040ee, 0x52db461b,
183 0xbac7bdfb, 0x570abeb8, 0x68edddf3, 0xd472828b, 0x17b125e7, 0x1effdf05,
184 0x87e2022b, 0x8972188d, 0x96e6263a, 0xc96e2842, 0x1a4a4bb5, 0xc2b0a82f,
185 0xe3f19315, 0x379429b3, 0x907ec5c7, 0x7d6d79da, 0xe3bfbffe, 0x566f9934,
186 0x60aeff12, 0x9e9d17a2, 0x512eedaa, 0x04b637a0, 0x0d104851, 0xfe3ecd93,
187 0xee5c42f5, 0x48099889, 0x3f87881f, 0xdd27b34a, 0x93c23d0b, 0xef7ed9aa,
188 0xfefd66a2, 0xdb045a32, 0x40c4e3e0, 0xa806a218, 0xcdaa12c3, 0x2454988f,
189 0xe188d563, 0x05fd89b9, 0xa5b4dcdd, 0x13996e31, 0x9b90e8cf, 0x1a827ab1,
190 0xbfe44003, 0x05bfcdb6, 0x11a2a6ce, 0x4fb36a4e, 0xfad996ef, 0x439b9d76,
191 0x5e31c5d0, 0xaf00cb30, 0x6e4d75df, 0xb5ddc492, 0x185a40dd, 0xa58183ee,
192 0x9269a53d, 0x82b2ce5a, 0xc19def44, 0x2c9fda71, 0x891b010d, 0x6b08c436,
193 0x80b21fa2, 0x6ac7e807, 0x414f21e6, 0x88c3fef9, 0xd202986c, 0x582bfd60,
194 0x41b24d9a, 0x0a2b8fef, 0x4ed9e8e7, 0x49e0d38b, 0x120efd4a, 0x5edf6cad,
195 0x5aec20e4, 0x6e7bd300, 0xe3f49493, 0x4aeaf53a, 0x5bc45393, 0x8a7479fe,
196 0x246ac596, 0x655fa08b, 0x81fe2b29, 0x3fb1c372, 0xe810c324, 0x6097b28b,
197 0x5f3b177a, 0xcd80ecf8, 0x21158e90, 0xe65de05b, 0x8c136801, 0xf035138b,
198 0xfd8e574f, 0x1c956e90, 0x71571f8c, 0xdcb6da0b, 0x896128c6, 0x7b19134c,
199 0x46dcd078, 0xf48f604b, 0x7701cf4f, 0x2840bae6, 0x95db993d, 0x00659c15,
200 0x29b25409, 0x9dbb8edb, 0x1a19c1f4, 0x19d63b64, 0x62ee9b0c, 0x33f78c0d,
201 0xfefe6a23, 0xfc0fe787, 0x885de030, 0xf13a3105, 0x6cc3d52d, 0x81488728,
202 0xb5e18ea7, 0x13febf8e, 0x077dfc0d, 0x09a32301, 0x0a4f7fa7, 0x7f265384,
203 0x29e6f4fc, 0x6684cd59, 0x58ede585, 0xb2c0b862, 0x24692ff9, 0xa9f92f44,
204 0x102e8ed6, 0x0de534fd, 0x6d1866bf, 0xe4aae602, 0x8b7cd1e3, 0x2e5c9b72,
205 0x37c2fe32, 0x993517a5, 0x2ad6c314, 0xf3b387d1, 0xad05f7b7, 0xe0b32535,
206 0xf5a891c6, 0x9641f60c, 0x9bcf32ff, 0x3b7a5b4a, 0xf78b2c61, 0x795e1136,
207 0xf936231e, 0x6866d465, 0x1450891f, 0x82572dc4, 0x35a2e464, 0x118153ba,
208 0x845f8400, 0x5b455fd2, 0xb131e4c0, 0x68ec076f, 0xc5fcfc14, 0xbe9c3485,
209 0x2e618db1, 0x9e2f204d, 0x9d620a6a, 0x78a41397, 0xb718de6f, 0x56b93ce4,
210 0xf800e1f8, 0xa1098a4e, 0x04e720db, 0x21ca9ead, 0x2321543e, 0x75cf8b8f,
211 0x4c42b32e, 0xb9edb96b, 0x1a385d8d, 0x15514028, 0x7b66ecf1, 0x22161cc9,
212 0x4ee852af, 0xce9ffd96, 0x1cfbc12a, 0x636948b5, 0xb4d1e6d9, 0xa186da30,
213 0x105dd4f9, 0x3b39bb13, 0x74863866, 0x52907f0c, 0x02883dbf, 0x503eb830,
214 0xcc507232, 0x24482aec, 0xe43dd359, 0x285ff206, 0xec4c84a7, 0xb0636df8,
215 0xa1488120, 0xd14c1ffb, 0xa39cc1cf, 0x138ead25, 0x41e43b80, 0x6fa765e8,
216 0x34d64060, 0xbc8ff37c, 0x3eb8a24e, 0x40a3f88a, 0x5e92b113, 0x6df39364,
217 0x7e271eb1, 0x5daed332, 0x029d8df7, 0x52575c7f, 0x6e43641b, 0x9028a50f,
218 0x718f7fc3, 0xee037488, 0x4d4e361e, 0x545f4a00, 0xa6080b75, 0xed50c3b8,
219 0x579f3c51, 0xaf69075a, 0x22c03443, 0x87bc4be6, 0x9dd4b85e, 0x227cf706,
220 0x5255ee2d, 0x18a84a95, 0x1109d4f4, 0xc3f69031, 0x2d2ac862, 0xd6ba7ebb,
221 0x213b4c3f, 0x8b73d3e3, 0x488b1128, 0xb6957368, 0x2ceeee9e, 0xe2db2e9f,
222 0x0a8280f5, 0xccafa97b, 0xa756578a, 0x2a3ae2c7, 0x0945d579, 0xd94472a0,
223 0x3e218525, 0x67678f04, 0x7728a676, 0x4c6bffae, 0x4fa7217b, 0xe39d4c36,
224 0xf4866b5e, 0xa65473ec, 0x0d78373d, 0xd99c9b6d, 0x0171a33c, 0x5b83322c,
225 0x4edf1e2f, 0x30d9c8d5, 0xb47b00f0, 0xc5a97931, 0xd74714d7, 0x46b7ac86,
226 0xd8220f7a, 0xa8d6aa97, 0xd2658090, 0x51553797, 0xe545ba89, 0x45253aeb,
227 0x94923a24, 0x3d7e3414, 0xf06da8c2, 0x69c9aa62, 0x4e1da945, 0x7e480fe5,
228 0x847d4981, 0x118ffb75, 0xd8c61930, 0x7c1cd106, 0x70d04a3a, 0xeede7a65,
229 0x7f59a689, 0x3dc7bffb, 0xdd020bf4, 0x72294e39, 0x54e7904c, 0x3ab730f6,
230 0x77ab9d73, 0x5bbce6b7, 0x75b689ae, 0x772b799a, 0x23c03c31, 0x8d101a48,
231 0xa2f044c8, 0xd2a5c05a, 0x8e2b6bfe, 0xe0366ba9, 0x61443700, 0x59f99841,
232 0xc9aa6df1, 0xf905e8fb, 0x95a6e50a, 0x623b14f2, 0xc22efcce, 0xd1faacf0,
233 0x7d0bd86d, 0x25faba41, 0x9035b669, 0x84e8ef05, 0x31e6f2a4, 0x42966ce2,
234 0x3d31e201, 0x403d231f, 0xfc3e1d1d, 0xb40aff63, 0x81585a3c, 0x1a49d1e1,
235 0xd232847a, 0xd9e24ba6, 0xf7ec01f9, 0x1558a126, 0xb2fbf233, 0xe1709723,
236 0xed2d122f, 0xec972610, 0xd4658071, 0x0b641120, 0x15a1e582, 0xaf458d89,
237 0xdb484bae, 0xbb7d473e, 0x5baf18cd, 0xfeb6fe7d, 0xdabac234, 0xb98ab4e0,
238 0xe595c648, 0x5179f700, 0x9670816d, 0xb9a97dae, 0x1977a5cc, 0x00b6037d,
239 0xd7be392b, 0x344d7db2, 0x7d9b88a5, 0xc3634f52, 0xb13aa59a, 0x030511d8,
240 0x5ee48d51, 0xba4557ca, 0xea5e2bf9, 0xcb660e5d, 0xe4cced63, 0x97d47848,
241 0xcd6440b7, 0x0e554823, 0xbc6cc53a, 0x22eaae49, 0xd7105dd0, 0xcc35c561,
242 0x9804622b, 0x6d16d9b4, 0x392d571b, 0xa1bfece1, 0xca8ef0b2, 0xf45fc4da,
243 0x04c2ccfd, 0xc96bc5c4, 0xfed406d0, 0x1a95159b, 0x7fc53162, 0x02f68387,
244 0x0502bb64, 0x1c9db80e, 0x308ff221, 0xc5d2db36, 0x360ec557, 0x1afc549a,
245 0xb2410acd, 0x20e3729a, 0xe310c678, 0x21d05fc9, 0x44143b32, 0xa96ca939,
246 0x000c33c5, 0x381cdecc, 0xfd19370e, 0xbe8065af, 0x06f9d5e0, 0x78455f15,
247 0x7bd96324, 0x2c17a7c3, 0x18165591, 0x2908c8ca, 0xf391ae9b, 0x51e85445,
248 0xc150ac70, 0xfd826103, 0x0c61ce44, 0x7380e3d4, 0x8ff174b7, 0x0042a366,
249 0x330da4ec, 0xcec2b1f0, 0xb1d34062, 0xc19393d0, 0xdf6d188c, 0x3f761789,
250 0x19b20a83, 0x227d0157, 0x7dc22769, 0x85ed5c0f, 0xbeba3631, 0x102dc8c5,
251 0x23eca378, 0xaefdd569, 0x6586c577, 0x1d5c0c97, 0x388e6d62, 0x7ab382be,
252 0x5297d6a9, 0x29080a5c, 0x2ae3cf97, 0x144240c6, 0xd667f0c2, 0x3a86ca09,
253 0xaf26ae5c, 0xc5a2662b, 0x3964ab36, 0xc9496505, 0x8ea69041, 0x62a82b97,
254 0x435c2ed6, 0x34930891, 0xc71f2b5f, 0x9b03ae83, 0xd125c378, 0x32c281b8,
255 0xe1c1bbbc, 0xba90e05c, 0x2be5753e, 0x5332849e, 0xb38fb189, 0xe6c87e38,
256 0x5f1f7443, 0xaafeddd7, 0xf43dd497, 0xca166aa9, 0x40bef04e, 0xb86b78fc,
257 0x666a09de, 0xf69f51b5, 0xdfbf1d7d, 0xf19ffb3f, 0x2545eab1, 0x17578311,
258 0xa197f6df, 0xee616db9, 0x6c67e847, 0x85892797, 0x9d32423f, 0x1ddbab1b,
259 0x580148dc, 0x15525466, 0x9eca6548, 0x338717ae, 0x4d79252c, 0x662a6b79,
260 0x8ad33805, 0x223a82d0, 0x2e8d1bce, 0x62750d9c, 0x8c5d504b, 0xcfdcee61,
261 0x3764306c, 0xbe07a7ca, 0xe8ea2501, 0x755cb408, 0xefdf583e, 0xdfb17d34,
262 0x7cf50f34, 0xc72e6e21, 0xdef83e65, 0xa8685265, 0x0d0385c2, 0x7d87dc90,
263 0x9185c3a2, 0x4fc6c0a7, 0x89a0f0e9, 0xd33bf4f0, 0x8a6297a4, 0xbd66ad75,
264 0x476da766, 0x464e3a86, 0xc6f0aae9, 0xc9bcf793, 0xec014c63, 0xecc82c84,
265 0xc33cd25f, 0x8f0dfcd3, 0xc5842c9e, 0x81556a5c, 0x1f85e7b0, 0x29cf42fd,
266 0xd6d3bac5, 0x3edf1544, 0x5615006d, 0xd789b837, 0x9efc79a4, 0xb608d134,
267 0x5b397798, 0xd58ae97b, 0x7d49f72a, 0x0faf9439, 0xb44feb46, 0xaf2ca184,
268 0x1882fdf8, 0xc7ea9f1a, 0x8786b48f, 0x15078335, 0xc0f8cc03, 0x52bc9036,
269 0x21ed045c, 0x99c1d442, 0x760d3349, 0x958a1fe4, 0x2296814e, 0x6b341c88,
270 0x51df8432, 0xb9c19981, 0xbd126e93, 0xe15db8f0, 0x2c368aad, 0xaa83f95f,
271 0x29318dcd, 0x3d2e50f3, 0xfae10193, 0xbc909861, 0xef55397b, 0x422678bd,
272 0x5c81a4a7, 0x3b1b5b7f, 0x5d1ae889, 0x5c2fff73, 0x321e2b8b, 0xd4a7445e,
273 0xae5c5e57, 0x326afc14, 0x3b55fbd3, 0x98034755, 0xf1225ccc, 0x5a239f86,
274 0x954ab3ae, 0xdd55a628, 0x53ad4ba3, 0x2738b8f1, 0x100a963c, 0x3597965f,
275 0x41a73784, 0x2d769e8b, 0x59cf3e84, 0x619c7936, 0x2aef7536, 0x9590d157,
276 0x8de8976e, 0xe3a733aa, 0x46171c5e, 0x3cb43f87, 0x61da5a34, 0x79508027,
277 0xceee156c, 0x23d6d8da, 0x830981fa, 0xe2aaf276, 0x0436b20a, 0x365ae355,
278 0xee49396b, 0x6f50c356, 0x18ebd8ed, 0xdabb58be, 0x5cc1f991, 0x8fa2008e,
279 0xa29fa632, 0x141979c0, 0xe33f7ad9, 0xa2878d88, 0xe8969a0c, 0x96ee1b8c,
280 0xac34f73a, 0x14354df6, 0x121d7f63, 0x49baa849, 0x03b085b1, 0x94a33b33,
281 0xb02e99a9, 0x21866af8, 0x9f964784, 0xb061430a, 0x53102548, 0x87ddd58c,
282 0x5999d30d, 0xa58bd521, 0x0012e0e9, 0x566202ea, 0xb0e90b54, 0xe09e29e5,
283 0x57e966ac, 0x8ad7c4dd, 0x155148a2, 0x960a1497, 0x71870c0f, 0x84616de7,
284 0x9cac5f3b, 0x67406f4f, 0x3c5f9df8, 0x77df8153, 0x45a0ec5d, 0xfd1627ee,
285 0xf1679028, 0x019aafc7, 0x0b6dee0f, 0x25786503, 0xf8cd0ef6, 0x1c26e69b,
286 0xb9f43299, 0x345c8317, 0xe94ac354, 0x331fc77d, 0x74a1de07, 0xd90c6fb8,
287 0x73a3b074, 0x7fb7ff04, 0x627efe21, 0x7db208f0, 0xfefa0584, 0x7dabe580,
288 0x01f8bfeb, 0xcdd54418, 0x4a5616c2, 0xed3197e3, 0x89ac8ff6, 0xda549b85,
289 0x1ab6c334, 0xa553b033, 0x0e03d3e7, 0xb2a151dd, 0x63f6ddc1, 0xdf77270e,
290 0x029a938f, 0x1ad43519, 0x319c2c6c, 0x10c58b35, 0xa3b18519, 0x9c8588d5,
291 0x3cb4a48d, 0x11550be1, 0x29a80750, 0x14af1b64, 0x5ff8f1a3, 0xa0e3a60b,
292 0x3d7d4e36, 0xaf443239, 0xc5fbd7eb, 0x2db42d74, 0xc68b1e6e, 0x6cd93630,
293 0x37e5ef89, 0x3129c91b, 0xa7432242, 0x1f5f0399, 0xb741effa, 0x0fa84ddb,
294 0x142241af, 0xa5fa1176, 0x24366a31, 0x91c71609, 0x3c7fb16b, 0x25f68ebd,
295 0x6dc9e596, 0xb172d768, 0xa09da221, 0xf4748b14, 0x02870198, 0xab754a7e,
296 0x1fe22653, 0x36bd908c, 0xfdfd488b, 0xf501ef80, 0x4696c69a, 0xcbfb855a,
297 0xb323c26a, 0x837d5b10, 0x4b211c33, 0x32bca696, 0x5e2d7eda, 0xb1565009,
298 0x7c6e6a24, 0x324d84da, 0x9e3eb6c1, 0x46578ce9, 0x0930d101, 0xcd403841,
299 0x0fa84f1a, 0x3f465bcf, 0x1086addb, 0x7c483c28, 0x6d6fc3c6, 0x87bf59fa,
300 0xcf0e9c83, 0x8c723d99, 0x4ded357f, 0xe3c89f20, 0x109f9de5, 0xb1d2537a,
301 0x23aa4b7d, 0x653e2158, 0x967ee92f, 0xe3048bca, 0x7e935db6, 0x269cf32c,
302 0xf5c28b60, 0xf7f092f1, 0x07fd1b12, 0x18444395, 0x9f24b901, 0xb5ed69d3,
303 0x47d25d07, 0x266d633f, 0x0f533380, 0x4584d729, 0xf0974fd7, 0x20cafa9c,
304 0xd13180bc, 0x267a02a7, 0xd619719c, 0xabd81fbf, 0xcc120c38, 0xab211a9b,
305 0x8a44cfc2, 0x882f0131, 0xa0181bc9, 0xd2307144, 0x05ed026e, 0x458530a0,
306 0x1ed83467, 0x086acf47, 0x367d530b, 0x5bf7cfa7, 0x5dc039ae, 0x8967faf9,
307 0xafe5b01e, 0x23cb3702, 0x76f39fc5, 0x41ad47f9, 0x01fa50b4, 0x79f8c6c9,
308 0xd9ed623e, 0x08c81e8e, 0x9a9a6590, 0x07acc758, 0xf5a98905, 0x84fd5c8b,
309 0xec34f509, 0xf298d3b7, 0x055c09a1, 0x2b7feea5, 0xa38a7301, 0xa947c000,
310 0x54857d66, 0x6da6e2a6, 0x09d7e678, 0x2d72aab7, 0x802bc0d5, 0x6dd3ad26,
311 0xd107d665, 0x9d85289c, 0x89395298, 0xf186d316, 0x4f2475c7, 0x1dfda1b1,
312 0xeb2e6be9, 0x6ee46edf, 0xfaa80f23, 0x76aebfe7, 0xe83d494e, 0xa9a10351,
313 0xe9c031b0, 0xe36e0e93, 0x154b0dd7, 0x2c6275e2, 0xcf04e031, 0x234d5576,
314 0x62f8aa2b, 0x55f1c3c3, 0xf35d1d4f, 0x8b23f5a3, 0xfcef0b3f, 0x01a270ac,
315 0x67345b89, 0xf08e7a5f, 0x5c83868e, 0x9b531963, 0xb15cd0cf, 0x10802fc0,
316 0xc3af568a, 0x01c9850a, 0x0cd75c16, 0xd2821be3, 0x72116fff, 0xb6f2fd49,
317 0x821b8ef1, 0xb3b7aeab, 0x9c6c3a5e, 0x7ec565c9, 0x90951900, 0x014310b7,
318 0x30a7086b, 0x4ffe8c39, 0xceac78c2, 0x373cfd78, 0xe78e5e18, 0xd0eade50,
319 0x30cca3ea, 0xcee406a6, 0x52b7c5d1, 0xad8f5da9, 0x580c4460, 0x238ab8de,
320 0x9be34234, 0x3f763868, 0xfe451d2a, 0xfc3d8fc8, 0x83ab7dec, 0x6eb27841,
321 0x94fbe186, 0x9a038784, 0xc886246b, 0x8d644313, 0x1e2be441, 0x8b74ae90,
322 0x1f79ee26, 0xea3fbf26, 0x577594f9, 0x0b96cfc2, 0xf28bd468, 0x4c5380ec,
323 0x0a0e33a6, 0x44327d97, 0x1a21b469, 0xdaa6ed1c, 0xcfe6a675, 0x92413ff5,
324 0x3777438f, 0xa27179e4, 0xf72df776, 0x32912357, 0x6a6d7d43, 0x7d7beb49,
325 0xe2ac47bc, 0xa2f88581, 0xe072650e, 0xa4b5e61e, 0xc3749b5e, 0xafc98f19,
326 0x2e9d7f68, 0xed592bc4, 0xf257a0b2, 0xc474ed55, 0x4bc07cc3, 0x74ff9298,
327 0x44c167c9, 0x41dbba81, 0x27b82053, 0xfc257989, 0x6e540bdb, 0x652f792f,
328 0x24e71118, 0xdb175d84, 0xa008ad1d, 0x2871b097, 0xad7465a0, 0xf87f60bd,
329 0xe4af2888, 0x348a6bdf, 0xa3b2ad40, 0x1811e8c5, 0x956bd358, 0x3d46e3a4,
330 0xf57c5c09, 0x8e6af896, 0x3b39e0b3, 0x906488d9, 0x76694b11, 0x2c32339e,
331 0x05b99456, 0x35d01713, 0x698a585a, 0xd5c1ffaf, 0x78344e2e, 0xa68667ce,
332 0x03be10a0, 0xb694494b, 0x111f6ed3, 0x6430ea45, 0x2046c7ae, 0x1d0d29f7,
333 0xa08b72d7, 0xaa3acfe4, 0x26abf9d2, 0x5bd895c4, 0x68ee4af7, 0xffac0cb9,
334 0xb557b353, 0x55bac45c, 0x90298b55, 0x11f0a896, 0xb130e89d, 0xadaf5a65,
335 0x8f0495e3, 0xcec67bdf, 0xbd8d7559, 0xa23b97dd, 0xba95d692, 0x282e7cf1,
336 0x655ae5d8, 0x0df10cb3, 0x0d718c96, 0x727125e1, 0x7281a951, 0xf5549438,
337 0x45252d55, 0x9c8a7565, 0x8feb23a1, 0xa8f8607d, 0xf61c43bf, 0xabc8525a,
338 0x89fc4d21, 0x8d437899, 0x1c539597, 0xb52eefce, 0x6e8ccd99, 0x6bfc6d73,
339 0xeca340ad, 0xb63c01a3, 0x2cf0e420, 0x94ee7fd3, 0x7b757054, 0xe962cfc6,
340 0xd8324f5a, 0x176871c0, 0x63fd3f62, 0x464a41e0, 0x399a4261, 0xd9438f1a,
341 0x98606eb2, 0x6edad323, 0xb43879d8, 0x89530f20, 0x5044c07e, 0x8df5879b,
342 0xdaeb9b3e, 0x060203d7, 0x0b40e5e1, 0x6cb6422f, 0x13e25553, 0x6be52848,
343 0xa601d4f8, 0xce4354be, 0x967f4088, 0x122783d0, 0x40334f99, 0x50262162,
344 0xf418017d, 0x2f4ad3d8, 0x4a069a41, 0xd0312622, 0x17623703, 0xd1280ddb,
345 0x04c595fd, 0x99156487, 0x2bf0359e, 0xa3a3f34a, 0xb8fe7379, 0x95ea1692,
346 0xf333fb5b, 0x219da408, 0x162bbd5f, 0x7c66469f, 0x715ced40, 0x25abbca0,
347 0xa3107699, 0x94af642b, 0x26758818, 0xe99da0f8, 0x1c3d8144, 0xb14b1bfb,
348 0xf8351a6e, 0x86968168, 0xe7f82b4e, 0xf629c3f9, 0x0a1ea01a, 0x3cdf2107,
349 0x4b08ca7a, 0xb73721a5, 0x41679e12, 0x6740817f, 0xbb42b48f, 0x51f7c3f9,
350 0xb6ec54b7, 0xae7e62ae, 0xfacbe99d, 0x2c95302b, 0xbde118cb, 0x0c3bcda0,
351 0x6cca4295, 0xb7f863b8, 0xb5def5d7, 0x1fd63b2e, 0xe2f19cdb, 0x60d31e1e,
352 0x83453e13, 0xf438370d, 0xcf4c1588, 0x027ac92a, 0x258eb15e, 0x96043a11,
353 0x51b801b6, 0xb3599614, 0x8cfd0a33, 0x3fbf384f, 0xee0402d2, 0x77829286,
354 0xf19c4fae, 0x34bc9297, 0x247ef692, 0x40b26a2e, 0x8ace141f, 0xd368f553,
355 0xdca1acd9, 0x4f23efb1, 0x89aa6d28, 0x248cf1bc, 0xf5f4b641, 0x3c90af60,
356 0xf6b87e52, 0x2cab987c, 0x242f91d9, 0x24351691, 0xf935a89d, 0xb9491bec,
357 0xc30d5638, 0xc6d855ce, 0x5d20030e, 0x0b9cbf91, 0x484b1a8b, 0x862bbaa7,
358 0xd51ca063, 0xa2703863, 0xf758958a, 0x94f7bcd4, 0xfebc38cb, 0xa606a6f9,
359 0xd634e792, 0xb1ac54ec, 0xbfecc2c3, 0xf26becd7, 0xbc34b409, 0x83ba71b5,
360 0xf6f781c9, 0x85ef5627, 0x2d3aa21f, 0xb7c91b3a, 0xb3b07b08, 0xa74d52a4,
361 0xabb203d6, 0x6177e661, 0x26a9dd30, 0x9a30e38b, 0x2037c488, 0xadb3363d,
362 0x9cf2e744, 0x8beded90, 0xd7110638, 0x850d5f9e, 0xd70fa302, 0x62647d28,
363 0x1d3a8cec, 0xebddecaa, 0xfb805ee5, 0x1adff30b, 0x021a63a1, 0xb8d5a3bc,
364 0xc3b28262, 0x43d23529, 0x5cc2a4d8, 0x6205cad2, 0xe982005e, 0x47e70857,
365 0x8dbd62c7, 0x6599b245, 0x39e658d0, 0x8afd8e9e, 0x81809727, 0x5fcc5f81,
366 0x57a58468, 0xd15074d0, 0x5bbad32a, 0x3deaa4cb, 0x3038b207, 0x2f7cc991,
367 0x093e99c6, 0x978e9d09, 0x9f8345ef, 0x2f122927, 0xd149bc67, 0x6f2b2095,
368 0xb1d2b6d1, 0x77116e58, 0x65d5d790, 0x9eb73434, 0x4812db1a, 0x77f4086e,
369 0xac3a43c5, 0x45c63d93, 0x079aa6be, 0xf0b8a330, 0x926133a3, 0x5e0a9cc7,
370 0x53f53ab0, 0x9d5e0799, 0xc1a5a294, 0x1ee74b04, 0x116932c1, 0x57fb3c31,
371 0xf1313fe0, 0x7beccdaf, 0x177baa53, 0x0f73bdde, 0x99aff10c, 0x4638f7d3,
372 0xf4d8ee50, 0xbeda9693, 0x7b1ec0b7, 0x8f0ea14c, 0x4adec00a, 0x7706cbdc,
373 0xa12d114e, 0x5bbb82e9, 0x469358aa, 0x78720867, 0x58ab7669, 0xa1736ad5,
374 0x90b79e01, 0x120c29b9, 0x9f18df90, 0xce172828, 0x957ea552, 0x6e1d41e5,
375 0x43517426, 0x6d633090, 0x4d5b1902, 0x49789300, 0x892b1dfc, 0xbdac18f5,
376 0xf777f6af, 0x8106cc64, 0x62871815, 0xb855c449, 0x383be87d, 0x58637bf1,
377 0x84fe71ce, 0x0dfb31b8,
380 static uint32_t kSpxEnabled = 0;
382 static const sigverify_spx_config_id_t kConfig = kSigverifySpxConfigIdSha2128s;
385 static const uint8_t kSpxVerifyDomainSep[] = {
390 static void enable_spx_verify(
void) { kSpxEnabled = 0; }
392 static void disable_spx_verify(
void) { kSpxEnabled = kSigverifySpxDisabledOtp; }
394 uint32_t sigverify_spx_verify_enabled(lifecycle_state_t lc_state) {
395 if (kSpxEnabled != kSigverifySpxDisabledOtp) {
403 static rom_error_t spx_success_to_ok_test_impl(uint32_t v,
bool eq) {
404 uint32_t res = sigverify_spx_success_to_ok(v);
405 LOG_INFO(
"0x%08x -> 0x%08x", v, res);
406 if ((res == kErrorOk) ^ eq) {
407 LOG_ERROR(
"Wrong result 0x%08x for 0x%08x", res, v);
408 return kErrorUnknown;
413 static rom_error_t spx_success_to_ok_test(
void) {
416 spx_success_to_ok_test_impl(kSigverifySpxDisabledOtp,
true) != kErrorOk;
417 failed |= spx_success_to_ok_test_impl(kSigverifySpxSuccess,
true) != kErrorOk;
418 failed |= spx_success_to_ok_test_impl(UINT32_MAX,
false) != kErrorOk;
419 failed |= spx_success_to_ok_test_impl(0,
false) != kErrorOk;
420 failed |= spx_success_to_ok_test_impl(kErrorOk,
false) != kErrorOk;
422 return kErrorUnknown;
427 static rom_error_t spx_verify_impl_test(
void) {
430 spx_public_key_root(kPubKey.
data, expected_root.
data);
431 rom_error_t error = spx_verify(kSignature.data, kSpxVerifyDomainSep,
432 sizeof(kSpxVerifyDomainSep), NULL, 0, NULL, 0,
433 (
const uint8_t *)kMessage, kMessageLen,
436 return kErrorUnknown;
441 static rom_error_t spx_verify_disabled_bad_signature_test(
void) {
442 disable_spx_verify();
444 uint32_t flash_exec = 0;
445 uint32_t good_word = kSignature.data[0];
446 kSignature.data[0] = 0;
447 rom_error_t error = sigverify_spx_verify(
448 &kSignature, &kPubKey, kConfig, kLcStateProd, NULL, 0, NULL, 0, &kMessage,
449 kMessageLen, NULL, &flash_exec);
450 kSignature.data[0] = good_word;
452 if (flash_exec != kSigverifySpxSuccess) {
453 LOG_ERROR(
"flash_exec must be 0x%08x, not 0x%08x", kSigverifySpxSuccess,
455 return kErrorUnknown;
460 static rom_error_t spx_verify_disabled_good_signature_test(
void) {
461 disable_spx_verify();
463 uint32_t flash_exec = 0;
464 rom_error_t error = sigverify_spx_verify(
465 &kSignature, &kPubKey, kConfig, kLcStateProd, NULL, 0, NULL, 0, &kMessage,
466 kMessageLen, NULL, &flash_exec);
468 if (flash_exec != kSigverifySpxSuccess) {
469 LOG_ERROR(
"flash_exec must be 0x%08x, not 0x%08x", kSigverifySpxSuccess,
471 return kErrorUnknown;
476 static rom_error_t spx_verify_enabled_bad_signature_test(
void) {
479 uint32_t flash_exec = 0;
480 uint32_t good_word = kSignature.data[0];
481 kSignature.data[0] = 0;
482 rom_error_t error = sigverify_spx_verify(
483 &kSignature, &kPubKey, kConfig, kLcStateProd, NULL, 0, NULL, 0, &kMessage,
484 kMessageLen, NULL, &flash_exec);
485 kSignature.data[0] = good_word;
487 if (error == kErrorOk) {
488 LOG_ERROR(
"error should not be kErrorOk");
489 return kErrorUnknown;
491 if (flash_exec != UINT32_MAX) {
492 LOG_ERROR(
"flash_exec must be UINT32_MAX");
493 return kErrorUnknown;
499 static rom_error_t spx_verify_enabled_good_signature_test(
void) {
502 uint32_t flash_exec = 0;
503 rom_error_t error = sigverify_spx_verify(
504 &kSignature, &kPubKey, kConfig, kLcStateProd, NULL, 0, NULL, 0, &kMessage,
505 kMessageLen, NULL, &flash_exec);
507 if (flash_exec != kSigverifySpxSuccess) {
508 LOG_ERROR(
"flash_exec must be 0x%08x, not 0x%08x", kSigverifySpxSuccess,
510 return kErrorUnknown;
515 OTTF_DEFINE_TEST_CONFIG();
524 EXECUTE_TEST(error, spx_verify_disabled_bad_signature_test);
525 EXECUTE_TEST(error, spx_verify_disabled_good_signature_test);
526 EXECUTE_TEST(error, spx_verify_enabled_bad_signature_test);
527 EXECUTE_TEST(error, spx_verify_enabled_good_signature_test);
529 return status_ok(error);