blob: 951b57f7ac53fd4f55d8d10390f37763852ae13b [file] [log] [blame]
Etienne Carriere9b7b70d2020-05-16 10:27:23 +02001/* SPDX-License-Identifier: GPL-2.0 */
Pascal Brandc639ac82015-07-02 08:53:34 +02002/*
3 * Copyright (c) 2014, STMicroelectronics International N.V.
Pascal Brandc639ac82015-07-02 08:53:34 +02004 */
5
6#ifndef XTEST_4000_DATA_H
7#define XTEST_4000_DATA_H
8#include <stdint.h>
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02009#include <nist/186-3dsatestvectors.h>
10#include <nist/ecccdhtestvectors.h>
Pascal Brandc639ac82015-07-02 08:53:34 +020011
12/*
13 * XTS-AES Test data from:
14 * http://grouper.ieee.org/groups/1619/email/pdf00086.pdf
15 */
16
17/*
18 * XTS-AES applied for a data unit of 32 bytes, 32 bytes key material.
19 */
20
21/* Vector 1 */
22static const uint8_t ciph_data_aes_xts_vect1_key1[] = {
23 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
24 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
25};
26static const uint8_t ciph_data_aes_xts_vect1_key2[] = {
27 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
29};
30static const uint8_t ciph_data_aes_xts_vect1_iv[16] = {
31 0x0
32};
33static const uint8_t ciph_data_aes_xts_vect1_ptx[] = {
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38};
39/* TWK 66e94bd4ef8a2c3b884cfa59ca342b2eccd297a8df1559761099f4b39469565c */
40static const uint8_t ciph_data_aes_xts_vect1_ctx[] = {
41 0x91, 0x7c, 0xf6, 0x9e, 0xbd, 0x68, 0xb2, 0xec,
42 0x9b, 0x9f, 0xe9, 0xa3, 0xea, 0xdd, 0xa6, 0x92,
43 0xcd, 0x43, 0xd2, 0xf5, 0x95, 0x98, 0xed, 0x85,
44 0x8c, 0x02, 0xc2, 0x65, 0x2f, 0xbf, 0x92, 0x2e,
45};
46
47/* Vector 2 */
48static const uint8_t ciph_data_aes_xts_vect2_key1[] = {
49 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
50 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
51};
52static const uint8_t ciph_data_aes_xts_vect2_key2[] = {
53 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
54 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
55};
56static const uint8_t ciph_data_aes_xts_vect2_iv[16] = {
57 0x33, 0x33, 0x33, 0x33, 0x33
58};
59static const uint8_t ciph_data_aes_xts_vect2_ptx[] = {
60 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
61 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
62 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
63 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
64};
65/* TWK 3f803bcd0d7fd2b37558419f59d5cda6f900779a1bfea467ebb0823eb3aa9b4d */
66static const uint8_t ciph_data_aes_xts_vect2_ctx[] = {
67 0xc4, 0x54, 0x18, 0x5e, 0x6a, 0x16, 0x93, 0x6e,
68 0x39, 0x33, 0x40, 0x38, 0xac, 0xef, 0x83, 0x8b,
69 0xfb, 0x18, 0x6f, 0xff, 0x74, 0x80, 0xad, 0xc4,
70 0x28, 0x93, 0x82, 0xec, 0xd6, 0xd3, 0x94, 0xf0,
71};
72
73/* Vector 3 */
74static const uint8_t ciph_data_aes_xts_vect3_key1[] = {
75 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
76 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
77};
78static const uint8_t ciph_data_aes_xts_vect3_key2[] = {
79 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
80 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
81};
82static const uint8_t ciph_data_aes_xts_vect3_iv[16] = {
83 0x33, 0x33, 0x33, 0x33, 0x33
84};
85static const uint8_t ciph_data_aes_xts_vect3_ptx[] = {
86 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
87 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
88 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
89 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
90};
91/* TWK 3f803bcd0d7fd2b37558419f59d5cda6f900779a1bfea467ebb0823eb3aa9b4d */
92static const uint8_t ciph_data_aes_xts_vect3_ctx[] = {
93 0xaf, 0x85, 0x33, 0x6b, 0x59, 0x7a, 0xfc, 0x1a,
94 0x90, 0x0b, 0x2e, 0xb2, 0x1e, 0xc9, 0x49, 0xd2,
95 0x92, 0xdf, 0x4c, 0x04, 0x7e, 0x0b, 0x21, 0x53,
96 0x21, 0x86, 0xa5, 0x97, 0x1a, 0x22, 0x7a, 0x89,
97};
98
99/*
100 * XTS-AES-128 applied for a data unit of 512 bytes
101 */
102
103/* Vector 4 */
104static const uint8_t ciph_data_aes_xts_vect4_key1[] = {
105 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
106 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
107};
108static const uint8_t ciph_data_aes_xts_vect4_key2[] = {
109 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
110 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
111};
112static const uint8_t ciph_data_aes_xts_vect4_iv[16] = {
113 0x00
114};
115static const uint8_t ciph_data_aes_xts_vect4_ptx[] = {
116 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
117 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
118 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
119 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
120
121 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
122 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
123 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
124 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
125
126 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
127 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
128 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
129 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
130
131 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
132 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
133 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
134 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
135
136 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
137 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
138 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
139 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
140
141 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
142 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
143 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
144 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
145
146 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
147 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
148 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
149 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
150
151 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
152 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
153 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
154 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
155
156 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
157 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
158 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
159 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
160
161 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
162 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
163 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
164 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
165
166 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
167 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
168 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
169 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
170
171 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
172 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
173 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
174 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
175
176 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
177 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
178 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
179 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
180
181 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
182 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
183 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
184 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
185
186 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
187 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
188 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
189 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
190
191 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
192 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
193 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
194 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
195};
196static const uint8_t ciph_data_aes_xts_vect4_ctx[] = {
197 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76,
198 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2,
199 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25,
200 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c,
201
202 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f,
203 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00,
204 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad,
205 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12,
206
207 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5,
208 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5,
209 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc,
210 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce,
211
212 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4,
213 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84,
214 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a,
215 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65,
216
217 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89,
218 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51,
219 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15,
220 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8,
221
222 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed,
223 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91,
224 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e,
225 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34,
226
227 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b,
228 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5,
229 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4,
230 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c,
231
232 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd,
233 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3,
234 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f,
235 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e,
236
237 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91,
238 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19,
239 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1,
240 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc,
241
242 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed,
243 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde,
244 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98,
245 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3,
246
247 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca,
248 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6,
249 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc,
250 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44,
251
252 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0,
253 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95,
254 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4,
255 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd,
256
257 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13,
258 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7,
259 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a,
260 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52,
261
262 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a,
263 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38,
264 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e,
265 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e,
266
267 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad,
268 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8,
269 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c,
270 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d,
271
272 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f,
273 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2,
274 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea,
275 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68,
276};
277
278/* Vector 5 */
279static const uint8_t ciph_data_aes_xts_vect5_key1[] = {
280 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
281 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
282};
283static const uint8_t ciph_data_aes_xts_vect5_key2[] = {
284 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
285 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
286};
287static const uint8_t ciph_data_aes_xts_vect5_iv[16] = {
288 0x01
289};
290static const uint8_t ciph_data_aes_xts_vect5_ptx[] = {
291 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76,
292 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2,
293 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25,
294 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c,
295
296 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f,
297 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00,
298 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad,
299 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12,
300
301 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5,
302 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5,
303 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc,
304 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce,
305
306 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4,
307 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84,
308 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a,
309 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65,
310
311 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89,
312 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51,
313 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15,
314 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8,
315
316 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed,
317 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91,
318 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e,
319 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34,
320
321 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b,
322 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5,
323 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4,
324 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c,
325
326 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd,
327 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3,
328 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f,
329 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e,
330
331 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91,
332 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19,
333 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1,
334 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc,
335
336 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed,
337 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde,
338 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98,
339 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3,
340
341 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca,
342 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6,
343 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc,
344 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44,
345
346 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0,
347 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95,
348 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4,
349 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd,
350
351 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13,
352 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7,
353 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a,
354 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52,
355
356 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a,
357 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38,
358 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e,
359 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e,
360
361 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad,
362 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8,
363 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c,
364 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d,
365
366 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f,
367 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2,
368 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea,
369 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68,
370};
371static const uint8_t ciph_data_aes_xts_vect5_ctx[] = {
372 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe,
373 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f,
374 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60,
375 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5,
376
377 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d,
378 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce,
379 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b,
380 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb,
381
382 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49,
383 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3,
384 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28,
385 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f,
386
387 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca,
388 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2,
389 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa,
390 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01,
391
392 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43,
393 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d,
394 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58,
395 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99,
396
397 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3,
398 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f,
399 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e,
400 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07,
401
402 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a,
403 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52,
404 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c,
405 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3,
406
407 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16,
408 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b,
409 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6,
410 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb,
411
412 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5,
413 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0,
414 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44,
415 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd,
416
417 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb,
418 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1,
419 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf,
420 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14,
421
422 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7,
423 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d,
424 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c,
425 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed,
426
427 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7,
428 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97,
429 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32,
430 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62,
431
432 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75,
433 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce,
434 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04,
435 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84,
436
437 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43,
438 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95,
439 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4,
440 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32,
441
442 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab,
443 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2,
444 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d,
445 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c,
446
447 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4,
448 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d,
449 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a,
450 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd,
451};
452
453/* Vector 6 */
454static const uint8_t ciph_data_aes_xts_vect6_key1[] = {
455 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
456 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
457};
458static const uint8_t ciph_data_aes_xts_vect6_key2[] = {
459 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
460 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
461};
462static const uint8_t ciph_data_aes_xts_vect6_iv[16] = {
463 0x02
464};
465static const uint8_t ciph_data_aes_xts_vect6_ptx[] = {
466 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe,
467 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f,
468 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60,
469 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5,
470
471 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d,
472 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce,
473 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b,
474 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb,
475
476 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49,
477 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3,
478 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28,
479 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f,
480
481 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca,
482 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2,
483 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa,
484 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01,
485
486 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43,
487 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d,
488 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58,
489 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99,
490
491 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3,
492 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f,
493 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e,
494 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07,
495
496 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a,
497 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52,
498 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c,
499 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3,
500
501 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16,
502 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b,
503 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6,
504 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb,
505
506 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5,
507 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0,
508 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44,
509 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd,
510
511 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb,
512 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1,
513 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf,
514 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14,
515
516 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7,
517 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d,
518 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c,
519 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed,
520
521 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7,
522 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97,
523 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32,
524 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62,
525
526 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75,
527 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce,
528 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04,
529 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84,
530
531 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43,
532 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95,
533 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4,
534 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32,
535
536 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab,
537 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2,
538 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d,
539 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c,
540
541 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4,
542 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d,
543 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a,
544 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd,
545};
546static const uint8_t ciph_data_aes_xts_vect6_ctx[] = {
547 0xfa, 0x76, 0x2a, 0x36, 0x80, 0xb7, 0x60, 0x07,
548 0x92, 0x8e, 0xd4, 0xa4, 0xf4, 0x9a, 0x94, 0x56,
549 0x03, 0x1b, 0x70, 0x47, 0x82, 0xe6, 0x5e, 0x16,
550 0xce, 0xcb, 0x54, 0xed, 0x7d, 0x01, 0x7b, 0x5e,
551
552 0x18, 0xab, 0xd6, 0x7b, 0x33, 0x8e, 0x81, 0x07,
553 0x8f, 0x21, 0xed, 0xb7, 0x86, 0x8d, 0x90, 0x1e,
554 0xbe, 0x9c, 0x73, 0x1a, 0x7c, 0x18, 0xb5, 0xe6,
555 0xde, 0xc1, 0xd6, 0xa7, 0x2e, 0x07, 0x8a, 0xc9,
556
557 0xa4, 0x26, 0x2f, 0x86, 0x0b, 0xee, 0xfa, 0x14,
558 0xf4, 0xe8, 0x21, 0x01, 0x82, 0x72, 0xe4, 0x11,
559 0xa9, 0x51, 0x50, 0x2b, 0x6e, 0x79, 0x06, 0x6e,
560 0x84, 0x25, 0x2c, 0x33, 0x46, 0xf3, 0xaa, 0x62,
561
562 0x34, 0x43, 0x51, 0xa2, 0x91, 0xd4, 0xbe, 0xdc,
563 0x7a, 0x07, 0x61, 0x8b, 0xde, 0xa2, 0xaf, 0x63,
564 0x14, 0x5c, 0xc7, 0xa4, 0xb8, 0xd4, 0x07, 0x06,
565 0x91, 0xae, 0x89, 0x0c, 0xd6, 0x57, 0x33, 0xe7,
566
567 0x94, 0x6e, 0x90, 0x21, 0xa1, 0xdf, 0xfc, 0x4c,
568 0x59, 0xf1, 0x59, 0x42, 0x5e, 0xe6, 0xd5, 0x0c,
569 0xa9, 0xb1, 0x35, 0xfa, 0x61, 0x62, 0xce, 0xa1,
570 0x8a, 0x93, 0x98, 0x38, 0xdc, 0x00, 0x0f, 0xb3,
571
572 0x86, 0xfa, 0xd0, 0x86, 0xac, 0xce, 0x5a, 0xc0,
573 0x7c, 0xb2, 0xec, 0xe7, 0xfd, 0x58, 0x0b, 0x00,
574 0xcf, 0xa5, 0xe9, 0x85, 0x89, 0x63, 0x1d, 0xc2,
575 0x5e, 0x8e, 0x2a, 0x3d, 0xaf, 0x2f, 0xfd, 0xec,
576
577 0x26, 0x53, 0x16, 0x59, 0x91, 0x2c, 0x9d, 0x8f,
578 0x7a, 0x15, 0xe5, 0x86, 0x5e, 0xa8, 0xfb, 0x58,
579 0x16, 0xd6, 0x20, 0x70, 0x52, 0xbd, 0x71, 0x28,
580 0xcd, 0x74, 0x3c, 0x12, 0xc8, 0x11, 0x87, 0x91,
581
582 0xa4, 0x73, 0x68, 0x11, 0x93, 0x5e, 0xb9, 0x82,
583 0xa5, 0x32, 0x34, 0x9e, 0x31, 0xdd, 0x40, 0x1e,
584 0x0b, 0x66, 0x0a, 0x56, 0x8c, 0xb1, 0xa4, 0x71,
585 0x1f, 0x55, 0x2f, 0x55, 0xde, 0xd5, 0x9f, 0x1f,
586
587 0x15, 0xbf, 0x71, 0x96, 0xb3, 0xca, 0x12, 0xa9,
588 0x1e, 0x48, 0x8e, 0xf5, 0x9d, 0x64, 0xf3, 0xa0,
589 0x2b, 0xf4, 0x52, 0x39, 0x49, 0x9a, 0xc6, 0x17,
590 0x6a, 0xe3, 0x21, 0xc4, 0xa2, 0x11, 0xec, 0x54,
591
592 0x53, 0x65, 0x97, 0x1c, 0x5d, 0x3f, 0x4f, 0x09,
593 0xd4, 0xeb, 0x13, 0x9b, 0xfd, 0xf2, 0x07, 0x3d,
594 0x33, 0x18, 0x0b, 0x21, 0x00, 0x2b, 0x65, 0xcc,
595 0x98, 0x65, 0xe7, 0x6c, 0xb2, 0x4c, 0xd9, 0x2c,
596
597 0x87, 0x4c, 0x24, 0xc1, 0x83, 0x50, 0x39, 0x9a,
598 0x93, 0x6a, 0xb3, 0x63, 0x70, 0x79, 0x29, 0x5d,
599 0x76, 0xc4, 0x17, 0x77, 0x6b, 0x94, 0xef, 0xce,
600 0x3a, 0x0e, 0xf7, 0x20, 0x6b, 0x15, 0x11, 0x05,
601
602 0x19, 0x65, 0x5c, 0x95, 0x6c, 0xbd, 0x8b, 0x24,
603 0x89, 0x40, 0x5e, 0xe2, 0xb0, 0x9a, 0x6b, 0x6e,
604 0xeb, 0xe0, 0xc5, 0x37, 0x90, 0xa1, 0x2a, 0x89,
605 0x98, 0x37, 0x8b, 0x33, 0xa5, 0xb7, 0x11, 0x59,
606
607 0x62, 0x5f, 0x4b, 0xa4, 0x9d, 0x2a, 0x2f, 0xdb,
608 0xa5, 0x9f, 0xbf, 0x08, 0x97, 0xbc, 0x7a, 0xab,
609 0xd8, 0xd7, 0x07, 0xdc, 0x14, 0x0a, 0x80, 0xf0,
610 0xf3, 0x09, 0xf8, 0x35, 0xd3, 0xda, 0x54, 0xab,
611
612 0x58, 0x4e, 0x50, 0x1d, 0xfa, 0x0e, 0xe9, 0x77,
613 0xfe, 0xc5, 0x43, 0xf7, 0x41, 0x86, 0xa8, 0x02,
614 0xb9, 0xa3, 0x7a, 0xdb, 0x3e, 0x82, 0x91, 0xec,
615 0xa0, 0x4d, 0x66, 0x52, 0x0d, 0x22, 0x9e, 0x60,
616
617 0x40, 0x1e, 0x72, 0x82, 0xbe, 0xf4, 0x86, 0xae,
618 0x05, 0x9a, 0xa7, 0x06, 0x96, 0xe0, 0xe3, 0x05,
619 0xd7, 0x77, 0x14, 0x0a, 0x7a, 0x88, 0x3e, 0xcd,
620 0xcb, 0x69, 0xb9, 0xff, 0x93, 0x8e, 0x8a, 0x42,
621
622 0x31, 0x86, 0x4c, 0x69, 0xca, 0x2c, 0x20, 0x43,
623 0xbe, 0xd0, 0x07, 0xff, 0x3e, 0x60, 0x5e, 0x01,
624 0x4b, 0xcf, 0x51, 0x81, 0x38, 0xdc, 0x3a, 0x25,
625 0xc5, 0xe2, 0x36, 0x17, 0x1a, 0x2d, 0x01, 0xd6,
626};
627
628/* Vector 7 */
629static const uint8_t ciph_data_aes_xts_vect7_key1[] = {
630 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
631 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
632};
633static const uint8_t ciph_data_aes_xts_vect7_key2[] = {
634 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
635 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
636};
637static const uint8_t ciph_data_aes_xts_vect7_iv[16] = {
638 0xfd
639};
640static const uint8_t ciph_data_aes_xts_vect7_ptx[] = {
641 0x8e, 0x41, 0xb7, 0x8c, 0x39, 0x0b, 0x5a, 0xf9,
642 0xd7, 0x58, 0xbb, 0x21, 0x4a, 0x67, 0xe9, 0xf6,
643 0xbf, 0x77, 0x27, 0xb0, 0x9a, 0xc6, 0x12, 0x40,
644 0x84, 0xc3, 0x76, 0x11, 0x39, 0x8f, 0xa4, 0x5d,
645
646 0xaa, 0xd9, 0x48, 0x68, 0x60, 0x0e, 0xd3, 0x91,
647 0xfb, 0x1a, 0xcd, 0x48, 0x57, 0xa9, 0x5b, 0x46,
648 0x6e, 0x62, 0xef, 0x9f, 0x4b, 0x37, 0x72, 0x44,
649 0xd1, 0xc1, 0x52, 0xe7, 0xb3, 0x0d, 0x73, 0x1a,
650
651 0xad, 0x30, 0xc7, 0x16, 0xd2, 0x14, 0xb7, 0x07,
652 0xae, 0xd9, 0x9e, 0xb5, 0xb5, 0xe5, 0x80, 0xb3,
653 0xe8, 0x87, 0xcf, 0x74, 0x97, 0x46, 0x56, 0x51,
654 0xd4, 0xb6, 0x0e, 0x60, 0x42, 0x05, 0x1d, 0xa3,
655
656 0x69, 0x3c, 0x3b, 0x78, 0xc1, 0x44, 0x89, 0x54,
657 0x3b, 0xe8, 0xb6, 0xad, 0x0b, 0xa6, 0x29, 0x56,
658 0x5b, 0xba, 0x20, 0x23, 0x13, 0xba, 0x7b, 0x0d,
659 0x0c, 0x94, 0xa3, 0x25, 0x2b, 0x67, 0x6f, 0x46,
660
661 0xcc, 0x02, 0xce, 0x0f, 0x8a, 0x7d, 0x34, 0xc0,
662 0xed, 0x22, 0x91, 0x29, 0x67, 0x3c, 0x1f, 0x61,
663 0xae, 0xd5, 0x79, 0xd0, 0x8a, 0x92, 0x03, 0xa2,
664 0x5a, 0xac, 0x3a, 0x77, 0xe9, 0xdb, 0x60, 0x26,
665
666 0x79, 0x96, 0xdb, 0x38, 0xdf, 0x63, 0x73, 0x56,
667 0xd9, 0xdc, 0xd1, 0x63, 0x2e, 0x36, 0x99, 0x39,
668 0xf2, 0xa2, 0x9d, 0x89, 0x34, 0x5c, 0x66, 0xe0,
669 0x50, 0x66, 0xf1, 0xa3, 0x67, 0x7a, 0xef, 0x18,
670
671 0xde, 0xa4, 0x11, 0x3f, 0xae, 0xb6, 0x29, 0xe4,
672 0x67, 0x21, 0xa6, 0x6d, 0x0a, 0x7e, 0x78, 0x5d,
673 0x3e, 0x29, 0xaf, 0x25, 0x94, 0xeb, 0x67, 0xdf,
674 0xa9, 0x82, 0xaf, 0xfe, 0x0a, 0xac, 0x05, 0x8f,
675
676 0x6e, 0x15, 0x86, 0x42, 0x69, 0xb1, 0x35, 0x41,
677 0x82, 0x61, 0xfc, 0x3a, 0xfb, 0x08, 0x94, 0x72,
678 0xcf, 0x68, 0xc4, 0x5d, 0xd7, 0xf2, 0x31, 0xc6,
679 0x24, 0x9b, 0xa0, 0x25, 0x5e, 0x1e, 0x03, 0x38,
680
681 0x33, 0xfc, 0x4d, 0x00, 0xa3, 0xfe, 0x02, 0x13,
682 0x2d, 0x7b, 0xc3, 0x87, 0x36, 0x14, 0xb8, 0xae,
683 0xe3, 0x42, 0x73, 0x58, 0x1e, 0xa0, 0x32, 0x5c,
684 0x81, 0xf0, 0x27, 0x0a, 0xff, 0xa1, 0x36, 0x41,
685
686 0xd0, 0x52, 0xd3, 0x6f, 0x07, 0x57, 0xd4, 0x84,
687 0x01, 0x43, 0x54, 0xd0, 0x2d, 0x68, 0x83, 0xca,
688 0x15, 0xc2, 0x4d, 0x8c, 0x39, 0x56, 0xb1, 0xbd,
689 0x02, 0x7b, 0xcf, 0x41, 0xf1, 0x51, 0xfd, 0x80,
690
691 0x23, 0xc5, 0x34, 0x0e, 0x56, 0x06, 0xf3, 0x7e,
692 0x90, 0xfd, 0xb8, 0x7c, 0x86, 0xfb, 0x4f, 0xa6,
693 0x34, 0xb3, 0x71, 0x8a, 0x30, 0xba, 0xce, 0x06,
694 0xa6, 0x6e, 0xaf, 0x8f, 0x63, 0xc4, 0xaa, 0x3b,
695
696 0x63, 0x78, 0x26, 0xa8, 0x7f, 0xe8, 0xcf, 0xa4,
697 0x42, 0x82, 0xe9, 0x2c, 0xb1, 0x61, 0x5a, 0xf3,
698 0xa2, 0x8e, 0x53, 0xbc, 0x74, 0xc7, 0xcb, 0xa1,
699 0xa0, 0x97, 0x7b, 0xe9, 0x06, 0x5d, 0x0c, 0x1a,
700
701 0x5d, 0xec, 0x6c, 0x54, 0xae, 0x38, 0xd3, 0x7f,
702 0x37, 0xaa, 0x35, 0x28, 0x3e, 0x04, 0x8e, 0x55,
703 0x30, 0xa8, 0x5c, 0x4e, 0x7a, 0x29, 0xd7, 0xb9,
704 0x2e, 0xc0, 0xc3, 0x16, 0x9c, 0xdf, 0x2a, 0x80,
705
706 0x5c, 0x76, 0x04, 0xbc, 0xe6, 0x00, 0x49, 0xb9,
707 0xfb, 0x7b, 0x8e, 0xaa, 0xc1, 0x0f, 0x51, 0xae,
708 0x23, 0x79, 0x4c, 0xeb, 0xa6, 0x8b, 0xb5, 0x81,
709 0x12, 0xe2, 0x93, 0xb9, 0xb6, 0x92, 0xca, 0x72,
710
711 0x1b, 0x37, 0xc6, 0x62, 0xf8, 0x57, 0x4e, 0xd4,
712 0xdb, 0xa6, 0xf8, 0x8e, 0x17, 0x08, 0x81, 0xc8,
713 0x2c, 0xdd, 0xc1, 0x03, 0x4a, 0x0c, 0xa7, 0xe2,
714 0x84, 0xbf, 0x09, 0x62, 0xb6, 0xb2, 0x62, 0x92,
715
716 0xd8, 0x36, 0xfa, 0x9f, 0x73, 0xc1, 0xac, 0x77,
717 0x0e, 0xef, 0x0f, 0x2d, 0x3a, 0x1e, 0xaf, 0x61,
718 0xd3, 0xe0, 0x35, 0x55, 0xfd, 0x42, 0x4e, 0xed,
719 0xd6, 0x7e, 0x18, 0xa1, 0x80, 0x94, 0xf8, 0x88,
720};
721static const uint8_t ciph_data_aes_xts_vect7_ctx[] = {
722 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e,
723 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a,
724 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9,
725 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3,
726
727 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07,
728 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3,
729 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08,
730 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22,
731
732 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c,
733 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f,
734 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd,
735 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce,
736
737 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f,
738 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5,
739 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc,
740 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c,
741
742 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3,
743 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b,
744 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec,
745 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8,
746
747 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee,
748 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b,
749 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3,
750 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b,
751
752 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd,
753 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c,
754 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2,
755 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82,
756
757 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d,
758 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd,
759 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6,
760 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69,
761
762 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e,
763 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7,
764 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53,
765 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5,
766
767 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58,
768 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32,
769 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a,
770 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b,
771
772 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17,
773 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45,
774 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54,
775 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec,
776
777 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0,
778 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39,
779 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66,
780 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d,
781
782 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83,
783 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31,
784 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03,
785 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef,
786
787 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18,
788 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1,
789 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65,
790 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80,
791
792 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23,
793 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f,
794 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49,
795 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3,
796
797 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78,
798 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1,
799 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc,
800 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37,
801};
802
803/* Vector 8 */
804static const uint8_t ciph_data_aes_xts_vect8_key1[] = {
805 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
806 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
807};
808static const uint8_t ciph_data_aes_xts_vect8_key2[] = {
809 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
810 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
811};
812static const uint8_t ciph_data_aes_xts_vect8_iv[16] = {
813 0xfe
814};
815static const uint8_t ciph_data_aes_xts_vect8_ptx[] = {
816 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e,
817 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a,
818 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9,
819 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3,
820
821 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07,
822 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3,
823 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08,
824 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22,
825
826 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c,
827 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f,
828 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd,
829 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce,
830
831 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f,
832 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5,
833 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc,
834 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c,
835
836 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3,
837 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b,
838 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec,
839 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8,
840
841 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee,
842 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b,
843 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3,
844 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b,
845
846 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd,
847 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c,
848 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2,
849 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82,
850
851 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d,
852 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd,
853 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6,
854 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69,
855
856 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e,
857 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7,
858 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53,
859 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5,
860
861 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58,
862 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32,
863 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a,
864 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b,
865
866 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17,
867 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45,
868 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54,
869 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec,
870
871 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0,
872 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39,
873 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66,
874 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d,
875
876 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83,
877 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31,
878 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03,
879 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef,
880
881 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18,
882 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1,
883 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65,
884 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80,
885
886 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23,
887 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f,
888 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49,
889 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3,
890
891 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78,
892 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1,
893 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc,
894 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37,
895};
896static const uint8_t ciph_data_aes_xts_vect8_ctx[] = {
897 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59,
898 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda,
899 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44,
900 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95,
901
902 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1,
903 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2,
904 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e,
905 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae,
906
907 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e,
908 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a,
909 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27,
910 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94,
911
912 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c,
913 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32,
914 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18,
915 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0,
916
917 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d,
918 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d,
919 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf,
920 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd,
921
922 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1,
923 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72,
924 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb,
925 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d,
926
927 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6,
928 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b,
929 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58,
930 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92,
931
932 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf,
933 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a,
934 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29,
935 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e,
936
937 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28,
938 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77,
939 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87,
940 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18,
941
942 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1,
943 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd,
944 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67,
945 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b,
946
947 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde,
948 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75,
949 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a,
950 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb,
951
952 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32,
953 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11,
954 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65,
955 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a,
956
957 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca,
958 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24,
959 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e,
960 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d,
961
962 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05,
963 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06,
964 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9,
965 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4,
966
967 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11,
968 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c,
969 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85,
970 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1,
971
972 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11,
973 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c,
974 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef,
975 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a,
976};
977
978/* Vector 9 */
979static const uint8_t ciph_data_aes_xts_vect9_key1[] = {
980 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
981 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
982};
983static const uint8_t ciph_data_aes_xts_vect9_key2[] = {
984 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
985 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
986};
987static const uint8_t ciph_data_aes_xts_vect9_iv[16] = {
988 0xff
989};
990static const uint8_t ciph_data_aes_xts_vect9_ptx[] = {
991 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59,
992 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda,
993 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44,
994 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95,
995
996 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1,
997 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2,
998 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e,
999 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae,
1000
1001 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e,
1002 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a,
1003 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27,
1004 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94,
1005
1006 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c,
1007 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32,
1008 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18,
1009 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0,
1010
1011 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d,
1012 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d,
1013 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf,
1014 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd,
1015
1016 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1,
1017 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72,
1018 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb,
1019 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d,
1020
1021 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6,
1022 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b,
1023 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58,
1024 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92,
1025
1026 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf,
1027 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a,
1028 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29,
1029 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e,
1030
1031 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28,
1032 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77,
1033 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87,
1034 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18,
1035
1036 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1,
1037 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd,
1038 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67,
1039 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b,
1040
1041 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde,
1042 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75,
1043 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a,
1044 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb,
1045
1046 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32,
1047 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11,
1048 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65,
1049 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a,
1050
1051 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca,
1052 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24,
1053 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e,
1054 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d,
1055
1056 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05,
1057 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06,
1058 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9,
1059 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4,
1060
1061 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11,
1062 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c,
1063 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85,
1064 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1,
1065
1066 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11,
1067 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c,
1068 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef,
1069 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a,
1070};
1071static const uint8_t ciph_data_aes_xts_vect9_ctx[] = {
1072 0x32, 0x60, 0xae, 0x8d, 0xad, 0x1f, 0x4a, 0x32,
1073 0xc5, 0xca, 0xfe, 0x3a, 0xb0, 0xeb, 0x95, 0x54,
1074 0x9d, 0x46, 0x1a, 0x67, 0xce, 0xb9, 0xe5, 0xaa,
1075 0x2d, 0x3a, 0xfb, 0x62, 0xde, 0xce, 0x05, 0x53,
1076
1077 0x19, 0x3b, 0xa5, 0x0c, 0x75, 0xbe, 0x25, 0x1e,
1078 0x08, 0xd1, 0xd0, 0x8f, 0x10, 0x88, 0x57, 0x6c,
1079 0x7e, 0xfd, 0xfa, 0xaf, 0x3f, 0x45, 0x95, 0x59,
1080 0x57, 0x1e, 0x12, 0x51, 0x17, 0x53, 0xb0, 0x7a,
1081
1082 0xf0, 0x73, 0xf3, 0x5d, 0xa0, 0x6a, 0xf0, 0xce,
1083 0x0b, 0xbf, 0x6b, 0x8f, 0x5c, 0xcc, 0x5c, 0xea,
1084 0x50, 0x0e, 0xc1, 0xb2, 0x11, 0xbd, 0x51, 0xf6,
1085 0x3b, 0x60, 0x6b, 0xf6, 0x52, 0x87, 0x96, 0xca,
1086
1087 0x12, 0x17, 0x3b, 0xa3, 0x9b, 0x89, 0x35, 0xee,
1088 0x44, 0xcc, 0xce, 0x64, 0x6f, 0x90, 0xa4, 0x5b,
1089 0xf9, 0xcc, 0xc5, 0x67, 0xf0, 0xac, 0xe1, 0x3d,
1090 0xc2, 0xd5, 0x3e, 0xbe, 0xed, 0xc8, 0x1f, 0x58,
1091
1092 0xb2, 0xe4, 0x11, 0x79, 0xdd, 0xdf, 0x0d, 0x5a,
1093 0x5c, 0x42, 0xf5, 0xd8, 0x50, 0x6c, 0x1a, 0x5d,
1094 0x2f, 0x8f, 0x59, 0xf3, 0xea, 0x87, 0x3c, 0xbc,
1095 0xd0, 0xee, 0xc1, 0x9a, 0xcb, 0xf3, 0x25, 0x42,
1096
1097 0x3b, 0xd3, 0xdc, 0xb8, 0xc2, 0xb1, 0xbf, 0x1d,
1098 0x1e, 0xae, 0xd0, 0xeb, 0xa7, 0xf0, 0x69, 0x8e,
1099 0x43, 0x14, 0xfb, 0xeb, 0x2f, 0x15, 0x66, 0xd1,
1100 0xb9, 0x25, 0x30, 0x08, 0xcb, 0xcc, 0xf4, 0x5a,
1101
1102 0x2b, 0x0d, 0x9c, 0x5c, 0x9c, 0x21, 0x47, 0x4f,
1103 0x40, 0x76, 0xe0, 0x2b, 0xe2, 0x60, 0x50, 0xb9,
1104 0x9d, 0xee, 0x4f, 0xd6, 0x8a, 0x4c, 0xf8, 0x90,
1105 0xe4, 0x96, 0xe4, 0xfc, 0xae, 0x7b, 0x70, 0xf9,
1106
1107 0x4e, 0xa5, 0xa9, 0x06, 0x2d, 0xa0, 0xda, 0xeb,
1108 0xa1, 0x99, 0x3d, 0x2c, 0xcd, 0x1d, 0xd3, 0xc2,
1109 0x44, 0xb8, 0x42, 0x88, 0x01, 0x49, 0x5a, 0x58,
1110 0xb2, 0x16, 0x54, 0x7e, 0x7e, 0x84, 0x7c, 0x46,
1111
1112 0xd1, 0xd7, 0x56, 0x37, 0x7b, 0x62, 0x42, 0xd2,
1113 0xe5, 0xfb, 0x83, 0xbf, 0x75, 0x2b, 0x54, 0xe0,
1114 0xdf, 0x71, 0xe8, 0x89, 0xf3, 0xa2, 0xbb, 0x0f,
1115 0x4c, 0x10, 0x80, 0x5b, 0xf3, 0xc5, 0x90, 0x37,
1116
1117 0x6e, 0x3c, 0x24, 0xe2, 0x2f, 0xf5, 0x7f, 0x7f,
1118 0xa9, 0x65, 0x57, 0x73, 0x75, 0x32, 0x5c, 0xea,
1119 0x5d, 0x92, 0x0d, 0xb9, 0x4b, 0x9c, 0x33, 0x6b,
1120 0x45, 0x5f, 0x6e, 0x89, 0x4c, 0x01, 0x86, 0x6f,
1121
1122 0xe9, 0xfb, 0xb8, 0xc8, 0xd3, 0xf7, 0x0a, 0x29,
1123 0x57, 0x28, 0x5f, 0x6d, 0xfb, 0x5d, 0xcd, 0x8c,
1124 0xbf, 0x54, 0x78, 0x2f, 0x8f, 0xe7, 0x76, 0x6d,
1125 0x47, 0x23, 0x81, 0x99, 0x13, 0xac, 0x77, 0x34,
1126
1127 0x21, 0xe3, 0xa3, 0x10, 0x95, 0x86, 0x6b, 0xad,
1128 0x22, 0xc8, 0x6a, 0x60, 0x36, 0xb2, 0x51, 0x8b,
1129 0x20, 0x59, 0xb4, 0x22, 0x9d, 0x18, 0xc8, 0xc2,
1130 0xcc, 0xbd, 0xf9, 0x06, 0xc6, 0xcc, 0x6e, 0x82,
1131
1132 0x46, 0x4e, 0xe5, 0x7b, 0xdd, 0xb0, 0xbe, 0xbc,
1133 0xb1, 0xdc, 0x64, 0x53, 0x25, 0xbf, 0xb3, 0xe6,
1134 0x65, 0xef, 0x72, 0x51, 0x08, 0x2c, 0x88, 0xeb,
1135 0xb1, 0xcf, 0x20, 0x3b, 0xd7, 0x79, 0xfd, 0xd3,
1136
1137 0x86, 0x75, 0x71, 0x3c, 0x8d, 0xaa, 0xdd, 0x17,
1138 0xe1, 0xca, 0xbe, 0xe4, 0x32, 0xb0, 0x97, 0x87,
1139 0xb6, 0xdd, 0xf3, 0x30, 0x4e, 0x38, 0xb7, 0x31,
1140 0xb4, 0x5d, 0xf5, 0xdf, 0x51, 0xb7, 0x8f, 0xcf,
1141
1142 0xb3, 0xd3, 0x24, 0x66, 0x02, 0x8d, 0x0b, 0xa3,
1143 0x65, 0x55, 0xe7, 0xe1, 0x1a, 0xb0, 0xee, 0x06,
1144 0x66, 0x06, 0x1d, 0x16, 0x45, 0xd9, 0x62, 0x44,
1145 0x4b, 0xc4, 0x7a, 0x38, 0x18, 0x89, 0x30, 0xa8,
1146
1147 0x4b, 0x4d, 0x56, 0x13, 0x95, 0xc7, 0x3c, 0x08,
1148 0x70, 0x21, 0x92, 0x7c, 0xa6, 0x38, 0xb7, 0xaf,
1149 0xc8, 0xa8, 0x67, 0x9c, 0xcb, 0x84, 0xc2, 0x65,
1150 0x55, 0x44, 0x0e, 0xc7, 0xf1, 0x04, 0x45, 0xcd,
1151};
1152
1153/*
1154 * XTS-AES-256 applied for a data unit of 512 bytes
1155 */
1156
1157/* Vector 10 */
1158static const uint8_t ciph_data_aes_xts_vect10_key1[] = {
1159 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
1160 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
1161 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69,
1162 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27,
1163};
1164static const uint8_t ciph_data_aes_xts_vect10_key2[] = {
1165 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
1166 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
1167 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37,
1168 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92,
1169};
1170static const uint8_t ciph_data_aes_xts_vect10_iv[16] = {
1171 0xff
1172};
1173static const uint8_t ciph_data_aes_xts_vect10_ptx[] = {
1174 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1175 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1176 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1177 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1178
1179 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1180 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1181 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1182 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1183
1184 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1185 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1186 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1187 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1188
1189 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1190 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1191 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1192 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1193
1194 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1195 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1196 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1197 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1198
1199 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1200 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1201 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1202 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1203
1204 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1205 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1206 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1207 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1208
1209 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1210 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1211 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1212 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1213
1214 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1215 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1216 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1217 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1218
1219 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1220 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1221 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1222 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1223
1224 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1225 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1226 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1227 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1228
1229 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1230 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1231 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1232 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1233
1234 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1235 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1236 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1237 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1238
1239 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1240 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1241 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1242 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1243
1244 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1245 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1246 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1247 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1248
1249 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1250 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1251 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1252 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1253};
1254static const uint8_t ciph_data_aes_xts_vect10_ctx[] = {
1255 0x1c, 0x3b, 0x3a, 0x10, 0x2f, 0x77, 0x03, 0x86,
1256 0xe4, 0x83, 0x6c, 0x99, 0xe3, 0x70, 0xcf, 0x9b,
1257 0xea, 0x00, 0x80, 0x3f, 0x5e, 0x48, 0x23, 0x57,
1258 0xa4, 0xae, 0x12, 0xd4, 0x14, 0xa3, 0xe6, 0x3b,
1259
1260 0x5d, 0x31, 0xe2, 0x76, 0xf8, 0xfe, 0x4a, 0x8d,
1261 0x66, 0xb3, 0x17, 0xf9, 0xac, 0x68, 0x3f, 0x44,
1262 0x68, 0x0a, 0x86, 0xac, 0x35, 0xad, 0xfc, 0x33,
1263 0x45, 0xbe, 0xfe, 0xcb, 0x4b, 0xb1, 0x88, 0xfd,
1264
1265 0x57, 0x76, 0x92, 0x6c, 0x49, 0xa3, 0x09, 0x5e,
1266 0xb1, 0x08, 0xfd, 0x10, 0x98, 0xba, 0xec, 0x70,
1267 0xaa, 0xa6, 0x69, 0x99, 0xa7, 0x2a, 0x82, 0xf2,
1268 0x7d, 0x84, 0x8b, 0x21, 0xd4, 0xa7, 0x41, 0xb0,
1269
1270 0xc5, 0xcd, 0x4d, 0x5f, 0xff, 0x9d, 0xac, 0x89,
1271 0xae, 0xba, 0x12, 0x29, 0x61, 0xd0, 0x3a, 0x75,
1272 0x71, 0x23, 0xe9, 0x87, 0x0f, 0x8a, 0xcf, 0x10,
1273 0x00, 0x02, 0x08, 0x87, 0x89, 0x14, 0x29, 0xca,
1274
1275 0x2a, 0x3e, 0x7a, 0x7d, 0x7d, 0xf7, 0xb1, 0x03,
1276 0x55, 0x16, 0x5c, 0x8b, 0x9a, 0x6d, 0x0a, 0x7d,
1277 0xe8, 0xb0, 0x62, 0xc4, 0x50, 0x0d, 0xc4, 0xcd,
1278 0x12, 0x0c, 0x0f, 0x74, 0x18, 0xda, 0xe3, 0xd0,
1279
1280 0xb5, 0x78, 0x1c, 0x34, 0x80, 0x3f, 0xa7, 0x54,
1281 0x21, 0xc7, 0x90, 0xdf, 0xe1, 0xde, 0x18, 0x34,
1282 0xf2, 0x80, 0xd7, 0x66, 0x7b, 0x32, 0x7f, 0x6c,
1283 0x8c, 0xd7, 0x55, 0x7e, 0x12, 0xac, 0x3a, 0x0f,
1284
1285 0x93, 0xec, 0x05, 0xc5, 0x2e, 0x04, 0x93, 0xef,
1286 0x31, 0xa1, 0x2d, 0x3d, 0x92, 0x60, 0xf7, 0x9a,
1287 0x28, 0x9d, 0x6a, 0x37, 0x9b, 0xc7, 0x0c, 0x50,
1288 0x84, 0x14, 0x73, 0xd1, 0xa8, 0xcc, 0x81, 0xec,
1289
1290 0x58, 0x3e, 0x96, 0x45, 0xe0, 0x7b, 0x8d, 0x96,
1291 0x70, 0x65, 0x5b, 0xa5, 0xbb, 0xcf, 0xec, 0xc6,
1292 0xdc, 0x39, 0x66, 0x38, 0x0a, 0xd8, 0xfe, 0xcb,
1293 0x17, 0xb6, 0xba, 0x02, 0x46, 0x9a, 0x02, 0x0a,
1294
1295 0x84, 0xe1, 0x8e, 0x8f, 0x84, 0x25, 0x20, 0x70,
1296 0xc1, 0x3e, 0x9f, 0x1f, 0x28, 0x9b, 0xe5, 0x4f,
1297 0xbc, 0x48, 0x14, 0x57, 0x77, 0x8f, 0x61, 0x60,
1298 0x15, 0xe1, 0x32, 0x7a, 0x02, 0xb1, 0x40, 0xf1,
1299
1300 0x50, 0x5e, 0xb3, 0x09, 0x32, 0x6d, 0x68, 0x37,
1301 0x8f, 0x83, 0x74, 0x59, 0x5c, 0x84, 0x9d, 0x84,
1302 0xf4, 0xc3, 0x33, 0xec, 0x44, 0x23, 0x88, 0x51,
1303 0x43, 0xcb, 0x47, 0xbd, 0x71, 0xc5, 0xed, 0xae,
1304
1305 0x9b, 0xe6, 0x9a, 0x2f, 0xfe, 0xce, 0xb1, 0xbe,
1306 0xc9, 0xde, 0x24, 0x4f, 0xbe, 0x15, 0x99, 0x2b,
1307 0x11, 0xb7, 0x7c, 0x04, 0x0f, 0x12, 0xbd, 0x8f,
1308 0x6a, 0x97, 0x5a, 0x44, 0xa0, 0xf9, 0x0c, 0x29,
1309
1310 0xa9, 0xab, 0xc3, 0xd4, 0xd8, 0x93, 0x92, 0x72,
1311 0x84, 0xc5, 0x87, 0x54, 0xcc, 0xe2, 0x94, 0x52,
1312 0x9f, 0x86, 0x14, 0xdc, 0xd2, 0xab, 0xa9, 0x91,
1313 0x92, 0x5f, 0xed, 0xc4, 0xae, 0x74, 0xff, 0xac,
1314
1315 0x6e, 0x33, 0x3b, 0x93, 0xeb, 0x4a, 0xff, 0x04,
1316 0x79, 0xda, 0x9a, 0x41, 0x0e, 0x44, 0x50, 0xe0,
1317 0xdd, 0x7a, 0xe4, 0xc6, 0xe2, 0x91, 0x09, 0x00,
1318 0x57, 0x5d, 0xa4, 0x01, 0xfc, 0x07, 0x05, 0x9f,
1319
1320 0x64, 0x5e, 0x8b, 0x7e, 0x9b, 0xfd, 0xef, 0x33,
1321 0x94, 0x30, 0x54, 0xff, 0x84, 0x01, 0x14, 0x93,
1322 0xc2, 0x7b, 0x34, 0x29, 0xea, 0xed, 0xb4, 0xed,
1323 0x53, 0x76, 0x44, 0x1a, 0x77, 0xed, 0x43, 0x85,
1324
1325 0x1a, 0xd7, 0x7f, 0x16, 0xf5, 0x41, 0xdf, 0xd2,
1326 0x69, 0xd5, 0x0d, 0x6a, 0x5f, 0x14, 0xfb, 0x0a,
1327 0xab, 0x1c, 0xbb, 0x4c, 0x15, 0x50, 0xbe, 0x97,
1328 0xf7, 0xab, 0x40, 0x66, 0x19, 0x3c, 0x4c, 0xaa,
1329
1330 0x77, 0x3d, 0xad, 0x38, 0x01, 0x4b, 0xd2, 0x09,
1331 0x2f, 0xa7, 0x55, 0xc8, 0x24, 0xbb, 0x5e, 0x54,
1332 0xc4, 0xf3, 0x6f, 0xfd, 0xa9, 0xfc, 0xea, 0x70,
1333 0xb9, 0xc6, 0xe6, 0x93, 0xe1, 0x48, 0xc1, 0x51,
1334};
1335
1336/* Vector 11 */
1337static const uint8_t ciph_data_aes_xts_vect11_key1[] = {
1338 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
1339 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
1340 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69,
1341 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27,
1342};
1343static const uint8_t ciph_data_aes_xts_vect11_key2[] = {
1344 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
1345 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
1346 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37,
1347 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92,
1348};
1349static const uint8_t ciph_data_aes_xts_vect11_iv[16] = {
1350 0xff, 0xff
1351};
1352static const uint8_t ciph_data_aes_xts_vect11_ptx[] = {
1353 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1354 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1355 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1356 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1357
1358 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1359 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1360 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1361 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1362
1363 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1364 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1365 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1366 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1367
1368 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1369 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1370 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1371 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1372
1373 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1374 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1375 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1376 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1377
1378 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1379 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1380 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1381 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1382
1383 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1384 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1385 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1386 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1387
1388 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1389 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1390 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1391 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1392
1393 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1394 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1395 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1396 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1397
1398 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1399 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1400 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1401 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1402
1403 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1404 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1405 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1406 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1407
1408 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1409 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1410 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1411 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1412
1413 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1414 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1415 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1416 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1417
1418 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1419 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1420 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1421 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1422
1423 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1424 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1425 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1426 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1427
1428 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1429 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1430 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1431 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1432};
1433static const uint8_t ciph_data_aes_xts_vect11_ctx[] = {
1434 0x77, 0xa3, 0x12, 0x51, 0x61, 0x8a, 0x15, 0xe6,
1435 0xb9, 0x2d, 0x1d, 0x66, 0xdf, 0xfe, 0x7b, 0x50,
1436 0xb5, 0x0b, 0xad, 0x55, 0x23, 0x05, 0xba, 0x02,
1437 0x17, 0xa6, 0x10, 0x68, 0x8e, 0xff, 0x7e, 0x11,
1438
1439 0xe1, 0xd0, 0x22, 0x54, 0x38, 0xe0, 0x93, 0x24,
1440 0x2d, 0x6d, 0xb2, 0x74, 0xfd, 0xe8, 0x01, 0xd4,
1441 0xca, 0xe0, 0x6f, 0x20, 0x92, 0xc7, 0x28, 0xb2,
1442 0x47, 0x85, 0x59, 0xdf, 0x58, 0xe8, 0x37, 0xc2,
1443
1444 0x46, 0x9e, 0xe4, 0xa4, 0xfa, 0x79, 0x4e, 0x4b,
1445 0xbc, 0x7f, 0x39, 0xbc, 0x02, 0x6e, 0x3c, 0xb7,
1446 0x2c, 0x33, 0xb0, 0x88, 0x8f, 0x25, 0xb4, 0xac,
1447 0xf5, 0x6a, 0x2a, 0x98, 0x04, 0xf1, 0xce, 0x6d,
1448
1449 0x3d, 0x6e, 0x1d, 0xc6, 0xca, 0x18, 0x1d, 0x4b,
1450 0x54, 0x61, 0x79, 0xd5, 0x55, 0x44, 0xaa, 0x77,
1451 0x60, 0xc4, 0x0d, 0x06, 0x74, 0x15, 0x39, 0xc7,
1452 0xe3, 0xcd, 0x9d, 0x2f, 0x66, 0x50, 0xb2, 0x01,
1453
1454 0x3f, 0xd0, 0xee, 0xb8, 0xc2, 0xb8, 0xe3, 0xd8,
1455 0xd2, 0x40, 0xcc, 0xae, 0x2d, 0x4c, 0x98, 0x32,
1456 0x0a, 0x74, 0x42, 0xe1, 0xc8, 0xd7, 0x5a, 0x42,
1457 0xd6, 0xe6, 0xcf, 0xa4, 0xc2, 0xec, 0xa1, 0x79,
1458
1459 0x8d, 0x15, 0x8c, 0x7a, 0xec, 0xdf, 0x82, 0x49,
1460 0x0f, 0x24, 0xbb, 0x9b, 0x38, 0xe1, 0x08, 0xbc,
1461 0xda, 0x12, 0xc3, 0xfa, 0xf9, 0xa2, 0x11, 0x41,
1462 0xc3, 0x61, 0x3b, 0x58, 0x36, 0x7f, 0x92, 0x2a,
1463
1464 0xaa, 0x26, 0xcd, 0x22, 0xf2, 0x3d, 0x70, 0x8d,
1465 0xae, 0x69, 0x9a, 0xd7, 0xcb, 0x40, 0xa8, 0xad,
1466 0x0b, 0x6e, 0x27, 0x84, 0x97, 0x3d, 0xcb, 0x60,
1467 0x56, 0x84, 0xc0, 0x8b, 0x8d, 0x69, 0x98, 0xc6,
1468
1469 0x9a, 0xac, 0x04, 0x99, 0x21, 0x87, 0x1e, 0xbb,
1470 0x65, 0x30, 0x1a, 0x46, 0x19, 0xca, 0x80, 0xec,
1471 0xb4, 0x85, 0xa3, 0x1d, 0x74, 0x42, 0x23, 0xce,
1472 0x8d, 0xdc, 0x23, 0x94, 0x82, 0x8d, 0x6a, 0x80,
1473
1474 0x47, 0x0c, 0x09, 0x2f, 0x5b, 0xa4, 0x13, 0xc3,
1475 0x37, 0x8f, 0xa6, 0x05, 0x42, 0x55, 0xc6, 0xf9,
1476 0xdf, 0x44, 0x95, 0x86, 0x2b, 0xbb, 0x32, 0x87,
1477 0x68, 0x1f, 0x93, 0x1b, 0x68, 0x7c, 0x88, 0x8a,
1478
1479 0xbf, 0x84, 0x4d, 0xfc, 0x8f, 0xc2, 0x83, 0x31,
1480 0xe5, 0x79, 0x92, 0x8c, 0xd1, 0x2b, 0xd2, 0x39,
1481 0x0a, 0xe1, 0x23, 0xcf, 0x03, 0x81, 0x8d, 0x14,
1482 0xde, 0xdd, 0xe5, 0xc0, 0xc2, 0x4c, 0x8a, 0xb0,
1483
1484 0x18, 0xbf, 0xca, 0x75, 0xca, 0x09, 0x6f, 0x2d,
1485 0x53, 0x1f, 0x3d, 0x16, 0x19, 0xe7, 0x85, 0xf1,
1486 0xad, 0xa4, 0x37, 0xca, 0xb9, 0x2e, 0x98, 0x05,
1487 0x58, 0xb3, 0xdc, 0xe1, 0x47, 0x4a, 0xfb, 0x75,
1488
1489 0xbf, 0xed, 0xbf, 0x8f, 0xf5, 0x4c, 0xb2, 0x61,
1490 0x8e, 0x02, 0x44, 0xc9, 0xac, 0x0d, 0x3c, 0x66,
1491 0xfb, 0x51, 0x59, 0x8c, 0xd2, 0xdb, 0x11, 0xf9,
1492 0xbe, 0x39, 0x79, 0x1a, 0xbe, 0x44, 0x7c, 0x63,
1493
1494 0x09, 0x4f, 0x7c, 0x45, 0x3b, 0x7f, 0xf8, 0x7c,
1495 0xb5, 0xbb, 0x36, 0xb7, 0xc7, 0x9e, 0xfb, 0x08,
1496 0x72, 0xd1, 0x70, 0x58, 0xb8, 0x3b, 0x15, 0xab,
1497 0x08, 0x66, 0xad, 0x8a, 0x58, 0x65, 0x6c, 0x5a,
1498
1499 0x7e, 0x20, 0xdb, 0xdf, 0x30, 0x8b, 0x24, 0x61,
1500 0xd9, 0x7c, 0x0e, 0xc0, 0x02, 0x4a, 0x27, 0x15,
1501 0x05, 0x52, 0x49, 0xcf, 0x3b, 0x47, 0x8d, 0xdd,
1502 0x47, 0x40, 0xde, 0x65, 0x4f, 0x75, 0xca, 0x68,
1503
1504 0x6e, 0x0d, 0x73, 0x45, 0xc6, 0x9e, 0xd5, 0x0c,
1505 0xdc, 0x2a, 0x8b, 0x33, 0x2b, 0x1f, 0x88, 0x24,
1506 0x10, 0x8a, 0xc9, 0x37, 0xeb, 0x05, 0x05, 0x85,
1507 0x60, 0x8e, 0xe7, 0x34, 0x09, 0x7f, 0xc0, 0x90,
1508
1509 0x54, 0xfb, 0xff, 0x89, 0xee, 0xae, 0xea, 0x79,
1510 0x1f, 0x4a, 0x7a, 0xb1, 0xf9, 0x86, 0x82, 0x94,
1511 0xa4, 0xf9, 0xe2, 0x7b, 0x42, 0xaf, 0x81, 0x00,
1512 0xcb, 0x9d, 0x59, 0xce, 0xf9, 0x64, 0x58, 0x03,
1513};
1514
1515
1516/* Vector 12 */
1517static const uint8_t ciph_data_aes_xts_vect12_key1[] = {
1518 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
1519 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
1520 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69,
1521 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27,
1522};
1523static const uint8_t ciph_data_aes_xts_vect12_key2[] = {
1524 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
1525 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
1526 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37,
1527 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92,
1528};
1529static const uint8_t ciph_data_aes_xts_vect12_iv[16] = {
1530 0xff, 0xff, 0xff
1531};
1532static const uint8_t ciph_data_aes_xts_vect12_ptx[] = {
1533 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1534 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1535 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1536 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1537
1538 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1539 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1540 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1541 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1542
1543 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1544 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1545 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1546 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1547
1548 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1549 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1550 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1551 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1552
1553 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1554 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1555 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1556 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1557
1558 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1559 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1560 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1561 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1562
1563 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1564 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1565 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1566 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1567
1568 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1569 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1570 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1571 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1572
1573 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1574 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1575 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1576 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1577
1578 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1579 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1580 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1581 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1582
1583 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1584 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1585 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1586 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1587
1588 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1589 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1590 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1591 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1592
1593 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1594 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1595 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1596 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1597
1598 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1599 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1600 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1601 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1602
1603 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1604 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1605 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1606 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1607
1608 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1609 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1610 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1611 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1612};
1613static const uint8_t ciph_data_aes_xts_vect12_ctx[] = {
1614 0xe3, 0x87, 0xaa, 0xa5, 0x8b, 0xa4, 0x83, 0xaf,
1615 0xa7, 0xe8, 0xeb, 0x46, 0x97, 0x78, 0x31, 0x7e,
1616 0xcf, 0x4c, 0xf5, 0x73, 0xaa, 0x9d, 0x4e, 0xac,
1617 0x23, 0xf2, 0xcd, 0xf9, 0x14, 0xe4, 0xe2, 0x00,
1618
1619 0xa8, 0xb4, 0x90, 0xe4, 0x2e, 0xe6, 0x46, 0x80,
1620 0x2d, 0xc6, 0xee, 0x2b, 0x47, 0x1b, 0x27, 0x81,
1621 0x95, 0xd6, 0x09, 0x18, 0xec, 0xec, 0xb4, 0x4b,
1622 0xf7, 0x99, 0x66, 0xf8, 0x3f, 0xab, 0xa0, 0x49,
1623
1624 0x92, 0x98, 0xeb, 0xc6, 0x99, 0xc0, 0xc8, 0x63,
1625 0x47, 0x15, 0xa3, 0x20, 0xbb, 0x4f, 0x07, 0x5d,
1626 0x62, 0x2e, 0x74, 0xc8, 0xc9, 0x32, 0x00, 0x4f,
1627 0x25, 0xb4, 0x1e, 0x36, 0x10, 0x25, 0xb5, 0xa8,
1628
1629 0x78, 0x15, 0x39, 0x1f, 0x61, 0x08, 0xfc, 0x4a,
1630 0xfa, 0x6a, 0x05, 0xd9, 0x30, 0x3c, 0x6b, 0xa6,
1631 0x8a, 0x12, 0x8a, 0x55, 0x70, 0x5d, 0x41, 0x59,
1632 0x85, 0x83, 0x2f, 0xde, 0xaa, 0xe6, 0xc8, 0xe1,
1633
1634 0x91, 0x10, 0xe8, 0x4d, 0x1b, 0x1f, 0x19, 0x9a,
1635 0x26, 0x92, 0x11, 0x9e, 0xdc, 0x96, 0x13, 0x26,
1636 0x58, 0xf0, 0x9d, 0xa7, 0xc6, 0x23, 0xef, 0xce,
1637 0xc7, 0x12, 0x53, 0x7a, 0x3d, 0x94, 0xc0, 0xbf,
1638
1639 0x5d, 0x7e, 0x35, 0x2e, 0xc9, 0x4a, 0xe5, 0x79,
1640 0x7f, 0xdb, 0x37, 0x7d, 0xc1, 0x55, 0x11, 0x50,
1641 0x72, 0x1a, 0xdf, 0x15, 0xbd, 0x26, 0xa8, 0xef,
1642 0xc2, 0xfc, 0xaa, 0xd5, 0x68, 0x81, 0xfa, 0x9e,
1643
1644 0x62, 0x46, 0x2c, 0x28, 0xf3, 0x0a, 0xe1, 0xce,
1645 0xac, 0xa9, 0x3c, 0x34, 0x5c, 0xf2, 0x43, 0xb7,
1646 0x3f, 0x54, 0x2e, 0x20, 0x74, 0xa7, 0x05, 0xbd,
1647 0x26, 0x43, 0xbb, 0x9f, 0x7c, 0xc7, 0x9b, 0xb6,
1648
1649 0xe7, 0x09, 0x1e, 0xa6, 0xe2, 0x32, 0xdf, 0x0f,
1650 0x9a, 0xd0, 0xd6, 0xcf, 0x50, 0x23, 0x27, 0x87,
1651 0x6d, 0x82, 0x20, 0x7a, 0xbf, 0x21, 0x15, 0xcd,
1652 0xac, 0xf6, 0xd5, 0xa4, 0x8f, 0x6c, 0x18, 0x79,
1653
1654 0xa6, 0x5b, 0x11, 0x5f, 0x0f, 0x8b, 0x3c, 0xb3,
1655 0xc5, 0x9d, 0x15, 0xdd, 0x8c, 0x76, 0x9b, 0xc0,
1656 0x14, 0x79, 0x5a, 0x18, 0x37, 0xf3, 0x90, 0x1b,
1657 0x58, 0x45, 0xeb, 0x49, 0x1a, 0xdf, 0xef, 0xe0,
1658
1659 0x97, 0xb1, 0xfa, 0x30, 0xa1, 0x2f, 0xc1, 0xf6,
1660 0x5b, 0xa2, 0x29, 0x05, 0x03, 0x15, 0x39, 0x97,
1661 0x1a, 0x10, 0xf2, 0xf3, 0x6c, 0x32, 0x1b, 0xb5,
1662 0x13, 0x31, 0xcd, 0xef, 0xb3, 0x9e, 0x39, 0x64,
1663
1664 0xc7, 0xef, 0x07, 0x99, 0x94, 0xf5, 0xb6, 0x9b,
1665 0x2e, 0xdd, 0x83, 0xa7, 0x1e, 0xf5, 0x49, 0x97,
1666 0x1e, 0xe9, 0x3f, 0x44, 0xea, 0xc3, 0x93, 0x8f,
1667 0xcd, 0xd6, 0x1d, 0x01, 0xfa, 0x71, 0x79, 0x9d,
1668
1669 0xa3, 0xa8, 0x09, 0x1c, 0x4c, 0x48, 0xaa, 0x9e,
1670 0xd2, 0x63, 0xff, 0x07, 0x49, 0xdf, 0x95, 0xd4,
1671 0x4f, 0xef, 0x6a, 0x0b, 0xb5, 0x78, 0xec, 0x69,
1672 0x45, 0x6a, 0xa5, 0x40, 0x8a, 0xe3, 0x2c, 0x7a,
1673
1674 0xf0, 0x8a, 0xd7, 0xba, 0x89, 0x21, 0x28, 0x7e,
1675 0x3b, 0xbe, 0xe3, 0x1b, 0x76, 0x7b, 0xe0, 0x6a,
1676 0x0e, 0x70, 0x5c, 0x86, 0x4a, 0x76, 0x91, 0x37,
1677 0xdf, 0x28, 0x29, 0x22, 0x83, 0xea, 0x81, 0xa2,
1678
1679 0x48, 0x02, 0x41, 0xb4, 0x4d, 0x99, 0x21, 0xcd,
1680 0xbe, 0xc1, 0xbc, 0x28, 0xdc, 0x1f, 0xda, 0x11,
1681 0x4b, 0xd8, 0xe5, 0x21, 0x7a, 0xc9, 0xd8, 0xeb,
1682 0xaf, 0xa7, 0x20, 0xe9, 0xda, 0x4f, 0x9a, 0xce,
1683
1684 0x23, 0x1c, 0xc9, 0x49, 0xe5, 0xb9, 0x6f, 0xe7,
1685 0x6f, 0xfc, 0x21, 0x06, 0x3f, 0xdd, 0xc8, 0x3a,
1686 0x6b, 0x86, 0x79, 0xc0, 0x0d, 0x35, 0xe0, 0x95,
1687 0x76, 0xa8, 0x75, 0x30, 0x5b, 0xed, 0x5f, 0x36,
1688
1689 0xed, 0x24, 0x2c, 0x89, 0x00, 0xdd, 0x1f, 0xa9,
1690 0x65, 0xbc, 0x95, 0x0d, 0xfc, 0xe0, 0x9b, 0x13,
1691 0x22, 0x63, 0xa1, 0xee, 0xf5, 0x2d, 0xd6, 0x88,
1692 0x8c, 0x30, 0x9f, 0x5a, 0x7d, 0x71, 0x28, 0x26,
1693};
1694
1695/* Vector 13 */
1696static const uint8_t ciph_data_aes_xts_vect13_key1[] = {
1697 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
1698 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
1699 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69,
1700 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27,
1701};
1702static const uint8_t ciph_data_aes_xts_vect13_key2[] = {
1703 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
1704 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
1705 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37,
1706 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92,
1707};
1708static const uint8_t ciph_data_aes_xts_vect13_iv[16] = {
1709 0xff, 0xff, 0xff, 0xff
1710};
1711static const uint8_t ciph_data_aes_xts_vect13_ptx[] = {
1712 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1713 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1714 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1715 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1716
1717 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1718 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1719 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1720 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1721
1722 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1723 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1724 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1725 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1726
1727 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1728 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1729 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1730 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1731
1732 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1733 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1734 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1735 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1736
1737 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1738 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1739 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1740 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1741
1742 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1743 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1744 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1745 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1746
1747 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1748 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1749 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1750 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1751
1752 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1753 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1754 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1755 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1756
1757 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1758 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1759 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1760 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1761
1762 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1763 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1764 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1765 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1766
1767 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1768 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1769 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1770 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1771
1772 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1773 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1774 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1775 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1776
1777 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1778 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1779 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1780 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1781
1782 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1783 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1784 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1785 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1786
1787 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1788 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1789 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1790 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1791};
1792static const uint8_t ciph_data_aes_xts_vect13_ctx[] = {
1793 0xbf, 0x53, 0xd2, 0xda, 0xde, 0x78, 0xe8, 0x22,
1794 0xa4, 0xd9, 0x49, 0xa9, 0xbc, 0x67, 0x66, 0xb0,
1795 0x1b, 0x06, 0xa8, 0xef, 0x70, 0xd2, 0x67, 0x48,
1796 0xc6, 0xa7, 0xfc, 0x36, 0xd8, 0x0a, 0xe4, 0xc5,
1797
1798 0x52, 0x0f, 0x7c, 0x4a, 0xb0, 0xac, 0x85, 0x44,
1799 0x42, 0x4f, 0xa4, 0x05, 0x16, 0x2f, 0xef, 0x5a,
1800 0x6b, 0x7f, 0x22, 0x94, 0x98, 0x06, 0x36, 0x18,
1801 0xd3, 0x9f, 0x00, 0x03, 0xcb, 0x5f, 0xb8, 0xd1,
1802
1803 0xc8, 0x6b, 0x64, 0x34, 0x97, 0xda, 0x1f, 0xf9,
1804 0x45, 0xc8, 0xd3, 0xbe, 0xde, 0xca, 0x4f, 0x47,
1805 0x97, 0x02, 0xa7, 0xa7, 0x35, 0xf0, 0x43, 0xdd,
1806 0xb1, 0xd6, 0xaa, 0xad, 0xe3, 0xc4, 0xa0, 0xac,
1807
1808 0x7c, 0xa7, 0xf3, 0xfa, 0x52, 0x79, 0xbe, 0xf5,
1809 0x6f, 0x82, 0xcd, 0x7a, 0x2f, 0x38, 0x67, 0x2e,
1810 0x82, 0x48, 0x14, 0xe1, 0x07, 0x00, 0x30, 0x0a,
1811 0x05, 0x5e, 0x16, 0x30, 0xb8, 0xf1, 0xcb, 0x0e,
1812
1813 0x91, 0x9f, 0x5e, 0x94, 0x20, 0x10, 0xa4, 0x16,
1814 0xe2, 0xbf, 0x48, 0xcb, 0x46, 0x99, 0x3d, 0x3c,
1815 0xb6, 0xa5, 0x1c, 0x19, 0xba, 0xcf, 0x86, 0x47,
1816 0x85, 0xa0, 0x0b, 0xc2, 0xec, 0xff, 0x15, 0xd3,
1817
1818 0x50, 0x87, 0x5b, 0x24, 0x6e, 0xd5, 0x3e, 0x68,
1819 0xbe, 0x6f, 0x55, 0xbd, 0x7e, 0x05, 0xcf, 0xc2,
1820 0xb2, 0xed, 0x64, 0x32, 0x19, 0x8a, 0x64, 0x44,
1821 0xb6, 0xd8, 0xc2, 0x47, 0xfa, 0xb9, 0x41, 0xf5,
1822
1823 0x69, 0x76, 0x8b, 0x5c, 0x42, 0x93, 0x66, 0xf1,
1824 0xd3, 0xf0, 0x0f, 0x03, 0x45, 0xb9, 0x61, 0x23,
1825 0xd5, 0x62, 0x04, 0xc0, 0x1c, 0x63, 0xb2, 0x2c,
1826 0xe7, 0x8b, 0xaf, 0x11, 0x6e, 0x52, 0x5e, 0xd9,
1827
1828 0x0f, 0xde, 0xa3, 0x9f, 0xa4, 0x69, 0x49, 0x4d,
1829 0x38, 0x66, 0xc3, 0x1e, 0x05, 0xf2, 0x95, 0xff,
1830 0x21, 0xfe, 0xa8, 0xd4, 0xe6, 0xe1, 0x3d, 0x67,
1831 0xe4, 0x7c, 0xe7, 0x22, 0xe9, 0x69, 0x8a, 0x1c,
1832
1833 0x10, 0x48, 0xd6, 0x8e, 0xbc, 0xde, 0x76, 0xb8,
1834 0x6f, 0xcf, 0x97, 0x6e, 0xab, 0x8a, 0xa9, 0x79,
1835 0x02, 0x68, 0xb7, 0x06, 0x8e, 0x01, 0x7a, 0x8b,
1836 0x9b, 0x74, 0x94, 0x09, 0x51, 0x4f, 0x10, 0x53,
1837
1838 0x02, 0x7f, 0xd1, 0x6c, 0x37, 0x86, 0xea, 0x1b,
1839 0xac, 0x5f, 0x15, 0xcb, 0x79, 0x71, 0x1e, 0xe2,
1840 0xab, 0xe8, 0x2f, 0x5c, 0xf8, 0xb1, 0x3a, 0xe7,
1841 0x30, 0x30, 0xef, 0x5b, 0x9e, 0x44, 0x57, 0xe7,
1842
1843 0x5d, 0x13, 0x04, 0xf9, 0x88, 0xd6, 0x2d, 0xd6,
1844 0xfc, 0x4b, 0x94, 0xed, 0x38, 0xba, 0x83, 0x1d,
1845 0xa4, 0xb7, 0x63, 0x49, 0x71, 0xb6, 0xcd, 0x8e,
1846 0xc3, 0x25, 0xd9, 0xc6, 0x1c, 0x00, 0xf1, 0xdf,
1847
1848 0x73, 0x62, 0x7e, 0xd3, 0x74, 0x5a, 0x5e, 0x84,
1849 0x89, 0xf3, 0xa9, 0x5c, 0x69, 0x63, 0x9c, 0x32,
1850 0xcd, 0x6e, 0x1d, 0x53, 0x7a, 0x85, 0xf7, 0x5c,
1851 0xc8, 0x44, 0x72, 0x6e, 0x8a, 0x72, 0xfc, 0x00,
1852
1853 0x77, 0xad, 0x22, 0x00, 0x0f, 0x1d, 0x50, 0x78,
1854 0xf6, 0xb8, 0x66, 0x31, 0x8c, 0x66, 0x8f, 0x1a,
1855 0xd0, 0x3d, 0x5a, 0x5f, 0xce, 0xd5, 0x21, 0x9f,
1856 0x2e, 0xab, 0xbd, 0x0a, 0xa5, 0xc0, 0xf4, 0x60,
1857
1858 0xd1, 0x83, 0xf0, 0x44, 0x04, 0xa0, 0xd6, 0xf4,
1859 0x69, 0x55, 0x8e, 0x81, 0xfa, 0xb2, 0x4a, 0x16,
1860 0x79, 0x05, 0xab, 0x4c, 0x78, 0x78, 0x50, 0x2a,
1861 0xd3, 0xe3, 0x8f, 0xdb, 0xe6, 0x2a, 0x41, 0x55,
1862
1863 0x6c, 0xec, 0x37, 0x32, 0x57, 0x59, 0x53, 0x3c,
1864 0xe8, 0xf2, 0x5f, 0x36, 0x7c, 0x87, 0xbb, 0x55,
1865 0x78, 0xd6, 0x67, 0xae, 0x93, 0xf9, 0xe2, 0xfd,
1866 0x99, 0xbc, 0xbc, 0x5f, 0x2f, 0xbb, 0xa8, 0x8c,
1867
1868 0xf6, 0x51, 0x61, 0x39, 0x42, 0x0f, 0xcf, 0xf3,
1869 0xb7, 0x36, 0x1d, 0x86, 0x32, 0x2c, 0x4b, 0xd8,
1870 0x4c, 0x82, 0xf3, 0x35, 0xab, 0xb1, 0x52, 0xc4,
1871 0xa9, 0x34, 0x11, 0x37, 0x3a, 0xaa, 0x82, 0x20,
1872};
1873
1874/* Vector 14 */
1875static const uint8_t ciph_data_aes_xts_vect14_key1[] = {
1876 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
1877 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
1878 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69,
1879 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27,
1880};
1881static const uint8_t ciph_data_aes_xts_vect14_key2[] = {
1882 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
1883 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
1884 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37,
1885 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92,
1886};
1887static const uint8_t ciph_data_aes_xts_vect14_iv[16] = {
1888 0xff, 0xff, 0xff, 0xff, 0xff
1889};
1890static const uint8_t ciph_data_aes_xts_vect14_ptx[] = {
1891 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1892 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1893 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1894 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1895
1896 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1897 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1898 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1899 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1900
1901 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1902 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1903 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1904 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1905
1906 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1907 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1908 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1909 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1910
1911 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1912 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1913 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1914 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1915
1916 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1917 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1918 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1919 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1920
1921 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1922 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1923 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1924 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1925
1926 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1927 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1928 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1929 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1930
1931 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1932 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1933 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1934 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1935
1936 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1937 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1938 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1939 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1940
1941 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1942 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1943 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1944 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1945
1946 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1947 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1948 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1949 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1950
1951 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1952 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1953 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1954 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1955
1956 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1957 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1958 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1959 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1960
1961 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1962 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1963 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1964 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1965
1966 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1967 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1968 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1969 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1970};
1971static const uint8_t ciph_data_aes_xts_vect14_ctx[] = {
1972 0x64, 0x49, 0x7e, 0x5a, 0x83, 0x1e, 0x4a, 0x93,
1973 0x2c, 0x09, 0xbe, 0x3e, 0x53, 0x93, 0x37, 0x6d,
1974 0xaa, 0x59, 0x95, 0x48, 0xb8, 0x16, 0x03, 0x1d,
1975 0x22, 0x4b, 0xbf, 0x50, 0xa8, 0x18, 0xed, 0x23,
1976
1977 0x50, 0xea, 0xe7, 0xe9, 0x60, 0x87, 0xc8, 0xa0,
1978 0xdb, 0x51, 0xad, 0x29, 0x0b, 0xd0, 0x0c, 0x1a,
1979 0xc1, 0x62, 0x08, 0x57, 0x63, 0x5b, 0xf2, 0x46,
1980 0xc1, 0x76, 0xab, 0x46, 0x3b, 0xe3, 0x0b, 0x80,
1981
1982 0x8d, 0xa5, 0x48, 0x08, 0x1a, 0xc8, 0x47, 0xb1,
1983 0x58, 0xe1, 0x26, 0x4b, 0xe2, 0x5b, 0xb0, 0x91,
1984 0x0b, 0xbc, 0x92, 0x64, 0x71, 0x08, 0x08, 0x94,
1985 0x15, 0xd4, 0x5f, 0xab, 0x1b, 0x3d, 0x26, 0x04,
1986
1987 0xe8, 0xa8, 0xef, 0xf1, 0xae, 0x40, 0x20, 0xcf,
1988 0xa3, 0x99, 0x36, 0xb6, 0x68, 0x27, 0xb2, 0x3f,
1989 0x37, 0x1b, 0x92, 0x20, 0x0b, 0xe9, 0x02, 0x51,
1990 0xe6, 0xd7, 0x3c, 0x5f, 0x86, 0xde, 0x5f, 0xd4,
1991
1992 0xa9, 0x50, 0x78, 0x19, 0x33, 0xd7, 0x9a, 0x28,
1993 0x27, 0x2b, 0x78, 0x2a, 0x2e, 0xc3, 0x13, 0xef,
1994 0xdf, 0xcc, 0x06, 0x28, 0xf4, 0x3d, 0x74, 0x4c,
1995 0x2d, 0xc2, 0xff, 0x3d, 0xcb, 0x66, 0x99, 0x9b,
1996
1997 0x50, 0xc7, 0xca, 0x89, 0x5b, 0x0c, 0x64, 0x79,
1998 0x1e, 0xea, 0xa5, 0xf2, 0x94, 0x99, 0xfb, 0x1c,
1999 0x02, 0x6f, 0x84, 0xce, 0x5b, 0x5c, 0x72, 0xba,
2000 0x10, 0x83, 0xcd, 0xdb, 0x5c, 0xe4, 0x54, 0x34,
2001
2002 0x63, 0x16, 0x65, 0xc3, 0x33, 0xb6, 0x0b, 0x11,
2003 0x59, 0x3f, 0xb2, 0x53, 0xc5, 0x17, 0x9a, 0x2c,
2004 0x8d, 0xb8, 0x13, 0x78, 0x2a, 0x00, 0x48, 0x56,
2005 0xa1, 0x65, 0x30, 0x11, 0xe9, 0x3f, 0xb6, 0xd8,
2006
2007 0x76, 0xc1, 0x83, 0x66, 0xdd, 0x86, 0x83, 0xf5,
2008 0x34, 0x12, 0xc0, 0xc1, 0x80, 0xf9, 0xc8, 0x48,
2009 0x59, 0x2d, 0x59, 0x3f, 0x86, 0x09, 0xca, 0x73,
2010 0x63, 0x17, 0xd3, 0x56, 0xe1, 0x3e, 0x2b, 0xff,
2011
2012 0x3a, 0x9f, 0x59, 0xcd, 0x9a, 0xeb, 0x19, 0xcd,
2013 0x48, 0x25, 0x93, 0xd8, 0xc4, 0x61, 0x28, 0xbb,
2014 0x32, 0x42, 0x3b, 0x37, 0xa9, 0xad, 0xfb, 0x48,
2015 0x2b, 0x99, 0x45, 0x3f, 0xbe, 0x25, 0xa4, 0x1b,
2016
2017 0xf6, 0xfe, 0xb4, 0xaa, 0x0b, 0xef, 0x5e, 0xd2,
2018 0x4b, 0xf7, 0x3c, 0x76, 0x29, 0x78, 0x02, 0x54,
2019 0x82, 0xc1, 0x31, 0x15, 0xe4, 0x01, 0x5a, 0xac,
2020 0x99, 0x2e, 0x56, 0x13, 0xa3, 0xb5, 0xc2, 0xf6,
2021
2022 0x85, 0xb8, 0x47, 0x95, 0xcb, 0x6e, 0x9b, 0x26,
2023 0x56, 0xd8, 0xc8, 0x81, 0x57, 0xe5, 0x2c, 0x42,
2024 0xf9, 0x78, 0xd8, 0x63, 0x4c, 0x43, 0xd0, 0x6f,
2025 0xea, 0x92, 0x8f, 0x28, 0x22, 0xe4, 0x65, 0xaa,
2026
2027 0x65, 0x76, 0xe9, 0xbf, 0x41, 0x93, 0x84, 0x50,
2028 0x6c, 0xc3, 0xce, 0x3c, 0x54, 0xac, 0x1a, 0x6f,
2029 0x67, 0xdc, 0x66, 0xf3, 0xb3, 0x01, 0x91, 0xe6,
2030 0x98, 0x38, 0x0b, 0xc9, 0x99, 0xb0, 0x5a, 0xbc,
2031
2032 0xe1, 0x9d, 0xc0, 0xc6, 0xdc, 0xc2, 0xdd, 0x00,
2033 0x1e, 0xc5, 0x35, 0xba, 0x18, 0xde, 0xb2, 0xdf,
2034 0x1a, 0x10, 0x10, 0x23, 0x10, 0x83, 0x18, 0xc7,
2035 0x5d, 0xc9, 0x86, 0x11, 0xa0, 0x9d, 0xc4, 0x8a,
2036
2037 0x0a, 0xcd, 0xec, 0x67, 0x6f, 0xab, 0xdf, 0x22,
2038 0x2f, 0x07, 0xe0, 0x26, 0xf0, 0x59, 0xb6, 0x72,
2039 0xb5, 0x6e, 0x5c, 0xbc, 0x8e, 0x1d, 0x21, 0xbb,
2040 0xd8, 0x67, 0xdd, 0x92, 0x72, 0x12, 0x05, 0x46,
2041
2042 0x81, 0xd7, 0x0e, 0xa7, 0x37, 0x13, 0x4c, 0xdf,
2043 0xce, 0x93, 0xb6, 0xf8, 0x2a, 0xe2, 0x24, 0x23,
2044 0x27, 0x4e, 0x58, 0xa0, 0x82, 0x1c, 0xc5, 0x50,
2045 0x2e, 0x2d, 0x0a, 0xb4, 0x58, 0x5e, 0x94, 0xde,
2046
2047 0x69, 0x75, 0xbe, 0x5e, 0x0b, 0x4e, 0xfc, 0xe5,
2048 0x1c, 0xd3, 0xe7, 0x0c, 0x25, 0xa1, 0xfb, 0xbb,
2049 0xd6, 0x09, 0xd2, 0x73, 0xad, 0x5b, 0x0d, 0x59,
2050 0x63, 0x1c, 0x53, 0x1f, 0x6a, 0x0a, 0x57, 0xb9,
2051};
2052
2053/*
2054 * XTS-AES-128 applied for a data unit that is not a multiple of 16 bytes
2055 */
2056
2057/* Vector 15 */
2058static const uint8_t ciph_data_aes_xts_vect15_key1[] = {
2059 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
2060 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
2061};
2062static const uint8_t ciph_data_aes_xts_vect15_key2[] = {
2063 0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
2064 0xb7, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, 0xb1, 0xb0,
2065};
2066static const uint8_t ciph_data_aes_xts_vect15_iv[16] = {
2067 0x9a, 0x78, 0x56, 0x34, 0x12
2068};
2069static const uint8_t ciph_data_aes_xts_vect15_ptx[] = {
2070 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2071 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2072 0x10
2073};
2074static const uint8_t ciph_data_aes_xts_vect15_ctx[] = {
2075 0x6c, 0x16, 0x25, 0xdb, 0x46, 0x71, 0x52, 0x2d,
2076 0x3d, 0x75, 0x99, 0x60, 0x1d, 0xe7, 0xca, 0x09,
2077 0xed
2078};
2079
2080/* Vector 16 */
2081static const uint8_t ciph_data_aes_xts_vect16_key1[] = {
2082 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
2083 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
2084};
2085static const uint8_t ciph_data_aes_xts_vect16_key2[] = {
2086 0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
2087 0xb7, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, 0xb1, 0xb0,
2088};
2089static const uint8_t ciph_data_aes_xts_vect16_iv[16] = {
2090 0x9a, 0x78, 0x56, 0x34, 0x12
2091};
2092static const uint8_t ciph_data_aes_xts_vect16_ptx[] = {
2093 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2094 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2095 0x10, 0x11
2096};
2097static const uint8_t ciph_data_aes_xts_vect16_ctx[] = {
2098 0xd0, 0x69, 0x44, 0x4b, 0x7a, 0x7e, 0x0c, 0xab,
2099 0x09, 0xe2, 0x44, 0x47, 0xd2, 0x4d, 0xeb, 0x1f,
2100 0xed, 0xbf
2101};
2102
2103/* Vector 17 */
2104static const uint8_t ciph_data_aes_xts_vect17_key1[] = {
2105 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
2106 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
2107};
2108static const uint8_t ciph_data_aes_xts_vect17_key2[] = {
2109 0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
2110 0xb7, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, 0xb1, 0xb0,
2111};
2112static const uint8_t ciph_data_aes_xts_vect17_iv[16] = {
2113 0x9a, 0x78, 0x56, 0x34, 0x12
2114};
2115static const uint8_t ciph_data_aes_xts_vect17_ptx[] = {
2116 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2117 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2118 0x10, 0x11, 0x12
2119};
2120static const uint8_t ciph_data_aes_xts_vect17_ctx[] = {
2121 0xe5, 0xdf, 0x13, 0x51, 0xc0, 0x54, 0x4b, 0xa1,
2122 0x35, 0x0b, 0x33, 0x63, 0xcd, 0x8e, 0xf4, 0xbe,
2123 0xed, 0xbf, 0x9d
2124};
2125
2126/* Vector 18 */
2127static const uint8_t ciph_data_aes_xts_vect18_key1[] = {
2128 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
2129 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
2130};
2131static const uint8_t ciph_data_aes_xts_vect18_key2[] = {
2132 0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
2133 0xb7, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, 0xb1, 0xb0,
2134};
2135static const uint8_t ciph_data_aes_xts_vect18_iv[16] = {
2136 0x9a, 0x78, 0x56, 0x34, 0x12
2137};
2138static const uint8_t ciph_data_aes_xts_vect18_ptx[] = {
2139 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2140 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2141 0x10, 0x11, 0x12, 0x13
2142};
2143static const uint8_t ciph_data_aes_xts_vect18_ctx[] = {
2144 0x9d, 0x84, 0xc8, 0x13, 0xf7, 0x19, 0xaa, 0x2c,
2145 0x7b, 0xe3, 0xf6, 0x61, 0x71, 0xc7, 0xc5, 0xc2,
2146 0xed, 0xbf, 0x9d, 0xac
2147};
2148
2149/* Vector 19 */
2150static const uint8_t ciph_data_aes_xts_vect19_key1[] = {
2151 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
2152 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
2153};
2154static const uint8_t ciph_data_aes_xts_vect19_key2[] = {
2155 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
2156 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
2157};
2158static const uint8_t ciph_data_aes_xts_vect19_iv[16] = {
2159 0x21, 0x43, 0x65, 0x87, 0xa9
2160};
2161static const uint8_t ciph_data_aes_xts_vect19_ptx[] = {
2162 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2163 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2164 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
2165 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
2166
2167 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
2168 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
2169 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
2170 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
2171
2172 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
2173 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
2174 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
2175 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
2176
2177 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2178 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
2179 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2180 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
2181
2182 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
2183 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
2184 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
2185 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
2186
2187 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
2188 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
2189 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
2190 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
2191
2192 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
2193 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
2194 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
2195 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
2196
2197 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
2198 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
2199 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
2200 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
2201
2202 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2203 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2204 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
2205 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
2206
2207 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
2208 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
2209 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
2210 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
2211
2212 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
2213 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
2214 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
2215 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
2216
2217 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2218 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
2219 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2220 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
2221
2222 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
2223 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
2224 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
2225 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
2226
2227 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
2228 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
2229 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
2230 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
2231
2232 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
2233 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
2234 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
2235 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
2236
2237 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
2238 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
2239 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
2240 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
2241};
2242static const uint8_t ciph_data_aes_xts_vect19_ctx[] = {
2243 0x38, 0xb4, 0x58, 0x12, 0xef, 0x43, 0xa0, 0x5b,
2244 0xd9, 0x57, 0xe5, 0x45, 0x90, 0x7e, 0x22, 0x3b,
2245 0x95, 0x4a, 0xb4, 0xaa, 0xf0, 0x88, 0x30, 0x3a,
2246 0xd9, 0x10, 0xea, 0xdf, 0x14, 0xb4, 0x2b, 0xe6,
2247
2248 0x8b, 0x24, 0x61, 0x14, 0x9d, 0x8c, 0x8b, 0xa8,
2249 0x5f, 0x99, 0x2b, 0xe9, 0x70, 0xbc, 0x62, 0x1f,
2250 0x1b, 0x06, 0x57, 0x3f, 0x63, 0xe8, 0x67, 0xbf,
2251 0x58, 0x75, 0xac, 0xaf, 0xa0, 0x4e, 0x42, 0xcc,
2252
2253 0xbd, 0x7b, 0xd3, 0xc2, 0xa0, 0xfb, 0x1f, 0xff,
2254 0x79, 0x1e, 0xc5, 0xec, 0x36, 0xc6, 0x6a, 0xe4,
2255 0xac, 0x1e, 0x80, 0x6d, 0x81, 0xfb, 0xf7, 0x09,
2256 0xdb, 0xe2, 0x9e, 0x47, 0x1f, 0xad, 0x38, 0x54,
2257
2258 0x9c, 0x8e, 0x66, 0xf5, 0x34, 0x5d, 0x7c, 0x1e,
2259 0xb9, 0x4f, 0x40, 0x5d, 0x1e, 0xc7, 0x85, 0xcc,
2260 0x6f, 0x6a, 0x68, 0xf6, 0x25, 0x4d, 0xd8, 0x33,
2261 0x9f, 0x9d, 0x84, 0x05, 0x7e, 0x01, 0xa1, 0x77,
2262
2263 0x41, 0x99, 0x04, 0x82, 0x99, 0x95, 0x16, 0xb5,
2264 0x61, 0x1a, 0x38, 0xf4, 0x1b, 0xb6, 0x47, 0x8e,
2265 0x6f, 0x17, 0x3f, 0x32, 0x08, 0x05, 0xdd, 0x71,
2266 0xb1, 0x93, 0x2f, 0xc3, 0x33, 0xcb, 0x9e, 0xe3,
2267
2268 0x99, 0x36, 0xbe, 0xea, 0x9a, 0xd9, 0x6f, 0xa1,
2269 0x0f, 0xb4, 0x11, 0x2b, 0x90, 0x17, 0x34, 0xdd,
2270 0xad, 0x40, 0xbc, 0x18, 0x78, 0x99, 0x5f, 0x8e,
2271 0x11, 0xae, 0xe7, 0xd1, 0x41, 0xa2, 0xf5, 0xd4,
2272
2273 0x8b, 0x7a, 0x4e, 0x1e, 0x7f, 0x0b, 0x2c, 0x04,
2274 0x83, 0x0e, 0x69, 0xa4, 0xfd, 0x13, 0x78, 0x41,
2275 0x1c, 0x2f, 0x28, 0x7e, 0xdf, 0x48, 0xc6, 0xc4,
2276 0xe5, 0xc2, 0x47, 0xa1, 0x96, 0x80, 0xf7, 0xfe,
2277
2278 0x41, 0xce, 0xfb, 0xd4, 0x9b, 0x58, 0x21, 0x06,
2279 0xe3, 0x61, 0x6c, 0xbb, 0xe4, 0xdf, 0xb2, 0x34,
2280 0x4b, 0x2a, 0xe9, 0x51, 0x93, 0x91, 0xf3, 0xe0,
2281 0xfb, 0x49, 0x22, 0x25, 0x4b, 0x1d, 0x6d, 0x2d,
2282
2283 0x19, 0xc6, 0xd4, 0xd5, 0x37, 0xb3, 0xa2, 0x6f,
2284 0x3b, 0xcc, 0x51, 0x58, 0x8b, 0x32, 0xf3, 0xec,
2285 0xa0, 0x82, 0x9b, 0x6a, 0x5a, 0xc7, 0x25, 0x78,
2286 0xfb, 0x81, 0x4f, 0xb4, 0x3c, 0xf8, 0x0d, 0x64,
2287
2288 0xa2, 0x33, 0xe3, 0xf9, 0x97, 0xa3, 0xf0, 0x26,
2289 0x83, 0x34, 0x2f, 0x2b, 0x33, 0xd2, 0x5b, 0x49,
2290 0x25, 0x36, 0xb9, 0x3b, 0xec, 0xb2, 0xf5, 0xe1,
2291 0xa8, 0xb8, 0x2f, 0x5b, 0x88, 0x33, 0x42, 0x72,
2292
2293 0x9e, 0x8a, 0xe0, 0x9d, 0x16, 0x93, 0x88, 0x41,
2294 0xa2, 0x1a, 0x97, 0xfb, 0x54, 0x3e, 0xea, 0x3b,
2295 0xbf, 0xf5, 0x9f, 0x13, 0xc1, 0xa1, 0x84, 0x49,
2296 0xe3, 0x98, 0x70, 0x1c, 0x1a, 0xd5, 0x16, 0x48,
2297
2298 0x34, 0x6c, 0xbc, 0x04, 0xc2, 0x7b, 0xb2, 0xda,
2299 0x3b, 0x93, 0xa1, 0x37, 0x2c, 0xca, 0xe5, 0x48,
2300 0xfb, 0x53, 0xbe, 0xe4, 0x76, 0xf9, 0xe9, 0xc9,
2301 0x17, 0x73, 0xb1, 0xbb, 0x19, 0x82, 0x83, 0x94,
2302
2303 0xd5, 0x5d, 0x3e, 0x1a, 0x20, 0xed, 0x69, 0x11,
2304 0x3a, 0x86, 0x0b, 0x68, 0x29, 0xff, 0xa8, 0x47,
2305 0x22, 0x46, 0x04, 0x43, 0x50, 0x70, 0x22, 0x1b,
2306 0x25, 0x7e, 0x8d, 0xff, 0x78, 0x36, 0x15, 0xd2,
2307
2308 0xca, 0xe4, 0x80, 0x3a, 0x93, 0xaa, 0x43, 0x34,
2309 0xab, 0x48, 0x2a, 0x0a, 0xfa, 0xc9, 0xc0, 0xae,
2310 0xda, 0x70, 0xb4, 0x5a, 0x48, 0x1d, 0xf5, 0xde,
2311 0xc5, 0xdf, 0x8c, 0xc0, 0xf4, 0x23, 0xc7, 0x7a,
2312
2313 0x5f, 0xd4, 0x6c, 0xd3, 0x12, 0x02, 0x1d, 0x4b,
2314 0x43, 0x88, 0x62, 0x41, 0x9a, 0x79, 0x1b, 0xe0,
2315 0x3b, 0xb4, 0xd9, 0x7c, 0x0e, 0x59, 0x57, 0x85,
2316 0x42, 0x53, 0x1b, 0xa4, 0x66, 0xa8, 0x3b, 0xaf,
2317
2318 0x92, 0xce, 0xfc, 0x15, 0x1b, 0x5c, 0xc1, 0x61,
2319 0x1a, 0x16, 0x78, 0x93, 0x81, 0x9b, 0x63, 0xfb,
2320 0x8a, 0x6b, 0x18, 0xe8, 0x6d, 0xe6, 0x02, 0x90,
2321 0xfa, 0x72, 0xb7, 0x97, 0xb0, 0xce, 0x59, 0xf3,
2322};
2323
2324/* AES-CCM test data from NIST Special Publication 800-38C */
2325
2326/*
2327 * Example1:
2328 * K: 40414243 44454647 48494a4b 4c4d4e4f
2329 * N: 10111213 141516
2330 * A: 00010203 04050607
2331 * P: 20212223
2332 * B: 4f101112 13141516 00000000 00000004
2333 * 00080001 02030405 06070000 00000000
2334 * 20212223 00000000 00000000 00000000
2335 * T: 6084341b
2336 * Ctr0: 07101112 13141516 00000000 00000000
2337 * S0: 2d281146 10676c26 32bad748 559a679a
2338 * Ctr1: 07101112 13141516 00000000 00000001
2339 * S1: 51432378 e474b339 71318484 103cddfb
2340 * C: 7162015b 4dac255d
2341 */
2342static const uint8_t ae_data_aes_ccm_vect1_key[] = {
2343 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
2344 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
2345};
2346static const uint8_t ae_data_aes_ccm_vect1_nonce[] = {
2347 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16
2348};
2349static const uint8_t ae_data_aes_ccm_vect1_aad[] = {
2350 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
2351};
2352static const uint8_t ae_data_aes_ccm_vect1_ptx[] = {
2353 0x20, 0x21, 0x22, 0x23
2354};
2355static const uint8_t ae_data_aes_ccm_vect1_ctx[] = {
2356 0x71, 0x62, 0x01, 0x5b,
2357};
2358static const uint8_t ae_data_aes_ccm_vect1_tag[] = {
2359 0x4d, 0xac, 0x25, 0x5d
2360};
2361
2362/*
2363 * Example 2:
2364 * K: 40414243 44454647 48494a4b 4c4d4e4f
2365 * N: 10111213 14151617
2366 * A: 00010203 04050607 08090a0b 0c0d0e0f
2367 * P: 20212223 24252627 28292a2b 2c2d2e2f
2368 * B: 56101112 13141516 17000000 00000010
2369 * 00100001 02030405 06070809 0a0b0c0d
2370 * 0e0f0000 00000000 00000000 00000000
2371 * 20212223 24252627 28292a2b 2c2d2e2f
2372 * T: 7f479ffc a464
2373 * Ctr0: 06101112 13141516 17000000 00000000
2374 * S0: 6081d043 08a97dcc 20cdcc60 bf947b78
2375 * Ctr1: 06101112 13141516 17000000 00000001
2376 * S1: f280d2c3 75cf7945 20335db9 2b107712
2377 * C: d2a1f0e0 51ea5f62 081a7792 073d593d
2378 * 1fc64fbf accd
2379 */
2380static const uint8_t ae_data_aes_ccm_vect2_key[] = {
2381 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
2382 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
2383};
2384static const uint8_t ae_data_aes_ccm_vect2_nonce[] = {
2385 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
2386};
2387static const uint8_t ae_data_aes_ccm_vect2_aad[] = {
2388 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2389 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
2390};
2391static const uint8_t ae_data_aes_ccm_vect2_ptx[] = {
2392 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
2393 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f
2394};
2395static const uint8_t ae_data_aes_ccm_vect2_ctx[] = {
2396 0xd2, 0xa1, 0xf0, 0xe0, 0x51, 0xea, 0x5f, 0x62,
2397 0x08, 0x1a, 0x77, 0x92, 0x07, 0x3d, 0x59, 0x3d,
2398};
2399static const uint8_t ae_data_aes_ccm_vect2_tag[] = {
2400 0x1f, 0xc6, 0x4f, 0xbf, 0xac, 0xcd
2401};
2402
2403/*
2404 * Example 3
2405 * K: 40414243 44454647 48494a4b 4c4d4e4f
2406 * N: 10111213 14151617 18191a1b
2407 * A: 00010203 04050607 08090a0b 0c0d0e0f
2408 * 10111213
2409 * P: 20212223 24252627 28292a2b 2c2d2e2f
2410 * 30313233 34353637
2411 * B: 5a101112 13141516 1718191a 1b000018
2412 * 00140001 02030405 06070809 0a0b0c0d
2413 * 0e0f1011 12130000 00000000 00000000
2414 * 20212223 24252627 28292a2b 2c2d2e2f
2415 * 30313233 34353637 00000000 00000000
2416 * T: 67c99240 c7d51048
2417 * Ctr0: 02101112 13141516 1718191a 1b000000
2418 * S0: 2f8a00bb 06658919 c3a040a6 eaed1a7f
2419 * Ctr1: 02101112 13141516 1718191a 1b000001
2420 * S1: c393238a d1923c5d b335c0c7 e1bac924
2421 * Ctr2: 02101112 13141516 1718191a 1b000002
2422 * S2: 514798ea 9077bc92 6c22ebef 2ac732dc
2423 * C: e3b201a9 f5b71a7a 9b1ceaec cd97e70b
2424 * 6176aad9 a4428aa5 484392fb c1b09951
2425 */
2426static const uint8_t ae_data_aes_ccm_vect3_key[] = {
2427 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
2428 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
2429};
2430static const uint8_t ae_data_aes_ccm_vect3_nonce[] = {
2431 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
2432 0x18, 0x19, 0x1a, 0x1b
2433};
2434static const uint8_t ae_data_aes_ccm_vect3_aad[] = {
2435 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2436 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2437 0x10, 0x11, 0x12, 0x13
2438};
2439static const uint8_t ae_data_aes_ccm_vect3_ptx[] = {
2440 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
2441 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
2442 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
2443};
2444static const uint8_t ae_data_aes_ccm_vect3_ctx[] = {
2445 0xe3, 0xb2, 0x01, 0xa9, 0xf5, 0xb7, 0x1a, 0x7a,
2446 0x9b, 0x1c, 0xea, 0xec, 0xcd, 0x97, 0xe7, 0x0b,
2447 0x61, 0x76, 0xaa, 0xd9, 0xa4, 0x42, 0x8a, 0xa5,
2448};
2449static const uint8_t ae_data_aes_ccm_vect3_tag[] = {
2450 0x48, 0x43, 0x92, 0xfb, 0xc1, 0xb0, 0x99, 0x51
2451};
2452
2453/*
2454 * AES-GCM vectors from the reviced "The Galois/Counter Mode of Operation
2455 * (GCM)" 2005-05-31 spec
2456 */
2457
2458/*
2459 * Test case 1
2460 * K 00000000000000000000000000000000
2461 * P
2462 * IV 000000000000000000000000
2463 * H 66e94bd4ef8a2c3b884cfa59ca342b2e
2464 * Y0 00000000000000000000000000000001
2465 * E(K, Y0) 58e2fccefa7e3061367f1d57a4e7455a
2466 * len(A)||len(C) 00000000000000000000000000000000
2467 * GHASH(H, A, C) 00000000000000000000000000000000
2468 * C
2469 * T 58e2fccefa7e3061367f1d57a4e7455a
2470 */
2471static const uint8_t ae_data_aes_gcm_vect1_key[] = {
2472 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2473 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
2474};
2475static const uint8_t ae_data_aes_gcm_vect1_nonce[] = {
2476 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2477 0x00, 0x00, 0x00, 0x00
2478};
2479#define ae_data_aes_gcm_vect1_aad NULL
2480#define ae_data_aes_gcm_vect1_ptx NULL
2481#define ae_data_aes_gcm_vect1_ctx NULL
2482static const uint8_t ae_data_aes_gcm_vect1_tag[] = {
2483 0x58, 0xe2, 0xfc, 0xce, 0xfa, 0x7e, 0x30, 0x61,
2484 0x36, 0x7f, 0x1d, 0x57, 0xa4, 0xe7, 0x45, 0x5a
2485};
2486
2487/*
2488 * Test case 2
2489 * K 00000000000000000000000000000000
2490 * P 00000000000000000000000000000000
2491 * IV 000000000000000000000000
2492 * H 66e94bd4ef8a2c3b884cfa59ca342b2e
2493 * Y0 00000000000000000000000000000001
2494 * E(K, Y0) 58e2fccefa7e3061367f1d57a4e7455a
2495 * Y1 00000000000000000000000000000002
2496 * E(K, Y1) 0388dace60b6a392f328c2b971b2fe78
2497 * X1 5e2ec746917062882c85b0685353deb7
2498 * len(A)||len(C) 00000000000000000000000000000080
2499 * GHASH(H, A, C) f38cbb1ad69223dcc3457ae5b6b0f885
2500 * C 0388dace60b6a392f328c2b971b2fe78
2501 * T ab6e47d42cec13bdf53a67b21257bddf
2502 */
2503
2504static const uint8_t ae_data_aes_gcm_vect2_key[] = {
2505 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2506 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
2507};
2508static const uint8_t ae_data_aes_gcm_vect2_nonce[] = {
2509 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2510 0x00, 0x00, 0x00, 0x00
2511};
2512#define ae_data_aes_gcm_vect2_aad NULL
2513static const uint8_t ae_data_aes_gcm_vect2_ptx[] = {
2514 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2515 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
2516};
2517static const uint8_t ae_data_aes_gcm_vect2_ctx[] = {
2518 0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92,
2519 0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, 0x78
2520};
2521static const uint8_t ae_data_aes_gcm_vect2_tag[] = {
2522 0xab, 0x6e, 0x47, 0xd4, 0x2c, 0xec, 0x13, 0xbd,
2523 0xf5, 0x3a, 0x67, 0xb2, 0x12, 0x57, 0xbd, 0xdf
2524};
2525
2526/*
2527 * Test case 3
2528 * K feffe9928665731c6d6a8f9467308308
2529 * P d9313225f88406e5a55909c5aff5269a
2530 * 86a7a9531534f7da2e4c303d8a318a72
2531 * 1c3c0c95956809532fcf0e2449a6b525
2532 * b16aedf5aa0de657ba637b391aafd255
2533 * IV cafebabefacedbaddecaf888
2534 * H b83b533708bf535d0aa6e52980d53b78
2535 * Y0 cafebabefacedbaddecaf88800000001
2536 * E(K, Y0) 3247184b3c4f69a44dbcd22887bbb418
2537 * Y1 cafebabefacedbaddecaf88800000002
2538 * E(K, Y1) 9bb22ce7d9f372c1ee2b28722b25f206
2539 * Y2 cafebabefacedbaddecaf88800000003
2540 * E(K, Y2) 650d887c3936533a1b8d4e1ea39d2b5c
2541 * Y3 cafebabefacedbaddecaf88800000004
2542 * E(K, Y3) 3de91827c10e9a4f5240647ee5221f20
2543 * Y4 cafebabefacedbaddecaf88800000005
2544 * E(K, Y4) aac9e6ccc0074ac0873b9ba85d908bd0
2545 * X1 59ed3f2bb1a0aaa07c9f56c6a504647b
2546 * X2 b714c9048389afd9f9bc5c1d4378e052
2547 * X3 47400c6577b1ee8d8f40b2721e86ff10
2548 * X4 4796cf49464704b5dd91f159bb1b7f95
2549 * len(A)||len(C) 00000000000000000000000000000200
2550 * GHASH(H, A, C) 7f1b32b81b820d02614f8895ac1d4eac
2551 * C 42831ec2217774244b7221b784d0d49c
2552 * e3aa212f2c02a4e035c17e2329aca12e
2553 * 21d514b25466931c7d8f6a5aac84aa05
2554 * 1ba30b396a0aac973d58e091473f5985
2555 * T 4d5c2af327cd64a62cf35abd2ba6fab4
2556 */
2557
2558static const uint8_t ae_data_aes_gcm_vect3_key[] = {
2559 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2560 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
2561};
2562static const uint8_t ae_data_aes_gcm_vect3_nonce[] = {
2563 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
2564 0xde, 0xca, 0xf8, 0x88
2565};
2566#define ae_data_aes_gcm_vect3_aad NULL
2567static const uint8_t ae_data_aes_gcm_vect3_ptx[] = {
2568 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2569 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2570 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2571 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2572 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2573 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2574 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
2575 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55
2576};
2577static const uint8_t ae_data_aes_gcm_vect3_ctx[] = {
2578 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
2579 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
2580 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
2581 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
2582 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
2583 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
2584 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
2585 0x3d, 0x58, 0xe0, 0x91, 0x47, 0x3f, 0x59, 0x85
2586};
2587static const uint8_t ae_data_aes_gcm_vect3_tag[] = {
2588 0x4d, 0x5c, 0x2a, 0xf3, 0x27, 0xcd, 0x64, 0xa6,
2589 0x2c, 0xf3, 0x5a, 0xbd, 0x2b, 0xa6, 0xfa, 0xb4
2590};
2591
2592/*
2593 * Test case 4
2594 * K feffe9928665731c6d6a8f9467308308
2595 * P d9313225f88406e5a55909c5aff5269a
2596 * 86a7a9531534f7da2e4c303d8a318a72
2597 * 1c3c0c95956809532fcf0e2449a6b525
2598 * b16aedf5aa0de657ba637b39
2599 * A feedfacedeadbeeffeedfacedeadbeef
2600 * abaddad2
2601 * IV cafebabefacedbaddecaf888
2602 * H b83b533708bf535d0aa6e52980d53b78
2603 * Y0 cafebabefacedbaddecaf88800000001
2604 * E(K, Y0) 3247184b3c4f69a44dbcd22887bbb418
2605 * X1 ed56aaf8a72d67049fdb9228edba1322
2606 * X2 cd47221ccef0554ee4bb044c88150352
2607 * Y1 cafebabefacedbaddecaf88800000002
2608 * E(K, Y1) 9bb22ce7d9f372c1ee2b28722b25f206
2609 * Y2 cafebabefacedbaddecaf88800000003
2610 * E(K, Y2) 650d887c3936533a1b8d4e1ea39d2b5c
2611 * Y3 cafebabefacedbaddecaf88800000004
2612 * E(K, Y3) 3de91827c10e9a4f5240647ee5221f20
2613 * Y4 cafebabefacedbaddecaf88800000005
2614 * E(K, Y4) aac9e6ccc0074ac0873b9ba85d908bd0
2615 * X3 54f5e1b2b5a8f9525c23924751a3ca51
2616 * X4 324f585c6ffc1359ab371565d6c45f93
2617 * X5 ca7dd446af4aa70cc3c0cd5abba6aa1c
2618 * X6 1590df9b2eb6768289e57d56274c8570
2619 * len(A)||len(C) 00000000000000a000000000000001e0
2620 * GHASH(H, A, C) 698e57f70e6ecc7fd9463b7260a9ae5f
2621 * C 42831ec2217774244b7221b784d0d49c
2622 * e3aa212f2c02a4e035c17e2329aca12e
2623 * 21d514b25466931c7d8f6a5aac84aa05
2624 * 1ba30b396a0aac973d58e091
2625 * T 5bc94fbc3221a5db94fae95ae7121a47
2626 */
2627
2628static const uint8_t ae_data_aes_gcm_vect4_key[] = {
2629 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2630 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
2631};
2632static const uint8_t ae_data_aes_gcm_vect4_nonce[] = {
2633 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
2634 0xde, 0xca, 0xf8, 0x88
2635};
2636static const uint8_t ae_data_aes_gcm_vect4_aad[] = {
2637 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2638 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2639 0xab, 0xad, 0xda, 0xd2
2640};
2641static const uint8_t ae_data_aes_gcm_vect4_ptx[] = {
2642 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2643 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2644 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2645 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2646 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2647 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2648 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
2649 0xba, 0x63, 0x7b, 0x39
2650};
2651static const uint8_t ae_data_aes_gcm_vect4_ctx[] = {
2652 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
2653 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
2654 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
2655 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
2656 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
2657 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
2658 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
2659 0x3d, 0x58, 0xe0, 0x91
2660};
2661static const uint8_t ae_data_aes_gcm_vect4_tag[] = {
2662 0x5b, 0xc9, 0x4f, 0xbc, 0x32, 0x21, 0xa5, 0xdb,
2663 0x94, 0xfa, 0xe9, 0x5a, 0xe7, 0x12, 0x1a, 0x47
2664};
2665
2666/*
2667 * Test case 5
2668 * K feffe9928665731c6d6a8f9467308308
2669 * P d9313225f88406e5a55909c5aff5269a
2670 * 86a7a9531534f7da2e4c303d8a318a72
2671 * 1c3c0c95956809532fcf0e2449a6b525
2672 * b16aedf5aa0de657ba637b39
2673 * A feedfacedeadbeeffeedfacedeadbeef
2674 * abaddad2
2675 * IV cafebabefacedbad
2676 * H b83b533708bf535d0aa6e52980d53b78
2677 * N1 6f288b846e5fed9a18376829c86a6a16
2678 * len({})||len(IV ) 00000000000000000000000000000040
2679 * Y0 c43a83c4c4badec4354ca984db252f7d
2680 * E(K, Y0) e94ab9535c72bea9e089c93d48e62fb0
2681 * X1 ed56aaf8a72d67049fdb9228edba1322
2682 * X2 cd47221ccef0554ee4bb044c88150352
2683 * Y1 c43a83c4c4badec4354ca984db252f7e
2684 * E(K, Y1) b8040969d08295afd226fcda0ddf61cf
2685 * Y2 c43a83c4c4badec4354ca984db252f7f
2686 * E(K, Y2) ef3c83225af93122192ad5c4f15dfe51
2687 * Y3 c43a83c4c4badec4354ca984db252f80
2688 * E(K, Y3) 6fbc659571f72de104c67b609d2fde67
2689 * Y4 c43a83c4c4badec4354ca984db252f81
2690 * E(K, Y4) f8e3581441a1e950785c3ea1430c6fa6
2691 * X3 9379e2feae14649c86cf2250e3a81916
2692 * X4 65dde904c92a6b3db877c4817b50a5f4
2693 * X5 48c53cf863b49a1b0bbfc48c3baaa89d
2694 * X6 08c873f1c8cec3effc209a07468caab1
2695 * len(A)||len(C) 00000000000000a000000000000001e0
2696 * GHASH(H, A, C) df586bb4c249b92cb6922877e444d37b
2697 * C 61353b4c2806934a777ff51fa22a4755
2698 * 699b2a714fcdc6f83766e5f97b6c7423
2699 * 73806900e49f24b22b097544d4896b42
2700 * 4989b5e1ebac0f07c23f4598
2701 * T 3612d2e79e3b0785561be14aaca2fccb
2702 */
2703
2704static const uint8_t ae_data_aes_gcm_vect5_key[] = {
2705 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2706 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
2707};
2708static const uint8_t ae_data_aes_gcm_vect5_nonce[] = {
2709 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad
2710};
2711static const uint8_t ae_data_aes_gcm_vect5_aad[] = {
2712 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2713 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2714 0xab, 0xad, 0xda, 0xd2
2715};
2716static const uint8_t ae_data_aes_gcm_vect5_ptx[] = {
2717 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2718 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2719 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2720 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2721 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2722 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2723 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
2724 0xba, 0x63, 0x7b, 0x39
2725};
2726static const uint8_t ae_data_aes_gcm_vect5_ctx[] = {
2727 0x61, 0x35, 0x3b, 0x4c, 0x28, 0x06, 0x93, 0x4a,
2728 0x77, 0x7f, 0xf5, 0x1f, 0xa2, 0x2a, 0x47, 0x55,
2729 0x69, 0x9b, 0x2a, 0x71, 0x4f, 0xcd, 0xc6, 0xf8,
2730 0x37, 0x66, 0xe5, 0xf9, 0x7b, 0x6c, 0x74, 0x23,
2731 0x73, 0x80, 0x69, 0x00, 0xe4, 0x9f, 0x24, 0xb2,
2732 0x2b, 0x09, 0x75, 0x44, 0xd4, 0x89, 0x6b, 0x42,
2733 0x49, 0x89, 0xb5, 0xe1, 0xeb, 0xac, 0x0f, 0x07,
2734 0xc2, 0x3f, 0x45, 0x98
2735};
2736static const uint8_t ae_data_aes_gcm_vect5_tag[] = {
2737 0x36, 0x12, 0xd2, 0xe7, 0x9e, 0x3b, 0x07, 0x85,
2738 0x56, 0x1b, 0xe1, 0x4a, 0xac, 0xa2, 0xfc, 0xcb
2739};
2740
2741/*
2742 * Test case 6
2743 * K feffe9928665731c6d6a8f9467308308
2744 * P d9313225f88406e5a55909c5aff5269a
2745 * 86a7a9531534f7da2e4c303d8a318a72
2746 * 1c3c0c95956809532fcf0e2449a6b525
2747 * b16aedf5aa0de657ba637b39
2748 * A feedfacedeadbeeffeedfacedeadbeef
2749 * abaddad2
2750 * IV 9313225df88406e555909c5aff5269aa
2751 * 6a7a9538534f7da1e4c303d2a318a728
2752 * c3c0c95156809539fcf0e2429a6b5254
2753 * 16aedbf5a0de6a57a637b39b
2754 * H b83b533708bf535d0aa6e52980d53b78
2755 * N1 004d6599d7fb1634756e1e299d81630f
2756 * N2 88ffe8a3c8033df4b54d732f7f88408e
2757 * N3 24e694cfab657beabba8055aad495e23
2758 * N4 d8349a5eda24943c8fbb2ef5168b20cb
2759 * len({})||len(IV ) 000000000000000000000000000001e0
2760 * Y0 3bab75780a31c059f83d2a44752f9864
2761 * E(K, Y0) 7dc63b399f2d98d57ab073b6baa4138e
2762 * X1 ed56aaf8a72d67049fdb9228edba1322
2763 * X2 cd47221ccef0554ee4bb044c88150352
2764 * Y1 3bab75780a31c059f83d2a44752f9865
2765 * E(K, Y1) 55d37bbd9ad21353a6f93a690eca9e0e
2766 * Y2 3bab75780a31c059f83d2a44752f9866
2767 * E(K, Y2) 3836bbf6d696e672946a1a01404fa6d5
2768 * Y3 3bab75780a31c059f83d2a44752f9867
2769 * E(K, Y3) 1dd8a5316ecc35c3e313bca59d2ac94a
2770 * Y4 3bab75780a31c059f83d2a44752f9868
2771 * E(K, Y4) 6742982706a9f154f657d5dc94b746db
2772 * X3 31727669c63c6f078b5d22adbbbca384
2773 * X4 480c00db2679065a7ed2f771a53acacd
2774 * X5 1c1ae3c355e2214466a9923d2ba6ab35
2775 * X6 0694c6f16bb0275a48891d06590344b0
2776 * len(A)||len(C) 00000000000000a000000000000001e0
2777 * GHASH(H, A, C) 1c5afe9760d3932f3c9a878aac3dc3de
2778 * C 8ce24998625615b603a033aca13fb894
2779 * be9112a5c3a211a8ba262a3cca7e2ca7
2780 * 01e4a9a4fba43c90ccdcb281d48c7c6f
2781 * d62875d2aca417034c34aee5
2782 * T 619cc5aefffe0bfa462af43c1699d050
2783 */
2784
2785static const uint8_t ae_data_aes_gcm_vect6_key[] = {
2786 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2787 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
2788};
2789static const uint8_t ae_data_aes_gcm_vect6_nonce[] = {
2790 0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
2791 0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
2792 0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
2793 0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
2794 0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
2795 0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
2796 0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
2797 0xa6, 0x37, 0xb3, 0x9b,
2798};
2799static const uint8_t ae_data_aes_gcm_vect6_aad[] = {
2800 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2801 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2802 0xab, 0xad, 0xda, 0xd2,
2803};
2804static const uint8_t ae_data_aes_gcm_vect6_ptx[] = {
2805 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2806 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2807 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2808 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2809 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2810 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2811 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
2812 0xba, 0x63, 0x7b, 0x39,
2813};
2814static const uint8_t ae_data_aes_gcm_vect6_ctx[] = {
2815 0x8c, 0xe2, 0x49, 0x98, 0x62, 0x56, 0x15, 0xb6,
2816 0x03, 0xa0, 0x33, 0xac, 0xa1, 0x3f, 0xb8, 0x94,
2817 0xbe, 0x91, 0x12, 0xa5, 0xc3, 0xa2, 0x11, 0xa8,
2818 0xba, 0x26, 0x2a, 0x3c, 0xca, 0x7e, 0x2c, 0xa7,
2819 0x01, 0xe4, 0xa9, 0xa4, 0xfb, 0xa4, 0x3c, 0x90,
2820 0xcc, 0xdc, 0xb2, 0x81, 0xd4, 0x8c, 0x7c, 0x6f,
2821 0xd6, 0x28, 0x75, 0xd2, 0xac, 0xa4, 0x17, 0x03,
2822 0x4c, 0x34, 0xae, 0xe5,
2823};
2824static const uint8_t ae_data_aes_gcm_vect6_tag[] = {
2825 0x61, 0x9c, 0xc5, 0xae, 0xff, 0xfe, 0x0b, 0xfa,
2826 0x46, 0x2a, 0xf4, 0x3c, 0x16, 0x99, 0xd0, 0x50,
2827};
2828
2829/*
2830 * Test case 7
2831 * K 00000000000000000000000000000000
2832 * 0000000000000000
2833 * P
2834 * IV 000000000000000000000000
2835 * H aae06992acbf52a3e8f4a96ec9300bd7
2836 * Y0 00000000000000000000000000000001
2837 * E(K, Y0) cd33b28ac773f74ba00ed1f312572435
2838 * len(A)||len(C) 00000000000000000000000000000000
2839 * GHASH(H, A, C) 00000000000000000000000000000000
2840 * C
2841 * T cd33b28ac773f74ba00ed1f312572435
2842 */
2843
2844static const uint8_t ae_data_aes_gcm_vect7_key[] = {
2845 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2846 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2847 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2848};
2849static const uint8_t ae_data_aes_gcm_vect7_nonce[] = {
2850 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2851 0x00, 0x00, 0x00, 0x00,
2852};
2853#define ae_data_aes_gcm_vect7_aad NULL
2854#define ae_data_aes_gcm_vect7_ptx NULL
2855#define ae_data_aes_gcm_vect7_ctx NULL
2856static const uint8_t ae_data_aes_gcm_vect7_tag[] = {
2857 0xcd, 0x33, 0xb2, 0x8a, 0xc7, 0x73, 0xf7, 0x4b,
2858 0xa0, 0x0e, 0xd1, 0xf3, 0x12, 0x57, 0x24, 0x35,
2859};
2860
2861/*
2862 * Test case 8
2863 * K 00000000000000000000000000000000
2864 * 0000000000000000
2865 * P 00000000000000000000000000000000
2866 * IV 000000000000000000000000
2867 * H aae06992acbf52a3e8f4a96ec9300bd7
2868 * Y0 00000000000000000000000000000001
2869 * E(K, Y0) cd33b28ac773f74ba00ed1f312572435
2870 * Y1 00000000000000000000000000000002
2871 * E(K, Y1) 98e7247c07f0fe411c267e4384b0f600
2872 * X1 90e87315fb7d4e1b4092ec0cbfda5d7d
2873 * len(A)||len(C) 00000000000000000000000000000080
2874 * GHASH(H, A, C) e2c63f0ac44ad0e02efa05ab6743d4ce
2875 * C 98e7247c07f0fe411c267e4384b0f600
2876 * T 2ff58d80033927ab8ef4d4587514f0fb
2877 */
2878
2879static const uint8_t ae_data_aes_gcm_vect8_key[] = {
2880 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2881 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2882 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2883};
2884static const uint8_t ae_data_aes_gcm_vect8_nonce[] = {
2885 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2886 0x00, 0x00, 0x00, 0x00,
2887};
2888#define ae_data_aes_gcm_vect8_aad NULL
2889static const uint8_t ae_data_aes_gcm_vect8_ptx[] = {
2890 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2891 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2892};
2893static const uint8_t ae_data_aes_gcm_vect8_ctx[] = {
2894 0x98, 0xe7, 0x24, 0x7c, 0x07, 0xf0, 0xfe, 0x41,
2895 0x1c, 0x26, 0x7e, 0x43, 0x84, 0xb0, 0xf6, 0x00,
2896};
2897static const uint8_t ae_data_aes_gcm_vect8_tag[] = {
2898 0x2f, 0xf5, 0x8d, 0x80, 0x03, 0x39, 0x27, 0xab,
2899 0x8e, 0xf4, 0xd4, 0x58, 0x75, 0x14, 0xf0, 0xfb,
2900};
2901
2902/* Test case 9 */
2903static const uint8_t ae_data_aes_gcm_vect9_key[] = {
2904 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2905 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
2906 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2907};
2908static const uint8_t ae_data_aes_gcm_vect9_nonce[] = {
2909 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
2910 0xde, 0xca, 0xf8, 0x88,
2911};
2912#define ae_data_aes_gcm_vect9_aad NULL
2913static const uint8_t ae_data_aes_gcm_vect9_ptx[] = {
2914 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2915 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2916 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2917 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2918 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2919 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2920 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
2921 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
2922};
2923static const uint8_t ae_data_aes_gcm_vect9_ctx[] = {
2924 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
2925 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
2926 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
2927 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
2928 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
2929 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
2930 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
2931 0xcc, 0xda, 0x27, 0x10, 0xac, 0xad, 0xe2, 0x56,
2932};
2933static const uint8_t ae_data_aes_gcm_vect9_tag[] = {
2934 0x99, 0x24, 0xa7, 0xc8, 0x58, 0x73, 0x36, 0xbf,
2935 0xb1, 0x18, 0x02, 0x4d, 0xb8, 0x67, 0x4a, 0x14,
2936};
2937
2938/* Test case 10 */
2939static const uint8_t ae_data_aes_gcm_vect10_key[] = {
2940 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2941 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
2942 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2943};
2944static const uint8_t ae_data_aes_gcm_vect10_nonce[] = {
2945 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
2946 0xde, 0xca, 0xf8, 0x88,
2947};
2948static const uint8_t ae_data_aes_gcm_vect10_aad[] = {
2949 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2950 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2951 0xab, 0xad, 0xda, 0xd2,
2952};
2953static const uint8_t ae_data_aes_gcm_vect10_ptx[] = {
2954 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2955 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2956 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2957 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2958 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2959 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2960 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
2961 0xba, 0x63, 0x7b, 0x39,
2962};
2963static const uint8_t ae_data_aes_gcm_vect10_ctx[] = {
2964 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
2965 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
2966 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
2967 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
2968 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
2969 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
2970 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
2971 0xcc, 0xda, 0x27, 0x10,
2972};
2973static const uint8_t ae_data_aes_gcm_vect10_tag[] = {
2974 0x25, 0x19, 0x49, 0x8e, 0x80, 0xf1, 0x47, 0x8f,
2975 0x37, 0xba, 0x55, 0xbd, 0x6d, 0x27, 0x61, 0x8c,
2976};
2977
2978/* Test case 11 */
2979static const uint8_t ae_data_aes_gcm_vect11_key[] = {
2980 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2981 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
2982 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
2983};
2984static const uint8_t ae_data_aes_gcm_vect11_nonce[] = {
2985 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
2986};
2987static const uint8_t ae_data_aes_gcm_vect11_aad[] = {
2988 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2989 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
2990 0xab, 0xad, 0xda, 0xd2,
2991};
2992static const uint8_t ae_data_aes_gcm_vect11_ptx[] = {
2993 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
2994 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
2995 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
2996 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
2997 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
2998 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
2999 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
3000 0xba, 0x63, 0x7b, 0x39,
3001};
3002static const uint8_t ae_data_aes_gcm_vect11_ctx[] = {
3003 0x0f, 0x10, 0xf5, 0x99, 0xae, 0x14, 0xa1, 0x54,
3004 0xed, 0x24, 0xb3, 0x6e, 0x25, 0x32, 0x4d, 0xb8,
3005 0xc5, 0x66, 0x63, 0x2e, 0xf2, 0xbb, 0xb3, 0x4f,
3006 0x83, 0x47, 0x28, 0x0f, 0xc4, 0x50, 0x70, 0x57,
3007 0xfd, 0xdc, 0x29, 0xdf, 0x9a, 0x47, 0x1f, 0x75,
3008 0xc6, 0x65, 0x41, 0xd4, 0xd4, 0xda, 0xd1, 0xc9,
3009 0xe9, 0x3a, 0x19, 0xa5, 0x8e, 0x8b, 0x47, 0x3f,
3010 0xa0, 0xf0, 0x62, 0xf7,
3011};
3012static const uint8_t ae_data_aes_gcm_vect11_tag[] = {
3013 0x65, 0xdc, 0xc5, 0x7f, 0xcf, 0x62, 0x3a, 0x24,
3014 0x09, 0x4f, 0xcc, 0xa4, 0x0d, 0x35, 0x33, 0xf8,
3015};
3016
3017/* Test case 12 */
3018static const uint8_t ae_data_aes_gcm_vect12_key[] = {
3019 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3020 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3021 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3022};
3023static const uint8_t ae_data_aes_gcm_vect12_nonce[] = {
3024 0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
3025 0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
3026 0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
3027 0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
3028 0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
3029 0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
3030 0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
3031 0xa6, 0x37, 0xb3, 0x9b,
3032};
3033static const uint8_t ae_data_aes_gcm_vect12_aad[] = {
3034 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3035 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3036 0xab, 0xad, 0xda, 0xd2,
3037};
3038static const uint8_t ae_data_aes_gcm_vect12_ptx[] = {
3039 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
3040 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
3041 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
3042 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
3043 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
3044 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
3045 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
3046 0xba, 0x63, 0x7b, 0x39,
3047};
3048static const uint8_t ae_data_aes_gcm_vect12_ctx[] = {
3049 0xd2, 0x7e, 0x88, 0x68, 0x1c, 0xe3, 0x24, 0x3c,
3050 0x48, 0x30, 0x16, 0x5a, 0x8f, 0xdc, 0xf9, 0xff,
3051 0x1d, 0xe9, 0xa1, 0xd8, 0xe6, 0xb4, 0x47, 0xef,
3052 0x6e, 0xf7, 0xb7, 0x98, 0x28, 0x66, 0x6e, 0x45,
3053 0x81, 0xe7, 0x90, 0x12, 0xaf, 0x34, 0xdd, 0xd9,
3054 0xe2, 0xf0, 0x37, 0x58, 0x9b, 0x29, 0x2d, 0xb3,
3055 0xe6, 0x7c, 0x03, 0x67, 0x45, 0xfa, 0x22, 0xe7,
3056 0xe9, 0xb7, 0x37, 0x3b,
3057};
3058static const uint8_t ae_data_aes_gcm_vect12_tag[] = {
3059 0xdc, 0xf5, 0x66, 0xff, 0x29, 0x1c, 0x25, 0xbb,
3060 0xb8, 0x56, 0x8f, 0xc3, 0xd3, 0x76, 0xa6, 0xd9,
3061};
3062
3063/* Test case 13 */
3064static const uint8_t ae_data_aes_gcm_vect13_key[] = {
3065 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3066 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3067 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3068 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3069};
3070static const uint8_t ae_data_aes_gcm_vect13_nonce[] = {
3071 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3072 0x00, 0x00, 0x00, 0x00,
3073};
3074#define ae_data_aes_gcm_vect13_aad NULL
3075#define ae_data_aes_gcm_vect13_ptx NULL
3076#define ae_data_aes_gcm_vect13_ctx NULL
3077static const uint8_t ae_data_aes_gcm_vect13_tag[] = {
3078 0x53, 0x0f, 0x8a, 0xfb, 0xc7, 0x45, 0x36, 0xb9,
3079 0xa9, 0x63, 0xb4, 0xf1, 0xc4, 0xcb, 0x73, 0x8b,
3080};
3081
3082/* Test case 14 */
3083static const uint8_t ae_data_aes_gcm_vect14_key[] = {
3084 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3085 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3086 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3087 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3088};
3089static const uint8_t ae_data_aes_gcm_vect14_nonce[] = {
3090 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3091 0x00, 0x00, 0x00, 0x00,
3092};
3093#define ae_data_aes_gcm_vect14_aad NULL
3094static const uint8_t ae_data_aes_gcm_vect14_ptx[] = {
3095 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3096 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3097};
3098static const uint8_t ae_data_aes_gcm_vect14_ctx[] = {
3099 0xce, 0xa7, 0x40, 0x3d, 0x4d, 0x60, 0x6b, 0x6e,
3100 0x07, 0x4e, 0xc5, 0xd3, 0xba, 0xf3, 0x9d, 0x18,
3101};
3102static const uint8_t ae_data_aes_gcm_vect14_tag[] = {
3103 0xd0, 0xd1, 0xc8, 0xa7, 0x99, 0x99, 0x6b, 0xf0,
3104 0x26, 0x5b, 0x98, 0xb5, 0xd4, 0x8a, 0xb9, 0x19,
3105};
3106
3107/* Test case 15 */
3108static const uint8_t ae_data_aes_gcm_vect15_key[] = {
3109 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3110 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3111 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3112 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3113};
3114static const uint8_t ae_data_aes_gcm_vect15_nonce[] = {
3115 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
3116 0xde, 0xca, 0xf8, 0x88,
3117};
3118#define ae_data_aes_gcm_vect15_aad NULL
3119static const uint8_t ae_data_aes_gcm_vect15_ptx[] = {
3120 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
3121 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
3122 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
3123 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
3124 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
3125 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
3126 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
3127 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
3128};
3129static const uint8_t ae_data_aes_gcm_vect15_ctx[] = {
3130 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
3131 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
3132 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
3133 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
3134 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
3135 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
3136 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
3137 0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad,
3138};
3139static const uint8_t ae_data_aes_gcm_vect15_tag[] = {
3140 0xb0, 0x94, 0xda, 0xc5, 0xd9, 0x34, 0x71, 0xbd,
3141 0xec, 0x1a, 0x50, 0x22, 0x70, 0xe3, 0xcc, 0x6c,
3142};
3143
3144/* Test case 16 */
3145static const uint8_t ae_data_aes_gcm_vect16_key[] = {
3146 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3147 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3148 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3149 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3150};
3151static const uint8_t ae_data_aes_gcm_vect16_nonce[] = {
3152 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
3153 0xde, 0xca, 0xf8, 0x88,
3154};
3155static const uint8_t ae_data_aes_gcm_vect16_aad[] = {
3156 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3157 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3158 0xab, 0xad, 0xda, 0xd2,
3159};
3160static const uint8_t ae_data_aes_gcm_vect16_ptx[] = {
3161 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
3162 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
3163 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
3164 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
3165 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
3166 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
3167 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
3168 0xba, 0x63, 0x7b, 0x39,
3169};
3170static const uint8_t ae_data_aes_gcm_vect16_ctx[] = {
3171 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
3172 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
3173 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
3174 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
3175 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
3176 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
3177 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
3178 0xbc, 0xc9, 0xf6, 0x62,
3179};
3180static const uint8_t ae_data_aes_gcm_vect16_tag[] = {
3181 0x76, 0xfc, 0x6e, 0xce, 0x0f, 0x4e, 0x17, 0x68,
3182 0xcd, 0xdf, 0x88, 0x53, 0xbb, 0x2d, 0x55, 0x1b,
3183};
3184
3185/* Test case 17 */
3186static const uint8_t ae_data_aes_gcm_vect17_key[] = {
3187 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3188 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3189 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3190 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3191};
3192static const uint8_t ae_data_aes_gcm_vect17_nonce[] = {
3193 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
3194};
3195static const uint8_t ae_data_aes_gcm_vect17_aad[] = {
3196 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3197 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3198 0xab, 0xad, 0xda, 0xd2,
3199};
3200static const uint8_t ae_data_aes_gcm_vect17_ptx[] = {
3201 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
3202 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
3203 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
3204 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
3205 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
3206 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
3207 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
3208 0xba, 0x63, 0x7b, 0x39,
3209};
3210static const uint8_t ae_data_aes_gcm_vect17_ctx[] = {
3211 0xc3, 0x76, 0x2d, 0xf1, 0xca, 0x78, 0x7d, 0x32,
3212 0xae, 0x47, 0xc1, 0x3b, 0xf1, 0x98, 0x44, 0xcb,
3213 0xaf, 0x1a, 0xe1, 0x4d, 0x0b, 0x97, 0x6a, 0xfa,
3214 0xc5, 0x2f, 0xf7, 0xd7, 0x9b, 0xba, 0x9d, 0xe0,
3215 0xfe, 0xb5, 0x82, 0xd3, 0x39, 0x34, 0xa4, 0xf0,
3216 0x95, 0x4c, 0xc2, 0x36, 0x3b, 0xc7, 0x3f, 0x78,
3217 0x62, 0xac, 0x43, 0x0e, 0x64, 0xab, 0xe4, 0x99,
3218 0xf4, 0x7c, 0x9b, 0x1f,
3219};
3220static const uint8_t ae_data_aes_gcm_vect17_tag[] = {
3221 0x3a, 0x33, 0x7d, 0xbf, 0x46, 0xa7, 0x92, 0xc4,
3222 0x5e, 0x45, 0x49, 0x13, 0xfe, 0x2e, 0xa8, 0xf2,
3223};
3224
3225/* Test case 18 */
3226static const uint8_t ae_data_aes_gcm_vect18_key[] = {
3227 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3228 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3229 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
3230 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
3231};
3232static const uint8_t ae_data_aes_gcm_vect18_nonce[] = {
3233 0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
3234 0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
3235 0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
3236 0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
3237 0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
3238 0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
3239 0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
3240 0xa6, 0x37, 0xb3, 0x9b,
3241};
3242static const uint8_t ae_data_aes_gcm_vect18_aad[] = {
3243 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3244 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
3245 0xab, 0xad, 0xda, 0xd2,
3246};
3247static const uint8_t ae_data_aes_gcm_vect18_ptx[] = {
3248 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
3249 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
3250 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
3251 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
3252 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
3253 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
3254 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
3255 0xba, 0x63, 0x7b, 0x39,
3256};
3257static const uint8_t ae_data_aes_gcm_vect18_ctx[] = {
3258 0x5a, 0x8d, 0xef, 0x2f, 0x0c, 0x9e, 0x53, 0xf1,
3259 0xf7, 0x5d, 0x78, 0x53, 0x65, 0x9e, 0x2a, 0x20,
3260 0xee, 0xb2, 0xb2, 0x2a, 0xaf, 0xde, 0x64, 0x19,
3261 0xa0, 0x58, 0xab, 0x4f, 0x6f, 0x74, 0x6b, 0xf4,
3262 0x0f, 0xc0, 0xc3, 0xb7, 0x80, 0xf2, 0x44, 0x45,
3263 0x2d, 0xa3, 0xeb, 0xf1, 0xc5, 0xd8, 0x2c, 0xde,
3264 0xa2, 0x41, 0x89, 0x97, 0x20, 0x0e, 0xf8, 0x2e,
3265 0x44, 0xae, 0x7e, 0x3f,
3266};
3267static const uint8_t ae_data_aes_gcm_vect18_tag[] = {
3268 0xa4, 0x4a, 0x82, 0x66, 0xee, 0x1c, 0x8e, 0xb0,
3269 0xc8, 0xb5, 0xd4, 0xcf, 0x5a, 0xe9, 0xf1, 0x9a,
3270};
3271
3272/*
3273 * Test data generated with
3274 * http://www.mobilefish.com/services/rsa_key_generation/rsa_key_generation.php
3275 * selecting 1024 bit key
3276 */
3277static const uint8_t ac_rsassa_vect1_modulus[] = {
3278 0xab, 0x42, 0x30, 0x54, 0x02, 0x15, 0x19, 0x4f, 0x03, 0x15, 0x73, 0xdf,
3279 0x96, 0x4c, 0x23, 0xeb, 0xd3, 0xd5, 0xf2, 0xff, 0x17, 0xf4, 0x1f, 0x5c,
3280 0x41, 0x26, 0x3e, 0x20, 0x15, 0x6d, 0x0a, 0x70, 0x8d, 0x9e, 0x9e, 0x67,
3281 0x47, 0x87, 0x6a, 0x15, 0xb5, 0x40, 0x38, 0x99, 0x64, 0x90, 0xc1, 0x32,
3282 0x32, 0x95, 0xc7, 0x63, 0x0a, 0xac, 0x5b, 0xcc, 0x21, 0x6b, 0x51, 0x7b,
3283 0xa5, 0xef, 0x7b, 0x62, 0x12, 0x34, 0x2d, 0x8d, 0xb6, 0x0d, 0x24, 0x92,
3284 0xa4, 0x83, 0xd4, 0x3b, 0xa5, 0x29, 0xe2, 0x94, 0xfc, 0xcd, 0x5e, 0xcb,
3285 0xc6, 0x52, 0x7b, 0xf7, 0x65, 0x80, 0x1f, 0x63, 0xcb, 0x4f, 0x40, 0x27,
3286 0x5b, 0x2d, 0x2a, 0x9f, 0xce, 0x9b, 0x33, 0x97, 0xeb, 0xbe, 0xcb, 0x34,
3287 0x22, 0xff, 0x5f, 0x21, 0x21, 0xba, 0x75, 0xb3, 0xba, 0x8f, 0x00, 0x9e,
3288 0x08, 0x66, 0x86, 0x4a, 0x8e, 0x40, 0xb2, 0x5f
3289};
3290static const uint8_t ac_rsassa_vect1_pub_exp[] = {
3291 0x01, 0x00, 0x01
3292};
3293static const uint8_t ac_rsassa_vect1_priv_exp[] = {
3294 0x91, 0xaa, 0x4f, 0xae, 0xf4, 0xc2, 0x7b, 0x6f, 0x60, 0x21, 0x1c, 0x18,
3295 0xde, 0x1e, 0xcf, 0x22, 0xe4, 0x60, 0x83, 0x3a, 0x04, 0x66, 0xc9, 0x51,
3296 0xcf, 0xbc, 0x36, 0x75, 0x55, 0xa4, 0x14, 0x90, 0x1d, 0x75, 0x00, 0x28,
3297 0xba, 0x87, 0x6c, 0x6d, 0x20, 0x68, 0x8a, 0x7b, 0xb6, 0x35, 0x05, 0x8e,
3298 0xab, 0xc6, 0x07, 0xfc, 0xae, 0xf4, 0x61, 0x74, 0x24, 0x2c, 0xc2, 0xf6,
3299 0xd7, 0xf1, 0xf5, 0x4f, 0xd3, 0x68, 0x86, 0x9b, 0x40, 0x47, 0x74, 0x51,
3300 0x2a, 0xe3, 0x87, 0xe3, 0x6f, 0x8c, 0x2e, 0x71, 0xb9, 0xe1, 0x49, 0x62,
3301 0x8b, 0x1f, 0x00, 0x92, 0x51, 0x82, 0x5b, 0x56, 0xeb, 0x55, 0x4e, 0x17,
3302 0x67, 0x91, 0x74, 0xc3, 0x01, 0xdc, 0x34, 0xda, 0x56, 0x03, 0x3c, 0x5d,
3303 0x50, 0xb5, 0xa5, 0xf5, 0xd0, 0xe1, 0x84, 0x7f, 0x2c, 0x16, 0x86, 0x34,
3304 0x1d, 0xb1, 0x8f, 0xd9, 0xb4, 0x0b, 0x35, 0x79
3305};
3306static const uint8_t ac_rsassa_vect1_prime1[] = {
3307 0xec, 0xbb, 0x19, 0x15, 0xc6, 0x52, 0xee, 0xf2, 0x75, 0x0b, 0x2f, 0x4f,
3308 0x1b, 0x2e, 0xd5, 0x14, 0x13, 0x26, 0xb4, 0xb4, 0x8d, 0x1d, 0xbd, 0x27,
3309 0xbb, 0x38, 0xba, 0x2f, 0xa7, 0xc7, 0xb6, 0x76, 0x88, 0xad, 0x73, 0x24,
3310 0x56, 0xe4, 0xd6, 0x9e, 0xe1, 0x20, 0x50, 0x4e, 0x90, 0x09, 0xb1, 0xf7,
3311 0x58, 0x1f, 0x47, 0x82, 0x88, 0xe7, 0xd8, 0xab, 0x3c, 0x1c, 0x9d, 0xc1,
3312 0xa7, 0x79, 0x5c, 0x65
3313};
3314static const uint8_t ac_rsassa_vect1_prime2[] = {
3315 0xb9, 0x32, 0xce, 0x2d, 0x38, 0xb4, 0x21, 0x7f, 0x9e, 0x79, 0x36, 0xf8,
3316 0x6a, 0xf4, 0x99, 0xae, 0x57, 0x1b, 0xd6, 0x1c, 0x53, 0xf7, 0xf9, 0x61,
3317 0xed, 0x47, 0xca, 0x7d, 0x76, 0xd7, 0x4e, 0xc6, 0x59, 0x51, 0x2d, 0xea,
3318 0x91, 0x0f, 0xdf, 0x56, 0x77, 0xa9, 0x2e, 0xf7, 0x63, 0x57, 0x14, 0x93,
3319 0x3b, 0x6f, 0x39, 0x4d, 0x88, 0x18, 0x2f, 0x78, 0xfc, 0xa3, 0xdb, 0xf6,
3320 0xc0, 0x05, 0xdd, 0x73
3321};
3322static const uint8_t ac_rsassa_vect1_exp1[] = {
3323 0xaa, 0xa7, 0x45, 0xb2, 0x18, 0xc1, 0xf8, 0x56, 0xf8, 0x61, 0x13, 0xbd,
3324 0xa7, 0x0e, 0xdf, 0xb4, 0x15, 0x0a, 0x36, 0x02, 0x62, 0x28, 0x2a, 0x0f,
3325 0xd6, 0x3b, 0x52, 0x9c, 0xc0, 0x0a, 0x8c, 0x52, 0x6e, 0xbc, 0xfa, 0xe0,
3326 0x1b, 0x73, 0xe3, 0xf3, 0xac, 0xbe, 0xaa, 0xa5, 0xb7, 0xd8, 0x05, 0x5f,
3327 0x15, 0x3b, 0x97, 0x45, 0x56, 0x84, 0x2c, 0x01, 0x64, 0xd8, 0x0c, 0x31,
3328 0x6a, 0x15, 0x66, 0xb1
3329};
3330static const uint8_t ac_rsassa_vect1_exp2[] = {
3331 0x82, 0xec, 0x11, 0xa9, 0x12, 0x5e, 0xf5, 0x17, 0x7c, 0xf6, 0x80, 0x0f,
3332 0xd9, 0xbc, 0x95, 0x30, 0x14, 0x50, 0x8f, 0x6a, 0x73, 0x49, 0xe8, 0x38,
3333 0x7c, 0x3f, 0xb6, 0x3c, 0x3f, 0xd9, 0x31, 0xcd, 0x32, 0xb3, 0x1a, 0xdc,
3334 0xaa, 0x34, 0x28, 0x54, 0xbe, 0x3f, 0x11, 0xfe, 0xbd, 0x71, 0x80, 0x10,
3335 0x1d, 0x82, 0x21, 0x66, 0x58, 0x01, 0x90, 0xfd, 0xdc, 0xcc, 0x11, 0xe2,
3336 0x3c, 0x19, 0x69, 0x55
3337};
3338static const uint8_t ac_rsassa_vect1_coeff[] = {
3339 0x2b, 0x9b, 0x48, 0xc0, 0xe1, 0xcb, 0x28, 0x9c, 0x03, 0xb2, 0xcf, 0xc6,
3340 0xf6, 0xbb, 0xbe, 0x1b, 0xad, 0xe6, 0x3b, 0xd3, 0x65, 0xbb, 0xca, 0xb7,
3341 0x43, 0x17, 0x8e, 0x3d, 0xb1, 0x6d, 0xc3, 0x06, 0xad, 0x7d, 0xe8, 0x81,
3342 0xb9, 0x5a, 0x13, 0xad, 0x18, 0x46, 0xcd, 0x93, 0xb6, 0x44, 0x1f, 0xd0,
3343 0x4d, 0x73, 0xb1, 0x00, 0x4d, 0x46, 0xc8, 0x22, 0x4a, 0x7e, 0xb8, 0xe6,
3344 0xdd, 0xae, 0x5f, 0x40
3345};
3346static const uint8_t ac_rsassa_vect1_ptx[] = {
3347 0x91, 0x07, 0xf4, 0x49, 0x0a, 0xf9, 0x99, 0x12, 0xaa, 0x95, 0x02, 0x76,
3348 0x95, 0x1b, 0xfa, 0x94, 0x32, 0xbf
3349};
3350static const uint8_t ac_rsassa_vect1_out[] = {
3351 0x5f, 0xf8, 0xc0, 0x00, 0x4b, 0xd6, 0x5a, 0x3b, 0xf9, 0x34, 0xad, 0xca,
3352 0x24, 0x8f, 0x8f, 0x99, 0xba, 0x24, 0xb3, 0x84, 0x1b, 0x82, 0xff, 0xdb,
3353 0x35, 0x00, 0xa0, 0x66, 0x62, 0xc3, 0x85, 0x4d, 0xfc, 0x4b, 0x42, 0xce,
3354 0xd1, 0x29, 0x39, 0x04, 0x16, 0xcb, 0xa2, 0x53, 0x12, 0x5d, 0x71, 0x5c,
3355 0xcd, 0x37, 0xcb, 0x0a, 0x5d, 0x07, 0xdd, 0xb2, 0x18, 0x94, 0x47, 0x2a,
3356 0x82, 0x64, 0x7a, 0xd3, 0xbb, 0x83, 0xc5, 0x9c, 0x50, 0x85, 0x65, 0x94,
3357 0x0f, 0x01, 0xfe, 0x20, 0xa0, 0x83, 0x4f, 0x3b, 0x78, 0x99, 0x48, 0x94,
3358 0x36, 0xaf, 0x4a, 0xac, 0x89, 0xfa, 0xf6, 0xf8, 0x42, 0x86, 0xa5, 0xbe,
3359 0x0d, 0xb3, 0x39, 0x42, 0xa0, 0x70, 0x56, 0x5f, 0xea, 0xc6, 0x8f, 0x31,
3360 0xfe, 0x56, 0x56, 0xac, 0xf7, 0x4c, 0x9b, 0x8a, 0x06, 0x5a, 0xbd, 0x61,
3361 0x92, 0xfc, 0xef, 0x4b, 0x26, 0x36, 0x6d, 0x91
3362};
3363
3364
3365/*
3366 * Test data generated with
3367 * http://www.mobilefish.com/services/rsa_key_generation/rsa_key_generation.php
3368 * selecting 2048 bit key
3369 */
3370static const uint8_t ac_rsassa_vect2_modulus[] = {
3371 0x9a, 0x83, 0xda, 0x0e, 0xfb, 0xa1, 0x77, 0xc5, 0x34, 0x88, 0xac, 0x3d,
3372 0xd1, 0x3e, 0x89, 0x3e, 0xca, 0xad, 0x40, 0x47, 0xdc, 0xff, 0xc6, 0x18,
3373 0xc3, 0x1a, 0x95, 0xd3, 0x82, 0xb9, 0x98, 0xa8, 0xec, 0x90, 0xbe, 0xab,
3374 0xef, 0x74, 0xb7, 0x58, 0xa0, 0x0d, 0x0f, 0xb5, 0x13, 0xb8, 0x7e, 0xf7,
3375 0xdb, 0x19, 0x77, 0x55, 0xc5, 0xed, 0xa6, 0x60, 0xa7, 0xaf, 0xea, 0x83,
3376 0x69, 0xcf, 0xcf, 0x50, 0x51, 0x94, 0xa7, 0xc0, 0x96, 0x68, 0xe6, 0x63,
3377 0xef, 0xdf, 0xa8, 0x28, 0x4a, 0x50, 0xbf, 0xd7, 0x44, 0xbf, 0x0b, 0x0a,
3378 0x41, 0xd6, 0x02, 0xfc, 0x3f, 0x06, 0x51, 0x82, 0xe4, 0x56, 0x3f, 0xe9,
3379 0x37, 0x40, 0xe0, 0xaa, 0x18, 0x56, 0xcb, 0x2e, 0xd4, 0x02, 0x66, 0xcc,
3380 0xfb, 0xbd, 0x6b, 0x34, 0xfd, 0x3d, 0x2c, 0xad, 0xeb, 0x8c, 0x7c, 0x85,
3381 0x09, 0xd1, 0x00, 0x4f, 0xaf, 0xc7, 0x9d, 0x25, 0x19, 0x45, 0x3a, 0x54,
3382 0x9d, 0xda, 0x4b, 0x3b, 0x11, 0x6b, 0xbc, 0x66, 0xb7, 0xb1, 0xa2, 0x79,
3383 0x1c, 0xd5, 0x38, 0x7a, 0x7b, 0x62, 0xae, 0x8a, 0x35, 0xc7, 0x4b, 0xdd,
3384 0x0e, 0x23, 0x78, 0xa3, 0xec, 0xcf, 0xe9, 0xa4, 0x26, 0x33, 0xca, 0x48,
3385 0x08, 0xc1, 0x3c, 0xb0, 0xe8, 0xfa, 0x2f, 0xbb, 0x75, 0x8a, 0x3d, 0x45,
3386 0xf4, 0xe5, 0x7a, 0x2f, 0x4d, 0xd8, 0x6f, 0x05, 0x14, 0x21, 0xb1, 0xfd,
3387 0xd1, 0xbb, 0x3c, 0xa7, 0x1d, 0x2f, 0xe7, 0x79, 0xc2, 0x99, 0x49, 0x25,
3388 0xef, 0x73, 0xd4, 0xe9, 0xbb, 0xf9, 0x1b, 0xeb, 0x0e, 0xb7, 0xdf, 0x53,
3389 0xc1, 0xdc, 0x41, 0xf9, 0x92, 0x01, 0x68, 0x63, 0x84, 0x52, 0x78, 0xfc,
3390 0xf8, 0x7f, 0x84, 0xa1, 0x47, 0xe3, 0x7c, 0x5b, 0x53, 0x82, 0x1b, 0x3a,
3391 0x78, 0x7a, 0xae, 0x8d, 0x6a, 0xef, 0x87, 0x38, 0x28, 0x14, 0x4c, 0xf5,
3392 0xd7, 0xb9, 0xd0, 0xad
3393};
3394static const uint8_t ac_rsassa_vect2_pub_exp[] = {
3395 0x01, 0x00, 0x01
3396};
3397static const uint8_t ac_rsassa_vect2_priv_exp[] = {
3398 0x73, 0xdd, 0x01, 0x0b, 0x91, 0x26, 0xb0, 0x00, 0x01, 0x77, 0xa6, 0xe8,
3399 0xa7, 0xd9, 0xe3, 0xe2, 0x60, 0xea, 0x6f, 0x34, 0x34, 0x04, 0xdb, 0x8f,
3400 0xbf, 0xe5, 0x54, 0x8a, 0x09, 0x11, 0x90, 0xe6, 0xc2, 0x95, 0x7b, 0x54,
3401 0xc4, 0x37, 0x5a, 0x30, 0xab, 0xbb, 0x7f, 0x96, 0xc1, 0xd5, 0xeb, 0xe7,
3402 0x81, 0xb4, 0xe3, 0xe6, 0x3e, 0x88, 0x08, 0xe5, 0x9b, 0x78, 0x6f, 0x3a,
3403 0xe1, 0x82, 0x41, 0xab, 0xb1, 0xb0, 0xed, 0xe5, 0x9d, 0x23, 0xc5, 0xf7,
3404 0x14, 0x6d, 0x3a, 0xd4, 0x13, 0x7d, 0xdf, 0x8c, 0xd5, 0x71, 0x08, 0x1f,
3405 0x45, 0xe4, 0xeb, 0xd2, 0x28, 0x94, 0x5d, 0x54, 0xf0, 0x51, 0xb8, 0x94,
3406 0xf1, 0xa8, 0xc5, 0x8e, 0xe6, 0xb7, 0x56, 0x9e, 0xa3, 0xbd, 0xb5, 0x46,
3407 0x6a, 0x52, 0xcc, 0x6c, 0x2c, 0xa4, 0xcd, 0xb7, 0x10, 0xd5, 0x04, 0x9e,
3408 0x62, 0x11, 0x05, 0xd1, 0xbb, 0x36, 0xcc, 0x9f, 0x55, 0x91, 0x21, 0x2e,
3409 0xe7, 0x10, 0x4a, 0xe9, 0xb1, 0xd2, 0xc7, 0x16, 0x45, 0x46, 0xd8, 0x9e,
3410 0xd4, 0xe6, 0x7e, 0x90, 0xc9, 0x33, 0xf0, 0x4e, 0x9d, 0x1f, 0x46, 0x79,
3411 0xcf, 0xcd, 0xf6, 0x77, 0x6a, 0x6c, 0x97, 0x77, 0x00, 0x3a, 0x78, 0x24,
3412 0x81, 0xec, 0x2a, 0xae, 0x51, 0x77, 0xa0, 0xb2, 0xc9, 0xb8, 0x4a, 0xca,
3413 0xab, 0x7a, 0x28, 0x3f, 0x99, 0x53, 0xa3, 0xab, 0xe8, 0x60, 0x7a, 0x6d,
3414 0x2e, 0xda, 0xa6, 0x90, 0x24, 0xf6, 0x34, 0x51, 0x22, 0x7d, 0x32, 0x81,
3415 0x0c, 0x50, 0xa5, 0x14, 0x69, 0x8b, 0xbc, 0x4e, 0x06, 0xcc, 0xc3, 0xe1,
3416 0x69, 0x5f, 0xaa, 0xc3, 0x99, 0x46, 0x2f, 0xb7, 0x86, 0xc9, 0x39, 0xba,
3417 0x58, 0x97, 0x4e, 0x40, 0xc1, 0x29, 0xe6, 0x0e, 0xa4, 0x7d, 0x4a, 0xdf,
3418 0x87, 0x8c, 0x93, 0x7c, 0x22, 0x67, 0xae, 0xbb, 0x0e, 0xfc, 0x05, 0x67,
3419 0x5f, 0xde, 0xe2, 0x21
3420};
3421static const uint8_t ac_rsassa_vect2_prime1[] = {
3422 0xcd, 0xff, 0x70, 0x4b, 0x87, 0xc8, 0xd3, 0xad, 0x23, 0xb4, 0xe9, 0x63,
3423 0x91, 0x50, 0xbd, 0x78, 0x28, 0x4f, 0x23, 0x5a, 0xd5, 0x32, 0x53, 0xae,
3424 0x04, 0xe5, 0x87, 0x9c, 0xb4, 0x18, 0x07, 0x90, 0x6e, 0xaa, 0x8a, 0xfe,
3425 0x1c, 0xfe, 0x60, 0x77, 0x85, 0x27, 0x87, 0x4b, 0x91, 0x72, 0x43, 0x9d,
3426 0xe1, 0x71, 0x39, 0xe4, 0x0e, 0x7d, 0x03, 0xa9, 0x5d, 0xbc, 0xc2, 0x02,
3427 0x87, 0xd9, 0x39, 0x98, 0xf0, 0x51, 0xac, 0x6a, 0x96, 0x7c, 0x00, 0xf9,
3428 0xe4, 0x95, 0x02, 0xb8, 0xbd, 0xf1, 0xae, 0x2c, 0x15, 0x5a, 0x12, 0x30,
3429 0x6e, 0x1d, 0xe4, 0x1e, 0x65, 0x65, 0xde, 0x2e, 0xdc, 0x93, 0x02, 0xc2,
3430 0xbb, 0x9f, 0x7e, 0xec, 0xa3, 0xc4, 0x8f, 0x05, 0x07, 0xce, 0xbb, 0x9a,
3431 0x53, 0x1c, 0x57, 0x77, 0x89, 0xff, 0x6c, 0xcb, 0xf8, 0xa1, 0xde, 0xbe,
3432 0x14, 0x4b, 0xee, 0xd6, 0xad, 0x27, 0x04, 0x99
3433};
3434static const uint8_t ac_rsassa_vect2_prime2[] = {
3435 0xc0, 0x05, 0x4f, 0x58, 0xa0, 0x22, 0x58, 0x60, 0x7b, 0xef, 0x87, 0x1f,
3436 0x87, 0x39, 0x47, 0x48, 0xa8, 0x86, 0x15, 0xd5, 0xf9, 0xb5, 0xf8, 0x71,
3437 0x81, 0xf9, 0xb7, 0x3e, 0x4a, 0xe8, 0x5d, 0xbc, 0xbf, 0x8f, 0x17, 0xc0,
3438 0x96, 0xdc, 0xc2, 0x7f, 0x5e, 0x60, 0x65, 0xe7, 0xa2, 0xc6, 0x30, 0x25,
3439 0x8b, 0xe9, 0xdb, 0x28, 0x10, 0xac, 0x02, 0x0e, 0x23, 0x0f, 0x14, 0x6b,
3440 0xff, 0xd4, 0x09, 0xdd, 0x7c, 0x06, 0x5d, 0xb2, 0x6e, 0x32, 0x49, 0x62,
3441 0xb7, 0x93, 0x5d, 0x24, 0x99, 0x03, 0x69, 0x9b, 0x60, 0x2e, 0x34, 0xa3,
3442 0x9f, 0x62, 0x33, 0xaf, 0xc5, 0xdc, 0x8f, 0x10, 0x61, 0xfa, 0xc5, 0x8d,
3443 0xa9, 0xcc, 0x86, 0x93, 0x7d, 0x1e, 0xa6, 0x7d, 0xcb, 0x6e, 0x69, 0xfe,
3444 0xe1, 0x3c, 0x64, 0x01, 0x58, 0xd8, 0x1a, 0x0f, 0xf8, 0xcc, 0x34, 0xe5,
3445 0x01, 0x2c, 0xb8, 0xf9, 0x90, 0x71, 0xe5, 0x35
3446};
3447static const uint8_t ac_rsassa_vect2_exp1[] = {
3448 0x8b, 0x46, 0xc7, 0x8f, 0xe9, 0xb0, 0x78, 0x9d, 0xb9, 0x64, 0x99, 0xdf,
3449 0xbd, 0xe2, 0x4f, 0x18, 0x2c, 0x78, 0xc5, 0x38, 0xa6, 0xa8, 0xae, 0x37,
3450 0x1c, 0x0c, 0x6c, 0x52, 0x20, 0xd9, 0x96, 0x53, 0xaa, 0xdf, 0x17, 0xb6,
3451 0x93, 0xb7, 0xd1, 0x55, 0x3d, 0xeb, 0xe9, 0xe7, 0xc7, 0xe0, 0xef, 0xa2,
3452 0x91, 0x48, 0x52, 0x91, 0xc4, 0xd1, 0xf5, 0x65, 0xcf, 0x80, 0xcd, 0xd3,
3453 0x94, 0x31, 0xe4, 0x65, 0x69, 0x26, 0x6f, 0x62, 0x69, 0x78, 0x51, 0xd8,
3454 0xa3, 0x19, 0xb4, 0x8b, 0x5f, 0xb1, 0x45, 0xc7, 0x7c, 0x70, 0x37, 0x98,
3455 0x12, 0xfb, 0x96, 0xbe, 0x8e, 0x63, 0xff, 0x82, 0xc3, 0x93, 0x89, 0xec,
3456 0x4b, 0x9a, 0x9c, 0xe0, 0x36, 0x21, 0xb1, 0x68, 0xff, 0x4c, 0x61, 0x3f,
3457 0x08, 0x2e, 0x43, 0x5d, 0x09, 0x2a, 0x6f, 0x4e, 0xc1, 0x3e, 0x00, 0x31,
3458 0x97, 0xdb, 0x77, 0x12, 0x22, 0x64, 0x1d, 0x11
3459};
3460static const uint8_t ac_rsassa_vect2_exp2[] = {
3461 0x88, 0x05, 0xfa, 0xec, 0x44, 0x1b, 0xb0, 0x51, 0x40, 0xda, 0x2f, 0xf5,
3462 0x14, 0x9c, 0x6d, 0xb3, 0xb9, 0xb5, 0xaa, 0x58, 0x36, 0x99, 0x42, 0x52,
3463 0x5e, 0x09, 0x60, 0x56, 0x5f, 0x47, 0xf5, 0xc7, 0x14, 0x47, 0xb0, 0x42,
3464 0xbc, 0x5b, 0xcb, 0xe7, 0xe0, 0x1a, 0x17, 0x76, 0x1c, 0x27, 0x9a, 0xc9,
3465 0xae, 0x30, 0x4e, 0x10, 0x36, 0xa7, 0x32, 0x99, 0x83, 0x1a, 0x56, 0x94,
3466 0x1e, 0xd8, 0xbc, 0xd8, 0x49, 0xd8, 0x54, 0x9d, 0x66, 0x54, 0x77, 0x09,
3467 0xd8, 0x13, 0x2b, 0x03, 0x16, 0xe5, 0x84, 0xf5, 0x0d, 0x10, 0x0e, 0x37,
3468 0xee, 0x5a, 0xe9, 0x54, 0x55, 0xac, 0x65, 0x27, 0xec, 0xd0, 0x71, 0x0b,
3469 0x66, 0x42, 0x3c, 0xfe, 0xd3, 0xbe, 0x57, 0xa0, 0x7a, 0xf0, 0x4f, 0x63,
3470 0xbf, 0x78, 0x41, 0x3b, 0x77, 0x0d, 0x36, 0x81, 0x23, 0xf4, 0xbc, 0x6f,
3471 0x91, 0x02, 0x76, 0x52, 0x4b, 0x91, 0x73, 0x15
3472};
3473static const uint8_t ac_rsassa_vect2_coeff[] = {
3474 0xb1, 0x70, 0x9b, 0x0c, 0xec, 0xc7, 0x8b, 0xc3, 0x50, 0xe4, 0x3a, 0x85,
3475 0xda, 0x6c, 0xf6, 0x36, 0x30, 0x27, 0xe5, 0xf5, 0xa2, 0x96, 0x1d, 0x78,
3476 0xa2, 0xd5, 0x89, 0xce, 0xef, 0xba, 0xd9, 0xfc, 0x3e, 0x91, 0x0e, 0x63,
3477 0x42, 0x31, 0x2d, 0x99, 0xd7, 0x47, 0x1d, 0xb2, 0x42, 0x56, 0xd3, 0x07,
3478 0x76, 0x31, 0x35, 0x92, 0x23, 0xcd, 0x81, 0x7d, 0xc2, 0x14, 0xfd, 0x90,
3479 0x71, 0xbb, 0x43, 0x5e, 0x8b, 0xec, 0x1f, 0x8a, 0xf5, 0xe6, 0x08, 0xee,
3480 0x26, 0x79, 0xa1, 0xb4, 0xee, 0x58, 0x99, 0x4c, 0xad, 0x91, 0x6a, 0xaa,
3481 0x5c, 0x4b, 0xbc, 0xbc, 0xad, 0xf7, 0xe1, 0xdd, 0x48, 0xfd, 0x98, 0x82,
3482 0x06, 0x11, 0xac, 0xc5, 0x74, 0xb5, 0xa9, 0x16, 0x4a, 0x6c, 0xc1, 0xae,
3483 0x25, 0x70, 0xde, 0x96, 0xcf, 0xad, 0x2a, 0x8b, 0x89, 0x39, 0x77, 0x94,
3484 0xae, 0x4b, 0x84, 0x02, 0x92, 0x0c, 0x05, 0x42
3485};
3486static const uint8_t ac_rsassa_vect2_ptx[] = {
3487 0x91, 0x07, 0xf4, 0x49, 0x0a, 0xf9, 0x99, 0x12, 0xaa, 0x95, 0x02, 0x76,
3488 0x95, 0x1b, 0xfa, 0x94, 0x32, 0xbf
3489};
3490static const uint8_t ac_rsassa_vect2_out[] = {
3491 0x47, 0x16, 0xe1, 0xee, 0x54, 0xb7, 0xe0, 0x8a, 0xcc, 0x5d, 0x1b, 0xae,
3492 0xde, 0xc1, 0x43, 0x09, 0xd8, 0x4d, 0xe3, 0xcd, 0x5f, 0xd5, 0x48, 0x51,
3493 0xd3, 0x1c, 0x62, 0x5d, 0x1c, 0x13, 0x0b, 0x05, 0x89, 0x77, 0xd6, 0x95,
3494 0x4e, 0x8f, 0x4a, 0x0a, 0x51, 0xc2, 0x0c, 0xcf, 0xfe, 0x4c, 0x24, 0x6d,
3495 0x0c, 0x73, 0x33, 0x46, 0xd9, 0xdf, 0xfe, 0x6e, 0x06, 0xcb, 0x8c, 0x79,
3496 0x32, 0x3f, 0xbd, 0x1d, 0x10, 0x3a, 0x60, 0x3c, 0xe8, 0x1c, 0xbe, 0xd9,
3497 0xa8, 0x00, 0x76, 0x5b, 0x6d, 0x7a, 0x62, 0xdd, 0x3c, 0x21, 0x53, 0x16,
3498 0xab, 0x0b, 0x6c, 0x8d, 0x43, 0xfd, 0xba, 0x9a, 0xd9, 0x9a, 0xc1, 0x21,
3499 0x0c, 0x79, 0x78, 0x93, 0x86, 0xbd, 0xdf, 0x63, 0xca, 0xc8, 0xd6, 0xc6,
3500 0x20, 0xc9, 0x08, 0xf6, 0xc8, 0xfe, 0x22, 0xa4, 0xc6, 0xe3, 0x49, 0xe4,
3501 0x63, 0x01, 0x03, 0x5b, 0x78, 0x63, 0x3a, 0x02, 0x9c, 0xa1, 0xed, 0x20,
3502 0x01, 0x10, 0x79, 0x2e, 0x8d, 0xe5, 0x70, 0xae, 0x1a, 0x5f, 0x72, 0x9e,
3503 0x31, 0xab, 0x21, 0xd3, 0xd7, 0x59, 0x5f, 0x26, 0xbf, 0x45, 0x31, 0x6d,
3504 0xc3, 0xa6, 0x45, 0x7b, 0x6d, 0x8e, 0x3c, 0xb0, 0x42, 0xb4, 0xeb, 0x09,
3505 0xcf, 0x54, 0x0a, 0x72, 0x38, 0xf8, 0x67, 0x83, 0xa7, 0x7b, 0xce, 0x52,
3506 0x74, 0x0f, 0x03, 0x9d, 0x09, 0x1f, 0xe7, 0xf0, 0x85, 0x27, 0x3e, 0x1d,
3507 0x2f, 0xea, 0x2d, 0xa8, 0xdc, 0x58, 0x00, 0x9b, 0xdc, 0x10, 0x95, 0xe4,
3508 0x5f, 0x69, 0x20, 0x11, 0x1c, 0x3c, 0x58, 0x27, 0xcd, 0x1f, 0x23, 0xc9,
3509 0x28, 0xfa, 0x98, 0x53, 0xce, 0xa6, 0xe6, 0x64, 0x20, 0x2e, 0xe1, 0x2b,
3510 0x35, 0x30, 0x4e, 0xb2, 0x14, 0xaa, 0x7f, 0x89, 0x6f, 0xa8, 0xb1, 0xd6,
3511 0x30, 0x2c, 0x7c, 0xe5, 0x26, 0xe4, 0xce, 0x61, 0x6c, 0xc6, 0x06, 0xbc,
3512 0xea, 0x26, 0x6f, 0xe4
3513};
3514
3515/*
Jerome Forissiere576f052018-03-23 21:24:21 +08003516 * 3072-bit RSA
3517 * Test data generated with:
3518 * openssl genrsa -out 3072.pem 3072
3519 * openssl rsa -in 3072.pem -text -noout
3520 * (dd if=/dev/zero bs=1 count=368; \
3521 * printf '\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10';) | \
3522 * openssl rsautl -encrypt -raw -inkey 3072.pem | od -t x1
3523 */
3524static const uint8_t ac_rsassa_vect18_modulus[] = {
3525 0xca, 0x72, 0xcc, 0xef, 0xad, 0x0a, 0xbe, 0xd6, 0x35, 0x16, 0x23, 0x93,
3526 0x16, 0x8f, 0xee, 0x31, 0x4c, 0xc2, 0x6f, 0x20, 0x99, 0x38, 0x69, 0xc1,
3527 0xcb, 0x57, 0x5f, 0x7e, 0x35, 0xba, 0x85, 0xa7, 0xe9, 0xe1, 0xe6, 0x1d,
3528 0x39, 0xc2, 0x41, 0x7d, 0xc3, 0xa3, 0xea, 0x6a, 0xdb, 0x5a, 0x07, 0x4a,
3529 0x4a, 0x3a, 0xcb, 0xce, 0xf2, 0xa0, 0xdd, 0xcd, 0x4b, 0x99, 0x67, 0x0d,
3530 0x38, 0xf1, 0x40, 0x41, 0xed, 0x5b, 0xb8, 0xf8, 0xea, 0xc7, 0xd9, 0x91,
3531 0x30, 0x42, 0x8d, 0xee, 0x48, 0xc4, 0x7c, 0x7f, 0x0d, 0x33, 0x7b, 0x8f,
3532 0x38, 0x18, 0xed, 0x7f, 0x02, 0x8c, 0x44, 0x52, 0x6a, 0x93, 0x37, 0xfd,
3533 0x6a, 0x27, 0x3e, 0xbf, 0x03, 0x78, 0xe3, 0xfc, 0x29, 0x83, 0x20, 0x65,
3534 0xe3, 0xfa, 0x2c, 0x93, 0xcb, 0x83, 0x90, 0x61, 0xd3, 0x1a, 0x9a, 0x65,
3535 0x53, 0xf0, 0xea, 0x2c, 0xf8, 0x61, 0x8d, 0x9f, 0x54, 0x22, 0x7e, 0x2e,
3536 0x1e, 0x36, 0x62, 0xd9, 0x9f, 0x7d, 0x56, 0xf4, 0xad, 0x61, 0xb6, 0x1a,
3537 0x7b, 0x40, 0x59, 0x10, 0x04, 0xff, 0xea, 0x16, 0x98, 0x36, 0x61, 0x9d,
3538 0x5c, 0x62, 0xcb, 0xf6, 0xc2, 0x95, 0x3b, 0x91, 0xc9, 0xff, 0xf0, 0x65,
3539 0x7e, 0x0e, 0xa2, 0x43, 0x89, 0x24, 0xaa, 0xdd, 0x0e, 0xed, 0xb0, 0x8c,
3540 0xb0, 0xb2, 0x4d, 0x80, 0x2a, 0x11, 0xcf, 0x35, 0xe9, 0x82, 0xc6, 0x67,
3541 0x37, 0x3b, 0xc9, 0xd5, 0xa1, 0xd8, 0x8e, 0x07, 0x93, 0xfd, 0xe7, 0x5a,
3542 0x54, 0xc6, 0xf0, 0xae, 0x82, 0x43, 0x86, 0x62, 0x70, 0x44, 0x09, 0xb7,
3543 0x62, 0x58, 0xb2, 0x17, 0x9f, 0x3c, 0xa5, 0x10, 0x60, 0xc6, 0x61, 0x47,
3544 0x83, 0x1f, 0x3e, 0xa7, 0xf2, 0x26, 0x5b, 0x70, 0xd5, 0x81, 0x47, 0x6a,
3545 0x78, 0xe0, 0x85, 0x16, 0x36, 0xc0, 0x2e, 0xbb, 0x01, 0x6c, 0x99, 0x19,
3546 0xeb, 0x22, 0xf5, 0x13, 0xe3, 0x38, 0x67, 0x9f, 0x85, 0xed, 0x0f, 0x05,
3547 0x22, 0x29, 0x34, 0xda, 0x4b, 0x8f, 0x44, 0xfa, 0x30, 0xf8, 0xe6, 0xc1,
3548 0xf6, 0x9d, 0x9b, 0xd6, 0x56, 0x81, 0x2c, 0x58, 0x4d, 0xf8, 0x90, 0xef,
3549 0xf9, 0xea, 0x31, 0x6f, 0x04, 0xd2, 0x8d, 0xc1, 0xc9, 0x6e, 0x90, 0xd1,
3550 0xff, 0xce, 0xab, 0x58, 0x9f, 0x98, 0x57, 0x7c, 0x7a, 0x79, 0x8a, 0xb2,
3551 0x3d, 0x32, 0x0d, 0x0c, 0x3b, 0x6a, 0xd4, 0x33, 0x49, 0x50, 0xe1, 0x41,
3552 0x3d, 0x07, 0x32, 0xfc, 0x6d, 0x9f, 0xfc, 0x8c, 0xad, 0x05, 0x74, 0xa9,
3553 0x37, 0x5e, 0x70, 0x0b, 0xe9, 0xdf, 0xc1, 0x96, 0xca, 0x7c, 0xca, 0xbd,
3554 0xab, 0x8e, 0x68, 0xd0, 0xf9, 0x3f, 0x5f, 0x90, 0xb4, 0x30, 0x17, 0x4d,
3555 0x3a, 0xf9, 0xa1, 0xf0, 0xcb, 0xc7, 0x54, 0xb3, 0xa6, 0x0f, 0xd7, 0xe7,
3556 0x68, 0x43, 0x5f, 0x39, 0xa6, 0x05, 0x83, 0x74, 0xf9, 0xd9, 0x94, 0xab
3557};
3558static const uint8_t ac_rsassa_vect18_pub_exp[] = {
3559 0x01, 0x00, 0x01
3560};
3561static const uint8_t ac_rsassa_vect18_priv_exp[] = {
3562 0xaf, 0xb1, 0xa9, 0xc1, 0x67, 0x7f, 0xa7, 0xd6, 0xe7, 0x03, 0x6b, 0xa4,
3563 0x3f, 0x34, 0x72, 0x17, 0x3e, 0xf2, 0x8e, 0xd6, 0xcf, 0xa2, 0x71, 0xc5,
3564 0xc9, 0xde, 0xed, 0xf4, 0xee, 0x54, 0x0d, 0xa2, 0x88, 0x0b, 0x90, 0x55,
3565 0x54, 0xc7, 0x0d, 0x67, 0x43, 0xde, 0x81, 0x96, 0x72, 0xff, 0x52, 0xcc,
3566 0x5a, 0x57, 0x64, 0x81, 0x19, 0x78, 0x1a, 0x86, 0x0c, 0x51, 0xf9, 0x69,
3567 0x34, 0x3d, 0xca, 0xf2, 0x6c, 0x37, 0xe9, 0xf3, 0xbc, 0x6d, 0xec, 0x97,
3568 0x60, 0x36, 0xa2, 0x4e, 0x65, 0xc0, 0x7f, 0xfb, 0x13, 0x4d, 0xd6, 0xb1,
3569 0x98, 0x91, 0xa9, 0xab, 0x4c, 0x5e, 0xc6, 0xfc, 0x6f, 0x99, 0x8c, 0x41,
3570 0xd5, 0x5a, 0x71, 0xcd, 0xfc, 0x09, 0x72, 0x72, 0x68, 0xe4, 0x6f, 0xbd,
3571 0x7d, 0x78, 0xa4, 0x2f, 0x2f, 0xb3, 0xe2, 0x1d, 0xc3, 0xc3, 0x96, 0xb2,
3572 0xd1, 0x82, 0x86, 0xf8, 0xb8, 0x26, 0x91, 0x6d, 0xf0, 0xea, 0x6e, 0x6f,
3573 0x3f, 0xb1, 0x1b, 0x60, 0x9a, 0x55, 0x80, 0x9d, 0x9f, 0xca, 0xe8, 0xeb,
3574 0x5a, 0x83, 0xa1, 0xc7, 0x91, 0x4f, 0x37, 0xac, 0x9c, 0x34, 0xb5, 0xca,
3575 0x87, 0x5f, 0x06, 0x7c, 0x04, 0xaa, 0xd6, 0xa3, 0xd3, 0x96, 0xd6, 0xde,
3576 0x7d, 0xe3, 0xdd, 0x56, 0x97, 0x32, 0xc7, 0x46, 0x49, 0xaa, 0x66, 0x49,
3577 0xf3, 0x1f, 0x0a, 0xbb, 0x6b, 0xc7, 0x40, 0xf9, 0x1c, 0xca, 0x6d, 0xbb,
3578 0xa2, 0x9a, 0xf4, 0xae, 0x38, 0xf6, 0x53, 0x12, 0xb9, 0xea, 0xef, 0x97,
3579 0xbd, 0xfa, 0x1d, 0xb3, 0x85, 0x25, 0x0e, 0x24, 0x8c, 0xd2, 0x2d, 0x6e,
3580 0x2d, 0xeb, 0xd0, 0x4c, 0x1f, 0x82, 0x99, 0x96, 0x7f, 0x7f, 0x55, 0x13,
3581 0x20, 0x24, 0xd0, 0xa3, 0x62, 0x47, 0x84, 0x24, 0x3e, 0x61, 0xc1, 0x97,
3582 0xa8, 0x56, 0x1a, 0x60, 0x88, 0x13, 0x36, 0x82, 0xc8, 0xfe, 0x8e, 0x96,
3583 0x83, 0x47, 0x40, 0xc4, 0x89, 0x5d, 0x8d, 0xb4, 0xa8, 0x4e, 0x44, 0x7e,
3584 0xc1, 0x72, 0x79, 0xd5, 0xc8, 0x10, 0x72, 0x76, 0x38, 0x84, 0x43, 0x92,
3585 0x17, 0x6b, 0x9e, 0xbd, 0xa8, 0x35, 0xbf, 0xe8, 0xb3, 0xd5, 0x97, 0xbf,
3586 0xb7, 0x6a, 0x3c, 0xca, 0xb9, 0x9c, 0x3f, 0x92, 0x94, 0xb3, 0x5d, 0x82,
3587 0xca, 0xa7, 0x19, 0xa4, 0x96, 0xa7, 0xbe, 0xfa, 0xc5, 0xd0, 0xb0, 0xf3,
3588 0x93, 0x8d, 0x2f, 0x39, 0x4a, 0x08, 0x5d, 0xfc, 0x5d, 0xfe, 0x99, 0x2a,
3589 0x4e, 0x3a, 0x90, 0x10, 0xc6, 0xf8, 0x4c, 0xe3, 0xae, 0xcb, 0xd5, 0x7f,
3590 0x18, 0xab, 0xe6, 0x3b, 0x48, 0xf5, 0xdf, 0x25, 0x51, 0xe4, 0xad, 0x3e,
3591 0x77, 0x60, 0x5d, 0x68, 0xa5, 0x91, 0xcb, 0x09, 0x6b, 0x2d, 0x98, 0x51,
3592 0x73, 0x6b, 0x5b, 0xa9, 0x45, 0xfa, 0xf5, 0xa1, 0xdc, 0x3b, 0x12, 0x05,
3593 0x70, 0x1d, 0x73, 0x63, 0x2d, 0xa3, 0x28, 0xac, 0x51, 0xe6, 0x0d, 0x61
3594};
3595static const uint8_t ac_rsassa_vect18_prime1[] = {
3596 0xea, 0x1e, 0xe9, 0x51, 0xc9, 0x72, 0xdf, 0x9e, 0x72, 0x8e, 0xea, 0xe8,
3597 0x09, 0x78, 0x52, 0x2e, 0xfe, 0x7f, 0x87, 0x6e, 0xc5, 0x04, 0x88, 0x6b,
3598 0x67, 0xf6, 0x2b, 0x0d, 0xd2, 0x0b, 0xfb, 0x4f, 0xa2, 0x1c, 0x8c, 0xf6,
3599 0x8a, 0xbe, 0x8b, 0x1b, 0x1c, 0xec, 0x7e, 0x75, 0xf8, 0xd9, 0xed, 0x55,
3600 0x04, 0x08, 0xcc, 0x2c, 0x8b, 0x67, 0xa8, 0xc2, 0xfb, 0x2e, 0x0d, 0xd9,
3601 0x14, 0x70, 0x13, 0xf7, 0x94, 0x15, 0x74, 0xdd, 0x23, 0x66, 0x45, 0x43,
3602 0x41, 0x30, 0xc8, 0xec, 0x06, 0x23, 0xfc, 0xd6, 0xaa, 0x9d, 0x95, 0xa6,
3603 0x2b, 0xee, 0x53, 0xf5, 0xd5, 0x6c, 0x01, 0x23, 0x42, 0xa9, 0x36, 0x93,
3604 0xe1, 0x03, 0x96, 0x01, 0xce, 0x55, 0x14, 0xc0, 0xc0, 0x46, 0x9b, 0x93,
3605 0xca, 0x8d, 0x45, 0xf7, 0x6a, 0x2c, 0x4e, 0x5b, 0x25, 0x63, 0x7b, 0xef,
3606 0xdd, 0x38, 0x75, 0x51, 0xc6, 0x12, 0x5a, 0xbd, 0x4a, 0x4a, 0xee, 0xbf,
3607 0x0d, 0xc4, 0x42, 0x45, 0xcc, 0xf0, 0xb6, 0x05, 0x59, 0x21, 0x84, 0xb1,
3608 0x1f, 0x2a, 0x5c, 0x25, 0x22, 0xb8, 0xea, 0xc5, 0x60, 0x23, 0x68, 0x0d,
3609 0xa3, 0xf2, 0xe8, 0x1c, 0xfe, 0x6f, 0xfd, 0x95, 0x8a, 0x33, 0xef, 0x4f,
3610 0x2e, 0x24, 0x90, 0xa7, 0x60, 0xd6, 0x5c, 0x72, 0x5a, 0xc5, 0xd7, 0x5b,
3611 0xcf, 0x50, 0x76, 0x32, 0xe5, 0xc3, 0x3d, 0xa7, 0xda, 0x65, 0x86, 0x97
3612};
3613static const uint8_t ac_rsassa_vect18_prime2[] = {
3614 0xdd, 0x5e, 0x29, 0xbb, 0x78, 0x73, 0x74, 0x49, 0xec, 0xd1, 0x71, 0x91,
3615 0xa6, 0x74, 0x11, 0xae, 0x4b, 0x64, 0x6a, 0x5b, 0x60, 0x89, 0x70, 0x0c,
3616 0x1a, 0x3e, 0x3d, 0x42, 0x02, 0xd9, 0x16, 0x18, 0xb5, 0x33, 0xf8, 0xda,
3617 0x7f, 0x76, 0x6d, 0xc3, 0xf2, 0xc1, 0xf6, 0x90, 0x97, 0x2a, 0xbe, 0xeb,
3618 0x15, 0x8a, 0x05, 0xc2, 0xa4, 0xb8, 0xb0, 0x80, 0xe4, 0xc4, 0xc8, 0xc4,
3619 0xb5, 0xcc, 0x1e, 0xf0, 0x02, 0x6e, 0x02, 0xef, 0x5e, 0x35, 0xdb, 0x2e,
3620 0x41, 0x2d, 0xbc, 0x23, 0x44, 0x41, 0xbc, 0x29, 0xbd, 0xa7, 0x70, 0x0c,
3621 0x06, 0x53, 0x12, 0x78, 0x9b, 0x7f, 0x51, 0xfe, 0xb5, 0x82, 0x9c, 0xc9,
3622 0xf6, 0x40, 0x8d, 0xf9, 0x25, 0xd2, 0xae, 0x3f, 0x54, 0x22, 0x62, 0x80,
3623 0x03, 0x1f, 0xa3, 0x14, 0xc3, 0x13, 0x9c, 0x3a, 0xee, 0x3b, 0x34, 0xa3,
3624 0x7e, 0xe2, 0x71, 0xe8, 0x9d, 0x7c, 0xbc, 0x0e, 0x01, 0x34, 0xd5, 0x6d,
3625 0x89, 0x62, 0xd0, 0xaf, 0xe6, 0x03, 0x76, 0x94, 0xe2, 0xdc, 0xea, 0x1a,
3626 0xc7, 0x55, 0x68, 0x81, 0x9d, 0xdc, 0xf7, 0xc9, 0x81, 0xc8, 0x0f, 0x7a,
3627 0x03, 0xc2, 0x83, 0x98, 0xde, 0xc4, 0x4a, 0x1c, 0x7a, 0xc6, 0x13, 0x01,
3628 0x01, 0x04, 0x9a, 0x39, 0x14, 0xa5, 0x8d, 0x6a, 0x47, 0xef, 0xa5, 0xc4,
3629 0x35, 0xee, 0x72, 0x8e, 0x83, 0xe1, 0x74, 0x4e, 0xe2, 0x7b, 0x19, 0x0d
3630};
3631static const uint8_t ac_rsassa_vect18_exp1[] = {
3632 0x9d, 0xde, 0x7a, 0x36, 0x4c, 0x40, 0xc9, 0xc9, 0x6e, 0x36, 0x30, 0xf0,
3633 0x86, 0x72, 0x3b, 0xf8, 0xb4, 0x64, 0x0a, 0x4f, 0x07, 0x4b, 0x27, 0x32,
3634 0x45, 0xc8, 0x19, 0x00, 0x18, 0xc3, 0x3b, 0x93, 0x57, 0x1d, 0x29, 0x70,
3635 0x95, 0xde, 0x26, 0xaf, 0x01, 0xb1, 0xf7, 0x14, 0x55, 0xd9, 0x9d, 0xcf,
3636 0xd6, 0x08, 0x98, 0xa4, 0xf0, 0xdb, 0xd5, 0x50, 0xa5, 0x4f, 0x48, 0xc7,
3637 0x38, 0xa0, 0xda, 0xd5, 0xf7, 0x65, 0x00, 0x88, 0x9d, 0x76, 0x38, 0xfe,
3638 0x40, 0xd7, 0x44, 0xa4, 0xe2, 0xff, 0x21, 0x5f, 0x1f, 0x6d, 0x63, 0x9b,
3639 0xc9, 0xc3, 0xcb, 0x99, 0xd9, 0x70, 0x1a, 0xd4, 0x4b, 0xff, 0x0e, 0x6e,
3640 0x69, 0x2c, 0xa1, 0xda, 0x55, 0xe7, 0xc9, 0x36, 0xb0, 0x70, 0xec, 0x37,
3641 0x9c, 0x3d, 0xe7, 0x10, 0x0e, 0xe8, 0x11, 0x6e, 0x24, 0xa8, 0x10, 0xca,
3642 0x8d, 0xc1, 0xa4, 0x5a, 0x9f, 0xd5, 0x80, 0x9a, 0x63, 0x9e, 0x63, 0x9f,
3643 0x31, 0x09, 0x46, 0x27, 0x0b, 0x2a, 0xc5, 0x92, 0x95, 0xa7, 0xa4, 0x72,
3644 0x4b, 0x31, 0xa5, 0x30, 0xe5, 0x59, 0x0b, 0xf6, 0x4b, 0xfd, 0x94, 0x0c,
3645 0x9e, 0xa1, 0x0d, 0x23, 0x7f, 0xee, 0xc4, 0x70, 0x31, 0xe1, 0x13, 0x5d,
3646 0xb1, 0x1f, 0xb6, 0xeb, 0x26, 0xc1, 0x65, 0x55, 0x37, 0x20, 0x71, 0x37,
3647 0xd7, 0x73, 0xca, 0x40, 0x47, 0xee, 0x7f, 0x84, 0xd0, 0x1f, 0xe5, 0xc1
3648};
3649static const uint8_t ac_rsassa_vect18_exp2[] = {
3650 0x6d, 0xdb, 0xa9, 0x42, 0x4c, 0x48, 0x9f, 0xd1, 0x80, 0x21, 0x81, 0x07,
3651 0x13, 0x60, 0x4e, 0xd5, 0xfc, 0xbc, 0x5c, 0xbb, 0xf4, 0x70, 0xc0, 0x96,
3652 0x80, 0xff, 0x9a, 0x4f, 0x04, 0x32, 0xcf, 0xf0, 0x7b, 0x1c, 0xcb, 0xc7,
3653 0x43, 0xb2, 0x76, 0x4e, 0xe4, 0x4e, 0xb6, 0x1a, 0x93, 0xaa, 0xb7, 0x0c,
3654 0xdb, 0xa7, 0x9f, 0xac, 0x35, 0x2b, 0x23, 0x0d, 0x14, 0x7b, 0x44, 0x57,
3655 0xbb, 0x11, 0x0d, 0xd9, 0x76, 0x9b, 0x3a, 0x01, 0xa8, 0xf3, 0x79, 0x4e,
3656 0xbf, 0x31, 0xff, 0x48, 0x51, 0x3b, 0x7e, 0x32, 0x08, 0xd8, 0xeb, 0x96,
3657 0x4c, 0x1d, 0x35, 0xf1, 0x7c, 0xd9, 0xf6, 0xcb, 0x3d, 0x31, 0x10, 0xb6,
3658 0x79, 0xeb, 0x17, 0x8a, 0x29, 0xe7, 0x20, 0x6a, 0x75, 0x4a, 0x8b, 0x2f,
3659 0x94, 0x5d, 0x43, 0x05, 0xae, 0xba, 0x30, 0xb2, 0x5e, 0x40, 0x2b, 0xa3,
3660 0x67, 0xf8, 0xe1, 0x26, 0xdb, 0xe1, 0x67, 0x42, 0x5b, 0xfe, 0xe8, 0x5c,
3661 0x6f, 0xee, 0x06, 0x3b, 0x05, 0x1f, 0x7a, 0xdd, 0xf0, 0xa8, 0x49, 0xd5,
3662 0xf8, 0x4e, 0xbe, 0x8a, 0x74, 0xd9, 0x90, 0x6f, 0x04, 0x65, 0x50, 0xa8,
3663 0xf0, 0xec, 0xbb, 0x7a, 0x46, 0x33, 0x8b, 0xc4, 0x0e, 0x79, 0xf6, 0x3c,
3664 0x6d, 0x50, 0xe7, 0x68, 0xa4, 0x82, 0x74, 0x67, 0xe6, 0x43, 0x5c, 0x34,
3665 0xbf, 0xbf, 0x12, 0x42, 0xff, 0xd8, 0x07, 0x6c, 0x8e, 0xa1, 0x20, 0x91
3666};
3667static const uint8_t ac_rsassa_vect18_coeff[] = {
3668 0x83, 0x1f, 0x72, 0x3b, 0x3f, 0x9e, 0x46, 0x88, 0x83, 0xb3, 0xa0, 0xe2,
3669 0xa8, 0xf0, 0x56, 0x97, 0x3e, 0x4a, 0xed, 0x56, 0x46, 0xdf, 0xf8, 0x21,
3670 0xf5, 0xb8, 0xf9, 0xd8, 0x43, 0x3c, 0xf4, 0x39, 0x51, 0xd2, 0xf3, 0xa0,
3671 0x6f, 0x57, 0x18, 0xc0, 0xe1, 0x8a, 0x6a, 0xc0, 0x49, 0x34, 0xf6, 0x4d,
3672 0x60, 0xf6, 0xd0, 0x0f, 0x64, 0x58, 0xed, 0x17, 0x7d, 0x68, 0x47, 0x05,
3673 0x6f, 0x64, 0x2e, 0xa9, 0x53, 0xa8, 0x17, 0x65, 0x13, 0xdc, 0x27, 0x51,
3674 0xe3, 0x35, 0x01, 0xb8, 0x0c, 0x68, 0xfd, 0xaf, 0xa3, 0xf7, 0xb1, 0x9a,
3675 0xdc, 0x7b, 0x1b, 0xf7, 0xcc, 0x90, 0x8e, 0x93, 0xbc, 0x08, 0x15, 0xa7,
3676 0xc0, 0x92, 0xa0, 0xa3, 0xc9, 0x17, 0x9d, 0x8d, 0x3d, 0x10, 0x4f, 0xe6,
3677 0xa3, 0x4b, 0x91, 0x21, 0x42, 0x7c, 0xdf, 0x9c, 0x71, 0xed, 0xe1, 0x30,
3678 0x76, 0xf5, 0x1c, 0x71, 0xa0, 0x47, 0xc8, 0xa6, 0x2a, 0x94, 0x01, 0x49,
3679 0xae, 0x2e, 0x90, 0x47, 0x21, 0x17, 0xae, 0x10, 0x91, 0x53, 0x91, 0x88,
3680 0x88, 0xb4, 0x12, 0x50, 0x47, 0x7d, 0xf6, 0xfb, 0xde, 0x12, 0x6b, 0xc2,
3681 0x50, 0x4f, 0x59, 0x61, 0x81, 0x42, 0xe7, 0x19, 0x72, 0x73, 0xef, 0x9d,
3682 0x7c, 0xa0, 0xf4, 0x30, 0x91, 0xa8, 0x6a, 0x46, 0x9c, 0x5c, 0x0f, 0x9a,
3683 0xeb, 0x1f, 0x00, 0x1e, 0x0c, 0x49, 0x1f, 0xb8, 0x5f, 0x37, 0xd7, 0x4f
3684};
3685static const uint8_t ac_rsassa_vect18_ptx[] = {
3686 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c,
3687 0x0d, 0x0e, 0x0f, 0x10 };
3688static const uint8_t ac_rsassa_vect18_out[] = {
3689 0x06, 0xe3, 0x94, 0xdc, 0x4b, 0xbc, 0xa5, 0x80, 0x7e, 0x65, 0x65, 0xe2,
3690 0x6c, 0x91, 0x8b, 0x57, 0x52, 0x29, 0xa0, 0x05, 0x20, 0xef, 0x49, 0xb1,
3691 0xf9, 0xdb, 0x9e, 0xd8, 0x2e, 0x65, 0x9d, 0x61, 0xa8, 0xda, 0x9a, 0x95,
3692 0xab, 0xa6, 0x8e, 0x7b, 0xfd, 0x89, 0x5f, 0x5b, 0xfc, 0x10, 0x12, 0x98,
3693 0x4a, 0x2b, 0x48, 0x38, 0x2d, 0x66, 0x4c, 0x5b, 0x2c, 0xe2, 0x4d, 0xaa,
3694 0xa3, 0x19, 0x64, 0xf1, 0xf1, 0x4b, 0xd5, 0x06, 0x14, 0x83, 0xf2, 0x71,
3695 0x5a, 0xef, 0x81, 0xa2, 0xaa, 0x5a, 0xfa, 0x48, 0x38, 0x4a, 0x46, 0x52,
3696 0xb2, 0xbd, 0x10, 0x1b, 0x11, 0xa1, 0x46, 0x2d, 0x51, 0x59, 0xc0, 0x49,
3697 0x32, 0x43, 0x83, 0x28, 0xe0, 0x59, 0x0b, 0x6a, 0xef, 0x5d, 0xee, 0x37,
3698 0xca, 0xd8, 0x8f, 0xd5, 0xcf, 0x57, 0x4b, 0xac, 0x80, 0x3d, 0x05, 0xa0,
3699 0x15, 0x0c, 0x27, 0xee, 0xa2, 0x91, 0xfb, 0x1d, 0x4f, 0xbd, 0x45, 0x39,
3700 0x34, 0x37, 0x05, 0x82, 0x8f, 0x19, 0x4e, 0x20, 0xb8, 0x3b, 0x7e, 0x60,
3701 0x0a, 0x2f, 0x48, 0xaa, 0xf9, 0xa3, 0x5e, 0xd5, 0xd8, 0xdb, 0xc1, 0x61,
3702 0xa3, 0x95, 0x72, 0x19, 0xba, 0x97, 0xd6, 0x5f, 0x5d, 0xb3, 0x50, 0x51,
3703 0xb8, 0x5a, 0x1a, 0x8a, 0x0f, 0xd2, 0x25, 0xdc, 0x12, 0xd1, 0x96, 0xac,
3704 0x8c, 0x70, 0x47, 0x46, 0x35, 0xdf, 0xb1, 0x15, 0xf6, 0x65, 0xc3, 0x6d,
3705 0xd5, 0xd7, 0x4c, 0xb2, 0xa3, 0xc7, 0x03, 0xd6, 0xc1, 0x8d, 0x33, 0x56,
3706 0x49, 0xf4, 0xf4, 0x4e, 0x44, 0x83, 0xee, 0x7a, 0xb9, 0xdc, 0x5f, 0x7c,
3707 0x85, 0x10, 0x0e, 0x30, 0x46, 0x73, 0x7e, 0x44, 0x42, 0x17, 0x8f, 0x20,
3708 0x12, 0x13, 0x39, 0x5d, 0x55, 0x6b, 0xb2, 0x3c, 0xde, 0xae, 0xb9, 0xa0,
3709 0xb3, 0x0a, 0x81, 0x08, 0x72, 0xf8, 0xb3, 0xc4, 0xb9, 0x79, 0x09, 0x5d,
3710 0x81, 0x56, 0x49, 0xab, 0x07, 0xbd, 0xce, 0xd7, 0x39, 0x94, 0xfb, 0xfc,
3711 0x73, 0x2d, 0xd6, 0x9f, 0x7f, 0x26, 0x39, 0x05, 0xe5, 0xc9, 0x0b, 0x67,
3712 0x71, 0x09, 0xac, 0xfd, 0x75, 0x26, 0x92, 0xd6, 0x02, 0xf1, 0xa8, 0x25,
3713 0xee, 0x7c, 0xb6, 0x46, 0x28, 0xb6, 0x92, 0xf0, 0x99, 0xdc, 0x6e, 0xf1,
3714 0xa4, 0x9d, 0xc1, 0x45, 0x9d, 0x19, 0xd5, 0x78, 0x93, 0xc0, 0x2c, 0x3c,
3715 0x8b, 0x3c, 0x96, 0xf9, 0x84, 0x26, 0xc9, 0xf0, 0xe0, 0xde, 0xce, 0x23,
3716 0x7e, 0xe4, 0x06, 0xef, 0x5a, 0xea, 0x24, 0x65, 0x97, 0x4c, 0xd8, 0x48,
3717 0x44, 0xb1, 0x59, 0x8a, 0x15, 0x95, 0x62, 0xc9, 0xee, 0x86, 0x63, 0x32,
3718 0xba, 0xe2, 0xfc, 0x05, 0x5e, 0x17, 0x5c, 0x69, 0x8f, 0x04, 0x02, 0x91,
3719 0xec, 0x46, 0xf8, 0x0a, 0xd1, 0xb0, 0x95, 0x40, 0x3d, 0x92, 0x6e, 0xdf,
3720 0xf6, 0xe7, 0x3e, 0xc6, 0x40, 0x05, 0xdf, 0x82, 0xe6, 0xe0, 0x9f, 0x1b
3721};
3722
3723/*
Jerome Forissier0451e372018-03-27 00:10:23 +08003724 * 4096-bit RSA
3725 * Test data generated with:
3726 * openssl genrsa -out 4096.pem 4096
3727 * openssl rsa -in 4096.pem -text -noout
3728 * (dd if=/dev/zero bs=1 count=368; \
3729 * printf '\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf\x10';) | \
3730 * openssl rsautl -encrypt -raw -inkey 4096.pem | od -t x1
3731 */
3732static const uint8_t ac_rsassa_vect19_modulus[] = {
3733 0xf6, 0x48, 0x38, 0x0c, 0x61, 0xc5, 0xf2, 0x8f, 0x1d, 0x36, 0x78, 0x3b,
3734 0xfd, 0x03, 0x74, 0x2f, 0xe7, 0xb0, 0xab, 0xbd, 0x25, 0x88, 0x46, 0xd8,
3735 0x4f, 0x6b, 0xc8, 0xcb, 0xb8, 0x5d, 0x88, 0x16, 0x8c, 0x68, 0xf2, 0xda,
3736 0x34, 0x25, 0xc9, 0x8a, 0xcf, 0xf8, 0x34, 0xbd, 0xa3, 0xc9, 0x42, 0x9a,
3737 0xb7, 0x4d, 0xab, 0xc3, 0x87, 0xad, 0xa6, 0xa7, 0x02, 0x69, 0xdf, 0x58,
3738 0x84, 0xeb, 0x6e, 0xf7, 0x77, 0xd7, 0x4d, 0xf2, 0x01, 0x4e, 0x7b, 0x79,
3739 0x72, 0xb0, 0x23, 0xb3, 0xb2, 0x22, 0x15, 0x14, 0x05, 0xce, 0xea, 0x98,
3740 0x88, 0x9e, 0xe4, 0x03, 0x9d, 0x5b, 0x07, 0x56, 0xac, 0x77, 0x56, 0x3a,
3741 0xd7, 0x0c, 0x7f, 0x74, 0x2d, 0xd1, 0x48, 0xdd, 0x1c, 0x99, 0xe3, 0x53,
3742 0x3a, 0xa3, 0x9e, 0x4b, 0xb2, 0xd7, 0xe9, 0xfd, 0x04, 0x2c, 0xa2, 0x05,
3743 0x60, 0xae, 0x2d, 0xd0, 0x59, 0x2a, 0x90, 0xf6, 0xe4, 0x99, 0x4d, 0x7a,
3744 0xf8, 0xe5, 0x80, 0xeb, 0x77, 0xa5, 0xae, 0xe2, 0x40, 0xb7, 0x0e, 0x6c,
3745 0x02, 0xbe, 0x33, 0x04, 0xb0, 0xab, 0x01, 0xfe, 0x0c, 0xc1, 0xd1, 0x86,
3746 0x58, 0x6a, 0xc1, 0xb2, 0x3b, 0xfb, 0x03, 0x16, 0x72, 0xf3, 0xbb, 0xd6,
3747 0x43, 0xd3, 0xbf, 0xf0, 0x5b, 0xce, 0xa8, 0x39, 0x53, 0xee, 0x49, 0xc9,
3748 0x2c, 0x04, 0xb3, 0x4a, 0x4c, 0xd7, 0xd1, 0x9b, 0xf6, 0x51, 0x28, 0xd3,
3749 0x24, 0x03, 0xff, 0xa1, 0xcb, 0xb7, 0x7a, 0x73, 0xee, 0xfa, 0x2c, 0x1e,
3750 0x43, 0xc2, 0xb6, 0x3a, 0x4c, 0x68, 0x23, 0x1e, 0x88, 0x85, 0xf2, 0xcb,
3751 0x1d, 0xc9, 0x79, 0x3b, 0x4a, 0x72, 0xe7, 0xdb, 0xfa, 0x62, 0x8d, 0xf5,
3752 0x93, 0xfd, 0x32, 0x40, 0x09, 0x17, 0xa9, 0xda, 0x72, 0x02, 0xf4, 0xcb,
3753 0x8e, 0xb1, 0xe8, 0x64, 0x57, 0xf1, 0x94, 0xba, 0xe6, 0x24, 0x84, 0xf0,
3754 0xca, 0x0d, 0x6a, 0xeb, 0x1e, 0xde, 0x6e, 0xc6, 0x05, 0x55, 0x09, 0x99,
3755 0x18, 0x41, 0xe2, 0x55, 0x1a, 0x1f, 0xcc, 0xee, 0xae, 0x5f, 0x49, 0xb9,
3756 0x2b, 0x6a, 0xf8, 0xdd, 0x0e, 0x10, 0x9c, 0xef, 0x6e, 0xaa, 0xe9, 0x59,
3757 0x81, 0x1b, 0x4e, 0x8a, 0xac, 0x48, 0x6f, 0x7b, 0xc4, 0x62, 0x5f, 0x8c,
3758 0x59, 0x83, 0x96, 0xdb, 0x62, 0x88, 0x8f, 0x22, 0x57, 0x91, 0x0b, 0x9f,
3759 0xcd, 0xca, 0x6a, 0x3c, 0x71, 0x0b, 0x36, 0x8d, 0xf9, 0xbf, 0x3b, 0x37,
3760 0x05, 0xeb, 0xc3, 0x45, 0xc5, 0xeb, 0xe0, 0xdb, 0x12, 0x24, 0xe8, 0xad,
3761 0x83, 0xe8, 0x18, 0xd7, 0x67, 0x47, 0x0e, 0x53, 0x37, 0xf4, 0x16, 0xc5,
3762 0x5e, 0x82, 0x68, 0xfa, 0x8b, 0xe0, 0xde, 0xd1, 0x93, 0xea, 0x94, 0x70,
3763 0x4e, 0xfd, 0x5c, 0xd6, 0x4d, 0x99, 0x7b, 0xfc, 0x99, 0x2c, 0x65, 0x2b,
3764 0xe2, 0x29, 0xf1, 0x8f, 0x5c, 0x77, 0x30, 0x46, 0x11, 0x3f, 0x33, 0x2b,
3765 0xb1, 0x00, 0x50, 0x14, 0x97, 0x26, 0x39, 0xfd, 0xd5, 0xc2, 0x83, 0x0a,
3766 0x07, 0xe3, 0x4e, 0xa7, 0x82, 0x21, 0x4e, 0xb3, 0xef, 0xae, 0x0d, 0x7b,
3767 0xee, 0xe8, 0x1d, 0xf7, 0x31, 0xcb, 0x1e, 0x05, 0x4f, 0x8e, 0xf0, 0x67,
3768 0x36, 0x71, 0x23, 0x72, 0x11, 0x37, 0x0f, 0x4f, 0xf8, 0xc2, 0x04, 0xff,
3769 0x76, 0xb2, 0x77, 0xa2, 0xee, 0x79, 0xf1, 0x5f, 0x34, 0x6f, 0xf8, 0xda,
3770 0x93, 0xeb, 0x6f, 0x38, 0x7e, 0x14, 0xf0, 0xca, 0x14, 0x40, 0x5e, 0xb8,
3771 0x56, 0x7e, 0x61, 0x3e, 0xc0, 0x20, 0x3f, 0x2a, 0xac, 0x43, 0x69, 0xf2,
3772 0x10, 0xce, 0x33, 0x22, 0xe4, 0xdc, 0x9a, 0xac, 0x53, 0x95, 0x38, 0x16,
3773 0x81, 0xbc, 0xf0, 0x45, 0x64, 0x52, 0xbb, 0x20, 0x77, 0x3b, 0xa0, 0x92,
3774 0x40, 0xfd, 0x4b, 0x46, 0xe0, 0x5c, 0xaf, 0x3d, 0x87, 0xad, 0xf8, 0x90,
3775 0x2f, 0xdc, 0x27, 0x4f, 0x2d, 0xe6, 0xcd, 0x25
3776};
3777static const uint8_t ac_rsassa_vect19_pub_exp[] = {
3778 0x01, 0x00, 0x01
3779};
3780static const uint8_t ac_rsassa_vect19_priv_exp[] = {
3781 0xae, 0x48, 0xc9, 0x31, 0x29, 0xf7, 0xd5, 0x01, 0x26, 0x21, 0x27, 0xd0,
3782 0xfb, 0xe9, 0xf7, 0xcc, 0xf6, 0xde, 0xf5, 0x89, 0xf3, 0x07, 0x8f, 0x6b,
3783 0x00, 0x39, 0x3c, 0x6d, 0xbe, 0x58, 0xa2, 0x37, 0xa2, 0xc1, 0x9a, 0x2a,
3784 0x84, 0x80, 0xc1, 0x31, 0x74, 0x9f, 0x27, 0x63, 0x94, 0x86, 0x96, 0x95,
3785 0xba, 0x66, 0x42, 0xc9, 0x2a, 0x38, 0xdf, 0x18, 0x8d, 0x02, 0xb3, 0x45,
3786 0x87, 0x3a, 0xbc, 0xda, 0x6f, 0x7a, 0x73, 0xf4, 0x70, 0xac, 0x43, 0x80,
3787 0xdc, 0x82, 0x7d, 0xa1, 0x6a, 0xcb, 0xe7, 0xb2, 0xb5, 0xb1, 0x8a, 0x1e,
3788 0xcb, 0x7f, 0xf5, 0xc8, 0x01, 0x11, 0x2c, 0x0e, 0x50, 0x1a, 0x5b, 0x71,
3789 0x64, 0x41, 0xb9, 0xe8, 0x53, 0x8c, 0x29, 0x4e, 0x20, 0x31, 0x5e, 0xc7,
3790 0xc5, 0x55, 0x88, 0x6d, 0xf5, 0x70, 0x0a, 0x6c, 0x3d, 0x0a, 0x00, 0xd6,
3791 0x61, 0x66, 0xa1, 0x91, 0x31, 0xa8, 0x87, 0xd1, 0xd0, 0x50, 0x14, 0x9e,
3792 0x93, 0x88, 0x86, 0x45, 0x1b, 0xf4, 0xa9, 0xdf, 0xff, 0x00, 0x0c, 0x3a,
3793 0xaf, 0x6e, 0x3d, 0xd8, 0x71, 0xd5, 0x72, 0xa1, 0x80, 0x11, 0xa0, 0xde,
3794 0xbb, 0xaf, 0x40, 0xc7, 0x8a, 0xde, 0xc5, 0x7e, 0x9b, 0x76, 0x94, 0x54,
3795 0xba, 0xc7, 0x1c, 0xab, 0x51, 0xac, 0xdb, 0x2b, 0x46, 0x93, 0xf8, 0xaf,
3796 0x5e, 0x71, 0x2d, 0x17, 0xc5, 0x6d, 0x6d, 0x2e, 0x3b, 0x8f, 0x8f, 0x9e,
3797 0x6b, 0x7c, 0x50, 0xe9, 0x04, 0xab, 0x21, 0x02, 0xed, 0xf9, 0x28, 0x43,
3798 0x7a, 0x9c, 0x4e, 0x2c, 0xcf, 0x69, 0x5a, 0x80, 0xff, 0x08, 0x1b, 0x9b,
3799 0x55, 0xc6, 0xff, 0xfd, 0xcf, 0x5f, 0xa5, 0x68, 0xec, 0xb5, 0xd5, 0xd4,
3800 0x16, 0x18, 0x35, 0xf9, 0x4e, 0xf5, 0xea, 0x03, 0x66, 0x6f, 0x65, 0x20,
3801 0xb0, 0x28, 0x82, 0x56, 0x90, 0x4d, 0xab, 0x7c, 0xdf, 0xe4, 0xb4, 0x17,
3802 0x5a, 0x45, 0x48, 0x85, 0x1b, 0x7e, 0x08, 0x71, 0xef, 0x4c, 0xd0, 0xdd,
3803 0x2a, 0x19, 0x3a, 0xed, 0x1f, 0x96, 0xa1, 0xf9, 0xca, 0xe0, 0x52, 0x27,
3804 0xd8, 0xf7, 0x9b, 0x0d, 0x4c, 0x82, 0x08, 0x46, 0xb6, 0xef, 0x53, 0x1b,
3805 0x72, 0x63, 0xb6, 0xe7, 0x3f, 0xa4, 0x5b, 0xed, 0x89, 0xeb, 0xc8, 0x10,
3806 0x78, 0x61, 0x68, 0x98, 0x8f, 0x87, 0x2f, 0xb9, 0x41, 0x31, 0x47, 0x20,
3807 0xf2, 0xde, 0x52, 0x2a, 0x17, 0x3f, 0x84, 0xad, 0x39, 0xec, 0x42, 0x1c,
3808 0x37, 0xbc, 0xb2, 0x7c, 0x43, 0xdb, 0x2e, 0x65, 0x43, 0x17, 0x9e, 0x8f,
3809 0xa0, 0x5b, 0x96, 0xc3, 0xd4, 0x2d, 0xc0, 0x52, 0x3b, 0xe4, 0x0b, 0xe5,
3810 0xaa, 0xcc, 0x1f, 0x57, 0xf0, 0xd6, 0xdd, 0x9a, 0xd1, 0x77, 0xea, 0x0c,
3811 0x7a, 0x8b, 0x69, 0xdb, 0xe9, 0x36, 0x63, 0x1d, 0x46, 0x23, 0x51, 0x9f,
3812 0x45, 0xce, 0xa4, 0x68, 0xb4, 0x6e, 0x65, 0x32, 0xef, 0xdf, 0xe8, 0xce,
3813 0xb6, 0x91, 0x91, 0xbc, 0x3a, 0xc0, 0xd3, 0xb2, 0x7f, 0xf4, 0x14, 0xbf,
3814 0xb8, 0xc9, 0x3d, 0x60, 0x99, 0x5f, 0x14, 0x45, 0x22, 0x07, 0x77, 0x08,
3815 0x32, 0xdd, 0xc8, 0x46, 0x3a, 0x3d, 0x2d, 0xa1, 0x4d, 0xc2, 0xa0, 0x3f,
3816 0xa1, 0xe8, 0x9d, 0x28, 0x57, 0x4c, 0x65, 0x03, 0x54, 0x6f, 0xbb, 0x1c,
3817 0x86, 0x47, 0x29, 0x44, 0x5c, 0xd4, 0x17, 0xed, 0x84, 0x60, 0xbf, 0xb6,
3818 0xb6, 0x0d, 0x0e, 0x47, 0xe2, 0x73, 0x95, 0xf4, 0x4d, 0x6a, 0x6a, 0x04,
3819 0x1b, 0xd4, 0x98, 0xb4, 0xcf, 0x8f, 0xe4, 0x0d, 0x14, 0x66, 0xa0, 0xf5,
3820 0x8d, 0x65, 0xdc, 0xb9, 0xdd, 0x1a, 0x2c, 0x9e, 0x71, 0x78, 0x5a, 0x98,
3821 0x13, 0x0d, 0x91, 0x40, 0xd1, 0x6f, 0x1c, 0x7a, 0x06, 0xab, 0x0b, 0xc1,
3822 0xd1, 0x19, 0x00, 0xca, 0x7a, 0xde, 0x45, 0x5c, 0x50, 0x53, 0x83, 0x71,
3823 0x45, 0x0a, 0x4b, 0x0f, 0x2f, 0x67, 0x3b, 0x39
3824};
3825static const uint8_t ac_rsassa_vect19_prime1[] = {
3826 0xfc, 0x1e, 0xca, 0x69, 0x92, 0x80, 0xf8, 0x54, 0x87, 0x29, 0xd4, 0x68,
3827 0xcb, 0xd6, 0xba, 0x1d, 0x4a, 0x29, 0x4c, 0xa1, 0x49, 0xd7, 0x42, 0x68,
3828 0x09, 0xb0, 0x66, 0xa1, 0x1e, 0xf8, 0x8a, 0xf2, 0x8b, 0xdc, 0x57, 0x70,
3829 0xa2, 0x29, 0x7f, 0x18, 0xce, 0x18, 0x88, 0x8a, 0x02, 0x60, 0xcf, 0x05,
3830 0x15, 0xa0, 0x98, 0x23, 0x77, 0xf4, 0x1a, 0xba, 0xc5, 0x9e, 0x61, 0xea,
3831 0x42, 0xfd, 0x86, 0x88, 0xca, 0x93, 0xa1, 0xf3, 0xf4, 0x0c, 0x38, 0x62,
3832 0x3a, 0x6e, 0x30, 0x0d, 0x52, 0xce, 0xc8, 0xdd, 0xf2, 0xc4, 0x75, 0x8b,
3833 0x44, 0xf9, 0x14, 0xcd, 0x09, 0xd9, 0x37, 0x0d, 0x09, 0x75, 0x82, 0xd6,
3834 0x1d, 0x86, 0x23, 0x29, 0xc7, 0x6f, 0xea, 0x88, 0x5a, 0x88, 0xc5, 0x69,
3835 0x4e, 0x67, 0x8b, 0x90, 0xd5, 0xc6, 0xe8, 0xd8, 0xd6, 0x05, 0xc9, 0xfe,
3836 0x2c, 0x56, 0x8f, 0xcb, 0xb7, 0x7e, 0x59, 0xfa, 0x16, 0x60, 0x8a, 0xf6,
3837 0xdc, 0x63, 0xe5, 0xfc, 0x24, 0x87, 0xc6, 0x2d, 0x94, 0x3d, 0x29, 0x0d,
3838 0xe8, 0xc7, 0x75, 0xe6, 0x32, 0xa3, 0x74, 0x50, 0xae, 0xdd, 0x03, 0x14,
3839 0x70, 0xbc, 0x61, 0x04, 0x07, 0xf4, 0x62, 0xa8, 0x79, 0x2b, 0xf8, 0xc4,
3840 0x69, 0xdb, 0x9a, 0x78, 0x97, 0xa7, 0x71, 0x4c, 0xde, 0x78, 0x5b, 0xab,
3841 0x08, 0x85, 0x0e, 0x34, 0xad, 0x64, 0x24, 0x41, 0x75, 0x24, 0xe0, 0x9b,
3842 0xa8, 0x98, 0x14, 0xe6, 0xe3, 0xf9, 0x59, 0xcc, 0x06, 0x67, 0xf0, 0x5e,
3843 0x3c, 0x75, 0x03, 0xb3, 0xcf, 0x35, 0x57, 0x28, 0x02, 0x6b, 0x42, 0x0f,
3844 0x9b, 0x3d, 0x7d, 0xa0, 0x26, 0xc6, 0xe0, 0x06, 0x3b, 0x97, 0x07, 0x0d,
3845 0x9b, 0xa4, 0xc5, 0x16, 0x91, 0x9d, 0xa3, 0xec, 0x8b, 0x49, 0x47, 0x44,
3846 0xd2, 0xdd, 0xd4, 0xd3, 0xc9, 0x88, 0xe3, 0x88, 0x57, 0xce, 0x3f, 0xc2,
3847 0x08, 0x77, 0x8f, 0x13
3848};
3849static const uint8_t ac_rsassa_vect19_prime2[] = {
3850 0xfa, 0x12, 0x6d, 0xe1, 0x5b, 0x6b, 0x88, 0x0e, 0x28, 0x61, 0x4c, 0x18,
3851 0xc8, 0x2f, 0xf5, 0xe7, 0x0e, 0xc6, 0x1e, 0x14, 0x3b, 0x5a, 0xe1, 0x51,
3852 0xbf, 0x64, 0x6f, 0x9e, 0xb7, 0xca, 0x3f, 0x57, 0xdb, 0xc2, 0x87, 0x8a,
3853 0x41, 0x57, 0xfb, 0xcd, 0x5d, 0x1a, 0xe6, 0x2a, 0x50, 0x0f, 0x60, 0xe1,
3854 0x81, 0x4a, 0x7c, 0xc5, 0xbf, 0xba, 0x37, 0x6f, 0xec, 0x30, 0xba, 0xcf,
3855 0x13, 0x51, 0x43, 0x19, 0x29, 0xaf, 0xb8, 0xc9, 0xee, 0x8d, 0x56, 0xee,
3856 0x3d, 0x90, 0x8e, 0x5e, 0x4d, 0xe6, 0x01, 0xbe, 0x26, 0xf9, 0x7e, 0x3a,
3857 0xaf, 0xa0, 0x56, 0xda, 0x9f, 0x29, 0x42, 0x84, 0x1c, 0x4b, 0xde, 0x67,
3858 0x32, 0xc1, 0xf0, 0xde, 0x5f, 0x89, 0x01, 0xc7, 0xb1, 0x8e, 0x2b, 0x15,
3859 0xf1, 0x59, 0x80, 0xf1, 0x9a, 0x15, 0x20, 0xfd, 0x53, 0xc1, 0x9f, 0xb7,
3860 0x4a, 0xde, 0xe0, 0x58, 0xac, 0x6c, 0xd2, 0x44, 0xb7, 0x9a, 0x0f, 0x8e,
3861 0xdc, 0xa2, 0x57, 0xf6, 0x69, 0x61, 0x37, 0xe3, 0x8a, 0xb4, 0xa6, 0xf4,
3862 0x08, 0x41, 0xfb, 0x22, 0xd1, 0xe4, 0x62, 0x4d, 0xac, 0x2d, 0x71, 0x7b,
3863 0x32, 0xe1, 0x5d, 0xa4, 0x29, 0xbd, 0xde, 0xa4, 0x87, 0xb9, 0xe7, 0xe4,
3864 0xd1, 0x12, 0x81, 0x15, 0xfd, 0x13, 0xff, 0xf0, 0xce, 0x8b, 0x4c, 0x3f,
3865 0x66, 0xe8, 0xb4, 0xd5, 0xa7, 0x09, 0xb0, 0x31, 0x2e, 0xbd, 0x86, 0x56,
3866 0xb4, 0xa2, 0xee, 0xc4, 0x17, 0xda, 0x86, 0x26, 0xb1, 0x14, 0x27, 0x1a,
3867 0x12, 0xed, 0x6a, 0xe2, 0xb5, 0x3f, 0x53, 0x3a, 0x23, 0xf6, 0x19, 0xb6,
3868 0xcc, 0x3b, 0x72, 0xcc, 0xf8, 0xde, 0xec, 0xe0, 0x68, 0x62, 0x5c, 0xe0,
3869 0xff, 0x34, 0x80, 0xab, 0x4d, 0x65, 0x46, 0x06, 0x06, 0xce, 0xb5, 0xd6,
3870 0xb0, 0xca, 0x76, 0x82, 0xed, 0x13, 0x5d, 0x5b, 0xc9, 0x8c, 0xf0, 0x1e,
3871 0xfd, 0x47, 0xe1, 0xe7
3872};
3873static const uint8_t ac_rsassa_vect19_exp1[] = {
3874 0xa2, 0x90, 0xf0, 0x0f, 0x56, 0xca, 0x16, 0x55, 0xda, 0xb9, 0x9c, 0x1e,
3875 0xde, 0xa0, 0xdc, 0x6d, 0x1a, 0x6e, 0xba, 0xdc, 0x9d, 0x12, 0x51, 0xdd,
3876 0x67, 0xb1, 0xf8, 0xdb, 0x17, 0x6f, 0x47, 0x98, 0xd1, 0x9a, 0x08, 0x3f,
3877 0xb6, 0x30, 0x6f, 0xa5, 0x7c, 0xee, 0xd0, 0xcb, 0xbc, 0x70, 0xd3, 0xcc,
3878 0x01, 0x80, 0x05, 0xd9, 0x88, 0xf5, 0x3b, 0x6f, 0x07, 0x11, 0xf3, 0x2c,
3879 0xec, 0x79, 0x31, 0x10, 0x6f, 0x1e, 0xf6, 0xa4, 0xa8, 0xce, 0x60, 0x64,
3880 0xe6, 0x2c, 0x3a, 0x8b, 0xbc, 0xc3, 0x5d, 0x3d, 0xcf, 0xd5, 0xe1, 0xbd,
3881 0x25, 0x82, 0x3e, 0x69, 0x5f, 0x5a, 0x52, 0x66, 0xf3, 0x9c, 0x73, 0xfa,
3882 0xc0, 0x1a, 0xc7, 0xfd, 0x9e, 0x7d, 0x89, 0x8a, 0xd6, 0x65, 0xae, 0x75,
3883 0x12, 0x7b, 0x2d, 0xc0, 0xfc, 0x37, 0x3f, 0xd8, 0xe1, 0x57, 0xe6, 0x41,
3884 0x20, 0x31, 0xc8, 0x92, 0xa1, 0x04, 0xb5, 0xdb, 0xce, 0x25, 0xfe, 0x34,
3885 0xe3, 0x32, 0xff, 0x0e, 0xb0, 0x37, 0x64, 0x0f, 0xeb, 0xaf, 0xec, 0x12,
3886 0xed, 0xef, 0xff, 0x13, 0xa9, 0xbf, 0x3f, 0xb6, 0xee, 0xa9, 0xcf, 0xdc,
3887 0x94, 0x3c, 0xc3, 0x89, 0xa7, 0xdf, 0x6a, 0xe6, 0x1b, 0x0b, 0xc1, 0x62,
3888 0x54, 0xa7, 0xa7, 0x58, 0xee, 0xe0, 0xa6, 0xeb, 0xdb, 0xdf, 0x5b, 0xac,
3889 0x52, 0xd8, 0x08, 0xaa, 0xea, 0xca, 0xd1, 0x9d, 0xeb, 0x7d, 0x15, 0xdf,
3890 0x08, 0xbc, 0xd7, 0x6d, 0x71, 0xbe, 0x4c, 0xaa, 0x83, 0xce, 0xed, 0x6c,
3891 0xb6, 0x2a, 0xf5, 0x72, 0x31, 0xbf, 0xc1, 0x2d, 0x29, 0x32, 0x23, 0xec,
3892 0x90, 0x3a, 0xfc, 0x10, 0x12, 0x30, 0xd6, 0x2e, 0xee, 0xa9, 0x99, 0x80,
3893 0xaa, 0xc5, 0x79, 0xd7, 0xed, 0x98, 0xea, 0x24, 0x12, 0x43, 0xf3, 0xd2,
3894 0x6a, 0xed, 0x62, 0xd8, 0x14, 0xf1, 0x51, 0x55, 0x8e, 0xd8, 0x8c, 0xbf,
3895 0xfe, 0x59, 0xa9, 0x45
3896};
3897static const uint8_t ac_rsassa_vect19_exp2[] = {
3898 0xd8, 0x59, 0x37, 0x5d, 0x1f, 0xd5, 0xa1, 0x48, 0xf6, 0x60, 0x6f, 0x10,
3899 0x85, 0xa9, 0x10, 0xaa, 0x8d, 0x1a, 0x94, 0x0d, 0x56, 0xe8, 0xa2, 0x45,
3900 0x32, 0x3b, 0x77, 0x62, 0x2e, 0x89, 0xb8, 0x51, 0x8f, 0x9b, 0xf5, 0xdd,
3901 0x83, 0xf8, 0xd5, 0xad, 0x6f, 0x5e, 0x85, 0x40, 0x98, 0x31, 0x25, 0xd5,
3902 0x13, 0x21, 0x59, 0x5f, 0x50, 0x27, 0x90, 0x2c, 0xb1, 0x7f, 0xdb, 0x2e,
3903 0xa9, 0xfc, 0xc4, 0xfb, 0x31, 0x18, 0x88, 0xdb, 0x93, 0x1a, 0x0e, 0xda,
3904 0x60, 0xc2, 0xfe, 0x98, 0xd1, 0xf6, 0x2b, 0x0d, 0xd2, 0xf4, 0x48, 0xe4,
3905 0x06, 0xeb, 0xc6, 0x18, 0xb0, 0x58, 0x66, 0xe6, 0x9b, 0x00, 0x7c, 0x72,
3906 0x75, 0xf4, 0x5a, 0x2a, 0x59, 0x26, 0xd4, 0x36, 0x6b, 0x03, 0x9f, 0x7d,
3907 0x05, 0x68, 0x34, 0xe9, 0x51, 0x2f, 0xf4, 0x71, 0x96, 0x93, 0xce, 0x55,
3908 0x2a, 0x5e, 0x36, 0x64, 0x21, 0x10, 0xa8, 0xbd, 0xb0, 0xc6, 0x85, 0xad,
3909 0x48, 0x6e, 0xdf, 0x81, 0x1c, 0xdc, 0x72, 0x18, 0xd6, 0xf8, 0xc1, 0xf4,
3910 0x20, 0x6c, 0xcd, 0x13, 0xeb, 0xd9, 0x15, 0xbf, 0x33, 0x35, 0xc1, 0x97,
3911 0x1f, 0x86, 0xe0, 0x97, 0xd5, 0x51, 0x22, 0x1c, 0xe0, 0x1b, 0xd3, 0x67,
3912 0x20, 0x06, 0x4d, 0x4d, 0xb3, 0xbd, 0x28, 0xd1, 0xb2, 0x2f, 0xcb, 0x90,
3913 0x92, 0xbc, 0xc3, 0x2e, 0x90, 0xac, 0x0e, 0x16, 0x0e, 0xe5, 0x03, 0x23,
3914 0x62, 0x76, 0x0f, 0xf1, 0xf0, 0xdd, 0x2a, 0xf0, 0xb0, 0x84, 0xc9, 0xeb,
3915 0x81, 0xf2, 0x8b, 0x65, 0x85, 0xff, 0x3a, 0x46, 0xf3, 0xb3, 0xc7, 0xbd,
3916 0x61, 0x66, 0x11, 0x45, 0x0a, 0x0e, 0xfb, 0x8a, 0x8e, 0x64, 0x83, 0x0c,
3917 0x59, 0x5e, 0x97, 0xef, 0x1c, 0x2f, 0x80, 0xec, 0x57, 0xd9, 0x60, 0x72,
3918 0x54, 0x53, 0x65, 0x42, 0x92, 0x4f, 0x0d, 0x97, 0x0a, 0x81, 0x77, 0x80,
3919 0xa8, 0x0a, 0x17, 0x83
3920};
3921static const uint8_t ac_rsassa_vect19_coeff[] = {
3922 0x47, 0xcc, 0x01, 0x3c, 0xe5, 0xd4, 0x0f, 0xce, 0xd4, 0x07, 0x20, 0x80,
3923 0x3b, 0xb3, 0xfc, 0x46, 0x34, 0x46, 0x8f, 0xe7, 0xf4, 0x31, 0xf4, 0x13,
3924 0x7b, 0x13, 0x3c, 0xb4, 0x55, 0x3d, 0x77, 0xcb, 0x38, 0xb4, 0xe1, 0x56,
3925 0x27, 0x96, 0xcd, 0x55, 0x4b, 0x73, 0x2e, 0xf6, 0x13, 0x3b, 0x9d, 0x23,
3926 0x01, 0x4d, 0x05, 0xce, 0x44, 0x46, 0xc4, 0xa3, 0xc6, 0x1d, 0x86, 0x16,
3927 0xcc, 0xf0, 0xe5, 0x66, 0xcf, 0xc0, 0xed, 0x35, 0x44, 0xe9, 0x58, 0x42,
3928 0x32, 0x9a, 0x5b, 0x6d, 0x47, 0xcc, 0x11, 0x7a, 0x79, 0x47, 0x46, 0x82,
3929 0xda, 0x57, 0x80, 0x8f, 0xe2, 0xf6, 0xd5, 0xc4, 0x71, 0x57, 0x1e, 0x1a,
3930 0xe5, 0x04, 0x06, 0x3e, 0x9e, 0xec, 0xcd, 0x16, 0x17, 0xaf, 0x25, 0x85,
3931 0xcd, 0xdb, 0x55, 0xce, 0x9b, 0xab, 0xbc, 0x57, 0x36, 0x66, 0x48, 0xdb,
3932 0x6c, 0x3a, 0x96, 0x71, 0x83, 0x90, 0x7a, 0xa4, 0x87, 0xb5, 0xcd, 0x6a,
3933 0x8a, 0x27, 0x21, 0x2c, 0xa5, 0xba, 0x62, 0x07, 0x28, 0xe3, 0x77, 0xca,
3934 0x19, 0xed, 0x7a, 0x55, 0xb8, 0x0c, 0x1c, 0x17, 0x08, 0xa6, 0xf6, 0xd3,
3935 0xda, 0x2c, 0x20, 0x25, 0xb9, 0xb7, 0x3e, 0x2e, 0xe6, 0x25, 0x32, 0xb2,
3936 0xc3, 0x06, 0x63, 0xfb, 0xfb, 0x16, 0x3f, 0x66, 0x18, 0x82, 0x0d, 0x15,
3937 0x37, 0x35, 0x97, 0x17, 0x79, 0xad, 0xd8, 0x96, 0xa1, 0x20, 0x51, 0xd5,
3938 0xb8, 0xb9, 0x53, 0x85, 0x20, 0xbe, 0x71, 0xac, 0xa3, 0xe6, 0x8d, 0xeb,
3939 0xef, 0x1b, 0x8e, 0x42, 0x89, 0xf4, 0x5c, 0x10, 0x80, 0x8a, 0xac, 0xe4,
3940 0xbf, 0xd1, 0xbd, 0x40, 0x47, 0x62, 0x95, 0xfb, 0xab, 0xd1, 0xac, 0x28,
3941 0x6c, 0xa4, 0xfc, 0xbb, 0x77, 0x1f, 0xdb, 0x91, 0xa7, 0xff, 0x90, 0x49,
3942 0x74, 0xee, 0x32, 0x28, 0xbc, 0x15, 0x44, 0x17, 0xdf, 0x30, 0x5a, 0xb6,
3943 0x91, 0xe2, 0x87, 0x02
3944};
3945static const uint8_t ac_rsassa_vect19_ptx[] = {
3946 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c,
3947 0x0d, 0x0e, 0x0f, 0x10
3948};
3949static const uint8_t ac_rsassa_vect19_out[] = {
3950 0x5c, 0x9c, 0x79, 0x1b, 0xd1, 0x64, 0x6a, 0xb5, 0xc7, 0xd9, 0xb1, 0x7c,
3951 0xd0, 0x3b, 0x05, 0xae, 0x9f, 0x93, 0x36, 0xcd, 0xa3, 0x38, 0x1b, 0xc6,
3952 0x23, 0x81, 0x72, 0xd7, 0x57, 0xa4, 0x16, 0x07, 0x2c, 0xc0, 0x63, 0x38,
3953 0x01, 0x51, 0x58, 0x6d, 0x24, 0xcd, 0x7b, 0x24, 0x86, 0xd4, 0x5a, 0xb5,
3954 0x44, 0x47, 0x13, 0xc4, 0xaf, 0xce, 0x1d, 0x1e, 0x5d, 0x23, 0xb2, 0xe8,
3955 0xae, 0x14, 0x2f, 0x61, 0xf5, 0xf4, 0x7f, 0x37, 0x83, 0x1c, 0x55, 0xdb,
3956 0xb8, 0xd9, 0x27, 0xf4, 0xa7, 0x39, 0x77, 0x3b, 0x73, 0xdb, 0x1a, 0x1d,
3957 0xf7, 0x21, 0x82, 0xb7, 0xda, 0xce, 0x76, 0x90, 0xf2, 0xda, 0x18, 0x0b,
3958 0xf9, 0x11, 0x4f, 0x64, 0xc4, 0x1d, 0xe2, 0xd4, 0xd0, 0x6a, 0xfb, 0x6f,
3959 0x1b, 0x32, 0x2f, 0x4a, 0xcc, 0x6f, 0x5b, 0x28, 0x7f, 0x26, 0xe8, 0x4b,
3960 0x6e, 0x0a, 0x4b, 0x62, 0xef, 0xd9, 0x88, 0x23, 0x1c, 0xea, 0x4f, 0x1a,
3961 0x0a, 0x3a, 0xbd, 0xf6, 0x7d, 0xdc, 0xca, 0x57, 0xc8, 0x68, 0xa6, 0xb3,
3962 0x16, 0xa2, 0xe9, 0x6e, 0x56, 0x69, 0xc9, 0x62, 0xf4, 0x12, 0xf5, 0x48,
3963 0xcf, 0x34, 0x2a, 0x5b, 0x4f, 0xf1, 0x0c, 0xb6, 0x24, 0x04, 0x9d, 0x4f,
3964 0xb0, 0xd3, 0x11, 0x43, 0x29, 0x89, 0x99, 0x9b, 0xb1, 0xe3, 0x8c, 0x00,
3965 0x83, 0xe3, 0xbe, 0x94, 0xbf, 0x1f, 0xf1, 0x5c, 0x83, 0xe9, 0x01, 0xb9,
3966 0xec, 0x41, 0x73, 0x23, 0x98, 0x5e, 0x20, 0x91, 0xca, 0x56, 0x3f, 0x6f,
3967 0x6b, 0x50, 0x6d, 0x94, 0x3e, 0x2e, 0x1b, 0xb3, 0xc5, 0x74, 0x8f, 0x3a,
3968 0xaf, 0x21, 0x49, 0x7e, 0x9a, 0xe8, 0x85, 0x95, 0xd5, 0x87, 0xb1, 0xd7,
3969 0x0a, 0xf2, 0x35, 0x59, 0x1d, 0xe5, 0x8e, 0x9e, 0xc8, 0xa0, 0x84, 0xd1,
3970 0xdf, 0xea, 0x20, 0x16, 0x16, 0x1c, 0x35, 0x69, 0x37, 0x3d, 0x38, 0x3a,
3971 0x53, 0x97, 0x1f, 0xa8, 0x3a, 0xa6, 0x41, 0xc6, 0xd4, 0x7e, 0xac, 0xd3,
3972 0x9e, 0x24, 0x22, 0x9b, 0xb9, 0x6e, 0xfb, 0xd9, 0x23, 0x65, 0xd5, 0xda,
3973 0x28, 0xb3, 0x0c, 0x74, 0x8b, 0xb6, 0xfa, 0x5b, 0xd4, 0x1e, 0x95, 0x1c,
3974 0x08, 0xd0, 0x38, 0x7c, 0xef, 0x6e, 0xb3, 0xee, 0x5b, 0x3b, 0x66, 0xa9,
3975 0x5f, 0x74, 0xab, 0x29, 0x3c, 0x6d, 0x58, 0x51, 0x95, 0x5f, 0xb0, 0x68,
3976 0x5d, 0xc5, 0x78, 0xe4, 0x7a, 0x1c, 0x1d, 0x37, 0xde, 0xdf, 0xd9, 0xae,
3977 0xa0, 0x9b, 0xcd, 0x42, 0x60, 0x74, 0x07, 0x6d, 0xbc, 0x37, 0x80, 0x49,
3978 0x8f, 0xdf, 0x7e, 0x6e, 0x7d, 0x54, 0xde, 0x7f, 0x0c, 0x06, 0xb9, 0xe8,
3979 0xc2, 0x5b, 0xed, 0xaa, 0xe5, 0x87, 0xc7, 0xed, 0xe5, 0x90, 0x98, 0xbb,
3980 0xf4, 0xf3, 0x76, 0x96, 0x7f, 0xc1, 0xe8, 0x49, 0xbc, 0x78, 0x56, 0xf1,
3981 0x5e, 0x87, 0xbd, 0xca, 0xd9, 0xdb, 0xf7, 0xa4, 0x13, 0xc5, 0x32, 0x51,
3982 0x27, 0xa4, 0xeb, 0xd8, 0x1b, 0xf5, 0x37, 0xcd, 0x1c, 0xba, 0x7b, 0xb5,
3983 0x0c, 0xce, 0x71, 0xcb, 0x18, 0xfb, 0x61, 0x60, 0xe7, 0xc0, 0x06, 0xd0,
3984 0x09, 0xc7, 0xbf, 0x3f, 0x7b, 0x55, 0x52, 0x88, 0xa8, 0x7a, 0x94, 0xcf,
3985 0x15, 0x5d, 0x97, 0xba, 0x9a, 0xa8, 0xe2, 0x37, 0xe6, 0xe7, 0xf3, 0x2b,
3986 0xc2, 0xec, 0x33, 0x0b, 0xe7, 0x60, 0xa2, 0xc3, 0x63, 0x89, 0xc6, 0xf1,
3987 0xe5, 0xda, 0x13, 0xd5, 0xcc, 0x27, 0x35, 0xf8, 0x9f, 0xa8, 0x21, 0x49,
3988 0x09, 0x5b, 0x6b, 0xaf, 0x65, 0xbf, 0xb8, 0x6e, 0x5b, 0xf1, 0x61, 0xf4,
3989 0xd3, 0xe9, 0xb5, 0x20, 0x01, 0x40, 0xd6, 0x81, 0x1e, 0x4f, 0xcd, 0x77,
3990 0x51, 0x80, 0x6d, 0x69, 0xc7, 0xba, 0xf8, 0x2b, 0x38, 0x02, 0xa1, 0x9b,
3991 0x36, 0x8d, 0x56, 0xcf, 0x88, 0xb8, 0x71, 0x29, 0x08, 0x69, 0xbe, 0x68,
3992 0x98, 0x84, 0xbb, 0x38, 0xe7, 0xc0, 0x0f, 0x05
3993};
3994
3995/*
Pascal Brandc639ac82015-07-02 08:53:34 +02003996 * Test data from ftp://ftp.rsa.com/pub/rsalabs/tmp/pkcs1v15sign-vectors.txt
3997 *
3998 * As specified in PKCS#1, the block type for this operation
3999 * is 1. The digest algorithm is SHA-1; i.e. the given message
4000 * must be hashed and the SHA-1 hash must be encapsulated in a
4001 * DigestInfo structure as specified in PKCS#1 v1.5.
4002 */
4003
4004/* PKCS#1 v1.5 Signature Example 1 1024-bit RSA key pair */
4005static const uint8_t ac_rsassa_example1_modulus[] = {
4006 0xa5, 0x6e, 0x4a, 0x0e, 0x70, 0x10, 0x17, 0x58, 0x9a, 0x51, 0x87, 0xdc,
4007 0x7e, 0xa8, 0x41, 0xd1,
4008 0x56, 0xf2, 0xec, 0x0e, 0x36, 0xad, 0x52, 0xa4, 0x4d, 0xfe, 0xb1, 0xe6,
4009 0x1f, 0x7a, 0xd9, 0x91,
4010 0xd8, 0xc5, 0x10, 0x56, 0xff, 0xed, 0xb1, 0x62, 0xb4, 0xc0, 0xf2, 0x83,
4011 0xa1, 0x2a, 0x88, 0xa3,
4012 0x94, 0xdf, 0xf5, 0x26, 0xab, 0x72, 0x91, 0xcb, 0xb3, 0x07, 0xce, 0xab,
4013 0xfc, 0xe0, 0xb1, 0xdf,
4014 0xd5, 0xcd, 0x95, 0x08, 0x09, 0x6d, 0x5b, 0x2b, 0x8b, 0x6d, 0xf5, 0xd6,
4015 0x71, 0xef, 0x63, 0x77,
4016 0xc0, 0x92, 0x1c, 0xb2, 0x3c, 0x27, 0x0a, 0x70, 0xe2, 0x59, 0x8e, 0x6f,
4017 0xf8, 0x9d, 0x19, 0xf1,
4018 0x05, 0xac, 0xc2, 0xd3, 0xf0, 0xcb, 0x35, 0xf2, 0x92, 0x80, 0xe1, 0x38,
4019 0x6b, 0x6f, 0x64, 0xc4,
4020 0xef, 0x22, 0xe1, 0xe1, 0xf2, 0x0d, 0x0c, 0xe8, 0xcf, 0xfb, 0x22, 0x49,
4021 0xbd, 0x9a, 0x21, 0x37,
4022};
4023static const uint8_t ac_rsassa_example1_pub_exp[] = {
4024 0x01, 0x00, 0x01
4025};
4026static const uint8_t ac_rsassa_example1_priv_exp[] = {
4027 0x33, 0xa5, 0x04, 0x2a, 0x90, 0xb2, 0x7d, 0x4f, 0x54, 0x51, 0xca, 0x9b,
4028 0xbb, 0xd0, 0xb4, 0x47,
4029 0x71, 0xa1, 0x01, 0xaf, 0x88, 0x43, 0x40, 0xae, 0xf9, 0x88, 0x5f, 0x2a,
4030 0x4b, 0xbe, 0x92, 0xe8,
4031 0x94, 0xa7, 0x24, 0xac, 0x3c, 0x56, 0x8c, 0x8f, 0x97, 0x85, 0x3a, 0xd0,
4032 0x7c, 0x02, 0x66, 0xc8,
4033 0xc6, 0xa3, 0xca, 0x09, 0x29, 0xf1, 0xe8, 0xf1, 0x12, 0x31, 0x88, 0x44,
4034 0x29, 0xfc, 0x4d, 0x9a,
4035 0xe5, 0x5f, 0xee, 0x89, 0x6a, 0x10, 0xce, 0x70, 0x7c, 0x3e, 0xd7, 0xe7,
4036 0x34, 0xe4, 0x47, 0x27,
4037 0xa3, 0x95, 0x74, 0x50, 0x1a, 0x53, 0x26, 0x83, 0x10, 0x9c, 0x2a, 0xba,
4038 0xca, 0xba, 0x28, 0x3c,
4039 0x31, 0xb4, 0xbd, 0x2f, 0x53, 0xc3, 0xee, 0x37, 0xe3, 0x52, 0xce, 0xe3,
4040 0x4f, 0x9e, 0x50, 0x3b,
4041 0xd8, 0x0c, 0x06, 0x22, 0xad, 0x79, 0xc6, 0xdc, 0xee, 0x88, 0x35, 0x47,
4042 0xc6, 0xa3, 0xb3, 0x25,
4043};
4044static const uint8_t ac_rsassa_example1_prime1[] = {
4045 0xe7, 0xe8, 0x94, 0x27, 0x20, 0xa8, 0x77, 0x51, 0x72, 0x73, 0xa3, 0x56,
4046 0x05, 0x3e, 0xa2, 0xa1,
4047 0xbc, 0x0c, 0x94, 0xaa, 0x72, 0xd5, 0x5c, 0x6e, 0x86, 0x29, 0x6b, 0x2d,
4048 0xfc, 0x96, 0x79, 0x48,
4049 0xc0, 0xa7, 0x2c, 0xbc, 0xcc, 0xa7, 0xea, 0xcb, 0x35, 0x70, 0x6e, 0x09,
4050 0xa1, 0xdf, 0x55, 0xa1,
4051 0x53, 0x5b, 0xd9, 0xb3, 0xcc, 0x34, 0x16, 0x0b, 0x3b, 0x6d, 0xcd, 0x3e,
4052 0xda, 0x8e, 0x64, 0x43,
4053};
4054static const uint8_t ac_rsassa_example1_prime2[] = {
4055 0xb6, 0x9d, 0xca, 0x1c, 0xf7, 0xd4, 0xd7, 0xec, 0x81, 0xe7, 0x5b, 0x90,
4056 0xfc, 0xca, 0x87, 0x4a,
4057 0xbc, 0xde, 0x12, 0x3f, 0xd2, 0x70, 0x01, 0x80, 0xaa, 0x90, 0x47, 0x9b,
4058 0x6e, 0x48, 0xde, 0x8d,
4059 0x67, 0xed, 0x24, 0xf9, 0xf1, 0x9d, 0x85, 0xba, 0x27, 0x58, 0x74, 0xf5,
4060 0x42, 0xcd, 0x20, 0xdc,
4061 0x72, 0x3e, 0x69, 0x63, 0x36, 0x4a, 0x1f, 0x94, 0x25, 0x45, 0x2b, 0x26,
4062 0x9a, 0x67, 0x99, 0xfd,
4063};
4064static const uint8_t ac_rsassa_example1_exp1[] = {
4065 0x28, 0xfa, 0x13, 0x93, 0x86, 0x55, 0xbe, 0x1f, 0x8a, 0x15, 0x9c, 0xba,
4066 0xca, 0x5a, 0x72, 0xea,
4067 0x19, 0x0c, 0x30, 0x08, 0x9e, 0x19, 0xcd, 0x27, 0x4a, 0x55, 0x6f, 0x36,
4068 0xc4, 0xf6, 0xe1, 0x9f,
4069 0x55, 0x4b, 0x34, 0xc0, 0x77, 0x79, 0x04, 0x27, 0xbb, 0xdd, 0x8d, 0xd3,
4070 0xed, 0xe2, 0x44, 0x83,
4071 0x28, 0xf3, 0x85, 0xd8, 0x1b, 0x30, 0xe8, 0xe4, 0x3b, 0x2f, 0xff, 0xa0,
4072 0x27, 0x86, 0x19, 0x79,
4073};
4074static const uint8_t ac_rsassa_example1_exp2[] = {
4075 0x1a, 0x8b, 0x38, 0xf3, 0x98, 0xfa, 0x71, 0x20, 0x49, 0x89, 0x8d, 0x7f,
4076 0xb7, 0x9e, 0xe0, 0xa7,
4077 0x76, 0x68, 0x79, 0x12, 0x99, 0xcd, 0xfa, 0x09, 0xef, 0xc0, 0xe5, 0x07,
4078 0xac, 0xb2, 0x1e, 0xd7,
4079 0x43, 0x01, 0xef, 0x5b, 0xfd, 0x48, 0xbe, 0x45, 0x5e, 0xae, 0xb6, 0xe1,
4080 0x67, 0x82, 0x55, 0x82,
4081 0x75, 0x80, 0xa8, 0xe4, 0xe8, 0xe1, 0x41, 0x51, 0xd1, 0x51, 0x0a, 0x82,
4082 0xa3, 0xf2, 0xe7, 0x29,
4083};
4084static const uint8_t ac_rsassa_example1_coeff[] = {
4085 0x27, 0x15, 0x6a, 0xba, 0x41, 0x26, 0xd2, 0x4a, 0x81, 0xf3, 0xa5, 0x28,
4086 0xcb, 0xfb, 0x27, 0xf5,
4087 0x68, 0x86, 0xf8, 0x40, 0xa9, 0xf6, 0xe8, 0x6e, 0x17, 0xa4, 0x4b, 0x94,
4088 0xfe, 0x93, 0x19, 0x58,
4089 0x4b, 0x8e, 0x22, 0xfd, 0xde, 0x1e, 0x5a, 0x2e, 0x3b, 0xd8, 0xaa, 0x5b,
4090 0xa8, 0xd8, 0x58, 0x41,
4091 0x94, 0xeb, 0x21, 0x90, 0xac, 0xf8, 0x32, 0xb8, 0x47, 0xf1, 0x3a, 0x3d,
4092 0x24, 0xa7, 0x9f, 0x4d,
4093};
4094
4095/* PKCS#1 v1.5 Signature Example 1.1 */
4096#define ac_rsassa_vect3_modulus ac_rsassa_example1_modulus
4097#define ac_rsassa_vect3_pub_exp ac_rsassa_example1_pub_exp
4098#define ac_rsassa_vect3_priv_exp ac_rsassa_example1_priv_exp
4099#define ac_rsassa_vect3_prime1 ac_rsassa_example1_prime1
4100#define ac_rsassa_vect3_prime2 ac_rsassa_example1_prime2
4101#define ac_rsassa_vect3_exp1 ac_rsassa_example1_exp1
4102#define ac_rsassa_vect3_exp2 ac_rsassa_example1_exp2
4103#define ac_rsassa_vect3_coeff ac_rsassa_example1_coeff
4104static const uint8_t ac_rsassa_vect3_ptx[] = {
4105 0xcd, 0xc8, 0x7d, 0xa2, 0x23, 0xd7, 0x86, 0xdf, 0x3b, 0x45, 0xe0, 0xbb,
4106 0xbc, 0x72, 0x13, 0x26,
4107 0xd1, 0xee, 0x2a, 0xf8, 0x06, 0xcc, 0x31, 0x54, 0x75, 0xcc, 0x6f, 0x0d,
4108 0x9c, 0x66, 0xe1, 0xb6,
4109 0x23, 0x71, 0xd4, 0x5c, 0xe2, 0x39, 0x2e, 0x1a, 0xc9, 0x28, 0x44, 0xc3,
4110 0x10, 0x10, 0x2f, 0x15,
4111 0x6a, 0x0d, 0x8d, 0x52, 0xc1, 0xf4, 0xc4, 0x0b, 0xa3, 0xaa, 0x65, 0x09,
4112 0x57, 0x86, 0xcb, 0x76,
4113 0x97, 0x57, 0xa6, 0x56, 0x3b, 0xa9, 0x58, 0xfe, 0xd0, 0xbc, 0xc9, 0x84,
4114 0xe8, 0xb5, 0x17, 0xa3,
4115 0xd5, 0xf5, 0x15, 0xb2, 0x3b, 0x8a, 0x41, 0xe7, 0x4a, 0xa8, 0x67, 0x69,
4116 0x3f, 0x90, 0xdf, 0xb0,
4117 0x61, 0xa6, 0xe8, 0x6d, 0xfa, 0xae, 0xe6, 0x44, 0x72, 0xc0, 0x0e, 0x5f,
4118 0x20, 0x94, 0x57, 0x29,
4119 0xcb, 0xeb, 0xe7, 0x7f, 0x06, 0xce, 0x78, 0xe0, 0x8f, 0x40, 0x98, 0xfb,
4120 0xa4, 0x1f, 0x9d, 0x61,
4121 0x93, 0xc0, 0x31, 0x7e, 0x8b, 0x60, 0xd4, 0xb6, 0x08, 0x4a, 0xcb, 0x42,
4122 0xd2, 0x9e, 0x38, 0x08,
4123 0xa3, 0xbc, 0x37, 0x2d, 0x85, 0xe3, 0x31, 0x17, 0x0f, 0xcb, 0xf7, 0xcc,
4124 0x72, 0xd0, 0xb7, 0x1c,
4125 0x29, 0x66, 0x48, 0xb3, 0xa4, 0xd1, 0x0f, 0x41, 0x62, 0x95, 0xd0, 0x80,
4126 0x7a, 0xa6, 0x25, 0xca,
4127 0xb2, 0x74, 0x4f, 0xd9, 0xea, 0x8f, 0xd2, 0x23, 0xc4, 0x25, 0x37, 0x02,
4128 0x98, 0x28, 0xbd, 0x16,
4129 0xbe, 0x02, 0x54, 0x6f, 0x13, 0x0f, 0xd2, 0xe3, 0x3b, 0x93, 0x6d, 0x26,
4130 0x76, 0xe0, 0x8a, 0xed,
4131 0x1b, 0x73, 0x31, 0x8b, 0x75, 0x0a, 0x01, 0x67, 0xd0,
4132};
4133static const uint8_t ac_rsassa_vect3_out[] = {
4134 0x6b, 0xc3, 0xa0, 0x66, 0x56, 0x84, 0x29, 0x30, 0xa2, 0x47, 0xe3, 0x0d,
4135 0x58, 0x64, 0xb4, 0xd8,
4136 0x19, 0x23, 0x6b, 0xa7, 0xc6, 0x89, 0x65, 0x86, 0x2a, 0xd7, 0xdb, 0xc4,
4137 0xe2, 0x4a, 0xf2, 0x8e,
4138 0x86, 0xbb, 0x53, 0x1f, 0x03, 0x35, 0x8b, 0xe5, 0xfb, 0x74, 0x77, 0x7c,
4139 0x60, 0x86, 0xf8, 0x50,
4140 0xca, 0xef, 0x89, 0x3f, 0x0d, 0x6f, 0xcc, 0x2d, 0x0c, 0x91, 0xec, 0x01,
4141 0x36, 0x93, 0xb4, 0xea,
4142 0x00, 0xb8, 0x0c, 0xd4, 0x9a, 0xac, 0x4e, 0xcb, 0x5f, 0x89, 0x11, 0xaf,
4143 0xe5, 0x39, 0xad, 0xa4,
4144 0xa8, 0xf3, 0x82, 0x3d, 0x1d, 0x13, 0xe4, 0x72, 0xd1, 0x49, 0x05, 0x47,
4145 0xc6, 0x59, 0xc7, 0x61,
4146 0x7f, 0x3d, 0x24, 0x08, 0x7d, 0xdb, 0x6f, 0x2b, 0x72, 0x09, 0x61, 0x67,
4147 0xfc, 0x09, 0x7c, 0xab,
4148 0x18, 0xe9, 0xa4, 0x58, 0xfc, 0xb6, 0x34, 0xcd, 0xce, 0x8e, 0xe3, 0x58,
4149 0x94, 0xc4, 0x84, 0xd7,
4150};
4151
4152/* PKCS#1 v1.5 Signature Example 1.2 */
4153#define ac_rsassa_vect4_modulus ac_rsassa_example1_modulus
4154#define ac_rsassa_vect4_pub_exp ac_rsassa_example1_pub_exp
4155#define ac_rsassa_vect4_priv_exp ac_rsassa_example1_priv_exp
4156#define ac_rsassa_vect4_prime1 ac_rsassa_example1_prime1
4157#define ac_rsassa_vect4_prime2 ac_rsassa_example1_prime2
4158#define ac_rsassa_vect4_exp1 ac_rsassa_example1_exp1
4159#define ac_rsassa_vect4_exp2 ac_rsassa_example1_exp2
4160#define ac_rsassa_vect4_coeff ac_rsassa_example1_coeff
4161static const uint8_t ac_rsassa_vect4_ptx[] = {
4162 0x85, 0x13, 0x84, 0xcd, 0xfe, 0x81, 0x9c, 0x22, 0xed, 0x6c, 0x4c, 0xcb,
4163 0x30, 0xda, 0xeb, 0x5c,
4164 0xf0, 0x59, 0xbc, 0x8e, 0x11, 0x66, 0xb7, 0xe3, 0x53, 0x0c, 0x4c, 0x23,
4165 0x3e, 0x2b, 0x5f, 0x8f,
4166 0x71, 0xa1, 0xcc, 0xa5, 0x82, 0xd4, 0x3e, 0xcc, 0x72, 0xb1, 0xbc, 0xa1,
4167 0x6d, 0xfc, 0x70, 0x13,
4168 0x22, 0x6b, 0x9e,
4169};
4170static const uint8_t ac_rsassa_vect4_out[] = {
4171 0x84, 0xfd, 0x2c, 0xe7, 0x34, 0xec, 0x1d, 0xa8, 0x28, 0xd0, 0xf1, 0x5b,
4172 0xf4, 0x9a, 0x87, 0x07,
4173 0xc1, 0x5d, 0x05, 0x94, 0x81, 0x36, 0xde, 0x53, 0x7a, 0x3d, 0xb4, 0x21,
4174 0x38, 0x41, 0x67, 0xc8,
4175 0x6f, 0xae, 0x02, 0x25, 0x87, 0xee, 0x9e, 0x13, 0x7d, 0xae, 0xe7, 0x54,
4176 0x73, 0x82, 0x62, 0x93,
4177 0x2d, 0x27, 0x1c, 0x74, 0x4c, 0x6d, 0x3a, 0x18, 0x9a, 0xd4, 0x31, 0x1b,
4178 0xdb, 0x02, 0x04, 0x92,
4179 0xe3, 0x22, 0xfb, 0xdd, 0xc4, 0x04, 0x06, 0xea, 0x86, 0x0d, 0x4e, 0x8e,
4180 0xa2, 0xa4, 0x08, 0x4a,
4181 0xa9, 0x8b, 0x96, 0x22, 0xa4, 0x46, 0x75, 0x6f, 0xdb, 0x74, 0x0d, 0xdb,
4182 0x3d, 0x91, 0xdb, 0x76,
4183 0x70, 0xe2, 0x11, 0x66, 0x1b, 0xbf, 0x87, 0x09, 0xb1, 0x1c, 0x08, 0xa7,
4184 0x07, 0x71, 0x42, 0x2d,
4185 0x1a, 0x12, 0xde, 0xf2, 0x9f, 0x06, 0x88, 0xa1, 0x92, 0xae, 0xbd, 0x89,
4186 0xe0, 0xf8, 0x96, 0xf8,
4187};
4188
4189/* PKCS#1 v1.5 Signature Example 1.3 */
4190#define ac_rsassa_vect5_modulus ac_rsassa_example1_modulus
4191#define ac_rsassa_vect5_pub_exp ac_rsassa_example1_pub_exp
4192#define ac_rsassa_vect5_priv_exp ac_rsassa_example1_priv_exp
4193#define ac_rsassa_vect5_prime1 ac_rsassa_example1_prime1
4194#define ac_rsassa_vect5_prime2 ac_rsassa_example1_prime2
4195#define ac_rsassa_vect5_exp1 ac_rsassa_example1_exp1
4196#define ac_rsassa_vect5_exp2 ac_rsassa_example1_exp2
4197#define ac_rsassa_vect5_coeff ac_rsassa_example1_coeff
4198static const uint8_t ac_rsassa_vect5_ptx[] = {
4199 0xa4, 0xb1, 0x59, 0x94, 0x17, 0x61, 0xc4, 0x0c, 0x6a, 0x82, 0xf2, 0xb8,
4200 0x0d, 0x1b, 0x94, 0xf5,
4201 0xaa, 0x26, 0x54, 0xfd, 0x17, 0xe1, 0x2d, 0x58, 0x88, 0x64, 0x67, 0x9b,
4202 0x54, 0xcd, 0x04, 0xef,
4203 0x8b, 0xd0, 0x30, 0x12, 0xbe, 0x8d, 0xc3, 0x7f, 0x4b, 0x83, 0xaf, 0x79,
4204 0x63, 0xfa, 0xff, 0x0d,
4205 0xfa, 0x22, 0x54, 0x77, 0x43, 0x7c, 0x48, 0x01, 0x7f, 0xf2, 0xbe, 0x81,
4206 0x91, 0xcf, 0x39, 0x55,
4207 0xfc, 0x07, 0x35, 0x6e, 0xab, 0x3f, 0x32, 0x2f, 0x7f, 0x62, 0x0e, 0x21,
4208 0xd2, 0x54, 0xe5, 0xdb,
4209 0x43, 0x24, 0x27, 0x9f, 0xe0, 0x67, 0xe0, 0x91, 0x0e, 0x2e, 0x81, 0xca,
4210 0x2c, 0xab, 0x31, 0xc7,
4211 0x45, 0xe6, 0x7a, 0x54, 0x05, 0x8e, 0xb5, 0x0d, 0x99, 0x3c, 0xdb, 0x9e,
4212 0xd0, 0xb4, 0xd0, 0x29,
4213 0xc0, 0x6d, 0x21, 0xa9, 0x4c, 0xa6, 0x61, 0xc3, 0xce, 0x27, 0xfa, 0xe1,
4214 0xd6, 0xcb, 0x20, 0xf4,
4215 0x56, 0x4d, 0x66, 0xce, 0x47, 0x67, 0x58, 0x3d, 0x0e, 0x5f, 0x06, 0x02,
4216 0x15, 0xb5, 0x90, 0x17,
4217 0xbe, 0x85, 0xea, 0x84, 0x89, 0x39, 0x12, 0x7b, 0xd8, 0xc9, 0xc4, 0xd4,
4218 0x7b, 0x51, 0x05, 0x6c,
4219 0x03, 0x1c, 0xf3, 0x36, 0xf1, 0x7c, 0x99, 0x80, 0xf3, 0xb8, 0xf5, 0xb9,
4220 0xb6, 0x87, 0x8e, 0x8b,
4221 0x79, 0x7a, 0xa4, 0x3b, 0x88, 0x26, 0x84, 0x33, 0x3e, 0x17, 0x89, 0x3f,
4222 0xe9, 0xca, 0xa6, 0xaa,
4223 0x29, 0x9f, 0x7e, 0xd1, 0xa1, 0x8e, 0xe2, 0xc5, 0x48, 0x64, 0xb7, 0xb2,
4224 0xb9, 0x9b, 0x72, 0x61,
4225 0x8f, 0xb0, 0x25, 0x74, 0xd1, 0x39, 0xef, 0x50, 0xf0, 0x19, 0xc9, 0xee,
4226 0xf4, 0x16, 0x97, 0x13,
4227 0x38, 0xe7, 0xd4, 0x70
4228};
4229static const uint8_t ac_rsassa_vect5_out[] = {
4230 0x0b, 0x1f, 0x2e, 0x51, 0x80, 0xe5, 0xc7, 0xb4, 0xb5, 0xe6, 0x72, 0x92,
4231 0x9f, 0x66, 0x4c, 0x48,
4232 0x96, 0xe5, 0x0c, 0x35, 0x13, 0x4b, 0x6d, 0xe4, 0xd5, 0xa9, 0x34, 0x25,
4233 0x2a, 0x3a, 0x24, 0x5f,
4234 0xf4, 0x83, 0x40, 0x92, 0x0e, 0x10, 0x34, 0xb7, 0xd5, 0xa5, 0xb5, 0x24,
4235 0xeb, 0x0e, 0x1c, 0xf1,
4236 0x2b, 0xef, 0xef, 0x49, 0xb2, 0x7b, 0x73, 0x2d, 0x2c, 0x19, 0xe1, 0xc4,
4237 0x32, 0x17, 0xd6, 0xe1,
4238 0x41, 0x73, 0x81, 0x11, 0x1a, 0x1d, 0x36, 0xde, 0x63, 0x75, 0xcf, 0x45,
4239 0x5b, 0x3c, 0x98, 0x12,
4240 0x63, 0x9d, 0xbc, 0x27, 0x60, 0x0c, 0x75, 0x19, 0x94, 0xfb, 0x61, 0x79,
4241 0x9e, 0xcf, 0x7d, 0xa6,
4242 0xbc, 0xf5, 0x15, 0x40, 0xaf, 0xd0, 0x17, 0x4d, 0xb4, 0x03, 0x31, 0x88,
4243 0x55, 0x66, 0x75, 0xb1,
4244 0xd7, 0x63, 0x36, 0x0a, 0xf4, 0x6f, 0xee, 0xca, 0x5b, 0x60, 0xf8, 0x82,
4245 0x82, 0x9e, 0xe7, 0xb2,
4246};
4247
4248/* PKCS#1 v1.5 Signature Example 1.4 */
4249#define ac_rsassa_vect6_modulus ac_rsassa_example1_modulus
4250#define ac_rsassa_vect6_pub_exp ac_rsassa_example1_pub_exp
4251#define ac_rsassa_vect6_priv_exp ac_rsassa_example1_priv_exp
4252#define ac_rsassa_vect6_prime1 ac_rsassa_example1_prime1
4253#define ac_rsassa_vect6_prime2 ac_rsassa_example1_prime2
4254#define ac_rsassa_vect6_exp1 ac_rsassa_example1_exp1
4255#define ac_rsassa_vect6_exp2 ac_rsassa_example1_exp2
4256#define ac_rsassa_vect6_coeff ac_rsassa_example1_coeff
4257static const uint8_t ac_rsassa_vect6_ptx[] = {
4258 0xbc, 0x65, 0x67, 0x47, 0xfa, 0x9e, 0xaf, 0xb3, 0xf0
4259};
4260static const uint8_t ac_rsassa_vect6_out[] = {
4261 0x45, 0x60, 0x7a, 0xd6, 0x11, 0xcf, 0x57, 0x47, 0xa4, 0x1a, 0xc9, 0x4d,
4262 0x0f, 0xfe, 0xc8, 0x78,
4263 0xbd, 0xaf, 0x63, 0xf6, 0xb5, 0x7a, 0x4b, 0x08, 0x8b, 0xf3, 0x6e, 0x34,
4264 0xe1, 0x09, 0xf8, 0x40,
4265 0xf2, 0x4b, 0x74, 0x2a, 0xda, 0x16, 0x10, 0x2d, 0xab, 0xf9, 0x51, 0xcb,
4266 0xc4, 0x4f, 0x89, 0x82,
4267 0xe9, 0x4e, 0xd4, 0xcd, 0x09, 0x44, 0x8d, 0x20, 0xec, 0x0e, 0xfa, 0x73,
4268 0x54, 0x5f, 0x80, 0xb6,
4269 0x54, 0x06, 0xbe, 0xd6, 0x19, 0x4a, 0x61, 0xc3, 0x40, 0xb4, 0xad, 0x15,
4270 0x68, 0xcb, 0xb7, 0x58,
4271 0x51, 0x04, 0x9f, 0x11, 0xaf, 0x17, 0x34, 0x96, 0x40, 0x76, 0xe0, 0x20,
4272 0x29, 0xae, 0xe2, 0x00,
4273 0xe4, 0x0e, 0x80, 0xbe, 0x0f, 0x43, 0x61, 0xf6, 0x98, 0x41, 0xc4, 0xf9,
4274 0x2a, 0x44, 0x50, 0xa2,
4275 0x28, 0x6d, 0x43, 0x28, 0x9b, 0x40, 0x55, 0x54, 0xc5, 0x4d, 0x25, 0xc6,
4276 0xec, 0xb5, 0x84, 0xf4,
4277};
4278
4279/* PKCS#1 v1.5 Signature Example 7 1025-bit RSA key pair */
4280static const uint8_t ac_rsassa_example2_modulus[] = {
4281 0x01, 0x69, 0x34, 0xcd, 0xff, 0x48, 0x50, 0xb6, 0x00, 0x2c, 0xc0, 0xf0,
4282 0xf4, 0x01, 0x0a, 0x32,
4283 0xc6, 0x55, 0xe5, 0xcf, 0x6e, 0x7c, 0x89, 0x93, 0x7f, 0xd7, 0x55, 0xef,
4284 0x6a, 0xbe, 0x37, 0x9d,
4285 0xad, 0xde, 0x70, 0xcc, 0x21, 0x77, 0x51, 0xf1, 0x4c, 0xba, 0x6d, 0x90,
4286 0xfe, 0x52, 0xdc, 0x0a,
4287 0xf5, 0x8b, 0x25, 0x2f, 0x26, 0xbf, 0x72, 0xda, 0x57, 0x9f, 0xda, 0xf5,
4288 0x7d, 0xdd, 0x6c, 0xd6,
4289 0x02, 0x18, 0x79, 0x94, 0x9a, 0x02, 0x76, 0xb4, 0x43, 0x3f, 0xf0, 0x1e,
4290 0xfc, 0xcc, 0xf3, 0x5a,
4291 0x11, 0xe7, 0xc7, 0x7b, 0x38, 0xc1, 0x8c, 0xca, 0x94, 0xae, 0x01, 0x2d,
4292 0x0f, 0x37, 0x04, 0x21,
4293 0x49, 0x1c, 0x52, 0xad, 0x15, 0xac, 0x76, 0xb1, 0x2e, 0xcd, 0x21, 0x8f,
4294 0x52, 0xe7, 0x57, 0x86,
4295 0x6e, 0x08, 0x9d, 0xd8, 0xad, 0xbb, 0x48, 0xe9, 0xba, 0x89, 0x43, 0x36,
4296 0xc5, 0x75, 0xc4, 0x06,
4297 0x55
4298};
4299static const uint8_t ac_rsassa_example2_pub_exp[] = {
4300 0x01, 0x00, 0x01
4301};
4302static const uint8_t ac_rsassa_example2_priv_exp[] = {
4303 0x0d, 0x17, 0x19, 0xe5, 0xbd, 0x47, 0x6d, 0x87, 0xc7, 0xec, 0xc3, 0x1e,
4304 0xb8, 0xab, 0x42, 0x5d,
4305 0x4f, 0xe4, 0xc8, 0xf5, 0xc7, 0xae, 0x23, 0x0a, 0x10, 0x47, 0x55, 0x3f,
4306 0xfb, 0x53, 0x9f, 0xd3,
4307 0x85, 0x5a, 0xf5, 0xa4, 0x3b, 0x2d, 0xdd, 0x4e, 0x95, 0xa2, 0xb3, 0x0d,
4308 0x40, 0x7a, 0xa8, 0x81,
4309 0x59, 0xbb, 0xad, 0x2a, 0x87, 0x3d, 0x80, 0x93, 0xb4, 0x8a, 0x4b, 0xce,
4310 0x20, 0xad, 0x99, 0x26,
4311 0x25, 0x3e, 0xd3, 0x39, 0xac, 0x3b, 0x54, 0x3f, 0xc7, 0x42, 0x96, 0x95,
4312 0x33, 0x8d, 0xb0, 0xbc,
4313 0x1d, 0xc3, 0x68, 0x6c, 0xfd, 0x13, 0x9b, 0xb5, 0xb2, 0x87, 0x36, 0xbc,
4314 0x16, 0x60, 0xa9, 0x53,
4315 0x48, 0xfc, 0x91, 0xc3, 0x25, 0xd0, 0x3a, 0x7f, 0xb2, 0x16, 0xd2, 0xd9,
4316 0xcd, 0x93, 0x64, 0xde,
4317 0x4e, 0xe7, 0xd2, 0x11, 0x9c, 0x3b, 0x0f, 0xbb, 0xa8, 0xa7, 0x1f, 0x0d,
4318 0x3f, 0x5a, 0xb9, 0xb9,
4319};
4320static const uint8_t ac_rsassa_example2_prime1[] = {
4321 0x01, 0x58, 0xc0, 0x24, 0x6c, 0xd1, 0x69, 0xfc, 0x59, 0x3b, 0x25, 0x8b,
4322 0xbf, 0x45, 0x23, 0xab,
4323 0x2b, 0x55, 0xc4, 0x60, 0x73, 0x3a, 0x7f, 0xb4, 0x69, 0x10, 0x90, 0x77,
4324 0xb3, 0x0e, 0x4d, 0x35,
4325 0xf2, 0x1a, 0x35, 0xb1, 0xf4, 0x1e, 0x42, 0x04, 0xe8, 0x1d, 0x2e, 0x4c,
4326 0x46, 0x3c, 0x24, 0x11,
4327 0x39, 0x34, 0x09, 0x8b, 0x45, 0x2d, 0xab, 0x4b, 0xe1, 0x59, 0x97, 0x20,
4328 0xef, 0x68, 0x72, 0x83,
4329 0x3d
4330};
4331static const uint8_t ac_rsassa_example2_prime2[] = {
4332 0x01, 0x0c, 0x38, 0x2d, 0xea, 0x5e, 0x7d, 0x79, 0x29, 0x8c, 0x64, 0x1f,
4333 0xb2, 0xe4, 0xfa, 0x09,
4334 0xf2, 0x4f, 0x6a, 0x7a, 0x45, 0x9a, 0x88, 0x2c, 0x87, 0xa8, 0x03, 0x49,
4335 0x5f, 0x05, 0x6e, 0xcc,
4336 0x3b, 0x43, 0xc5, 0x37, 0x73, 0x1f, 0x85, 0xef, 0xc8, 0xfb, 0x53, 0x87,
4337 0xad, 0x67, 0x31, 0xa6,
4338 0x43, 0x53, 0x32, 0x15, 0xde, 0xcc, 0x38, 0x7d, 0x96, 0x76, 0x12, 0x2c,
4339 0x17, 0x0e, 0x91, 0xe0,
4340 0xf9
4341};
4342static const uint8_t ac_rsassa_example2_exp1[] = {
4343 0xd5, 0x78, 0xdc, 0xd5, 0x38, 0xf2, 0xfc, 0xdc, 0x30, 0x00, 0xb6, 0xc0,
4344 0xf0, 0x49, 0xfe, 0xe2,
4345 0xad, 0x90, 0x14, 0xfd, 0x24, 0xfb, 0x10, 0xb6, 0x82, 0x18, 0x42, 0xd6,
4346 0x70, 0x03, 0xa5, 0x64,
4347 0xcd, 0x8f, 0xf4, 0x2a, 0x2a, 0x56, 0x4c, 0xfd, 0x81, 0x9c, 0x3a, 0x84,
4348 0xbf, 0x16, 0xc2, 0x47,
4349 0x7e, 0x8e, 0x6e, 0x5b, 0x9e, 0xc4, 0xd4, 0x0e, 0xad, 0x50, 0x24, 0x87,
4350 0xba, 0x50, 0x36, 0x2d,
4351};
4352static const uint8_t ac_rsassa_example2_exp2[] = {
4353 0x88, 0x88, 0xdc, 0x8e, 0xae, 0x94, 0xee, 0xa5, 0x80, 0xca, 0xc2, 0xfc,
4354 0x1c, 0xe5, 0x4f, 0x44,
4355 0xe2, 0xba, 0x50, 0x0d, 0xb8, 0x71, 0x53, 0x41, 0xa6, 0xfc, 0x2d, 0x50,
4356 0x4a, 0x82, 0xb1, 0x42,
4357 0x05, 0xe8, 0x91, 0xa6, 0x6f, 0xc8, 0x8d, 0x5c, 0x60, 0xdb, 0x8f, 0x78,
4358 0x6c, 0xcc, 0x70, 0x57,
4359 0x5b, 0x35, 0x66, 0xbe, 0xa8, 0x74, 0xa5, 0x31, 0x7f, 0x5f, 0x16, 0xc4,
4360 0x91, 0xed, 0x1e, 0x79,
4361};
4362static const uint8_t ac_rsassa_example2_coeff[] = {
4363 0x17, 0xb0, 0xd6, 0x23, 0x36, 0x19, 0x1e, 0x63, 0xbc, 0xa1, 0x59, 0x93,
4364 0x4d, 0x06, 0x16, 0xcb,
4365 0x89, 0x97, 0x40, 0x9c, 0xbf, 0xca, 0x37, 0x05, 0x69, 0x5b, 0x14, 0xfb,
4366 0x64, 0xa0, 0x81, 0xc1,
4367 0xc9, 0xf5, 0x86, 0x19, 0x3e, 0x52, 0x3a, 0xbd, 0x0b, 0xeb, 0x8d, 0x72,
4368 0x0c, 0xfe, 0x53, 0x7d,
4369 0xfa, 0x1e, 0xde, 0xc4, 0xa6, 0x64, 0x37, 0xd2, 0x41, 0x19, 0x6b, 0x7a,
4370 0x2c, 0xe5, 0x56, 0xc4,
4371};
4372
4373
4374/* PKCS#1 v1.5 Signature Example 7.1 */
4375#define ac_rsassa_vect7_modulus ac_rsassa_example2_modulus
4376#define ac_rsassa_vect7_pub_exp ac_rsassa_example2_pub_exp
4377#define ac_rsassa_vect7_priv_exp ac_rsassa_example2_priv_exp
4378#define ac_rsassa_vect7_prime1 ac_rsassa_example2_prime1
4379#define ac_rsassa_vect7_prime2 ac_rsassa_example2_prime2
4380#define ac_rsassa_vect7_exp1 ac_rsassa_example2_exp1
4381#define ac_rsassa_vect7_exp2 ac_rsassa_example2_exp2
4382#define ac_rsassa_vect7_coeff ac_rsassa_example2_coeff
4383static const uint8_t ac_rsassa_vect7_ptx[] = {
4384 0x35, 0x39, 0x99, 0x7a, 0xe7, 0x09, 0xfe, 0x32, 0xc1, 0x03, 0x6a, 0x13,
4385 0x27, 0x57, 0xf2, 0xa1,
4386 0x66, 0x7a, 0x91, 0xcc, 0x83, 0xbe, 0x73, 0x3a, 0xad, 0xa1, 0xbd, 0xd2,
4387 0x17, 0x92, 0x4c, 0x9a,
4388 0x2c, 0x9f, 0xed, 0x1f, 0xec, 0xf6, 0x1d, 0x1c, 0xf7, 0x9d, 0xae, 0x9a,
4389 0x83, 0xf8, 0xae, 0x3f,
4390 0x4d, 0x05, 0x1b, 0x34, 0xfb, 0xb5, 0x59, 0xcb, 0xfd, 0xa4, 0x92, 0xf1,
4391 0xd8, 0x3b, 0x8b, 0xeb,
4392 0xa0, 0x45, 0xd4, 0xae, 0x1c, 0x8f, 0xea, 0x15, 0xb7, 0x57, 0x7a, 0x1b,
4393 0x8a, 0x3f, 0x55, 0xba,
4394 0xc1, 0x72, 0x7e, 0xdc, 0xa7, 0xf8, 0xf5, 0x2c, 0xb4, 0xba, 0x61, 0xca,
4395 0xf1, 0xfa, 0x8f, 0x8f,
4396 0xd9, 0xaa, 0xc7, 0x79, 0x09, 0x5c, 0xa8, 0x4c, 0x79, 0x91, 0x52, 0x9f,
4397 0xb8, 0x06, 0x99, 0xd0,
4398 0xd4, 0x68, 0x8d, 0xfd, 0xb1, 0x42, 0xed, 0x61, 0xa9, 0x5b, 0x89, 0xce,
4399 0x33, 0x06, 0xbf, 0x97,
4400 0x80, 0xe1, 0xb9, 0x1b, 0x84, 0x8c, 0x8d, 0x20, 0x03, 0x97, 0x0e, 0x52,
4401 0x70, 0x2a, 0x1f, 0x61,
4402 0x2e, 0x2f, 0x40, 0x17, 0xcf, 0xe0, 0xa9, 0x1d, 0xb9, 0xe4, 0x6d, 0xb9,
4403 0xdc
4404};
4405static const uint8_t ac_rsassa_vect7_out[] = {
4406 0x00, 0x08, 0x0f, 0x77, 0x0a, 0x2d, 0x1f, 0x6a, 0xbf, 0x5f, 0x22, 0x1f,
4407 0x62, 0xe1, 0x66, 0xab,
4408 0xd7, 0x9d, 0x06, 0xc7, 0xb9, 0xa8, 0x78, 0xd6, 0x1b, 0x80, 0xfc, 0x4d,
4409 0x5b, 0xa2, 0x90, 0xb2,
4410 0x3a, 0xba, 0xab, 0x51, 0x8f, 0x09, 0x44, 0x7e, 0x45, 0xae, 0xe6, 0xf3,
4411 0xbd, 0x06, 0x10, 0x24,
4412 0x44, 0x36, 0xa4, 0x73, 0x01, 0x60, 0xe6, 0xa6, 0x72, 0x11, 0x0c, 0x01,
4413 0xae, 0xb5, 0x62, 0x4b,
4414 0x71, 0x8d, 0xc7, 0xc0, 0x86, 0x1e, 0x58, 0x6b, 0xa8, 0xb6, 0x0a, 0x29,
4415 0xd6, 0xa5, 0x75, 0x5c,
4416 0xd2, 0xcc, 0x50, 0x85, 0x99, 0xc6, 0xe2, 0x8d, 0x73, 0x55, 0xb2, 0x7e,
4417 0x40, 0xb7, 0x40, 0xc6,
4418 0xfb, 0xbb, 0xb1, 0xa9, 0x18, 0x23, 0xb1, 0xc1, 0x24, 0x2b, 0xa6, 0x93,
4419 0xd4, 0x52, 0x69, 0x51,
4420 0x47, 0xdb, 0xb2, 0x3e, 0xa8, 0x9c, 0xbf, 0x11, 0xeb, 0x8b, 0x07, 0xec,
4421 0x3a, 0x02, 0x7b, 0x0f,
4422 0x17
4423};
4424
4425/*
4426 * Test data from 186-2rsatestvectors.zip SigVet15_186-3.rsp with CRT
4427 * parameters created with:
4428 * http://sourceforge.net/projects/rsaconverter/
4429 */
4430
4431/* SigGen15_186-2.txt line 9 mod 1024 */
4432static const uint8_t ac_siggen15_186_2_modulus[] = {
4433 0xc8, 0xa2, 0x06, 0x91, 0x82, 0x39, 0x4a, 0x2a, 0xb7, 0xc3, 0xf4, 0x19,
4434 0x0c, 0x15, 0x58, 0x9c, 0x56, 0xa2, 0xd4, 0xbc, 0x42, 0xdc, 0xa6, 0x75,
4435 0xb3, 0x4c, 0xc9, 0x50, 0xe2, 0x46, 0x63, 0x04, 0x84, 0x41, 0xe8, 0xaa,
4436 0x59, 0x3b, 0x2b, 0xc5, 0x9e, 0x19, 0x8b, 0x8c, 0x25, 0x7e, 0x88, 0x21,
4437 0x20, 0xc6, 0x23, 0x36, 0xe5, 0xcc, 0x74, 0x50, 0x12, 0xc7, 0xff, 0xb0,
4438 0x63, 0xee, 0xbe, 0x53, 0xf3, 0xc6, 0x50, 0x4c, 0xba, 0x6c, 0xfe, 0x51,
4439 0xba, 0xa3, 0xb6, 0xd1, 0x07, 0x4b, 0x2f, 0x39, 0x81, 0x71, 0xf4, 0xb1,
4440 0x98, 0x2f, 0x4d, 0x65, 0xca, 0xf8, 0x82, 0xea, 0x4d, 0x56, 0xf3, 0x2a,
4441 0xb5, 0x7d, 0x0c, 0x44, 0xe6, 0xad, 0x4e, 0x9c, 0xf5, 0x7a, 0x43, 0x39,
4442 0xeb, 0x69, 0x62, 0x40, 0x6e, 0x35, 0x0c, 0x1b, 0x15, 0x39, 0x71, 0x83,
4443 0xfb, 0xf1, 0xf0, 0x35, 0x3c, 0x9f, 0xc9, 0x91
4444};
4445static const uint8_t ac_siggen15_186_2_pub_exp[] = {
4446 0x01, 0x00, 0x01
4447};
4448static const uint8_t ac_siggen15_186_2_priv_exp[] = {
4449 0x5d, 0xfc, 0xb1, 0x11, 0x07, 0x2d, 0x29, 0x56, 0x5b, 0xa1, 0xdb, 0x3e,
4450 0xc4, 0x8f, 0x57, 0x64, 0x5d, 0x9d, 0x88, 0x04, 0xed, 0x59, 0x8a, 0x4d,
4451 0x47, 0x02, 0x68, 0xa8, 0x90, 0x67, 0xa2, 0xc9, 0x21, 0xdf, 0xf2, 0x4b,
4452 0xa2, 0xe3, 0x7a, 0x3c, 0xe8, 0x34, 0x55, 0x50, 0x00, 0xdc, 0x86, 0x8e,
4453 0xe6, 0x58, 0x8b, 0x74, 0x93, 0x30, 0x35, 0x28, 0xb1, 0xb3, 0xa9, 0x4f,
4454 0x0b, 0x71, 0x73, 0x0c, 0xf1, 0xe8, 0x6f, 0xca, 0x5a, 0xee, 0xdc, 0x3a,
4455 0xfa, 0x16, 0xf6, 0x5c, 0x01, 0x89, 0xd8, 0x10, 0xdd, 0xcd, 0x81, 0x04,
4456 0x9e, 0xbb, 0xd0, 0x39, 0x18, 0x68, 0xc5, 0x0e, 0xde, 0xc9, 0x58, 0xb3,
4457 0xa2, 0xaa, 0xef, 0xf6, 0xa5, 0x75, 0x89, 0x7e, 0x2f, 0x20, 0xa3, 0xab,
4458 0x54, 0x55, 0xc1, 0xbf, 0xa5, 0x50, 0x10, 0xac, 0x51, 0xa7, 0x79, 0x9b,
4459 0x1f, 0xf8, 0x48, 0x36, 0x44, 0xa3, 0xd4, 0x25
4460};
4461static const uint8_t ac_siggen15_186_2_prime1[] = {
4462 0xF6, 0x6A, 0x24, 0x68, 0xB1, 0x48, 0x1A, 0x0D, 0x6B, 0x60, 0x49, 0x67,
4463 0xF0, 0x58, 0x03, 0x89, 0xD6, 0x06, 0x1F, 0x03, 0x3A, 0x9B, 0x57, 0xB7,
4464 0x4D, 0x1B, 0xEF, 0xE8, 0x10, 0x11, 0x98, 0x94, 0x5B, 0x80, 0x93, 0x04,
4465 0x24, 0x1D, 0x02, 0xFD, 0x5F, 0x92, 0x1F, 0xE9, 0x59, 0xFB, 0xEC, 0xDB,
4466 0x18, 0x00, 0x54, 0x86, 0x9A, 0xDB, 0x17, 0xD3, 0x21, 0xF9, 0xD5, 0xD5,
4467 0x98, 0x12, 0x3E, 0x73
4468};
4469static const uint8_t ac_siggen15_186_2_prime2[] = {
4470 0xD0, 0x6F, 0xFA, 0x56, 0x3B, 0xD0, 0xB8, 0xB9, 0x7F, 0x00, 0x72, 0xEA,
4471 0x07, 0x51, 0x03, 0xEC, 0x1F, 0xF0, 0xB1, 0x7F, 0xD6, 0xBD, 0xAF, 0x94,
4472 0xA7, 0x5A, 0xE6, 0x03, 0x59, 0x82, 0xF6, 0x80, 0x24, 0x9D, 0x77, 0xCC,
4473 0x15, 0x96, 0xA6, 0x54, 0xF1, 0x4C, 0x51, 0x7A, 0x13, 0xB9, 0x5F, 0x1A,
4474 0x8C, 0x5D, 0xE8, 0xCC, 0x84, 0xAD, 0x38, 0xD2, 0xE6, 0xAA, 0x4F, 0xCD,
4475 0x54, 0x1A, 0x32, 0xEB
4476};
4477static const uint8_t ac_siggen15_186_2_exp1[] = {
4478 0xD4, 0xD4, 0xB6, 0x9F, 0xCA, 0x47, 0x89, 0x60, 0xFF, 0xD6, 0x49, 0x70,
4479 0xC1, 0xD1, 0x73, 0x34, 0xF1, 0x2B, 0x96, 0x4B, 0xB6, 0xAA, 0x07, 0xA8,
4480 0x25, 0xAC, 0xB4, 0x98, 0xCE, 0x90, 0x34, 0x26, 0x27, 0xA6, 0x34, 0xD5,
4481 0x05, 0xD0, 0x1D, 0x0D, 0xF5, 0x27, 0x03, 0xF3, 0x0C, 0x2A, 0xA0, 0xD8,
4482 0x57, 0xB1, 0xA9, 0x50, 0x1D, 0x9E, 0x90, 0xC4, 0x66, 0x7B, 0x20, 0x6B,
4483 0x7D, 0x0E, 0x7C, 0xEB
4484};
4485static const uint8_t ac_siggen15_186_2_exp2[] = {
4486 0x28, 0x4F, 0xEF, 0xE7, 0xAB, 0xAB, 0xE3, 0x7E, 0x24, 0xBC, 0xEE, 0x7C,
4487 0xAA, 0xAB, 0x95, 0x89, 0x9E, 0x67, 0xCB, 0xBC, 0x80, 0xC8, 0xB0, 0xE3,
4488 0x9C, 0x36, 0x6D, 0x53, 0xEA, 0x84, 0xF4, 0xAD, 0xB5, 0xE7, 0x2A, 0x9B,
4489 0x32, 0xF5, 0xAE, 0xF7, 0xB0, 0xAF, 0x64, 0xF6, 0xAA, 0x47, 0xE8, 0xC7,
4490 0xD6, 0xAB, 0xF6, 0xF1, 0x4F, 0x1B, 0xBD, 0x68, 0xB4, 0xA9, 0xED, 0xC3,
4491 0x35, 0x67, 0xD7, 0xBF
4492};
4493static const uint8_t ac_siggen15_186_2_coeff[] = {
4494 0xE3, 0xBD, 0x88, 0x1C, 0x5A, 0x8F, 0x4A, 0xFC, 0xA0, 0x8C, 0xBC, 0x04,
4495 0x7C, 0xF0, 0xE3, 0x89, 0x7C, 0x85, 0x18, 0x9A, 0xF4, 0xF9, 0xA7, 0x00,
4496 0x93, 0x2C, 0xF4, 0x9E, 0x72, 0xF6, 0x44, 0x04, 0x39, 0x0D, 0xA5, 0x04,
4497 0x82, 0x79, 0xCE, 0x47, 0xF5, 0xAF, 0x58, 0x9B, 0x1B, 0xE9, 0xE4, 0x61,
4498 0xBB, 0xD8, 0xCC, 0x07, 0xAB, 0x8B, 0xC6, 0x8B, 0xAF, 0x6C, 0xC9, 0x13,
4499 0xB2, 0xE6, 0x26, 0x72
4500};
4501
4502/* SigGen15_186-2.txt line 13 SHA-1*/
4503#define ac_rsassa_vect8_modulus ac_siggen15_186_2_modulus
4504#define ac_rsassa_vect8_pub_exp ac_siggen15_186_2_pub_exp
4505#define ac_rsassa_vect8_priv_exp ac_siggen15_186_2_priv_exp
4506#define ac_rsassa_vect8_prime1 ac_siggen15_186_2_prime1
4507#define ac_rsassa_vect8_prime2 ac_siggen15_186_2_prime2
4508#define ac_rsassa_vect8_exp1 ac_siggen15_186_2_exp1
4509#define ac_rsassa_vect8_exp2 ac_siggen15_186_2_exp2
4510#define ac_rsassa_vect8_coeff ac_siggen15_186_2_coeff
4511static const uint8_t ac_rsassa_vect8_ptx[] = {
4512 0xe8, 0x31, 0x27, 0x42, 0xae, 0x23, 0xc4, 0x56, 0xef, 0x28, 0xa2, 0x31,
4513 0x42, 0xc4, 0x49, 0x08, 0x95, 0x83, 0x27, 0x65, 0xda, 0xdc, 0xe0, 0x2a,
4514 0xfe, 0x5b, 0xe5, 0xd3, 0x1b, 0x00, 0x48, 0xfb, 0xee, 0xe2, 0xcf, 0x21,
4515 0x8b, 0x17, 0x47, 0xad, 0x4f, 0xd8, 0x1a, 0x2e, 0x17, 0xe1, 0x24, 0xe6,
4516 0xaf, 0x17, 0xc3, 0x88, 0x8e, 0x6d, 0x2d, 0x40, 0xc0, 0x08, 0x07, 0xf4,
4517 0x23, 0xa2, 0x33, 0xca, 0xd6, 0x2c, 0xe9, 0xea, 0xef, 0xb7, 0x09, 0x85,
4518 0x6c, 0x94, 0xaf, 0x16, 0x6d, 0xba, 0x08, 0xe7, 0xa0, 0x69, 0x65, 0xd7,
4519 0xfc, 0x0d, 0x8e, 0x5c, 0xb2, 0x65, 0x59, 0xc4, 0x60, 0xe4, 0x7b, 0xc0,
4520 0x88, 0x58, 0x9d, 0x22, 0x42, 0xc9, 0xb3, 0xe6, 0x2d, 0xa4, 0x89, 0x6f,
4521 0xab, 0x19, 0x9e, 0x14, 0x4e, 0xc1, 0x36, 0xdb, 0x8d, 0x84, 0xab, 0x84,
4522 0xbc, 0xba, 0x04, 0xca, 0x3b, 0x90, 0xc8, 0xe5
4523};
4524static const uint8_t ac_rsassa_vect8_out[] = {
4525 0x28, 0x92, 0x8e, 0x19, 0xeb, 0x86, 0xf9, 0xc0, 0x00, 0x70, 0xa5, 0x9e,
4526 0xdf, 0x6b, 0xf8, 0x43, 0x3a, 0x45, 0xdf, 0x49, 0x5c, 0xd1, 0xc7, 0x36,
4527 0x13, 0xc2, 0x12, 0x98, 0x40, 0xf4, 0x8c, 0x4a, 0x2c, 0x24, 0xf1, 0x1d,
4528 0xf7, 0x9b, 0xc5, 0xc0, 0x78, 0x2b, 0xce, 0xdd, 0xe9, 0x7d, 0xbb, 0xb2,
4529 0xac, 0xc6, 0xe5, 0x12, 0xd1, 0x9f, 0x08, 0x50, 0x27, 0xcd, 0x57, 0x50,
4530 0x38, 0x45, 0x3d, 0x04, 0x90, 0x54, 0x13, 0xe9, 0x47, 0xe6, 0xe1, 0xdd,
4531 0xdb, 0xeb, 0x35, 0x35, 0xcd, 0xb3, 0xd8, 0x97, 0x1f, 0xe0, 0x20, 0x05,
4532 0x06, 0x94, 0x10, 0x56, 0xf2, 0x12, 0x43, 0x50, 0x3c, 0x83, 0xea, 0xdd,
4533 0xe0, 0x53, 0xed, 0x86, 0x6c, 0x0e, 0x02, 0x50, 0xbe, 0xdd, 0xd9, 0x27,
4534 0xa0, 0x82, 0x12, 0xaa, 0x8a, 0xc0, 0xef, 0xd6, 0x16, 0x31, 0xef, 0x89,
4535 0xd8, 0xd0, 0x49, 0xef, 0xb3, 0x6b, 0xb3, 0x5f
4536};
4537
4538/* SigGen15_186-2.txt line 54 SHA-224*/
4539#define ac_rsassa_vect16_modulus ac_siggen15_186_2_modulus
4540#define ac_rsassa_vect16_pub_exp ac_siggen15_186_2_pub_exp
4541#define ac_rsassa_vect16_priv_exp ac_siggen15_186_2_priv_exp
4542#define ac_rsassa_vect16_prime1 ac_siggen15_186_2_prime1
4543#define ac_rsassa_vect16_prime2 ac_siggen15_186_2_prime2
4544#define ac_rsassa_vect16_exp1 ac_siggen15_186_2_exp1
4545#define ac_rsassa_vect16_exp2 ac_siggen15_186_2_exp2
4546#define ac_rsassa_vect16_coeff ac_siggen15_186_2_coeff
4547static const uint8_t ac_rsassa_vect16_ptx[] = {
4548 0xe5, 0x67, 0xa3, 0x9a, 0xe4, 0xe5, 0xef, 0x9b, 0x68, 0x01, 0xea, 0x05,
4549 0x61, 0xb7, 0x2a, 0x5d, 0x4b, 0x5f, 0x38, 0x5f, 0x05, 0x32, 0xfc, 0x9f,
4550 0xe1, 0x0a, 0x75, 0x70, 0xf8, 0x69, 0xae, 0x05, 0xc0, 0xbd, 0xed, 0xd6,
4551 0xe0, 0xe2, 0x2d, 0x45, 0x42, 0xe9, 0xce, 0x82, 0x6a, 0x18, 0x8c, 0xac,
4552 0x07, 0x31, 0xae, 0x39, 0xc8, 0xf8, 0x7f, 0x97, 0x71, 0xef, 0x02, 0x13,
4553 0x2e, 0x64, 0xe2, 0xfb, 0x27, 0xad, 0xa8, 0xff, 0x54, 0xb3, 0x30, 0xdd,
4554 0x93, 0xad, 0x5e, 0x3e, 0xf8, 0x2e, 0x0d, 0xda, 0x64, 0x62, 0x48, 0xe3,
4555 0x59, 0x94, 0xbd, 0xa1, 0x0c, 0xf4, 0x6e, 0x5a, 0xbc, 0x98, 0xaa, 0x74,
4556 0x43, 0xc0, 0x3c, 0xdd, 0xeb, 0x5e, 0xe2, 0xab, 0x82, 0xd6, 0x01, 0x00,
4557 0xb1, 0x02, 0x96, 0x31, 0x89, 0x79, 0x70, 0x27, 0x5f, 0x11, 0x9d, 0x05,
4558 0xda, 0xa2, 0x22, 0x0a, 0x4a, 0x0d, 0xef, 0xba
4559};
4560static const uint8_t ac_rsassa_vect16_out[] = {
4561 0x5a, 0xa5, 0x03, 0x33, 0x81, 0xbd, 0xd0, 0xac, 0xce, 0x33, 0x2d, 0xd3,
4562 0x14, 0xda, 0xf0, 0x08, 0xac, 0xaa, 0x9e, 0x83, 0x5f, 0x83, 0x29, 0x79,
4563 0x89, 0x1d, 0x1b, 0xda, 0x2b, 0x55, 0xd5, 0xea, 0xe3, 0x5c, 0x47, 0x9c,
4564 0x06, 0xca, 0xc5, 0xbf, 0x33, 0xf4, 0x32, 0xc8, 0xc0, 0xa5, 0x54, 0x9d,
4565 0x1d, 0x1b, 0x29, 0xc5, 0xe2, 0x58, 0x90, 0x24, 0xd2, 0x78, 0x00, 0xa0,
4566 0xc2, 0x35, 0xa6, 0x15, 0x32, 0xc2, 0x03, 0xcb, 0xc4, 0x06, 0xac, 0x6e,
4567 0xcf, 0x63, 0xf5, 0x2a, 0xe7, 0x71, 0xb9, 0x7c, 0x08, 0xe4, 0xb1, 0x08,
4568 0xec, 0x91, 0x69, 0x00, 0xe5, 0xa1, 0x1b, 0x1d, 0x48, 0xcc, 0xa8, 0x6c,
4569 0xa5, 0xa5, 0xa7, 0x99, 0xed, 0x32, 0xe9, 0x9c, 0x81, 0x5c, 0xef, 0x04,
4570 0xcf, 0x8e, 0xb5, 0x52, 0x23, 0xbf, 0xd4, 0xd9, 0xc3, 0x44, 0x92, 0x64,
4571 0xb6, 0x00, 0x61, 0xbc, 0x36, 0x84, 0xbc, 0x82
4572};
4573
4574/* SigGen15_186-2.txt line 93 SHA-256 */
4575#define ac_rsassa_vect9_modulus ac_siggen15_186_2_modulus
4576#define ac_rsassa_vect9_pub_exp ac_siggen15_186_2_pub_exp
4577#define ac_rsassa_vect9_priv_exp ac_siggen15_186_2_priv_exp
4578#define ac_rsassa_vect9_prime1 ac_siggen15_186_2_prime1
4579#define ac_rsassa_vect9_prime2 ac_siggen15_186_2_prime2
4580#define ac_rsassa_vect9_exp1 ac_siggen15_186_2_exp1
4581#define ac_rsassa_vect9_exp2 ac_siggen15_186_2_exp2
4582#define ac_rsassa_vect9_coeff ac_siggen15_186_2_coeff
4583static const uint8_t ac_rsassa_vect9_ptx[] = {
4584 0xe5, 0x67, 0xa3, 0x9a, 0xe4, 0xe5, 0xef, 0x9b, 0x68, 0x01, 0xea, 0x05,
4585 0x61, 0xb7, 0x2a, 0x5d, 0x4b, 0x5f, 0x38, 0x5f, 0x05, 0x32, 0xfc, 0x9f,
4586 0xe1, 0x0a, 0x75, 0x70, 0xf8, 0x69, 0xae, 0x05, 0xc0, 0xbd, 0xed, 0xd6,
4587 0xe0, 0xe2, 0x2d, 0x45, 0x42, 0xe9, 0xce, 0x82, 0x6a, 0x18, 0x8c, 0xac,
4588 0x07, 0x31, 0xae, 0x39, 0xc8, 0xf8, 0x7f, 0x97, 0x71, 0xef, 0x02, 0x13,
4589 0x2e, 0x64, 0xe2, 0xfb, 0x27, 0xad, 0xa8, 0xff, 0x54, 0xb3, 0x30, 0xdd,
4590 0x93, 0xad, 0x5e, 0x3e, 0xf8, 0x2e, 0x0d, 0xda, 0x64, 0x62, 0x48, 0xe3,
4591 0x59, 0x94, 0xbd, 0xa1, 0x0c, 0xf4, 0x6e, 0x5a, 0xbc, 0x98, 0xaa, 0x74,
4592 0x43, 0xc0, 0x3c, 0xdd, 0xeb, 0x5e, 0xe2, 0xab, 0x82, 0xd6, 0x01, 0x00,
4593 0xb1, 0x02, 0x96, 0x31, 0x89, 0x79, 0x70, 0x27, 0x5f, 0x11, 0x9d, 0x05,
4594 0xda, 0xa2, 0x22, 0x0a, 0x4a, 0x0d, 0xef, 0xba
4595};
4596static const uint8_t ac_rsassa_vect9_out[] = {
4597 0x0e, 0x7c, 0xdd, 0x12, 0x1e, 0x40, 0x32, 0x3c, 0xa6, 0x11, 0x5d, 0x1e,
4598 0xc6, 0xd1, 0xf9, 0x56, 0x17, 0x38, 0x45, 0x5f, 0x0e, 0x9e, 0x1c, 0xd8,
4599 0x58, 0xe8, 0xb5, 0x66, 0xae, 0x2d, 0xa5, 0xe8, 0xee, 0x63, 0xd8, 0xf1,
4600 0x5c, 0x3c, 0xdd, 0x88, 0x02, 0x7e, 0x13, 0x40, 0x6d, 0xb6, 0x09, 0x36,
4601 0x9c, 0x88, 0xca, 0x99, 0xb3, 0x4f, 0xa1, 0x56, 0xc7, 0xee, 0x62, 0xbc,
4602 0x5a, 0x39, 0x23, 0xbb, 0x5a, 0x1e, 0xda, 0xbd, 0x45, 0xc1, 0xa4, 0x22,
4603 0xaa, 0xfc, 0xbb, 0x47, 0xe0, 0x94, 0x7f, 0x35, 0xcf, 0xef, 0x87, 0x97,
4604 0x0b, 0x4b, 0x71, 0x31, 0x62, 0xb2, 0x19, 0x16, 0xca, 0xfb, 0x8c, 0x86,
4605 0x4a, 0x3e, 0x5b, 0x9f, 0xfc, 0x98, 0x94, 0x01, 0xd4, 0xea, 0xe9, 0x92,
4606 0x31, 0x2a, 0x32, 0xc5, 0xbc, 0x88, 0xab, 0xbb, 0x45, 0xf9, 0x9a, 0xc8,
4607 0x85, 0xb5, 0x4d, 0x6b, 0x8e, 0x61, 0xb6, 0xec
4608};
4609
Gabor Szekely2ad190f2018-09-14 14:05:06 +00004610/* SigGen15_186-2.txt line 93 SHA-256 without ASN.1 */
4611#define ac_rsassa_vect20_modulus ac_siggen15_186_2_modulus
4612#define ac_rsassa_vect20_pub_exp ac_siggen15_186_2_pub_exp
4613#define ac_rsassa_vect20_priv_exp ac_siggen15_186_2_priv_exp
4614#define ac_rsassa_vect20_prime1 ac_siggen15_186_2_prime1
4615#define ac_rsassa_vect20_prime2 ac_siggen15_186_2_prime2
4616#define ac_rsassa_vect20_exp1 ac_siggen15_186_2_exp1
4617#define ac_rsassa_vect20_exp2 ac_siggen15_186_2_exp2
4618#define ac_rsassa_vect20_coeff ac_siggen15_186_2_coeff
4619static const uint8_t ac_rsassa_vect20_ptx[] = {
4620 0xe5, 0x67, 0xa3, 0x9a, 0xe4, 0xe5, 0xef, 0x9b, 0x68, 0x01, 0xea, 0x05,
4621 0x61, 0xb7, 0x2a, 0x5d, 0x4b, 0x5f, 0x38, 0x5f, 0x05, 0x32, 0xfc, 0x9f,
4622 0xe1, 0x0a, 0x75, 0x70, 0xf8, 0x69, 0xae, 0x05, 0xc0, 0xbd, 0xed, 0xd6,
4623 0xe0, 0xe2, 0x2d, 0x45, 0x42, 0xe9, 0xce, 0x82, 0x6a, 0x18, 0x8c, 0xac,
4624 0x07, 0x31, 0xae, 0x39, 0xc8, 0xf8, 0x7f, 0x97, 0x71, 0xef, 0x02, 0x13,
4625 0x2e, 0x64, 0xe2, 0xfb, 0x27, 0xad, 0xa8, 0xff, 0x54, 0xb3, 0x30, 0xdd,
4626 0x93, 0xad, 0x5e, 0x3e, 0xf8, 0x2e, 0x0d, 0xda, 0x64, 0x62, 0x48, 0xe3,
4627 0x59, 0x94, 0xbd, 0xa1, 0x0c, 0xf4, 0x6e, 0x5a, 0xbc, 0x98, 0xaa, 0x74,
4628 0x43, 0xc0, 0x3c, 0xdd, 0xeb, 0x5e, 0xe2, 0xab, 0x82, 0xd6, 0x01, 0x00,
4629 0xb1, 0x02, 0x96, 0x31, 0x89, 0x79, 0x70, 0x27, 0x5f, 0x11, 0x9d, 0x05,
4630 0xda, 0xa2, 0x22, 0x0a, 0x4a, 0x0d, 0xef, 0xba
4631};
4632static const uint8_t ac_rsassa_vect20_out[] = {
4633 0xbe, 0x03, 0x14, 0xbb, 0x4e, 0x73, 0xae, 0xa0, 0x8c, 0x3b, 0xd3, 0x47,
4634 0xc5, 0x71, 0x81, 0x6a, 0xb6, 0x0d, 0xc8, 0xd4, 0xbd, 0x6d, 0x8e, 0x5c,
4635 0xa3, 0x59, 0xd7, 0x31, 0xb3, 0x44, 0xa8, 0x17, 0x09, 0xc5, 0x00, 0x96,
4636 0x1a, 0xaa, 0x8b, 0xb2, 0xb4, 0xdc, 0x63, 0xda, 0xa2, 0x66, 0xe1, 0xf6,
4637 0xbb, 0x73, 0xb3, 0x03, 0x6d, 0x9a, 0x2d, 0x65, 0x9e, 0x10, 0x9c, 0x0c,
4638 0x46, 0xa3, 0xf4, 0xd3, 0x91, 0x23, 0x6d, 0x40, 0xb5, 0x0d, 0xd3, 0x31,
4639 0xea, 0xd3, 0x0d, 0x22, 0xf5, 0xfc, 0xfa, 0x8d, 0x67, 0x08, 0x65, 0x76,
4640 0xd4, 0x41, 0x24, 0xd6, 0x74, 0x2b, 0xfe, 0x44, 0xe5, 0x88, 0xde, 0x28,
4641 0xca, 0x2f, 0xb8, 0xd1, 0xc8, 0xb4, 0x65, 0xb3, 0x8a, 0x4e, 0x1d, 0xdd,
4642 0x43, 0x80, 0x68, 0x72, 0xf7, 0x52, 0x46, 0x56, 0xa0, 0x9e, 0x1d, 0x76,
4643 0x89, 0xee, 0x20, 0x71, 0x66, 0xd1, 0x19, 0xb7
4644};
4645
Pascal Brandc639ac82015-07-02 08:53:34 +02004646/* SigGen15_186-2.txt line 133 SHA-384*/
4647#define ac_rsassa_vect10_modulus ac_siggen15_186_2_modulus
4648#define ac_rsassa_vect10_pub_exp ac_siggen15_186_2_pub_exp
4649#define ac_rsassa_vect10_priv_exp ac_siggen15_186_2_priv_exp
4650#define ac_rsassa_vect10_prime1 ac_siggen15_186_2_prime1
4651#define ac_rsassa_vect10_prime2 ac_siggen15_186_2_prime2
4652#define ac_rsassa_vect10_exp1 ac_siggen15_186_2_exp1
4653#define ac_rsassa_vect10_exp2 ac_siggen15_186_2_exp2
4654#define ac_rsassa_vect10_coeff ac_siggen15_186_2_coeff
4655static const uint8_t ac_rsassa_vect10_ptx[] = {
4656 0xe5, 0x67, 0xa3, 0x9a, 0xe4, 0xe5, 0xef, 0x9b, 0x68, 0x01, 0xea, 0x05,
4657 0x61, 0xb7, 0x2a, 0x5d, 0x4b, 0x5f, 0x38, 0x5f, 0x05, 0x32, 0xfc, 0x9f,
4658 0xe1, 0x0a, 0x75, 0x70, 0xf8, 0x69, 0xae, 0x05, 0xc0, 0xbd, 0xed, 0xd6,
4659 0xe0, 0xe2, 0x2d, 0x45, 0x42, 0xe9, 0xce, 0x82, 0x6a, 0x18, 0x8c, 0xac,
4660 0x07, 0x31, 0xae, 0x39, 0xc8, 0xf8, 0x7f, 0x97, 0x71, 0xef, 0x02, 0x13,
4661 0x2e, 0x64, 0xe2, 0xfb, 0x27, 0xad, 0xa8, 0xff, 0x54, 0xb3, 0x30, 0xdd,
4662 0x93, 0xad, 0x5e, 0x3e, 0xf8, 0x2e, 0x0d, 0xda, 0x64, 0x62, 0x48, 0xe3,
4663 0x59, 0x94, 0xbd, 0xa1, 0x0c, 0xf4, 0x6e, 0x5a, 0xbc, 0x98, 0xaa, 0x74,
4664 0x43, 0xc0, 0x3c, 0xdd, 0xeb, 0x5e, 0xe2, 0xab, 0x82, 0xd6, 0x01, 0x00,
4665 0xb1, 0x02, 0x96, 0x31, 0x89, 0x79, 0x70, 0x27, 0x5f, 0x11, 0x9d, 0x05,
4666 0xda, 0xa2, 0x22, 0x0a, 0x4a, 0x0d, 0xef, 0xba
4667};
4668static const uint8_t ac_rsassa_vect10_out[] = {
4669 0x16, 0x89, 0xa8, 0x52, 0x39, 0x19, 0xac, 0x77, 0xcc, 0x99, 0x7e, 0xbc,
4670 0x59, 0xcb, 0x90, 0x88, 0x72, 0xd8, 0x8b, 0x28, 0x55, 0xa3, 0x09, 0xea,
4671 0xd2, 0x77, 0x9b, 0x88, 0x8b, 0x22, 0xb4, 0x23, 0x2d, 0xa9, 0xb9, 0x3b,
4672 0xb1, 0x9b, 0x32, 0xc1, 0xdb, 0x77, 0xad, 0x73, 0x8c, 0x6e, 0x43, 0x36,
4673 0x1e, 0x9e, 0xb6, 0xb1, 0xa3, 0x7c, 0x49, 0xa8, 0xf3, 0xc7, 0xc7, 0xae,
4674 0x7e, 0x78, 0x4d, 0x19, 0xa6, 0x21, 0x38, 0x74, 0x12, 0x93, 0xe4, 0x9b,
4675 0x18, 0x31, 0xc0, 0xc3, 0x61, 0x7e, 0xb4, 0x3c, 0x56, 0x70, 0x6d, 0x83,
4676 0x31, 0x49, 0x53, 0x47, 0x06, 0x36, 0x44, 0x10, 0x86, 0x41, 0x9a, 0xb9,
4677 0xe6, 0xfd, 0x1e, 0xc4, 0xf9, 0xd5, 0xcc, 0x65, 0x44, 0x81, 0x5d, 0x1e,
4678 0x02, 0xed, 0x96, 0xa3, 0xae, 0x64, 0xc6, 0x99, 0x8b, 0x2c, 0xf2, 0x38,
4679 0xe7, 0x9a, 0x12, 0x16, 0x43, 0x52, 0xd1, 0x2a
4680};
4681
4682/* SigGen15_186-2.txt line 173 SHA-512*/
4683#define ac_rsassa_vect11_modulus ac_siggen15_186_2_modulus
4684#define ac_rsassa_vect11_pub_exp ac_siggen15_186_2_pub_exp
4685#define ac_rsassa_vect11_priv_exp ac_siggen15_186_2_priv_exp
4686#define ac_rsassa_vect11_prime1 ac_siggen15_186_2_prime1
4687#define ac_rsassa_vect11_prime2 ac_siggen15_186_2_prime2
4688#define ac_rsassa_vect11_exp1 ac_siggen15_186_2_exp1
4689#define ac_rsassa_vect11_exp2 ac_siggen15_186_2_exp2
4690#define ac_rsassa_vect11_coeff ac_siggen15_186_2_coeff
4691static const uint8_t ac_rsassa_vect11_ptx[] = {
4692 0xe5, 0x67, 0xa3, 0x9a, 0xe4, 0xe5, 0xef, 0x9b, 0x68, 0x01, 0xea, 0x05,
4693 0x61, 0xb7, 0x2a, 0x5d, 0x4b, 0x5f, 0x38, 0x5f, 0x05, 0x32, 0xfc, 0x9f,
4694 0xe1, 0x0a, 0x75, 0x70, 0xf8, 0x69, 0xae, 0x05, 0xc0, 0xbd, 0xed, 0xd6,
4695 0xe0, 0xe2, 0x2d, 0x45, 0x42, 0xe9, 0xce, 0x82, 0x6a, 0x18, 0x8c, 0xac,
4696 0x07, 0x31, 0xae, 0x39, 0xc8, 0xf8, 0x7f, 0x97, 0x71, 0xef, 0x02, 0x13,
4697 0x2e, 0x64, 0xe2, 0xfb, 0x27, 0xad, 0xa8, 0xff, 0x54, 0xb3, 0x30, 0xdd,
4698 0x93, 0xad, 0x5e, 0x3e, 0xf8, 0x2e, 0x0d, 0xda, 0x64, 0x62, 0x48, 0xe3,
4699 0x59, 0x94, 0xbd, 0xa1, 0x0c, 0xf4, 0x6e, 0x5a, 0xbc, 0x98, 0xaa, 0x74,
4700 0x43, 0xc0, 0x3c, 0xdd, 0xeb, 0x5e, 0xe2, 0xab, 0x82, 0xd6, 0x01, 0x00,
4701 0xb1, 0x02, 0x96, 0x31, 0x89, 0x79, 0x70, 0x27, 0x5f, 0x11, 0x9d, 0x05,
4702 0xda, 0xa2, 0x22, 0x0a, 0x4a, 0x0d, 0xef, 0xba
4703};
4704static const uint8_t ac_rsassa_vect11_out[] = {
4705 0xbf, 0x3f, 0xf2, 0xc6, 0x96, 0x75, 0xf1, 0xb8, 0xed, 0x42, 0x10, 0x21,
4706 0x80, 0x1f, 0xb4, 0xce, 0x29, 0xa7, 0x57, 0xf7, 0xf8, 0x86, 0x9c, 0xe4,
4707 0x36, 0xd0, 0xd7, 0x5a, 0xb7, 0x49, 0xef, 0xc8, 0xb9, 0x03, 0xd9, 0xf9,
4708 0xcb, 0x21, 0x46, 0x86, 0x14, 0x7f, 0x12, 0xf3, 0x33, 0x5f, 0xa9, 0x36,
4709 0x68, 0x9c, 0x19, 0x2f, 0x31, 0x0a, 0xe3, 0xc5, 0xd7, 0x54, 0x93, 0xf4,
4710 0x4b, 0x24, 0xbc, 0x1c, 0xd3, 0x50, 0x15, 0x84, 0xaa, 0xa5, 0x00, 0x4b,
4711 0x65, 0xa8, 0x71, 0x6d, 0x1e, 0xda, 0x72, 0x40, 0xad, 0x8a, 0x52, 0x9d,
4712 0x5a, 0x0c, 0xf1, 0x69, 0xf4, 0x05, 0x4b, 0x45, 0x0e, 0x07, 0x6e, 0xe0,
4713 0xd4, 0x1a, 0x00, 0x11, 0xc5, 0x57, 0xaa, 0x69, 0xa8, 0x4a, 0x81, 0x04,
4714 0xc9, 0x09, 0x20, 0x1d, 0x60, 0xfe, 0x39, 0xc7, 0x9e, 0x68, 0x43, 0x47,
4715 0xef, 0x4d, 0x14, 0x4e, 0xa1, 0x8f, 0x7a, 0x4e
4716};
4717
4718
4719/* SigGenPSS_186-2.txt line 9 mod 1024 */
4720static const uint8_t ac_siggenpss_186_2_modulus[] = {
4721 0xbc, 0xb4, 0x7b, 0x2e, 0x0d, 0xaf, 0xcb, 0xa8, 0x1f, 0xf2, 0xa2, 0xb5,
4722 0xcb, 0x11, 0x5c, 0xa7, 0xe7, 0x57, 0x18, 0x4c, 0x9d, 0x72, 0xbc, 0xdc,
4723 0xda, 0x70, 0x7a, 0x14, 0x6b, 0x3b, 0x4e, 0x29, 0x98, 0x9d, 0xdc, 0x66,
4724 0x0b, 0xd6, 0x94, 0x86, 0x5b, 0x93, 0x2b, 0x71, 0xca, 0x24, 0xa3, 0x35,
4725 0xcf, 0x4d, 0x33, 0x9c, 0x71, 0x91, 0x83, 0xe6, 0x22, 0x2e, 0x4c, 0x9e,
4726 0xa6, 0x87, 0x5a, 0xcd, 0x52, 0x8a, 0x49, 0xba, 0x21, 0x86, 0x3f, 0xe0,
4727 0x81, 0x47, 0xc3, 0xa4, 0x7e, 0x41, 0x99, 0x0b, 0x51, 0xa0, 0x3f, 0x77,
4728 0xd2, 0x21, 0x37, 0xf8, 0xd7, 0x4c, 0x43, 0xa5, 0xa4, 0x5f, 0x4e, 0x9e,
4729 0x18, 0xa2, 0xd1, 0x5d, 0xb0, 0x51, 0xdc, 0x89, 0x38, 0x5d, 0xb9, 0xcf,
4730 0x83, 0x74, 0xb6, 0x3a, 0x8c, 0xc8, 0x81, 0x13, 0x71, 0x0e, 0x6d, 0x81,
4731 0x79, 0x07, 0x5b, 0x7d, 0xc7, 0x9e, 0xe7, 0x6b
4732};
4733static const uint8_t ac_siggenpss_186_2_pub_exp[] = {
4734 0x01, 0x00, 0x01
4735};
4736static const uint8_t ac_siggenpss_186_2_priv_exp[] = {
4737 0x38, 0x3a, 0x6f, 0x19, 0xe1, 0xea, 0x27, 0xfd, 0x08, 0xc7, 0xfb, 0xc3,
4738 0xbf, 0xa6, 0x84, 0xbd, 0x63, 0x29, 0x88, 0x8c, 0x0b, 0xbe, 0x4c, 0x98,
4739 0x62, 0x5e, 0x71, 0x81, 0xf4, 0x11, 0xcf, 0xd0, 0x85, 0x31, 0x44, 0xa3,
4740 0x03, 0x94, 0x04, 0xdd, 0xa4, 0x1b, 0xce, 0x2e, 0x31, 0xd5, 0x88, 0xec,
4741 0x57, 0xc0, 0xe1, 0x48, 0x14, 0x6f, 0x0f, 0xa6, 0x5b, 0x39, 0x00, 0x8b,
4742 0xa5, 0x83, 0x5f, 0x82, 0x9b, 0xa3, 0x5a, 0xe2, 0xf1, 0x55, 0xd6, 0x1b,
4743 0x8a, 0x12, 0x58, 0x1b, 0x99, 0xc9, 0x27, 0xfd, 0x2f, 0x22, 0x25, 0x2c,
4744 0x5e, 0x73, 0xcb, 0xa4, 0xa6, 0x10, 0xdb, 0x39, 0x73, 0xe0, 0x19, 0xee,
4745 0x0f, 0x95, 0x13, 0x0d, 0x43, 0x19, 0xed, 0x41, 0x34, 0x32, 0xf2, 0xe5,
4746 0xe2, 0x0d, 0x52, 0x15, 0xcd, 0xd2, 0x7c, 0x21, 0x64, 0x20, 0x6b, 0x3f,
4747 0x80, 0xed, 0xee, 0x51, 0x93, 0x8a, 0x25, 0xc1
4748};
4749static const uint8_t ac_siggenpss_186_2_prime1[] = {
4750 0xE5, 0x56, 0x3B, 0x14, 0x5D, 0xB6, 0xFF, 0x5A, 0x16, 0x28, 0x0D, 0x3E,
4751 0x80, 0xEF, 0xF0, 0x2F, 0x18, 0x1D, 0xBD, 0x03, 0x32, 0x4E, 0xF2, 0x47,
4752 0xF5, 0x96, 0xA4, 0xD4, 0xA7, 0xB8, 0xDA, 0xA3, 0x2B, 0x99, 0x34, 0xE3,
4753 0xC7, 0xF4, 0xDC, 0xF6, 0xA3, 0x10, 0x54, 0x62, 0xDE, 0xC6, 0x38, 0x39,
4754 0x63, 0x86, 0x18, 0x41, 0x8B, 0x51, 0xDB, 0x02, 0x69, 0x3F, 0xAB, 0xB4,
4755 0xE6, 0x83, 0x87, 0x25
4756};
4757static const uint8_t ac_siggenpss_186_2_prime2[] = {
4758 0xD2, 0xA4, 0xEC, 0x0F, 0xA2, 0x22, 0x6C, 0xDE, 0x82, 0xDA, 0x77, 0x65,
4759 0x3B, 0x07, 0x2C, 0xD0, 0x98, 0x53, 0x5D, 0x3E, 0x90, 0xED, 0x4D, 0x72,
4760 0x24, 0xDC, 0xB8, 0xCB, 0x8B, 0x93, 0x14, 0x76, 0x8D, 0xC5, 0x17, 0xE2,
4761 0x2D, 0x7C, 0x8F, 0xA1, 0x3F, 0x25, 0x3D, 0xAA, 0x74, 0x65, 0xA7, 0x99,
4762 0x56, 0x09, 0x8A, 0xA4, 0xCC, 0x3A, 0x6E, 0x35, 0xE8, 0xB1, 0xFC, 0xC4,
4763 0xF9, 0x7E, 0x77, 0x4F
4764};
4765static const uint8_t ac_siggenpss_186_2_exp1[] = {
4766 0x1F, 0x6A, 0xCA, 0xB9, 0x25, 0x85, 0x76, 0x41, 0xCF, 0x1B, 0x39, 0x85,
4767 0x40, 0x80, 0x9E, 0x34, 0xB5, 0x67, 0x0D, 0x87, 0xAC, 0x92, 0xA8, 0x1A,
4768 0x37, 0x88, 0xA5, 0x98, 0x04, 0x4A, 0x0C, 0x99, 0xA1, 0xD5, 0x61, 0x2B,
4769 0x7B, 0x2F, 0x0E, 0x3E, 0x33, 0x64, 0x7F, 0x4A, 0xF4, 0x1D, 0xCF, 0x81,
4770 0xFD, 0x22, 0x57, 0x9C, 0x53, 0x0B, 0xA9, 0xA7, 0x10, 0xE8, 0x0A, 0x0B,
4771 0xC4, 0x30, 0x6C, 0x89
4772};
4773static const uint8_t ac_siggenpss_186_2_exp2[] = {
4774 0x59, 0xF2, 0x84, 0xBE, 0xD4, 0x3C, 0x21, 0x03, 0x0F, 0x1B, 0x5C, 0xDA,
4775 0x84, 0x4F, 0x37, 0x0A, 0xC7, 0xD0, 0xE9, 0x43, 0x3B, 0x3D, 0xA9, 0xD1,
4776 0x70, 0xFE, 0x33, 0x86, 0xEF, 0x4D, 0xD9, 0xF2, 0x19, 0xED, 0xAC, 0x9A,
4777 0x2F, 0x54, 0x3E, 0x3C, 0xDB, 0xAA, 0xFA, 0x5F, 0x1C, 0x1F, 0x00, 0x67,
4778 0x50, 0xBE, 0xF8, 0x4E, 0x10, 0xCB, 0x6E, 0x9E, 0x64, 0x84, 0x04, 0x6C,
4779 0xD4, 0x20, 0xF5, 0xAF
4780};
4781static const uint8_t ac_siggenpss_186_2_coeff[] = {
4782 0x83, 0x5F, 0xC1, 0xB6, 0x52, 0x1C, 0x83, 0xE7, 0x6F, 0x80, 0x64, 0xFF,
4783 0xF8, 0x38, 0x80, 0xE1, 0xC9, 0x8F, 0x81, 0x13, 0x1E, 0xE8, 0x6E, 0x5D,
4784 0xF8, 0x57, 0x6A, 0xDA, 0x7D, 0x75, 0xC2, 0x6F, 0x8D, 0xB8, 0xBA, 0x8B,
4785 0x46, 0xF4, 0x6C, 0x69, 0xA5, 0x9D, 0xC5, 0xF2, 0x11, 0x8A, 0x9A, 0x90,
4786 0x8E, 0xC0, 0x8F, 0x45, 0xB0, 0x50, 0x4D, 0x2A, 0x42, 0x86, 0x49, 0x5E,
4787 0x2A, 0x1B, 0x78, 0x2E
4788};
4789/* Salt: 6f2841166a64471d4f0b8ed0dbb7db32161da13b */
4790#define ac_siggenpss_186_2_salt_len 20
4791
4792
4793/* SigGen15_186-2.txt line 173 SHA-1 */
4794#define ac_rsassa_vect12_modulus ac_siggenpss_186_2_modulus
4795#define ac_rsassa_vect12_pub_exp ac_siggenpss_186_2_pub_exp
4796#define ac_rsassa_vect12_priv_exp ac_siggenpss_186_2_priv_exp
4797#define ac_rsassa_vect12_prime1 ac_siggenpss_186_2_prime1
4798#define ac_rsassa_vect12_prime2 ac_siggenpss_186_2_prime2
4799#define ac_rsassa_vect12_exp1 ac_siggenpss_186_2_exp1
4800#define ac_rsassa_vect12_exp2 ac_siggenpss_186_2_exp2
4801#define ac_rsassa_vect12_coeff ac_siggenpss_186_2_coeff
4802#define ac_rsassa_vect12_salt_len ac_siggenpss_186_2_salt_len
4803static const uint8_t ac_rsassa_vect12_ptx[] = {
4804 0x12, 0x48, 0xf6, 0x2a, 0x43, 0x89, 0xf4, 0x2f, 0x7b, 0x4b, 0xb1, 0x31,
4805 0x05, 0x3d, 0x6c, 0x88, 0xa9, 0x94, 0xdb, 0x20, 0x75, 0xb9, 0x12, 0xcc,
4806 0xbe, 0x3e, 0xa7, 0xdc, 0x61, 0x17, 0x14, 0xf1, 0x4e, 0x07, 0x5c, 0x10,
4807 0x48, 0x58, 0xf2, 0xf6, 0xe6, 0xcf, 0xd6, 0xab, 0xde, 0xdf, 0x01, 0x5a,
4808 0x82, 0x1d, 0x03, 0x60, 0x8b, 0xf4, 0xeb, 0xa3, 0x16, 0x9a, 0x67, 0x25,
4809 0xec, 0x42, 0x2c, 0xd9, 0x06, 0x94, 0x98, 0xb5, 0x51, 0x5a, 0x96, 0x08,
4810 0xae, 0x7c, 0xc3, 0x0e, 0x3d, 0x2e, 0xcf, 0xc1, 0xdb, 0x68, 0x25, 0xf3,
4811 0xe9, 0x96, 0xce, 0x9a, 0x50, 0x92, 0x92, 0x6b, 0xc1, 0xcf, 0x61, 0xaa,
4812 0x42, 0xd7, 0xf2, 0x40, 0xe6, 0xf7, 0xaa, 0x0e, 0xdb, 0x38, 0xbf, 0x81,
4813 0xaa, 0x92, 0x9d, 0x66, 0xbb, 0x5d, 0x89, 0x00, 0x18, 0x08, 0x84, 0x58,
4814 0x72, 0x0d, 0x72, 0xd5, 0x69, 0x24, 0x7b, 0x0c
4815};
4816static const uint8_t ac_rsassa_vect12_out[] = {
4817 0x68, 0x2c, 0xf5, 0x3c, 0x11, 0x45, 0xd2, 0x2a, 0x50, 0xca, 0xa9, 0xeb,
4818 0x1a, 0x9b, 0xa7, 0x06, 0x70, 0xc5, 0x91, 0x5e, 0x0f, 0xdf, 0xde, 0x64,
4819 0x57, 0xa7, 0x65, 0xde, 0x2a, 0x8f, 0xe1, 0x2d, 0xe9, 0x79, 0x41, 0x72,
4820 0xa7, 0x8d, 0x14, 0xe6, 0x68, 0xd4, 0x98, 0xac, 0xed, 0xad, 0x61, 0x65,
4821 0x04, 0xbb, 0x17, 0x64, 0xd0, 0x94, 0x60, 0x70, 0x70, 0x08, 0x05, 0x92,
4822 0xc3, 0xa6, 0x9c, 0x34, 0x3d, 0x98, 0x2b, 0xd7, 0x78, 0x65, 0x87, 0x3d,
4823 0x35, 0xe2, 0x48, 0x22, 0xca, 0xf4, 0x34, 0x43, 0xcc, 0x10, 0x24, 0x9a,
4824 0xf6, 0xa1, 0xe2, 0x6e, 0xf3, 0x44, 0xf2, 0x8b, 0x9e, 0xf6, 0xf1, 0x4e,
4825 0x09, 0xad, 0x83, 0x97, 0x48, 0xe5, 0x14, 0x8b, 0xcc, 0xeb, 0x0f, 0xd2,
4826 0xaa, 0x63, 0x70, 0x9c, 0xb4, 0x89, 0x75, 0xcb, 0xf9, 0xc7, 0xb4, 0x9a,
4827 0xbc, 0x66, 0xa1, 0xdc, 0x6c, 0xb5, 0xb3, 0x1a
4828};
4829
4830/* SigGenPSS_186-2.txt line 66 SHA-224 */
4831#define ac_rsassa_vect17_modulus ac_siggenpss_186_2_modulus
4832#define ac_rsassa_vect17_pub_exp ac_siggenpss_186_2_pub_exp
4833#define ac_rsassa_vect17_priv_exp ac_siggenpss_186_2_priv_exp
4834#define ac_rsassa_vect17_prime1 ac_siggenpss_186_2_prime1
4835#define ac_rsassa_vect17_prime2 ac_siggenpss_186_2_prime2
4836#define ac_rsassa_vect17_exp1 ac_siggenpss_186_2_exp1
4837#define ac_rsassa_vect17_exp2 ac_siggenpss_186_2_exp2
4838#define ac_rsassa_vect17_coeff ac_siggenpss_186_2_coeff
4839#define ac_rsassa_vect17_salt_len ac_siggenpss_186_2_salt_len
4840static const uint8_t ac_rsassa_vect17_ptx[] = {
4841 0x12, 0x48, 0xf6, 0x2a, 0x43, 0x89, 0xf4, 0x2f, 0x7b, 0x4b, 0xb1, 0x31,
4842 0x05, 0x3d, 0x6c, 0x88, 0xa9, 0x94, 0xdb, 0x20, 0x75, 0xb9, 0x12, 0xcc,
4843 0xbe, 0x3e, 0xa7, 0xdc, 0x61, 0x17, 0x14, 0xf1, 0x4e, 0x07, 0x5c, 0x10,
4844 0x48, 0x58, 0xf2, 0xf6, 0xe6, 0xcf, 0xd6, 0xab, 0xde, 0xdf, 0x01, 0x5a,
4845 0x82, 0x1d, 0x03, 0x60, 0x8b, 0xf4, 0xeb, 0xa3, 0x16, 0x9a, 0x67, 0x25,
4846 0xec, 0x42, 0x2c, 0xd9, 0x06, 0x94, 0x98, 0xb5, 0x51, 0x5a, 0x96, 0x08,
4847 0xae, 0x7c, 0xc3, 0x0e, 0x3d, 0x2e, 0xcf, 0xc1, 0xdb, 0x68, 0x25, 0xf3,
4848 0xe9, 0x96, 0xce, 0x9a, 0x50, 0x92, 0x92, 0x6b, 0xc1, 0xcf, 0x61, 0xaa,
4849 0x42, 0xd7, 0xf2, 0x40, 0xe6, 0xf7, 0xaa, 0x0e, 0xdb, 0x38, 0xbf, 0x81,
4850 0xaa, 0x92, 0x9d, 0x66, 0xbb, 0x5d, 0x89, 0x00, 0x18, 0x08, 0x84, 0x58,
4851 0x72, 0x0d, 0x72, 0xd5, 0x69, 0x24, 0x7b, 0x0c,
4852};
4853static const uint8_t ac_rsassa_vect17_out[] = {
4854 0x53, 0xd8, 0x59, 0xc9, 0xf1, 0x0a, 0xbf, 0x1c, 0x00, 0x28, 0x4a, 0x4b,
4855 0x55, 0xbf, 0x2b, 0xd8, 0x4d, 0x8e, 0x31, 0x3b, 0x4f, 0x3c, 0x35, 0xb8,
4856 0xde, 0xc7, 0xbc, 0x3a, 0xfe, 0x39, 0xb9, 0xb8, 0xa1, 0x55, 0x41, 0x8e,
4857 0xad, 0x19, 0x31, 0x89, 0x57, 0x69, 0xce, 0x23, 0x40, 0xbe, 0x20, 0x91,
4858 0xf2, 0x38, 0x5b, 0xbc, 0xf1, 0x0d, 0x9e, 0x92, 0xbc, 0xf5, 0xd0, 0xe2,
4859 0x96, 0x0d, 0x10, 0xe7, 0x92, 0xe7, 0xd8, 0x65, 0xc6, 0x4e, 0x50, 0xd1,
4860 0x9f, 0xfa, 0x13, 0xe5, 0x28, 0x17, 0xd7, 0xd8, 0xd8, 0xdb, 0x34, 0x39,
4861 0x2c, 0x23, 0x74, 0xa2, 0xe9, 0xb6, 0x91, 0x84, 0xf9, 0x2a, 0x4a, 0xd9,
4862 0xb1, 0xb8, 0xba, 0xe9, 0x9c, 0xa6, 0x14, 0xd2, 0x04, 0xb6, 0x5a, 0x43,
4863 0x8e, 0x38, 0xdb, 0xbf, 0xc8, 0xc7, 0xcc, 0x44, 0xed, 0x56, 0x77, 0xaf,
4864 0x70, 0xce, 0x6c, 0x4f, 0x95, 0x1f, 0x02, 0x44,
4865};
4866
4867/* SigGen15_186-2.txt line 114 SHA-256 */
4868#define ac_rsassa_vect13_modulus ac_siggenpss_186_2_modulus
4869#define ac_rsassa_vect13_pub_exp ac_siggenpss_186_2_pub_exp
4870#define ac_rsassa_vect13_priv_exp ac_siggenpss_186_2_priv_exp
4871#define ac_rsassa_vect13_prime1 ac_siggenpss_186_2_prime1
4872#define ac_rsassa_vect13_prime2 ac_siggenpss_186_2_prime2
4873#define ac_rsassa_vect13_exp1 ac_siggenpss_186_2_exp1
4874#define ac_rsassa_vect13_exp2 ac_siggenpss_186_2_exp2
4875#define ac_rsassa_vect13_coeff ac_siggenpss_186_2_coeff
4876#define ac_rsassa_vect13_salt_len ac_siggenpss_186_2_salt_len
4877static const uint8_t ac_rsassa_vect13_ptx[] = {
4878 0x12, 0x48, 0xf6, 0x2a, 0x43, 0x89, 0xf4, 0x2f, 0x7b, 0x4b, 0xb1, 0x31,
4879 0x05, 0x3d, 0x6c, 0x88, 0xa9, 0x94, 0xdb, 0x20, 0x75, 0xb9, 0x12, 0xcc,
4880 0xbe, 0x3e, 0xa7, 0xdc, 0x61, 0x17, 0x14, 0xf1, 0x4e, 0x07, 0x5c, 0x10,
4881 0x48, 0x58, 0xf2, 0xf6, 0xe6, 0xcf, 0xd6, 0xab, 0xde, 0xdf, 0x01, 0x5a,
4882 0x82, 0x1d, 0x03, 0x60, 0x8b, 0xf4, 0xeb, 0xa3, 0x16, 0x9a, 0x67, 0x25,
4883 0xec, 0x42, 0x2c, 0xd9, 0x06, 0x94, 0x98, 0xb5, 0x51, 0x5a, 0x96, 0x08,
4884 0xae, 0x7c, 0xc3, 0x0e, 0x3d, 0x2e, 0xcf, 0xc1, 0xdb, 0x68, 0x25, 0xf3,
4885 0xe9, 0x96, 0xce, 0x9a, 0x50, 0x92, 0x92, 0x6b, 0xc1, 0xcf, 0x61, 0xaa,
4886 0x42, 0xd7, 0xf2, 0x40, 0xe6, 0xf7, 0xaa, 0x0e, 0xdb, 0x38, 0xbf, 0x81,
4887 0xaa, 0x92, 0x9d, 0x66, 0xbb, 0x5d, 0x89, 0x00, 0x18, 0x08, 0x84, 0x58,
4888 0x72, 0x0d, 0x72, 0xd5, 0x69, 0x24, 0x7b, 0x0c
4889};
4890static const uint8_t ac_rsassa_vect13_out[] = {
4891 0x7b, 0x1d, 0x37, 0x27, 0x8e, 0x54, 0x98, 0x98, 0xd4, 0x08, 0x4e, 0x22,
4892 0x10, 0xc4, 0xa9, 0x96, 0x1e, 0xdf, 0xe7, 0xb5, 0x96, 0x35, 0x50, 0xcc,
4893 0xa1, 0x90, 0x42, 0x48, 0xc8, 0x68, 0x15, 0x13, 0x53, 0x90, 0x17, 0x82,
4894 0x0f, 0x0e, 0x9b, 0xd0, 0x74, 0xb9, 0xf8, 0xa0, 0x67, 0xb9, 0xfe, 0xff,
4895 0xf7, 0xf1, 0xfa, 0x20, 0xbf, 0x2d, 0x0c, 0x75, 0x01, 0x5f, 0xf0, 0x20,
4896 0xb2, 0x21, 0x0c, 0xc7, 0xf7, 0x90, 0x34, 0xfe, 0xdf, 0x68, 0xe8, 0xd4,
4897 0x4a, 0x00, 0x7a, 0xbf, 0x4d, 0xd8, 0x2c, 0x26, 0xe8, 0xb0, 0x03, 0x93,
4898 0x72, 0x3a, 0xea, 0x15, 0xab, 0xfb, 0xc2, 0x29, 0x41, 0xc8, 0xcf, 0x79,
4899 0x48, 0x17, 0x18, 0xc0, 0x08, 0xda, 0x71, 0x3f, 0xb8, 0xf5, 0x4c, 0xb3,
4900 0xfc, 0xa8, 0x90, 0xbd, 0xe1, 0x13, 0x73, 0x14, 0x33, 0x4b, 0x9b, 0x0a,
4901 0x18, 0x51, 0x5b, 0xfa, 0x48, 0xe5, 0xcc, 0xd0
4902};
4903
4904/* SigGen15_186-2.txt line 164 SHA-384 */
4905#define ac_rsassa_vect14_modulus ac_siggenpss_186_2_modulus
4906#define ac_rsassa_vect14_pub_exp ac_siggenpss_186_2_pub_exp
4907#define ac_rsassa_vect14_priv_exp ac_siggenpss_186_2_priv_exp
4908#define ac_rsassa_vect14_prime1 ac_siggenpss_186_2_prime1
4909#define ac_rsassa_vect14_prime2 ac_siggenpss_186_2_prime2
4910#define ac_rsassa_vect14_exp1 ac_siggenpss_186_2_exp1
4911#define ac_rsassa_vect14_exp2 ac_siggenpss_186_2_exp2
4912#define ac_rsassa_vect14_coeff ac_siggenpss_186_2_coeff
4913#define ac_rsassa_vect14_salt_len ac_siggenpss_186_2_salt_len
4914static const uint8_t ac_rsassa_vect14_ptx[] = {
4915 0x12, 0x48, 0xf6, 0x2a, 0x43, 0x89, 0xf4, 0x2f, 0x7b, 0x4b, 0xb1, 0x31,
4916 0x05, 0x3d, 0x6c, 0x88, 0xa9, 0x94, 0xdb, 0x20, 0x75, 0xb9, 0x12, 0xcc,
4917 0xbe, 0x3e, 0xa7, 0xdc, 0x61, 0x17, 0x14, 0xf1, 0x4e, 0x07, 0x5c, 0x10,
4918 0x48, 0x58, 0xf2, 0xf6, 0xe6, 0xcf, 0xd6, 0xab, 0xde, 0xdf, 0x01, 0x5a,
4919 0x82, 0x1d, 0x03, 0x60, 0x8b, 0xf4, 0xeb, 0xa3, 0x16, 0x9a, 0x67, 0x25,
4920 0xec, 0x42, 0x2c, 0xd9, 0x06, 0x94, 0x98, 0xb5, 0x51, 0x5a, 0x96, 0x08,
4921 0xae, 0x7c, 0xc3, 0x0e, 0x3d, 0x2e, 0xcf, 0xc1, 0xdb, 0x68, 0x25, 0xf3,
4922 0xe9, 0x96, 0xce, 0x9a, 0x50, 0x92, 0x92, 0x6b, 0xc1, 0xcf, 0x61, 0xaa,
4923 0x42, 0xd7, 0xf2, 0x40, 0xe6, 0xf7, 0xaa, 0x0e, 0xdb, 0x38, 0xbf, 0x81,
4924 0xaa, 0x92, 0x9d, 0x66, 0xbb, 0x5d, 0x89, 0x00, 0x18, 0x08, 0x84, 0x58,
4925 0x72, 0x0d, 0x72, 0xd5, 0x69, 0x24, 0x7b, 0x0c
4926};
4927static const uint8_t ac_rsassa_vect14_out[] = {
4928 0x8f, 0x16, 0xc8, 0x07, 0xbe, 0xf3, 0xed, 0x6f, 0x74, 0xee, 0x7f, 0xf5,
4929 0xc3, 0x60, 0xa5, 0x42, 0x8c, 0x6c, 0x2f, 0x10, 0x51, 0x78, 0xb5, 0x8f,
4930 0xf7, 0xd0, 0x73, 0xe5, 0x66, 0xda, 0xd6, 0xe7, 0x71, 0x8d, 0x31, 0x29,
4931 0xc7, 0x68, 0xcd, 0x5a, 0x96, 0x66, 0xde, 0x2b, 0x6c, 0x94, 0x71, 0x77,
4932 0xb4, 0x57, 0x09, 0xdc, 0x7c, 0xd0, 0xf4, 0x3b, 0x0b, 0xa6, 0xfc, 0x75,
4933 0x57, 0x8e, 0x11, 0x96, 0xac, 0xc1, 0x5c, 0xa3, 0xaf, 0xe4, 0xa7, 0x8c,
4934 0x14, 0x4c, 0xb6, 0x88, 0x5c, 0x1c, 0xc8, 0x15, 0xf7, 0xf9, 0x89, 0x25,
4935 0xbc, 0x04, 0xad, 0x2f, 0xf2, 0x0f, 0xc1, 0x06, 0x8b, 0x04, 0x5d, 0x94,
4936 0x50, 0xe2, 0xa1, 0xdc, 0xf5, 0xa1, 0x61, 0xce, 0xab, 0xba, 0x2b, 0x0b,
4937 0x66, 0xc7, 0x35, 0x4f, 0xdb, 0x80, 0xfa, 0x1d, 0x72, 0x9e, 0x5f, 0x97,
4938 0x63, 0x87, 0xf2, 0x4a, 0x69, 0x7a, 0x7e, 0x56
4939};
4940
4941/* SigGen15_186-2.txt line 214 SHA-512 */
4942#define ac_rsassa_vect15_modulus ac_siggenpss_186_2_modulus
4943#define ac_rsassa_vect15_pub_exp ac_siggenpss_186_2_pub_exp
4944#define ac_rsassa_vect15_priv_exp ac_siggenpss_186_2_priv_exp
4945#define ac_rsassa_vect15_prime1 ac_siggenpss_186_2_prime1
4946#define ac_rsassa_vect15_prime2 ac_siggenpss_186_2_prime2
4947#define ac_rsassa_vect15_exp1 ac_siggenpss_186_2_exp1
4948#define ac_rsassa_vect15_exp2 ac_siggenpss_186_2_exp2
4949#define ac_rsassa_vect15_coeff ac_siggenpss_186_2_coeff
4950#define ac_rsassa_vect15_salt_len ac_siggenpss_186_2_salt_len
4951static const uint8_t ac_rsassa_vect15_ptx[] = {
4952 0x12, 0x48, 0xf6, 0x2a, 0x43, 0x89, 0xf4, 0x2f, 0x7b, 0x4b, 0xb1, 0x31,
4953 0x05, 0x3d, 0x6c, 0x88, 0xa9, 0x94, 0xdb, 0x20, 0x75, 0xb9, 0x12, 0xcc,
4954 0xbe, 0x3e, 0xa7, 0xdc, 0x61, 0x17, 0x14, 0xf1, 0x4e, 0x07, 0x5c, 0x10,
4955 0x48, 0x58, 0xf2, 0xf6, 0xe6, 0xcf, 0xd6, 0xab, 0xde, 0xdf, 0x01, 0x5a,
4956 0x82, 0x1d, 0x03, 0x60, 0x8b, 0xf4, 0xeb, 0xa3, 0x16, 0x9a, 0x67, 0x25,
4957 0xec, 0x42, 0x2c, 0xd9, 0x06, 0x94, 0x98, 0xb5, 0x51, 0x5a, 0x96, 0x08,
4958 0xae, 0x7c, 0xc3, 0x0e, 0x3d, 0x2e, 0xcf, 0xc1, 0xdb, 0x68, 0x25, 0xf3,
4959 0xe9, 0x96, 0xce, 0x9a, 0x50, 0x92, 0x92, 0x6b, 0xc1, 0xcf, 0x61, 0xaa,
4960 0x42, 0xd7, 0xf2, 0x40, 0xe6, 0xf7, 0xaa, 0x0e, 0xdb, 0x38, 0xbf, 0x81,
4961 0xaa, 0x92, 0x9d, 0x66, 0xbb, 0x5d, 0x89, 0x00, 0x18, 0x08, 0x84, 0x58,
4962 0x72, 0x0d, 0x72, 0xd5, 0x69, 0x24, 0x7b, 0x0c
4963};
4964static const uint8_t ac_rsassa_vect15_out[] = {
4965 0xa8, 0x33, 0xba, 0x31, 0x63, 0x4f, 0x87, 0x73, 0xe4, 0xfe, 0x6e, 0xa0,
4966 0xc6, 0x9e, 0x1a, 0x23, 0x76, 0x6a, 0x93, 0x9d, 0x34, 0xb3, 0x2f, 0xc7,
4967 0x8b, 0x77, 0x4b, 0x22, 0xe4, 0x6a, 0x64, 0x6c, 0x25, 0xe6, 0xe1, 0x06,
4968 0x2d, 0x23, 0x4e, 0xd4, 0x8b, 0x1a, 0xba, 0x0f, 0x83, 0x05, 0x29, 0xff,
4969 0x6a, 0xfc, 0x29, 0x6c, 0xc8, 0xdc, 0x20, 0x7b, 0xbc, 0x15, 0x39, 0x16,
4970 0x23, 0xbe, 0xac, 0x5f, 0x6c, 0x3d, 0xb5, 0x57, 0xca, 0x49, 0xd0, 0xe4,
4971 0x2c, 0x96, 0x2d, 0xe9, 0x5b, 0x5f, 0xf5, 0x48, 0xcf, 0xf9, 0x70, 0xf5,
4972 0xc7, 0x3f, 0x43, 0x9c, 0xfe, 0x82, 0xd3, 0x90, 0x7b, 0xe6, 0x02, 0x40,
4973 0xf5, 0x6b, 0x6a, 0x42, 0x59, 0xcc, 0x96, 0xdf, 0xd8, 0xfe, 0x02, 0xa0,
4974 0xbf, 0xa2, 0x6e, 0x02, 0x23, 0xf6, 0x82, 0x14, 0x42, 0x8f, 0xff, 0x0a,
4975 0xe4, 0x01, 0x62, 0x19, 0x8c, 0xc5, 0xcb, 0xd1
4976};
4977
4978/*
Pascal Brandc639ac82015-07-02 08:53:34 +02004979 * Test data from ftp://ftp.rsa.com/pub/rsalabs/tmp/pkcs1v15crypt-vectors.txt
4980 *
4981 * As specified in PKCS#1, the block type for this operation is 2.
4982 * The seed value of each example provides the pseudo random bytes
4983 * to be used for padding. This makes the result predictable.
4984 */
4985
4986/* PKCS#1 v1.5 Signature Example 1 1024-bit RSA key pair */
4987static const uint8_t ac_rsaes_pkcs1_v1_5_example1_modulus[] = {
4988 0xa8, 0xb3, 0xb2, 0x84, 0xaf, 0x8e, 0xb5, 0x0b, 0x38, 0x70, 0x34, 0xa8,
4989 0x60, 0xf1, 0x46, 0xc4, 0x91, 0x9f, 0x31, 0x87, 0x63, 0xcd, 0x6c, 0x55,
4990 0x98, 0xc8, 0xae, 0x48, 0x11, 0xa1, 0xe0, 0xab, 0xc4, 0xc7, 0xe0, 0xb0,
4991 0x82, 0xd6, 0x93, 0xa5, 0xe7, 0xfc, 0xed, 0x67, 0x5c, 0xf4, 0x66, 0x85,
4992 0x12, 0x77, 0x2c, 0x0c, 0xbc, 0x64, 0xa7, 0x42, 0xc6, 0xc6, 0x30, 0xf5,
4993 0x33, 0xc8, 0xcc, 0x72, 0xf6, 0x2a, 0xe8, 0x33, 0xc4, 0x0b, 0xf2, 0x58,
4994 0x42, 0xe9, 0x84, 0xbb, 0x78, 0xbd, 0xbf, 0x97, 0xc0, 0x10, 0x7d, 0x55,
4995 0xbd, 0xb6, 0x62, 0xf5, 0xc4, 0xe0, 0xfa, 0xb9, 0x84, 0x5c, 0xb5, 0x14,
4996 0x8e, 0xf7, 0x39, 0x2d, 0xd3, 0xaa, 0xff, 0x93, 0xae, 0x1e, 0x6b, 0x66,
4997 0x7b, 0xb3, 0xd4, 0x24, 0x76, 0x16, 0xd4, 0xf5, 0xba, 0x10, 0xd4, 0xcf,
4998 0xd2, 0x26, 0xde, 0x88, 0xd3, 0x9f, 0x16, 0xfb
4999};
5000static const uint8_t ac_rsaes_pkcs1_v1_5_example1_pub_exp[] = {
5001 0x01, 0x00, 0x01
5002};
5003static const uint8_t ac_rsaes_pkcs1_v1_5_example1_priv_exp[] = {
5004 0x53, 0x33, 0x9c, 0xfd, 0xb7, 0x9f, 0xc8, 0x46, 0x6a, 0x65, 0x5c, 0x73,
5005 0x16, 0xac, 0xa8, 0x5c, 0x55, 0xfd, 0x8f, 0x6d, 0xd8, 0x98, 0xfd, 0xaf,
5006 0x11, 0x95, 0x17, 0xef, 0x4f, 0x52, 0xe8, 0xfd, 0x8e, 0x25, 0x8d, 0xf9,
5007 0x3f, 0xee, 0x18, 0x0f, 0xa0, 0xe4, 0xab, 0x29, 0x69, 0x3c, 0xd8, 0x3b,
5008 0x15, 0x2a, 0x55, 0x3d, 0x4a, 0xc4, 0xd1, 0x81, 0x2b, 0x8b, 0x9f, 0xa5,
5009 0xaf, 0x0e, 0x7f, 0x55, 0xfe, 0x73, 0x04, 0xdf, 0x41, 0x57, 0x09, 0x26,
5010 0xf3, 0x31, 0x1f, 0x15, 0xc4, 0xd6, 0x5a, 0x73, 0x2c, 0x48, 0x31, 0x16,
5011 0xee, 0x3d, 0x3d, 0x2d, 0x0a, 0xf3, 0x54, 0x9a, 0xd9, 0xbf, 0x7c, 0xbf,
5012 0xb7, 0x8a, 0xd8, 0x84, 0xf8, 0x4d, 0x5b, 0xeb, 0x04, 0x72, 0x4d, 0xc7,
5013 0x36, 0x9b, 0x31, 0xde, 0xf3, 0x7d, 0x0c, 0xf5, 0x39, 0xe9, 0xcf, 0xcd,
5014 0xd3, 0xde, 0x65, 0x37, 0x29, 0xea, 0xd5, 0xd1
5015};
5016static const uint8_t ac_rsaes_pkcs1_v1_5_example1_prime1[] = {
5017 0xd3, 0x27, 0x37, 0xe7, 0x26, 0x7f, 0xfe, 0x13, 0x41, 0xb2, 0xd5, 0xc0,
5018 0xd1, 0x50, 0xa8, 0x1b, 0x58, 0x6f, 0xb3, 0x13, 0x2b, 0xed, 0x2f, 0x8d,
5019 0x52, 0x62, 0x86, 0x4a, 0x9c, 0xb9, 0xf3, 0x0a, 0xf3, 0x8b, 0xe4, 0x48,
5020 0x59, 0x8d, 0x41, 0x3a, 0x17, 0x2e, 0xfb, 0x80, 0x2c, 0x21, 0xac, 0xf1,
5021 0xc1, 0x1c, 0x52, 0x0c, 0x2f, 0x26, 0xa4, 0x71, 0xdc, 0xad, 0x21, 0x2e,
5022 0xac, 0x7c, 0xa3, 0x9d
5023};
5024static const uint8_t ac_rsaes_pkcs1_v1_5_example1_prime2[] = {
5025 0xcc, 0x88, 0x53, 0xd1, 0xd5, 0x4d, 0xa6, 0x30, 0xfa, 0xc0, 0x04, 0xf4,
5026 0x71, 0xf2, 0x81, 0xc7, 0xb8, 0x98, 0x2d, 0x82, 0x24, 0xa4, 0x90, 0xed,
5027 0xbe, 0xb3, 0x3d, 0x3e, 0x3d, 0x5c, 0xc9, 0x3c, 0x47, 0x65, 0x70, 0x3d,
5028 0x1d, 0xd7, 0x91, 0x64, 0x2f, 0x1f, 0x11, 0x6a, 0x0d, 0xd8, 0x52, 0xbe,
5029 0x24, 0x19, 0xb2, 0xaf, 0x72, 0xbf, 0xe9, 0xa0, 0x30, 0xe8, 0x60, 0xb0,
5030 0x28, 0x8b, 0x5d, 0x77
5031};
5032static const uint8_t ac_rsaes_pkcs1_v1_5_example1_exp1[] = {
5033 0x0e, 0x12, 0xbf, 0x17, 0x18, 0xe9, 0xce, 0xf5, 0x59, 0x9b, 0xa1, 0xc3,
5034 0x88, 0x2f, 0xe8, 0x04, 0x6a, 0x90, 0x87, 0x4e, 0xef, 0xce, 0x8f, 0x2c,
5035 0xcc, 0x20, 0xe4, 0xf2, 0x74, 0x1f, 0xb0, 0xa3, 0x3a, 0x38, 0x48, 0xae,
5036 0xc9, 0xc9, 0x30, 0x5f, 0xbe, 0xcb, 0xd2, 0xd7, 0x68, 0x19, 0x96, 0x7d,
5037 0x46, 0x71, 0xac, 0xc6, 0x43, 0x1e, 0x40, 0x37, 0x96, 0x8d, 0xb3, 0x78,
5038 0x78, 0xe6, 0x95, 0xc1
5039};
5040static const uint8_t ac_rsaes_pkcs1_v1_5_example1_exp2[] = {
5041 0x95, 0x29, 0x7b, 0x0f, 0x95, 0xa2, 0xfa, 0x67, 0xd0, 0x07, 0x07, 0xd6,
5042 0x09, 0xdf, 0xd4, 0xfc, 0x05, 0xc8, 0x9d, 0xaf, 0xc2, 0xef, 0x6d, 0x6e,
5043 0xa5, 0x5b, 0xec, 0x77, 0x1e, 0xa3, 0x33, 0x73, 0x4d, 0x92, 0x51, 0xe7,
5044 0x90, 0x82, 0xec, 0xda, 0x86, 0x6e, 0xfe, 0xf1, 0x3c, 0x45, 0x9e, 0x1a,
5045 0x63, 0x13, 0x86, 0xb7, 0xe3, 0x54, 0xc8, 0x99, 0xf5, 0xf1, 0x12, 0xca,
5046 0x85, 0xd7, 0x15, 0x83
5047};
5048static const uint8_t ac_rsaes_pkcs1_v1_5_example1_coeff[] = {
5049 0x4f, 0x45, 0x6c, 0x50, 0x24, 0x93, 0xbd, 0xc0, 0xed, 0x2a, 0xb7, 0x56,
5050 0xa3, 0xa6, 0xed, 0x4d, 0x67, 0x35, 0x2a, 0x69, 0x7d, 0x42, 0x16, 0xe9,
5051 0x32, 0x12, 0xb1, 0x27, 0xa6, 0x3d, 0x54, 0x11, 0xce, 0x6f, 0xa9, 0x8d,
5052 0x5d, 0xbe, 0xfd, 0x73, 0x26, 0x3e, 0x37, 0x28, 0x14, 0x27, 0x43, 0x81,
5053 0x81, 0x66, 0xed, 0x7d, 0xd6, 0x36, 0x87, 0xdd, 0x2a, 0x8c, 0xa1, 0xd2,
5054 0xf4, 0xfb, 0xd8, 0xe1
5055};
5056
5057
5058/* PKCS#1 v1.5 Encrypt Example 1.1 */
5059#define ac_rsaes_pkcs1_v1_5_vect1_modulus ac_rsaes_pkcs1_v1_5_example1_modulus
5060#define ac_rsaes_pkcs1_v1_5_vect1_pub_exp ac_rsaes_pkcs1_v1_5_example1_pub_exp
5061#define ac_rsaes_pkcs1_v1_5_vect1_priv_exp ac_rsaes_pkcs1_v1_5_example1_priv_exp
5062#define ac_rsaes_pkcs1_v1_5_vect1_prime1 ac_rsaes_pkcs1_v1_5_example1_prime1
5063#define ac_rsaes_pkcs1_v1_5_vect1_prime2 ac_rsaes_pkcs1_v1_5_example1_prime2
5064#define ac_rsaes_pkcs1_v1_5_vect1_exp1 ac_rsaes_pkcs1_v1_5_example1_exp1
5065#define ac_rsaes_pkcs1_v1_5_vect1_exp2 ac_rsaes_pkcs1_v1_5_example1_exp2
5066#define ac_rsaes_pkcs1_v1_5_vect1_coeff ac_rsaes_pkcs1_v1_5_example1_coeff
5067static const uint8_t ac_rsaes_pkcs1_v1_5_vect1_ptx[] = {
5068 0x66, 0x28, 0x19, 0x4e, 0x12, 0x07, 0x3d, 0xb0, 0x3b, 0xa9, 0x4c, 0xda,
5069 0x9e, 0xf9, 0x53, 0x23,
5070 0x97, 0xd5, 0x0d, 0xba, 0x79, 0xb9, 0x87, 0x00, 0x4a, 0xfe, 0xfe, 0x34,
5071};
5072static const uint8_t ac_rsaes_pkcs1_v1_5_vect1_out[] = {
5073 0x50, 0xb4, 0xc1, 0x41, 0x36, 0xbd, 0x19, 0x8c, 0x2f, 0x3c, 0x3e, 0xd2,
5074 0x43, 0xfc, 0xe0, 0x36,
5075 0xe1, 0x68, 0xd5, 0x65, 0x17, 0x98, 0x4a, 0x26, 0x3c, 0xd6, 0x64, 0x92,
5076 0xb8, 0x08, 0x04, 0xf1,
5077 0x69, 0xd2, 0x10, 0xf2, 0xb9, 0xbd, 0xfb, 0x48, 0xb1, 0x2f, 0x9e, 0xa0,
5078 0x50, 0x09, 0xc7, 0x7d,
5079 0xa2, 0x57, 0xcc, 0x60, 0x0c, 0xce, 0xfe, 0x3a, 0x62, 0x83, 0x78, 0x9d,
5080 0x8e, 0xa0, 0xe6, 0x07,
5081 0xac, 0x58, 0xe2, 0x69, 0x0e, 0xc4, 0xeb, 0xc1, 0x01, 0x46, 0xe8, 0xcb,
5082 0xaa, 0x5e, 0xd4, 0xd5,
5083 0xcc, 0xe6, 0xfe, 0x7b, 0x0f, 0xf9, 0xef, 0xc1, 0xea, 0xbb, 0x56, 0x4d,
5084 0xbf, 0x49, 0x82, 0x85,
5085 0xf4, 0x49, 0xee, 0x61, 0xdd, 0x7b, 0x42, 0xee, 0x5b, 0x58, 0x92, 0xcb,
5086 0x90, 0x60, 0x1f, 0x30,
5087 0xcd, 0xa0, 0x7b, 0xf2, 0x64, 0x89, 0x31, 0x0b, 0xcd, 0x23, 0xb5, 0x28,
5088 0xce, 0xab, 0x3c, 0x31,
5089};
5090
5091
5092/* PKCS#1 v1.5 Encrypt Example 1.2 */
5093#define ac_rsaes_pkcs1_v1_5_vect2_modulus ac_rsaes_pkcs1_v1_5_example1_modulus
5094#define ac_rsaes_pkcs1_v1_5_vect2_pub_exp ac_rsaes_pkcs1_v1_5_example1_pub_exp
5095#define ac_rsaes_pkcs1_v1_5_vect2_priv_exp ac_rsaes_pkcs1_v1_5_example1_priv_exp
5096#define ac_rsaes_pkcs1_v1_5_vect2_prime1 ac_rsaes_pkcs1_v1_5_example1_prime1
5097#define ac_rsaes_pkcs1_v1_5_vect2_prime2 ac_rsaes_pkcs1_v1_5_example1_prime2
5098#define ac_rsaes_pkcs1_v1_5_vect2_exp1 ac_rsaes_pkcs1_v1_5_example1_exp1
5099#define ac_rsaes_pkcs1_v1_5_vect2_exp2 ac_rsaes_pkcs1_v1_5_example1_exp2
5100#define ac_rsaes_pkcs1_v1_5_vect2_coeff ac_rsaes_pkcs1_v1_5_example1_coeff
5101static const uint8_t ac_rsaes_pkcs1_v1_5_vect2_ptx[] = {
5102 0x75, 0x0c, 0x40, 0x47, 0xf5, 0x47, 0xe8, 0xe4, 0x14, 0x11, 0x85, 0x65,
5103 0x23, 0x29, 0x8a, 0xc9, 0xba, 0xe2, 0x45, 0xef, 0xaf, 0x13, 0x97, 0xfb,
5104 0xe5, 0x6f, 0x9d, 0xd5
5105};
5106static const uint8_t ac_rsaes_pkcs1_v1_5_vect2_out[] = {
5107 0x68, 0x42, 0xe5, 0xe2, 0xcc, 0x00, 0x41, 0xd6, 0xb0, 0xc8, 0x1a, 0x56,
5108 0x2c, 0x39, 0xa6, 0x17, 0x37, 0x9a, 0x51, 0x5c, 0xab, 0x74, 0xab, 0xcb,
5109 0x26, 0x19, 0xc7, 0x74, 0x0a, 0x54, 0x1d, 0x95, 0x55, 0xdd, 0x91, 0x65,
5110 0x97, 0x5b, 0xf8, 0xa3, 0xeb, 0xd0, 0xd0, 0x45, 0x66, 0x61, 0xdf, 0xb1,
5111 0xa6, 0x86, 0x1b, 0xa2, 0x33, 0x22, 0x69, 0x93, 0x0e, 0x0d, 0xb5, 0x14,
5112 0xfc, 0xa0, 0x73, 0x3e, 0xeb, 0x9c, 0x40, 0x57, 0x13, 0xeb, 0x1f, 0x9d,
5113 0x76, 0x80, 0x33, 0xed, 0x29, 0x3e, 0x1e, 0x08, 0x1a, 0x12, 0x5f, 0x32,
5114 0xdd, 0xb9, 0xea, 0x52, 0xed, 0xbe, 0x27, 0x5c, 0x4a, 0xf6, 0x0f, 0x8a,
5115 0x7b, 0xf8, 0x32, 0xbd, 0x22, 0x75, 0x61, 0xc2, 0x08, 0xdc, 0x00, 0x31,
5116 0xa8, 0x4b, 0x50, 0x12, 0xc9, 0xdd, 0x9f, 0x74, 0x45, 0x9d, 0xcb, 0x07,
5117 0x0b, 0xdb, 0xe1, 0x3c, 0xfa, 0x8c, 0x2d, 0x50
5118};
5119
5120/*
5121 * Test data from ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1-vec.zip
5122 *
5123 * The underlying hash function is SHA-1; the mask generation function is
5124 * MGF1 with SHA-1 as specified in PKCS #1 v2.1.
5125 */
5126
5127/* Example 1: A 1024-bit RSA Key Pair */
5128#define ac_rsaes_oaep_example1_modulus ac_rsaes_pkcs1_v1_5_example1_modulus
5129#define ac_rsaes_oaep_example1_pub_exp ac_rsaes_pkcs1_v1_5_example1_pub_exp
5130#define ac_rsaes_oaep_example1_priv_exp ac_rsaes_pkcs1_v1_5_example1_priv_exp
5131#define ac_rsaes_oaep_example1_prime1 ac_rsaes_pkcs1_v1_5_example1_prime1
5132#define ac_rsaes_oaep_example1_prime2 ac_rsaes_pkcs1_v1_5_example1_prime2
5133#define ac_rsaes_oaep_example1_exp1 ac_rsaes_pkcs1_v1_5_example1_exp1
5134#define ac_rsaes_oaep_example1_exp2 ac_rsaes_pkcs1_v1_5_example1_exp2
5135#define ac_rsaes_oaep_example1_coeff ac_rsaes_pkcs1_v1_5_example1_coeff
5136
5137
5138/* RSAES-OAEP Encryption Example 1.1 */
5139#define ac_rsaes_oaep_vect1_modulus ac_rsaes_oaep_example1_modulus
5140#define ac_rsaes_oaep_vect1_pub_exp ac_rsaes_oaep_example1_pub_exp
5141#define ac_rsaes_oaep_vect1_priv_exp ac_rsaes_oaep_example1_priv_exp
5142#define ac_rsaes_oaep_vect1_prime1 ac_rsaes_oaep_example1_prime1
5143#define ac_rsaes_oaep_vect1_prime2 ac_rsaes_oaep_example1_prime2
5144#define ac_rsaes_oaep_vect1_exp1 ac_rsaes_oaep_example1_exp1
5145#define ac_rsaes_oaep_vect1_exp2 ac_rsaes_oaep_example1_exp2
5146#define ac_rsaes_oaep_vect1_coeff ac_rsaes_oaep_example1_coeff
5147static const uint8_t ac_rsaes_oaep_vect1_ptx[] = {
5148 0x66, 0x28, 0x19, 0x4e, 0x12, 0x07, 0x3d, 0xb0, 0x3b, 0xa9, 0x4c, 0xda,
5149 0x9e, 0xf9, 0x53, 0x23, 0x97, 0xd5, 0x0d, 0xba, 0x79, 0xb9, 0x87, 0x00,
5150 0x4a, 0xfe, 0xfe, 0x34,
5151};
5152static const uint8_t ac_rsaes_oaep_vect1_out[] = {
5153 0x35, 0x4f, 0xe6, 0x7b, 0x4a, 0x12, 0x6d, 0x5d, 0x35, 0xfe, 0x36, 0xc7,
5154 0x77, 0x79, 0x1a, 0x3f, 0x7b, 0xa1, 0x3d, 0xef, 0x48, 0x4e, 0x2d, 0x39,
5155 0x08, 0xaf, 0xf7, 0x22, 0xfa, 0xd4, 0x68, 0xfb, 0x21, 0x69, 0x6d, 0xe9,
5156 0x5d, 0x0b, 0xe9, 0x11, 0xc2, 0xd3, 0x17, 0x4f, 0x8a, 0xfc, 0xc2, 0x01,
5157 0x03, 0x5f, 0x7b, 0x6d, 0x8e, 0x69, 0x40, 0x2d, 0xe5, 0x45, 0x16, 0x18,
5158 0xc2, 0x1a, 0x53, 0x5f, 0xa9, 0xd7, 0xbf, 0xc5, 0xb8, 0xdd, 0x9f, 0xc2,
5159 0x43, 0xf8, 0xcf, 0x92, 0x7d, 0xb3, 0x13, 0x22, 0xd6, 0xe8, 0x81, 0xea,
5160 0xa9, 0x1a, 0x99, 0x61, 0x70, 0xe6, 0x57, 0xa0, 0x5a, 0x26, 0x64, 0x26,
5161 0xd9, 0x8c, 0x88, 0x00, 0x3f, 0x84, 0x77, 0xc1, 0x22, 0x70, 0x94, 0xa0,
5162 0xd9, 0xfa, 0x1e, 0x8c, 0x40, 0x24, 0x30, 0x9c, 0xe1, 0xec, 0xcc, 0xb5,
5163 0x21, 0x00, 0x35, 0xd4, 0x7a, 0xc7, 0x2e, 0x8a
5164};
5165
5166/* RSAES-OAEP Encryption Example 1.2 */
5167#define ac_rsaes_oaep_vect2_modulus ac_rsaes_oaep_example1_modulus
5168#define ac_rsaes_oaep_vect2_pub_exp ac_rsaes_oaep_example1_pub_exp
5169#define ac_rsaes_oaep_vect2_priv_exp ac_rsaes_oaep_example1_priv_exp
5170#define ac_rsaes_oaep_vect2_prime1 ac_rsaes_oaep_example1_prime1
5171#define ac_rsaes_oaep_vect2_prime2 ac_rsaes_oaep_example1_prime2
5172#define ac_rsaes_oaep_vect2_exp1 ac_rsaes_oaep_example1_exp1
5173#define ac_rsaes_oaep_vect2_exp2 ac_rsaes_oaep_example1_exp2
5174#define ac_rsaes_oaep_vect2_coeff ac_rsaes_oaep_example1_coeff
5175static const uint8_t ac_rsaes_oaep_vect2_ptx[] = {
5176 0x75, 0x0c, 0x40, 0x47, 0xf5, 0x47, 0xe8, 0xe4, 0x14, 0x11, 0x85, 0x65,
5177 0x23, 0x29, 0x8a, 0xc9, 0xba, 0xe2, 0x45, 0xef, 0xaf, 0x13, 0x97, 0xfb,
5178 0xe5, 0x6f, 0x9d, 0xd5
5179};
5180static const uint8_t ac_rsaes_oaep_vect2_out[] = {
5181 0x64, 0x0d, 0xb1, 0xac, 0xc5, 0x8e, 0x05, 0x68, 0xfe, 0x54, 0x07, 0xe5,
5182 0xf9, 0xb7, 0x01, 0xdf, 0xf8, 0xc3, 0xc9, 0x1e, 0x71, 0x6c, 0x53, 0x6f,
5183 0xc7, 0xfc, 0xec, 0x6c, 0xb5, 0xb7, 0x1c, 0x11, 0x65, 0x98, 0x8d, 0x4a,
5184 0x27, 0x9e, 0x15, 0x77, 0xd7, 0x30, 0xfc, 0x7a, 0x29, 0x93, 0x2e, 0x3f,
5185 0x00, 0xc8, 0x15, 0x15, 0x23, 0x6d, 0x8d, 0x8e, 0x31, 0x01, 0x7a, 0x7a,
5186 0x09, 0xdf, 0x43, 0x52, 0xd9, 0x04, 0xcd, 0xeb, 0x79, 0xaa, 0x58, 0x3a,
5187 0xdc, 0xc3, 0x1e, 0xa6, 0x98, 0xa4, 0xc0, 0x52, 0x83, 0xda, 0xba, 0x90,
5188 0x89, 0xbe, 0x54, 0x91, 0xf6, 0x7c, 0x1a, 0x4e, 0xe4, 0x8d, 0xc7, 0x4b,
5189 0xbb, 0xe6, 0x64, 0x3a, 0xef, 0x84, 0x66, 0x79, 0xb4, 0xcb, 0x39, 0x5a,
5190 0x35, 0x2d, 0x5e, 0xd1, 0x15, 0x91, 0x2d, 0xf6, 0x96, 0xff, 0xe0, 0x70,
5191 0x29, 0x32, 0x94, 0x6d, 0x71, 0x49, 0x2b, 0x44
5192};
5193
5194/*
5195 * PKCS#1 v1.5 Signature Example 15 2048-bit RSA key pair
5196 * from http://armcryptolib.das-labor.org/trac/browser/testvectors/rsa-pkcs-1v2-1-vec/oaep-vect.txt
5197 */
5198static const uint8_t ac_rsaes_pkcs1_v1_5_example15_modulus[] = {
5199 0xdc, 0xfa, 0x10, 0xff, 0xa7, 0x46, 0x65, 0xae, 0xef, 0x87, 0x09, 0x74, 0xea, 0x99, 0xb2, 0xce,
5200 0x54, 0x54, 0x7c, 0x67, 0xf4, 0x2a, 0xaa, 0x6d, 0xd0, 0x1a, 0x2e, 0xd3, 0x1f, 0xd2, 0xc2, 0x42,
5201 0xaf, 0x5d, 0x96, 0x0b, 0x1f, 0x89, 0x6e, 0xfb, 0xa3, 0x54, 0x3d, 0x65, 0x54, 0xb7, 0xb1, 0x26,
5202 0x87, 0xa5, 0xc6, 0x88, 0x56, 0x8f, 0x32, 0xe0, 0x26, 0xc5, 0x32, 0xd2, 0x59, 0x93, 0xb9, 0x7a,
5203 0x7c, 0x28, 0x42, 0xec, 0x2b, 0x8e, 0x12, 0x35, 0xee, 0xe2, 0x41, 0x4d, 0x25, 0x80, 0x6c, 0x6f,
5204 0xba, 0xe4, 0x38, 0x95, 0x4e, 0xba, 0x9d, 0x27, 0x55, 0xdf, 0xfe, 0xeb, 0x1b, 0x47, 0x70, 0x09,
5205 0x57, 0x81, 0x5a, 0x8a, 0x23, 0x3f, 0x97, 0xb1, 0xa2, 0xc7, 0x14, 0xb3, 0xe2, 0xbe, 0x2e, 0x42,
5206 0xd8, 0xbe, 0x30, 0xb1, 0x96, 0x15, 0x82, 0xea, 0x99, 0x48, 0x91, 0x0e, 0x0c, 0x79, 0x7c, 0x50,
5207 0xfc, 0x4b, 0xb4, 0x55, 0xf0, 0xfc, 0x45, 0xe5, 0xe3, 0x4e, 0x63, 0x96, 0xac, 0x5b, 0x2d, 0x46,
5208 0x23, 0x93, 0x65, 0xc7, 0xf3, 0xda, 0xaf, 0x09, 0x09, 0x40, 0x0d, 0x61, 0xcf, 0x9e, 0x0c, 0xa8,
5209 0x08, 0x3e, 0xaf, 0x33, 0x5a, 0x6f, 0xce, 0xb6, 0x86, 0x3c, 0x1c, 0xc0, 0xcf, 0x5a, 0x17, 0x1a,
5210 0xff, 0x35, 0xd9, 0x7e, 0xcb, 0x60, 0xef, 0x25, 0x1c, 0x7e, 0xc2, 0xc8, 0xa5, 0x88, 0x36, 0x1d,
5211 0xc4, 0x12, 0x66, 0xa4, 0xb7, 0xed, 0x38, 0xb0, 0x26, 0xce, 0x0d, 0x53, 0x78, 0x64, 0x49, 0xdb,
5212 0xb1, 0x1a, 0x06, 0xea, 0x33, 0xcc, 0xf1, 0xec, 0xa5, 0x75, 0x20, 0x1e, 0xd1, 0xaa, 0x47, 0x3e,
5213 0xd1, 0x18, 0x7e, 0xc1, 0xd8, 0xa7, 0x44, 0xea, 0x34, 0x5b, 0xed, 0x7e, 0xa0, 0x0e, 0xe4, 0xe8,
5214 0x1b, 0xba, 0x46, 0x48, 0x60, 0x1d, 0xd5, 0x37, 0xdc, 0x91, 0x01, 0x5d, 0x31, 0xf0, 0xc2, 0xc1,
5215};
5216
5217static const uint8_t ac_rsaes_pkcs1_v1_5_example15_pub_exp[] = {
5218 0x01, 0x00, 0x01,
5219};
5220
5221static const uint8_t ac_rsaes_pkcs1_v1_5_example15_priv_exp[] = {
5222 0x21, 0x95, 0x08, 0x51, 0xcd, 0xf2, 0x53, 0x20, 0x31, 0x8b, 0x30, 0x5a, 0xfa, 0x0f, 0x37, 0x1f,
5223 0x07, 0xae, 0x5a, 0x44, 0xb3, 0x14, 0xeb, 0xd7, 0x29, 0xf5, 0xdc, 0xb1, 0x5d, 0xa7, 0xfa, 0x39,
5224 0x47, 0xac, 0xdd, 0x91, 0x5d, 0xae, 0xd5, 0x74, 0xbd, 0x16, 0xdf, 0x88, 0xbf, 0x85, 0xf6, 0x10,
5225 0x60, 0xb3, 0x87, 0x17, 0x2f, 0xae, 0x6e, 0x01, 0x26, 0x2b, 0x38, 0x64, 0xc2, 0xd3, 0xc2, 0x2f,
5226 0x94, 0xe0, 0x4a, 0x81, 0x59, 0x42, 0x2b, 0x4e, 0xd2, 0x79, 0xc4, 0x8a, 0x4c, 0x9d, 0x76, 0x7d,
5227 0x49, 0x66, 0x07, 0x1a, 0x5b, 0xbf, 0x5d, 0x04, 0x3e, 0x16, 0xff, 0x46, 0xec, 0x1b, 0xa0, 0x71,
5228 0x6f, 0x00, 0xbb, 0xc9, 0x7b, 0xff, 0x5d, 0x56, 0x93, 0xe2, 0x14, 0xe9, 0x9c, 0x97, 0x21, 0xf1,
5229 0x2b, 0x3e, 0xc6, 0x28, 0x2a, 0xe2, 0xa4, 0x85, 0x72, 0x1b, 0x96, 0xdd, 0xcf, 0x74, 0x03, 0xfa,
5230 0x03, 0x7d, 0x0c, 0x57, 0xab, 0x46, 0x3c, 0x44, 0x8d, 0xe5, 0xcc, 0x12, 0x26, 0x5a, 0xdd, 0x88,
5231 0x6d, 0x31, 0x1e, 0xa8, 0xd8, 0xa5, 0x90, 0x3f, 0xa5, 0x6c, 0x5f, 0x1c, 0x9c, 0xf2, 0xeb, 0x11,
5232 0xcb, 0x65, 0x7a, 0x1a, 0x7d, 0x3e, 0x41, 0x35, 0x2d, 0xc3, 0xe6, 0x86, 0x89, 0x8c, 0x4c, 0xe4,
5233 0x30, 0x5e, 0x8b, 0x63, 0x8e, 0x1b, 0x08, 0xa2, 0xa8, 0x6c, 0xc9, 0xeb, 0x98, 0x66, 0xf3, 0x49,
5234 0x9a, 0xc7, 0x7b, 0x61, 0x36, 0xb8, 0x1c, 0xb2, 0x76, 0xd6, 0x14, 0xcf, 0xeb, 0x7b, 0x6e, 0xd3,
5235 0xf3, 0xbc, 0x77, 0x5e, 0x46, 0xc0, 0x00, 0x66, 0xeb, 0xee, 0xe2, 0xcf, 0xf7, 0x16, 0x6b, 0x57,
5236 0x52, 0x05, 0x98, 0x94, 0x7f, 0xf6, 0x21, 0x03, 0x20, 0xb2, 0x88, 0xfb, 0x4f, 0x2c, 0x3f, 0x8f,
5237 0xe9, 0x7b, 0x27, 0x94, 0x14, 0xeb, 0xf7, 0x20, 0x30, 0x00, 0xa1, 0x9f, 0xc0, 0x42, 0x48, 0x75,
5238};
5239
5240static const uint8_t ac_rsaes_pkcs1_v1_5_example15_prime1[] = {
5241 0xf1, 0x23, 0xbf, 0xe5, 0x3d, 0xe9, 0x7a, 0x56, 0x9d, 0x91, 0xad, 0xcf, 0x55, 0x6f, 0xa6, 0x25,
5242 0xad, 0x30, 0xf3, 0xfd, 0x3d, 0x81, 0x1f, 0x9e, 0x91, 0xe6, 0xaf, 0x44, 0xb6, 0xe7, 0x80, 0xcb,
5243 0x0f, 0x32, 0x78, 0x29, 0xfb, 0x21, 0x19, 0x0a, 0xe2, 0x80, 0x66, 0x46, 0xd7, 0x28, 0xcd, 0x9b,
5244 0x65, 0x31, 0x13, 0x2b, 0x1e, 0xbf, 0xef, 0x12, 0x72, 0x99, 0x30, 0x60, 0xf1, 0xce, 0x70, 0xb1,
5245 0x24, 0x39, 0x30, 0x91, 0xee, 0x85, 0x93, 0xb7, 0x27, 0x36, 0x7e, 0xdb, 0xba, 0x00, 0x9e, 0xc5,
5246 0xbe, 0x17, 0xc4, 0xac, 0xee, 0x12, 0x0c, 0x84, 0x12, 0x67, 0xd4, 0x76, 0x31, 0xa1, 0x6c, 0x36,
5247 0xa6, 0xd1, 0xc9, 0x99, 0x73, 0xc1, 0xb0, 0xb5, 0xa8, 0x35, 0xbf, 0x39, 0xfe, 0xaf, 0xe8, 0xf6,
5248 0x42, 0x1f, 0xd9, 0xc2, 0xa9, 0x0b, 0xc2, 0x79, 0x76, 0x65, 0x9e, 0x67, 0xbc, 0x83, 0x12, 0x4d,
5249};
5250
5251static const uint8_t ac_rsaes_pkcs1_v1_5_example15_prime2[] = {
5252 0xea, 0x98, 0x39, 0xb7, 0xe3, 0x7e, 0xa8, 0x9b, 0xbd, 0xa2, 0x7e, 0x4c, 0x93, 0x47, 0x1c, 0xb4,
5253 0xfd, 0x92, 0x18, 0x9a, 0x0a, 0x96, 0xbc, 0xb4, 0xd7, 0x56, 0x93, 0xf1, 0x8a, 0x5c, 0x2f, 0x74,
5254 0x2a, 0xf9, 0xe3, 0x6f, 0xde, 0x67, 0x9f, 0xbd, 0x9e, 0xae, 0x34, 0x5f, 0xa2, 0x69, 0x52, 0x7b,
5255 0x69, 0x65, 0x02, 0x1c, 0x4b, 0xdf, 0x54, 0xd6, 0x85, 0xbf, 0x08, 0x96, 0x0c, 0xc9, 0x76, 0xf6,
5256 0x8d, 0xca, 0x21, 0xce, 0xbf, 0x44, 0xf2, 0x68, 0xa5, 0x9d, 0xab, 0x8d, 0x1a, 0x25, 0xe5, 0x19,
5257 0xf5, 0x14, 0x7e, 0x1f, 0x45, 0xfe, 0x28, 0x7d, 0x74, 0xcf, 0x72, 0x5b, 0xec, 0x13, 0x26, 0xd3,
5258 0x42, 0x12, 0xc5, 0x6c, 0xf4, 0xff, 0xfa, 0x20, 0x2f, 0x57, 0xb6, 0x8e, 0xe8, 0xcc, 0xa9, 0x43,
5259 0xf3, 0xc1, 0x38, 0xc4, 0xcd, 0xe3, 0x3b, 0xdf, 0x2c, 0x94, 0x40, 0xdf, 0x65, 0x32, 0x24, 0x45,
5260};
5261
5262static const uint8_t ac_rsaes_pkcs1_v1_5_example15_exp1[] = {
5263 0xca, 0x0c, 0x9b, 0x60, 0xb8, 0xe4, 0xa6, 0x06, 0x67, 0x56, 0xc6, 0x5d, 0x20, 0x88, 0x41, 0x9d,
5264 0xf6, 0x25, 0x3b, 0x7b, 0x68, 0x8a, 0x85, 0xf4, 0xf6, 0xe9, 0x64, 0xd8, 0x5d, 0xad, 0x52, 0xa4,
5265 0x52, 0x62, 0x86, 0x7f, 0x1e, 0x96, 0x18, 0x06, 0x9f, 0xcc, 0xd8, 0x65, 0xe9, 0x28, 0x9e, 0x46,
5266 0xe3, 0x9e, 0x20, 0x22, 0x94, 0x4c, 0x5c, 0x44, 0x87, 0xd3, 0x45, 0xcf, 0x25, 0x2d, 0x46, 0x0d,
5267 0x97, 0x7d, 0x77, 0xed, 0xfe, 0xfe, 0xdb, 0xcb, 0xae, 0x46, 0xa2, 0x3a, 0xf7, 0xfa, 0x47, 0x0f,
5268 0x07, 0x7d, 0xa0, 0xe5, 0x09, 0x42, 0x04, 0x4c, 0xb1, 0xa3, 0x60, 0x49, 0x7c, 0xc2, 0x76, 0x0a,
5269 0xc0, 0xf2, 0xad, 0x4a, 0x2f, 0xcd, 0x0e, 0x84, 0xd7, 0xa1, 0xd9, 0x4d, 0xfd, 0xd2, 0x65, 0x8f,
5270 0xd9, 0xce, 0x18, 0x47, 0x5c, 0x1f, 0xa7, 0x5e, 0xe0, 0xce, 0xba, 0xd0, 0xcf, 0x0a, 0xc0, 0x4d,
5271};
5272
5273static const uint8_t ac_rsaes_pkcs1_v1_5_example15_exp2[] = {
5274 0x52, 0x81, 0x71, 0x23, 0x3c, 0x4e, 0x4a, 0x6c, 0x63, 0xb8, 0x67, 0x64, 0xf5, 0x13, 0x38, 0x84,
5275 0x6a, 0xfd, 0xdb, 0xcb, 0x29, 0x58, 0x34, 0x4c, 0x01, 0xc4, 0x00, 0x4a, 0x1d, 0xd8, 0x28, 0x14,
5276 0x5a, 0x1d, 0x02, 0xa1, 0x50, 0x7d, 0xef, 0x4f, 0x58, 0x24, 0x7a, 0x64, 0xfc, 0x10, 0xc0, 0xa2,
5277 0x88, 0xc1, 0xae, 0x89, 0x57, 0x21, 0xd7, 0x8b, 0x8f, 0x04, 0x4d, 0xb7, 0xc0, 0x0d, 0x86, 0xda,
5278 0x55, 0xa9, 0xb6, 0x54, 0x29, 0x2e, 0xcd, 0x76, 0x82, 0x70, 0xbe, 0x69, 0xe4, 0xbd, 0x59, 0x22,
5279 0xd4, 0xef, 0xfd, 0x1f, 0x70, 0x95, 0x5f, 0x96, 0x27, 0xe3, 0xe1, 0x9b, 0x74, 0x9e, 0x93, 0xb4,
5280 0x0e, 0xf3, 0xdd, 0x1d, 0x61, 0xd9, 0x39, 0x15, 0xe2, 0xb0, 0x9d, 0x93, 0x0b, 0x4b, 0x17, 0x68,
5281 0xbf, 0xac, 0xc0, 0x13, 0x6f, 0x39, 0xb0, 0xcf, 0xdf, 0xb4, 0xd0, 0x50, 0x01, 0x1e, 0x2e, 0x65,
5282};
5283
5284static const uint8_t ac_rsaes_pkcs1_v1_5_example15_coeff[] = {
5285 0xdf, 0x2e, 0xb2, 0x32, 0x2c, 0xc2, 0xda, 0xab, 0xf4, 0xd1, 0x46, 0x55, 0x08, 0xf4, 0x15, 0x21,
5286 0xcd, 0xa7, 0xce, 0xff, 0x23, 0xeb, 0xe6, 0x1d, 0x00, 0xd4, 0x41, 0xee, 0x72, 0x8d, 0xda, 0x5d,
5287 0x16, 0xc7, 0xbf, 0x92, 0x0c, 0xd9, 0x5f, 0x34, 0xbe, 0xb4, 0xfe, 0x32, 0xee, 0x81, 0x7e, 0xf3,
5288 0x36, 0x2e, 0x0b, 0xcd, 0x1d, 0x12, 0x45, 0xf7, 0xb0, 0x77, 0x93, 0xea, 0xa1, 0x90, 0xdc, 0x5a,
5289 0x37, 0xfd, 0xaf, 0x4c, 0x68, 0xe2, 0xca, 0x13, 0x97, 0x2d, 0x7f, 0x51, 0x48, 0xb7, 0x96, 0xb6,
5290 0xfb, 0x6d, 0x7a, 0xdd, 0xa0, 0x7b, 0xd2, 0xcd, 0x13, 0xbe, 0x98, 0xce, 0xbe, 0xd1, 0xed, 0xc6,
5291 0xca, 0x41, 0x2e, 0x39, 0x53, 0x50, 0xc5, 0x9a, 0x1d, 0x84, 0x2b, 0xc4, 0xaa, 0x2f, 0x3c, 0x0b,
5292 0x24, 0x3f, 0xde, 0x7d, 0xfd, 0x95, 0x35, 0x6f, 0x24, 0x39, 0x25, 0x1a, 0x11, 0x72, 0xc4, 0x5e,
5293};
5294
5295/* PKCS#1 v1.5 Encrypt Example 15.9 */
5296#define ac_rsaes_pkcs1_v1_5_vect15_modulus ac_rsaes_pkcs1_v1_5_example15_modulus
5297#define ac_rsaes_pkcs1_v1_5_vect15_pub_exp ac_rsaes_pkcs1_v1_5_example15_pub_exp
5298#define ac_rsaes_pkcs1_v1_5_vect15_priv_exp ac_rsaes_pkcs1_v1_5_example15_priv_exp
5299#define ac_rsaes_pkcs1_v1_5_vect15_prime1 ac_rsaes_pkcs1_v1_5_example15_prime1
5300#define ac_rsaes_pkcs1_v1_5_vect15_prime2 ac_rsaes_pkcs1_v1_5_example15_prime2
5301#define ac_rsaes_pkcs1_v1_5_vect15_exp1 ac_rsaes_pkcs1_v1_5_example15_exp1
5302#define ac_rsaes_pkcs1_v1_5_vect15_exp2 ac_rsaes_pkcs1_v1_5_example15_exp2
5303#define ac_rsaes_pkcs1_v1_5_vect15_coeff ac_rsaes_pkcs1_v1_5_example15_coeff
5304
5305/*
5306 * PKCS#1 v1.5 Encryption Example 15.9
5307 * from ftp://ftp.rsa.com/pub/rsalabs/tmp/pkcs1v15crypt-vectors.txt
5308 */
5309static const uint8_t ac_rsaes_pkcs1_v1_5_vect15_ptx[] = {
5310 0x9a, 0x13, 0x96, 0x62, 0x2d, 0x06, 0x6c, 0x10, 0x56, 0x08, 0x58, 0xc2, 0xc4, 0xcd, 0x5c, 0x04,
5311 0x44, 0x9e, 0x2b, 0x95, 0x50, 0xc5, 0xbc, 0x92, 0x93, 0x76, 0x1a, 0x91, 0x04, 0x41, 0x1d, 0xa1,
5312 0x8a, 0x57, 0xd9, 0xb6, 0xa9, 0x97, 0x33, 0x3c, 0xdb, 0xce, 0x77, 0xe9, 0xfd, 0xbe, 0x6b, 0xb8,
5313 0x31,
5314};
5315
5316static const uint8_t ac_rsaes_pkcs1_v1_5_vect15_out[] = {
5317 0x10, 0x0e, 0xce, 0x63, 0x45, 0x25, 0xd4, 0x67, 0xf6, 0xd4, 0xa6, 0xb6, 0x6e, 0xde, 0x1c, 0xc2,
5318 0x37, 0xf6, 0x1f, 0xb2, 0xb6, 0x70, 0x23, 0xa8, 0x3d, 0xc4, 0x56, 0xb9, 0x2c, 0xda, 0x18, 0x3e,
5319 0xd6, 0x62, 0x0f, 0xe5, 0x7d, 0x5a, 0x67, 0x33, 0x2c, 0x77, 0x23, 0x3a, 0xc1, 0xe8, 0x72, 0x5b,
5320 0x36, 0xf8, 0xe1, 0xb1, 0x08, 0x41, 0x2c, 0xa6, 0xfb, 0x35, 0xdc, 0xd4, 0xd8, 0x16, 0x77, 0xa2,
5321 0xb3, 0x0d, 0x5e, 0xaf, 0x25, 0xe0, 0xb9, 0x19, 0x1b, 0x38, 0xf7, 0xee, 0xf8, 0x3f, 0x91, 0x21,
5322 0xa8, 0x08, 0x43, 0x8c, 0x92, 0xab, 0x03, 0xf5, 0x20, 0x80, 0x7b, 0xc9, 0xa8, 0x94, 0x70, 0x5e,
5323 0xaf, 0x4e, 0xed, 0x06, 0x68, 0x23, 0xa6, 0x7a, 0xa2, 0xa5, 0x59, 0x9c, 0xd9, 0x5e, 0x58, 0xda,
5324 0x7c, 0x09, 0x48, 0x36, 0xd2, 0xaf, 0xeb, 0xa3, 0x9d, 0xd0, 0x09, 0xa6, 0x4a, 0xde, 0x03, 0x05,
5325 0x33, 0x76, 0xf0, 0x29, 0x36, 0xcf, 0x3f, 0x56, 0xbf, 0x64, 0xc1, 0xf3, 0xbd, 0xc0, 0x7c, 0x45,
5326 0xa9, 0x5b, 0x9f, 0xcd, 0x93, 0x96, 0xcd, 0x9a, 0x8d, 0x41, 0xbc, 0xc5, 0x64, 0x24, 0x93, 0x7a,
5327 0x13, 0x71, 0xb3, 0x84, 0x7c, 0x90, 0x5b, 0x9a, 0xb5, 0x84, 0x02, 0x39, 0x3d, 0x40, 0x46, 0xe4,
5328 0xa0, 0x15, 0xc1, 0x47, 0x08, 0xf7, 0x4c, 0xe7, 0x79, 0x0e, 0xba, 0x8a, 0xf7, 0x92, 0x07, 0x24,
5329 0x40, 0xbc, 0xaf, 0xb1, 0x4c, 0x0f, 0x81, 0x08, 0x97, 0x11, 0x87, 0xc8, 0x0f, 0x46, 0x3a, 0x1f,
5330 0xff, 0x25, 0x86, 0x46, 0xea, 0x16, 0xe5, 0x1c, 0x6e, 0xe3, 0x61, 0xb6, 0x61, 0xa1, 0x4f, 0x07,
5331 0xcd, 0x4f, 0x5a, 0x82, 0xc7, 0x09, 0xf4, 0x94, 0xf1, 0xdf, 0x0f, 0x80, 0x3b, 0x6f, 0x64, 0xa7,
5332 0x2f, 0xb9, 0xc4, 0x50, 0xff, 0xe2, 0x68, 0xfc, 0xab, 0x48, 0x7d, 0x4d, 0x63, 0x01, 0x3e, 0x41,
5333};
5334
5335/*
5336 * PKCS#1 v1.5 Encryption Example 10.1
5337 * from http://armcryptolib.das-labor.org/trac/browser/testvectors/rsa-pkcs-1v2-1-vec/oaep-vect.txt
5338 */
5339
5340static const uint8_t ac_rsaes_oaep_vect10_modulus[] = {
5341 0xae, 0x45, 0xed, 0x56, 0x01, 0xce, 0xc6, 0xb8, 0xcc, 0x05, 0xf8, 0x03, 0x93, 0x5c, 0x67, 0x4d,
5342 0xdb, 0xe0, 0xd7, 0x5c, 0x4c, 0x09, 0xfd, 0x79, 0x51, 0xfc, 0x6b, 0x0c, 0xae, 0xc3, 0x13, 0xa8,
5343 0xdf, 0x39, 0x97, 0x0c, 0x51, 0x8b, 0xff, 0xba, 0x5e, 0xd6, 0x8f, 0x3f, 0x0d, 0x7f, 0x22, 0xa4,
5344 0x02, 0x9d, 0x41, 0x3f, 0x1a, 0xe0, 0x7e, 0x4e, 0xbe, 0x9e, 0x41, 0x77, 0xce, 0x23, 0xe7, 0xf5,
5345 0x40, 0x4b, 0x56, 0x9e, 0x4e, 0xe1, 0xbd, 0xcf, 0x3c, 0x1f, 0xb0, 0x3e, 0xf1, 0x13, 0x80, 0x2d,
5346 0x4f, 0x85, 0x5e, 0xb9, 0xb5, 0x13, 0x4b, 0x5a, 0x7c, 0x80, 0x85, 0xad, 0xca, 0xe6, 0xfa, 0x2f,
5347 0xa1, 0x41, 0x7e, 0xc3, 0x76, 0x3b, 0xe1, 0x71, 0xb0, 0xc6, 0x2b, 0x76, 0x0e, 0xde, 0x23, 0xc1,
5348 0x2a, 0xd9, 0x2b, 0x98, 0x08, 0x84, 0xc6, 0x41, 0xf5, 0xa8, 0xfa, 0xc2, 0x6b, 0xda, 0xd4, 0xa0,
5349 0x33, 0x81, 0xa2, 0x2f, 0xe1, 0xb7, 0x54, 0x88, 0x50, 0x94, 0xc8, 0x25, 0x06, 0xd4, 0x01, 0x9a,
5350 0x53, 0x5a, 0x28, 0x6a, 0xfe, 0xb2, 0x71, 0xbb, 0x9b, 0xa5, 0x92, 0xde, 0x18, 0xdc, 0xf6, 0x00,
5351 0xc2, 0xae, 0xea, 0xe5, 0x6e, 0x02, 0xf7, 0xcf, 0x79, 0xfc, 0x14, 0xcf, 0x3b, 0xdc, 0x7c, 0xd8,
5352 0x4f, 0xeb, 0xbb, 0xf9, 0x50, 0xca, 0x90, 0x30, 0x4b, 0x22, 0x19, 0xa7, 0xaa, 0x06, 0x3a, 0xef,
5353 0xa2, 0xc3, 0xc1, 0x98, 0x0e, 0x56, 0x0c, 0xd6, 0x4a, 0xfe, 0x77, 0x95, 0x85, 0xb6, 0x10, 0x76,
5354 0x57, 0xb9, 0x57, 0x85, 0x7e, 0xfd, 0xe6, 0x01, 0x09, 0x88, 0xab, 0x7d, 0xe4, 0x17, 0xfc, 0x88,
5355 0xd8, 0xf3, 0x84, 0xc4, 0xe6, 0xe7, 0x2c, 0x3f, 0x94, 0x3e, 0x0c, 0x31, 0xc0, 0xc4, 0xa5, 0xcc,
5356 0x36, 0xf8, 0x79, 0xd8, 0xa3, 0xac, 0x9d, 0x7d, 0x59, 0x86, 0x0e, 0xaa, 0xda, 0x6b, 0x83, 0xbb,
5357};
5358
5359static const uint8_t ac_rsaes_oaep_vect10_pub_exp[] = {
5360 0x01, 0x00, 0x01,
5361};
5362
5363static const uint8_t ac_rsaes_oaep_vect10_priv_exp[] = {
5364 0x05, 0x6b, 0x04, 0x21, 0x6f, 0xe5, 0xf3, 0x54, 0xac, 0x77, 0x25, 0x0a, 0x4b, 0x6b, 0x0c, 0x85,
5365 0x25, 0xa8, 0x5c, 0x59, 0xb0, 0xbd, 0x80, 0xc5, 0x64, 0x50, 0xa2, 0x2d, 0x5f, 0x43, 0x8e, 0x59,
5366 0x6a, 0x33, 0x3a, 0xa8, 0x75, 0xe2, 0x91, 0xdd, 0x43, 0xf4, 0x8c, 0xb8, 0x8b, 0x9d, 0x5f, 0xc0,
5367 0xd4, 0x99, 0xf9, 0xfc, 0xd1, 0xc3, 0x97, 0xf9, 0xaf, 0xc0, 0x70, 0xcd, 0x9e, 0x39, 0x8c, 0x8d,
5368 0x19, 0xe6, 0x1d, 0xb7, 0xc7, 0x41, 0x0a, 0x6b, 0x26, 0x75, 0xdf, 0xbf, 0x5d, 0x34, 0x5b, 0x80,
5369 0x4d, 0x20, 0x1a, 0xdd, 0x50, 0x2d, 0x5c, 0xe2, 0xdf, 0xcb, 0x09, 0x1c, 0xe9, 0x99, 0x7b, 0xbe,
5370 0xbe, 0x57, 0x30, 0x6f, 0x38, 0x3e, 0x4d, 0x58, 0x81, 0x03, 0xf0, 0x36, 0xf7, 0xe8, 0x5d, 0x19,
5371 0x34, 0xd1, 0x52, 0xa3, 0x23, 0xe4, 0xa8, 0xdb, 0x45, 0x1d, 0x6f, 0x4a, 0x5b, 0x1b, 0x0f, 0x10,
5372 0x2c, 0xc1, 0x50, 0xe0, 0x2f, 0xee, 0xe2, 0xb8, 0x8d, 0xea, 0x4a, 0xd4, 0xc1, 0xba, 0xcc, 0xb2,
5373 0x4d, 0x84, 0x07, 0x2d, 0x14, 0xe1, 0xd2, 0x4a, 0x67, 0x71, 0xf7, 0x40, 0x8e, 0xe3, 0x05, 0x64,
5374 0xfb, 0x86, 0xd4, 0x39, 0x3a, 0x34, 0xbc, 0xf0, 0xb7, 0x88, 0x50, 0x1d, 0x19, 0x33, 0x03, 0xf1,
5375 0x3a, 0x22, 0x84, 0xb0, 0x01, 0xf0, 0xf6, 0x49, 0xea, 0xf7, 0x93, 0x28, 0xd4, 0xac, 0x5c, 0x43,
5376 0x0a, 0xb4, 0x41, 0x49, 0x20, 0xa9, 0x46, 0x0e, 0xd1, 0xb7, 0xbc, 0x40, 0xec, 0x65, 0x3e, 0x87,
5377 0x6d, 0x09, 0xab, 0xc5, 0x09, 0xae, 0x45, 0xb5, 0x25, 0x19, 0x01, 0x16, 0xa0, 0xc2, 0x61, 0x01,
5378 0x84, 0x82, 0x98, 0x50, 0x9c, 0x1c, 0x3b, 0xf3, 0xa4, 0x83, 0xe7, 0x27, 0x40, 0x54, 0xe1, 0x5e,
5379 0x97, 0x07, 0x50, 0x36, 0xe9, 0x89, 0xf6, 0x09, 0x32, 0x80, 0x7b, 0x52, 0x57, 0x75, 0x1e, 0x79,
5380};
5381
5382static const uint8_t ac_rsaes_oaep_vect10_prime1[] = {
5383 0xec, 0xf5, 0xae, 0xcd, 0x1e, 0x55, 0x15, 0xff, 0xfa, 0xcb, 0xd7, 0x5a, 0x28, 0x16, 0xc6, 0xeb,
5384 0xf4, 0x90, 0x18, 0xcd, 0xfb, 0x46, 0x38, 0xe1, 0x85, 0xd6, 0x6a, 0x73, 0x96, 0xb6, 0xf8, 0x09,
5385 0x0f, 0x80, 0x18, 0xc7, 0xfd, 0x95, 0xcc, 0x34, 0xb8, 0x57, 0xdc, 0x17, 0xf0, 0xcc, 0x65, 0x16,
5386 0xbb, 0x13, 0x46, 0xab, 0x4d, 0x58, 0x2c, 0xad, 0xad, 0x7b, 0x41, 0x03, 0x35, 0x23, 0x87, 0xb7,
5387 0x03, 0x38, 0xd0, 0x84, 0x04, 0x7c, 0x9d, 0x95, 0x39, 0xb6, 0x49, 0x62, 0x04, 0xb3, 0xdd, 0x6e,
5388 0xa4, 0x42, 0x49, 0x92, 0x07, 0xbe, 0xc0, 0x1f, 0x96, 0x42, 0x87, 0xff, 0x63, 0x36, 0xc3, 0x98,
5389 0x46, 0x58, 0x33, 0x68, 0x46, 0xf5, 0x6e, 0x46, 0x86, 0x18, 0x81, 0xc1, 0x02, 0x33, 0xd2, 0x17,
5390 0x6b, 0xf1, 0x5a, 0x5e, 0x96, 0xdd, 0xc7, 0x80, 0xbc, 0x86, 0x8a, 0xa7, 0x7d, 0x3c, 0xe7, 0x69,
5391};
5392
5393static const uint8_t ac_rsaes_oaep_vect10_prime2[] = {
5394 0xbc, 0x46, 0xc4, 0x64, 0xfc, 0x6a, 0xc4, 0xca, 0x78, 0x3b, 0x0e, 0xb0, 0x8a, 0x3c, 0x84, 0x1b,
5395 0x77, 0x2f, 0x7e, 0x9b, 0x2f, 0x28, 0xba, 0xbd, 0x58, 0x8a, 0xe8, 0x85, 0xe1, 0xa0, 0xc6, 0x1e,
5396 0x48, 0x58, 0xa0, 0xfb, 0x25, 0xac, 0x29, 0x99, 0x90, 0xf3, 0x5b, 0xe8, 0x51, 0x64, 0xc2, 0x59,
5397 0xba, 0x11, 0x75, 0xcd, 0xd7, 0x19, 0x27, 0x07, 0x13, 0x51, 0x84, 0x99, 0x2b, 0x6c, 0x29, 0xb7,
5398 0x46, 0xdd, 0x0d, 0x2c, 0xab, 0xe1, 0x42, 0x83, 0x5f, 0x7d, 0x14, 0x8c, 0xc1, 0x61, 0x52, 0x4b,
5399 0x4a, 0x09, 0x94, 0x6d, 0x48, 0xb8, 0x28, 0x47, 0x3f, 0x1c, 0xe7, 0x6b, 0x6c, 0xb6, 0x88, 0x6c,
5400 0x34, 0x5c, 0x03, 0xe0, 0x5f, 0x41, 0xd5, 0x1b, 0x5c, 0x3a, 0x90, 0xa3, 0xf2, 0x40, 0x73, 0xc7,
5401 0xd7, 0x4a, 0x4f, 0xe2, 0x5d, 0x9c, 0xf2, 0x1c, 0x75, 0x96, 0x0f, 0x3f, 0xc3, 0x86, 0x31, 0x83,
5402};
5403
5404static const uint8_t ac_rsaes_oaep_vect10_exp1[] = {
5405 0xc7, 0x35, 0x64, 0x57, 0x1d, 0x00, 0xfb, 0x15, 0xd0, 0x8a, 0x3d, 0xe9, 0x95, 0x7a, 0x50, 0x91,
5406 0x5d, 0x71, 0x26, 0xe9, 0x44, 0x2d, 0xac, 0xf4, 0x2b, 0xc8, 0x2e, 0x86, 0x2e, 0x56, 0x73, 0xff,
5407 0x6a, 0x00, 0x8e, 0xd4, 0xd2, 0xe3, 0x74, 0x61, 0x7d, 0xf8, 0x9f, 0x17, 0xa1, 0x60, 0xb4, 0x3b,
5408 0x7f, 0xda, 0x9c, 0xb6, 0xb6, 0xb7, 0x42, 0x18, 0x60, 0x98, 0x15, 0xf7, 0xd4, 0x5c, 0xa2, 0x63,
5409 0xc1, 0x59, 0xaa, 0x32, 0xd2, 0x72, 0xd1, 0x27, 0xfa, 0xf4, 0xbc, 0x8c, 0xa2, 0xd7, 0x73, 0x78,
5410 0xe8, 0xae, 0xb1, 0x9b, 0x0a, 0xd7, 0xda, 0x3c, 0xb3, 0xde, 0x0a, 0xe7, 0x31, 0x49, 0x80, 0xf6,
5411 0x2b, 0x6d, 0x4b, 0x0a, 0x87, 0x5d, 0x1d, 0xf0, 0x3c, 0x1b, 0xae, 0x39, 0xcc, 0xd8, 0x33, 0xef,
5412 0x6c, 0xd7, 0xe2, 0xd9, 0x52, 0x8b, 0xf0, 0x84, 0xd1, 0xf9, 0x69, 0xe7, 0x94, 0xe9, 0xf6, 0xc1,
5413};
5414
5415static const uint8_t ac_rsaes_oaep_vect10_exp2[] = {
5416 0x26, 0x58, 0xb3, 0x7f, 0x6d, 0xf9, 0xc1, 0x03, 0x0b, 0xe1, 0xdb, 0x68, 0x11, 0x7f, 0xa9, 0xd8,
5417 0x7e, 0x39, 0xea, 0x2b, 0x69, 0x3b, 0x7e, 0x6d, 0x3a, 0x2f, 0x70, 0x94, 0x74, 0x13, 0xee, 0xc6,
5418 0x14, 0x2e, 0x18, 0xfb, 0x8d, 0xfc, 0xb6, 0xac, 0x54, 0x5d, 0x7c, 0x86, 0xa0, 0xad, 0x48, 0xf8,
5419 0x45, 0x71, 0x70, 0xf0, 0xef, 0xb2, 0x6b, 0xc4, 0x81, 0x26, 0xc5, 0x3e, 0xfd, 0x1d, 0x16, 0x92,
5420 0x01, 0x98, 0xdc, 0x2a, 0x11, 0x07, 0xdc, 0x28, 0x2d, 0xb6, 0xa8, 0x0c, 0xd3, 0x06, 0x23, 0x60,
5421 0xba, 0x3f, 0xa1, 0x3f, 0x70, 0xe4, 0x31, 0x2f, 0xf1, 0xa6, 0xcd, 0x6b, 0x8f, 0xc4, 0xcd, 0x9c,
5422 0x5c, 0x3d, 0xb1, 0x7c, 0x6d, 0x6a, 0x57, 0x21, 0x2f, 0x73, 0xae, 0x29, 0xf6, 0x19, 0x32, 0x7b,
5423 0xad, 0x59, 0xb1, 0x53, 0x85, 0x85, 0x85, 0xba, 0x4e, 0x28, 0xb6, 0x0a, 0x62, 0xa4, 0x5e, 0x49,
5424};
5425
5426static const uint8_t ac_rsaes_oaep_vect10_coeff[] = {
5427 0x6f, 0x38, 0x52, 0x6b, 0x39, 0x25, 0x08, 0x55, 0x34, 0xef, 0x3e, 0x41, 0x5a, 0x83, 0x6e, 0xde,
5428 0x8b, 0x86, 0x15, 0x8a, 0x2c, 0x7c, 0xbf, 0xec, 0xcb, 0x0b, 0xd8, 0x34, 0x30, 0x4f, 0xec, 0x68,
5429 0x3b, 0xa8, 0xd4, 0xf4, 0x79, 0xc4, 0x33, 0xd4, 0x34, 0x16, 0xe6, 0x32, 0x69, 0x62, 0x3c, 0xea,
5430 0x10, 0x07, 0x76, 0xd8, 0x5a, 0xff, 0x40, 0x1d, 0x3f, 0xff, 0x61, 0x0e, 0xe6, 0x54, 0x11, 0xce,
5431 0x3b, 0x13, 0x63, 0xd6, 0x3a, 0x97, 0x09, 0xee, 0xde, 0x42, 0x64, 0x7c, 0xea, 0x56, 0x14, 0x93,
5432 0xd5, 0x45, 0x70, 0xa8, 0x79, 0xc1, 0x86, 0x82, 0xcd, 0x97, 0x71, 0x0b, 0x96, 0x20, 0x5e, 0xc3,
5433 0x11, 0x17, 0xd7, 0x3b, 0x5f, 0x36, 0x22, 0x3f, 0xad, 0xd6, 0xe8, 0xba, 0x90, 0xdd, 0x7c, 0x0e,
5434 0xe6, 0x1d, 0x44, 0xe1, 0x63, 0x25, 0x1e, 0x20, 0xc7, 0xf6, 0x6e, 0xb3, 0x05, 0x11, 0x7c, 0xb8,
5435};
5436
5437static const uint8_t ac_rsaes_oaep_vect10_ptx[] = {
5438 0x8b, 0xba, 0x6b, 0xf8, 0x2a, 0x6c, 0x0f, 0x86, 0xd5, 0xf1, 0x75, 0x6e, 0x97, 0x95, 0x68, 0x70,
5439 0xb0, 0x89, 0x53, 0xb0, 0x6b, 0x4e, 0xb2, 0x05, 0xbc, 0x16, 0x94, 0xee,
5440};
5441
5442static const uint8_t ac_rsaes_oaep_vect10_out[] = {
5443 0x53, 0xea, 0x5d, 0xc0, 0x8c, 0xd2, 0x60, 0xfb, 0x3b, 0x85, 0x85, 0x67, 0x28, 0x7f, 0xa9, 0x15,
5444 0x52, 0xc3, 0x0b, 0x2f, 0xeb, 0xfb, 0xa2, 0x13, 0xf0, 0xae, 0x87, 0x70, 0x2d, 0x06, 0x8d, 0x19,
5445 0xba, 0xb0, 0x7f, 0xe5, 0x74, 0x52, 0x3d, 0xfb, 0x42, 0x13, 0x9d, 0x68, 0xc3, 0xc5, 0xaf, 0xee,
5446 0xe0, 0xbf, 0xe4, 0xcb, 0x79, 0x69, 0xcb, 0xf3, 0x82, 0xb8, 0x04, 0xd6, 0xe6, 0x13, 0x96, 0x14,
5447 0x4e, 0x2d, 0x0e, 0x60, 0x74, 0x1f, 0x89, 0x93, 0xc3, 0x01, 0x4b, 0x58, 0xb9, 0xb1, 0x95, 0x7a,
5448 0x8b, 0xab, 0xcd, 0x23, 0xaf, 0x85, 0x4f, 0x4c, 0x35, 0x6f, 0xb1, 0x66, 0x2a, 0xa7, 0x2b, 0xfc,
5449 0xc7, 0xe5, 0x86, 0x55, 0x9d, 0xc4, 0x28, 0x0d, 0x16, 0x0c, 0x12, 0x67, 0x85, 0xa7, 0x23, 0xeb,
5450 0xee, 0xbe, 0xff, 0x71, 0xf1, 0x15, 0x94, 0x44, 0x0a, 0xae, 0xf8, 0x7d, 0x10, 0x79, 0x3a, 0x87,
5451 0x74, 0xa2, 0x39, 0xd4, 0xa0, 0x4c, 0x87, 0xfe, 0x14, 0x67, 0xb9, 0xda, 0xf8, 0x52, 0x08, 0xec,
5452 0x6c, 0x72, 0x55, 0x79, 0x4a, 0x96, 0xcc, 0x29, 0x14, 0x2f, 0x9a, 0x8b, 0xd4, 0x18, 0xe3, 0xc1,
5453 0xfd, 0x67, 0x34, 0x4b, 0x0c, 0xd0, 0x82, 0x9d, 0xf3, 0xb2, 0xbe, 0xc6, 0x02, 0x53, 0x19, 0x62,
5454 0x93, 0xc6, 0xb3, 0x4d, 0x3f, 0x75, 0xd3, 0x2f, 0x21, 0x3d, 0xd4, 0x5c, 0x62, 0x73, 0xd5, 0x05,
5455 0xad, 0xf4, 0xcc, 0xed, 0x10, 0x57, 0xcb, 0x75, 0x8f, 0xc2, 0x6a, 0xee, 0xfa, 0x44, 0x12, 0x55,
5456 0xed, 0x4e, 0x64, 0xc1, 0x99, 0xee, 0x07, 0x5e, 0x7f, 0x16, 0x64, 0x61, 0x82, 0xfd, 0xb4, 0x64,
5457 0x73, 0x9b, 0x68, 0xab, 0x5d, 0xaf, 0xf0, 0xe6, 0x3e, 0x95, 0x52, 0x01, 0x68, 0x24, 0xf0, 0x54,
5458 0xbf, 0x4d, 0x3c, 0x8c, 0x90, 0xa9, 0x7b, 0xb6, 0xb6, 0x55, 0x32, 0x84, 0xeb, 0x42, 0x9f, 0xcc,
5459};
5460
5461/* diffie hellman test data */
5462/* p and g testdata generated using the following line:
5463 * for i in {256..2048..64}; do openssl dhparam -C -5 $i; done
5464 */
5465static const uint8_t keygen_dh256_p[] = {
5466 0xB6, 0x73, 0x91, 0xB5, 0xD6, 0xBC, 0x95, 0x73, 0x0D, 0x53, 0x64, 0x13,
5467 0xB0, 0x51, 0xC6, 0xB4, 0xEB, 0x9D, 0x74, 0x57, 0x8D, 0x65, 0x3A, 0x4B,
5468 0x7A, 0xB2, 0x93, 0x27, 0xA6, 0xC1, 0xBC, 0xAB,
5469};
5470
5471static const uint8_t keygen_dh256_g[] = {
5472 0x05,
5473};
5474
5475static const uint8_t keygen_dh320_p[] = {
5476 0x80, 0x72, 0x50, 0x4F, 0x85, 0xD2, 0x32, 0x70, 0xA3, 0x11, 0xF4, 0x46,
5477 0x01, 0x72, 0xD0, 0x72, 0x96, 0xA5, 0x1B, 0xFA, 0x8F, 0x35, 0x49, 0x75,
5478 0x04, 0xA5, 0x5A, 0x62, 0xB6, 0x33, 0xD6, 0x3C, 0x46, 0xD1, 0xED, 0xD7,
5479 0xB1, 0xD4, 0xBA, 0xF3,
5480};
5481
5482static const uint8_t keygen_dh320_g[] = {
5483 0x05,
5484};
5485
5486static const uint8_t keygen_dh384_p[] = {
5487 0xC2, 0x04, 0xC8, 0x0E, 0xE8, 0x3F, 0x02, 0x1F, 0xDE, 0x0C, 0xAA, 0x2E,
5488 0x67, 0x13, 0xF4, 0x33, 0x67, 0x82, 0x59, 0xE7, 0x80, 0xE5, 0x42, 0xEA,
5489 0x2F, 0xC4, 0x71, 0x93, 0xA7, 0x1C, 0x86, 0xEC, 0x8C, 0x39, 0xF8, 0xC7,
5490 0xF1, 0xE3, 0xE0, 0xEE, 0xC4, 0x55, 0xF5, 0x4F, 0xE7, 0x98, 0xF0, 0x47,
5491};
5492
5493static const uint8_t keygen_dh384_g[] = {
5494 0x05,
5495};
5496
5497static const uint8_t keygen_dh448_p[] = {
5498 0x91, 0xB9, 0x28, 0x8F, 0x01, 0x62, 0xA1, 0x40, 0x4D, 0x53, 0xC7, 0xD5,
5499 0xEE, 0x97, 0x40, 0x03, 0x39, 0x39, 0x41, 0x5F, 0x17, 0x0F, 0xA2, 0x78,
5500 0xBF, 0x3D, 0x6B, 0x33, 0x33, 0x39, 0x3B, 0x57, 0x21, 0x5B, 0xF9, 0xB1,
5501 0x6C, 0xE3, 0xB8, 0x19, 0xBE, 0x81, 0xBD, 0xC4, 0xFF, 0x4C, 0xFA, 0x48,
5502 0x63, 0x24, 0x10, 0x33, 0xDE, 0x3A, 0xFD, 0x3B,
5503};
5504
5505static const uint8_t keygen_dh448_g[] = {
5506 0x05,
5507};
5508
5509static const uint8_t keygen_dh512_p[] = {
5510 0xCF, 0x09, 0xB8, 0xCD, 0x0B, 0xC5, 0x9D, 0xBD, 0x7A, 0x34, 0x50, 0x55,
5511 0xEC, 0xD4, 0xED, 0x92, 0x9D, 0x63, 0x92, 0xF9, 0x1D, 0x42, 0xF3, 0x64,
5512 0x04, 0x3D, 0xCC, 0xAA, 0x5F, 0xD1, 0xBB, 0xEA, 0x44, 0x12, 0xFC, 0xF0,
5513 0xFB, 0xFF, 0x26, 0x57, 0xE3, 0x6E, 0xA8, 0x3F, 0x45, 0x43, 0x11, 0x81,
5514 0xC6, 0x79, 0xF0, 0x0B, 0x11, 0x23, 0x1D, 0x7B, 0x1E, 0x59, 0xA8, 0xB8,
5515 0x69, 0x44, 0xA7, 0xE3,
5516};
5517
5518static const uint8_t keygen_dh512_g[] = {
5519 0x05,
5520};
5521
5522static const uint8_t keygen_dh576_p[] = {
5523 0xEF, 0xA2, 0xD7, 0x81, 0x88, 0xAA, 0xBF, 0x70, 0x03, 0x70, 0xD4, 0x75,
5524 0xA6, 0x3E, 0x5B, 0xCF, 0x73, 0xDE, 0x7D, 0x45, 0x67, 0x47, 0xB1, 0xCF,
5525 0xA8, 0x62, 0xA9, 0x13, 0x9F, 0xC3, 0x9B, 0x96, 0xCE, 0xB9, 0x0C, 0x24,
5526 0xAC, 0xCB, 0xB6, 0x40, 0x30, 0x25, 0x26, 0x4E, 0x9D, 0x50, 0xA7, 0x8F,
5527 0x09, 0x1C, 0x9B, 0xDE, 0x77, 0x8A, 0xE8, 0xAA, 0xDA, 0xC2, 0x31, 0x08,
5528 0x55, 0x2C, 0xC1, 0x13, 0x24, 0x6E, 0x5A, 0xE7, 0xA1, 0xBC, 0xE5, 0x5B,
5529};
5530
5531static const uint8_t keygen_dh576_g[] = {
5532 0x05,
5533};
5534
5535static const uint8_t keygen_dh640_p[] = {
5536 0xED, 0xB6, 0x90, 0x9C, 0x72, 0x5C, 0x63, 0x11, 0x17, 0xA9, 0xB6, 0x0E,
5537 0x6C, 0x80, 0xA9, 0xF3, 0x15, 0x36, 0x9D, 0x49, 0x02, 0x2B, 0x4F, 0x12,
5538 0x1A, 0xFD, 0x00, 0xC0, 0x9B, 0x12, 0x10, 0x96, 0x18, 0x55, 0x3F, 0x0C,
5539 0x75, 0x46, 0x6E, 0xDF, 0x0A, 0x58, 0x8E, 0x1B, 0x4B, 0xFF, 0x24, 0x70,
5540 0xFC, 0x29, 0xE8, 0x67, 0x8F, 0x0B, 0x72, 0x14, 0x80, 0x6F, 0xE9, 0xCD,
5541 0x30, 0x3C, 0x16, 0xB9, 0xB0, 0x32, 0xBE, 0x6A, 0x1D, 0x06, 0xEE, 0x6D,
5542 0x15, 0x44, 0x49, 0x55, 0xA8, 0x08, 0x2D, 0x0F,
5543};
5544
5545static const uint8_t keygen_dh640_g[] = {
5546 0x05,
5547};
5548
5549static const uint8_t keygen_dh704_p[] = {
5550 0xA6, 0xBF, 0xA1, 0x02, 0x02, 0xA7, 0x7A, 0x6E, 0xFC, 0x48, 0x55, 0x81,
5551 0x23, 0x3F, 0x08, 0x8E, 0x83, 0xE9, 0x10, 0x92, 0x96, 0x82, 0x5F, 0xB8,
5552 0x88, 0x28, 0x0C, 0x6A, 0x04, 0x41, 0xEF, 0x4C, 0xCC, 0x2F, 0x16, 0xCD,
5553 0xA4, 0x2F, 0x24, 0x3B, 0xB6, 0x8A, 0x45, 0x76, 0xB3, 0xFA, 0x23, 0x83,
5554 0x53, 0xB2, 0x8F, 0x0C, 0xAE, 0xF9, 0xE8, 0xDB, 0x46, 0x5B, 0xBF, 0x7E,
5555 0xC3, 0x6F, 0x4F, 0xE6, 0xE7, 0x51, 0x75, 0x49, 0xB5, 0x4B, 0xBE, 0x48,
5556 0x51, 0x64, 0x9F, 0x5D, 0x56, 0xC7, 0x28, 0x9C, 0xC5, 0xBD, 0x0C, 0xD2,
5557 0x3A, 0x63, 0x49, 0x57,
5558};
5559
5560static const uint8_t keygen_dh704_g[] = {
5561 0x05,
5562};
5563
5564static const uint8_t keygen_dh768_p[] = {
5565 0xEA, 0x9B, 0x0E, 0xD5, 0xDF, 0xC6, 0x9C, 0x8A, 0x26, 0x29, 0xD4, 0x2A,
5566 0x94, 0x4F, 0xD5, 0x3E, 0xEA, 0xEC, 0xCD, 0x89, 0xDA, 0x9C, 0x12, 0x52,
5567 0x94, 0xA7, 0x1A, 0x7D, 0x14, 0x94, 0xB1, 0x89, 0x79, 0xF3, 0x4A, 0xC3,
5568 0xD6, 0xF5, 0x52, 0xA6, 0x65, 0xC6, 0x0C, 0xD2, 0x2B, 0x16, 0xCB, 0x4F,
5569 0x69, 0x4C, 0x41, 0x6C, 0xA6, 0xAF, 0xCE, 0xFD, 0x50, 0x0E, 0x8C, 0x9E,
5570 0xA7, 0x19, 0x46, 0x6E, 0xC2, 0x27, 0xB9, 0xAF, 0x61, 0x4B, 0xDA, 0x3A,
5571 0x60, 0xBA, 0x6D, 0xCE, 0xBA, 0x39, 0x1C, 0x02, 0xBF, 0x09, 0xF0, 0xF9,
5572 0x87, 0xBE, 0xA1, 0xDE, 0x4E, 0x34, 0x7B, 0x28, 0x3A, 0xC2, 0x9E, 0x83,
5573};
5574
5575static const uint8_t keygen_dh768_g[] = {
5576 0x05,
5577};
5578
5579static const uint8_t keygen_dh832_p[] = {
5580 0xB9, 0x0C, 0x79, 0x82, 0x7B, 0x23, 0xB7, 0x2F, 0x5A, 0x7B, 0xB1, 0xB9,
5581 0x63, 0x30, 0x7C, 0xD4, 0x0B, 0xEB, 0x7B, 0x8A, 0x67, 0x3E, 0x3B, 0x67,
5582 0xF1, 0x72, 0x90, 0x0E, 0xBF, 0x67, 0xEF, 0xBB, 0x95, 0xC1, 0x47, 0xED,
5583 0x89, 0x11, 0x79, 0x40, 0x63, 0x02, 0xF0, 0x41, 0x0C, 0xD1, 0x76, 0x15,
5584 0xAA, 0x24, 0x6A, 0xAE, 0x98, 0xFB, 0x19, 0x1F, 0x43, 0xB9, 0x92, 0xC7,
5585 0xB6, 0x33, 0xD8, 0x85, 0xBD, 0x06, 0x7D, 0x68, 0x32, 0xEE, 0xDB, 0x41,
5586 0xEF, 0x7B, 0xBD, 0xB4, 0xFE, 0x53, 0x4F, 0x6C, 0xA8, 0x26, 0xE0, 0x62,
5587 0x7D, 0x06, 0x06, 0xC5, 0xFB, 0x47, 0xD0, 0x3F, 0x4B, 0xC1, 0x7A, 0xC4,
5588 0x2A, 0xF3, 0x69, 0xF2, 0xDE, 0x77, 0xCD, 0x03,
5589};
5590
5591static const uint8_t keygen_dh832_g[] = {
5592 0x05,
5593};
5594
5595static const uint8_t keygen_dh896_p[] = {
5596 0xA8, 0x1A, 0xFB, 0xF4, 0x12, 0xF8, 0x17, 0x16, 0x89, 0x20, 0xAE, 0x6F,
5597 0x07, 0x55, 0x13, 0xCA, 0x99, 0x66, 0xA3, 0x1F, 0x07, 0xAC, 0x32, 0x5C,
5598 0xF5, 0xF0, 0x39, 0xA3, 0xDA, 0xF5, 0x55, 0xF9, 0x3C, 0xF3, 0x15, 0xF8,
5599 0x44, 0xC1, 0x10, 0x6A, 0x3D, 0x2F, 0x97, 0xFD, 0xAC, 0x74, 0x1E, 0xEE,
5600 0xCF, 0xDD, 0xEE, 0x70, 0x57, 0xBA, 0x4B, 0x41, 0xD6, 0x3F, 0xDD, 0x01,
5601 0xFB, 0x0C, 0x26, 0xA9, 0x06, 0xCD, 0x1B, 0xA2, 0xD3, 0x3E, 0xAD, 0x2D,
5602 0x29, 0xFB, 0x79, 0xB8, 0x8E, 0x50, 0xCC, 0xA1, 0x85, 0x37, 0xFA, 0xF1,
5603 0xBB, 0xB1, 0x5D, 0x3B, 0x51, 0x54, 0x16, 0x4C, 0x98, 0x2B, 0x26, 0xAD,
5604 0x70, 0x0B, 0x01, 0x87, 0x5C, 0xF1, 0xE8, 0x02, 0xF3, 0x57, 0xA9, 0x40,
5605 0x5C, 0xC5, 0xE0, 0xFF,
5606};
5607
5608static const uint8_t keygen_dh896_g[] = {
5609 0x05,
5610};
5611
5612static const uint8_t keygen_dh960_p[] = {
5613 0xD9, 0x31, 0xE0, 0xF3, 0x80, 0xED, 0xBD, 0xEC, 0x35, 0x99, 0xC9, 0x28,
5614 0xA8, 0x88, 0x3C, 0x84, 0x41, 0x8A, 0x6C, 0xC7, 0x83, 0x09, 0xCE, 0x07,
5615 0x51, 0x72, 0xBE, 0xE9, 0x21, 0x4F, 0xCB, 0x92, 0xAE, 0xA5, 0xF0, 0x9A,
5616 0x40, 0x9B, 0x02, 0x1D, 0xA5, 0x5E, 0xAB, 0x17, 0x25, 0x5B, 0x70, 0x0F,
5617 0xF9, 0x27, 0xEF, 0x49, 0xCD, 0x7F, 0x6E, 0x9A, 0x62, 0x51, 0xE6, 0xEA,
5618 0x4B, 0x7E, 0xBE, 0xB3, 0x72, 0xFB, 0xAF, 0x98, 0xA1, 0x7D, 0x77, 0x7E,
5619 0x53, 0xF9, 0xFC, 0x7A, 0xEB, 0xC7, 0xB0, 0x84, 0x2F, 0x70, 0xCC, 0xA2,
5620 0x34, 0x52, 0x9F, 0xD3, 0x46, 0xE3, 0x32, 0x2F, 0xE0, 0x6F, 0x83, 0x3B,
5621 0x8B, 0x17, 0x01, 0x0C, 0x1D, 0xEA, 0x04, 0x7D, 0xB1, 0xD4, 0xB2, 0x2D,
5622 0xC7, 0xD3, 0x2D, 0xE0, 0x47, 0x00, 0x6D, 0xE8, 0x1F, 0xAA, 0x39, 0x67,
5623};
5624
5625static const uint8_t keygen_dh960_g[] = {
5626 0x05,
5627};
5628
5629static const uint8_t keygen_dh1024_p[] = {
5630 0xB9, 0xF5, 0xB6, 0xFF, 0x49, 0xA7, 0x31, 0x3C, 0xD3, 0xAA, 0x42, 0xAE,
5631 0x3D, 0xA6, 0xD4, 0xC1, 0x92, 0xB0, 0x1C, 0xD5, 0x24, 0x9D, 0x67, 0x04,
5632 0xFA, 0xED, 0x0B, 0x2D, 0x8B, 0xA1, 0xB8, 0x72, 0x43, 0x48, 0xC2, 0x75,
5633 0x00, 0x9F, 0x43, 0xD7, 0xF0, 0x8F, 0xD8, 0xCD, 0x1C, 0x64, 0x48, 0x82,
5634 0x63, 0x52, 0x89, 0x78, 0x43, 0xEF, 0x00, 0xF6, 0x62, 0x04, 0x26, 0xD5,
5635 0x69, 0x2C, 0x2B, 0x9B, 0x53, 0x72, 0x57, 0xD5, 0x05, 0xA6, 0x53, 0x24,
5636 0x43, 0x81, 0x49, 0xEC, 0xBB, 0x43, 0x58, 0x66, 0x6A, 0xBD, 0xAC, 0xBA,
5637 0xD9, 0xC8, 0xC9, 0x95, 0x93, 0xCB, 0x79, 0x89, 0x86, 0x30, 0x0D, 0x45,
5638 0x3F, 0x89, 0x04, 0xC4, 0xEC, 0x96, 0xBF, 0x4E, 0x8E, 0x88, 0x51, 0xED,
5639 0xEF, 0x91, 0x8A, 0x03, 0xDC, 0x4E, 0x28, 0x69, 0x46, 0xDA, 0x1B, 0xD4,
5640 0x7E, 0xC5, 0xEB, 0x95, 0xBC, 0x9D, 0x14, 0x77,
5641};
5642
5643static const uint8_t keygen_dh1024_g[] = {
5644 0x05,
5645};
5646
5647static const uint8_t keygen_dh1088_p[] = {
5648 0xE3, 0x67, 0x7B, 0x2C, 0x68, 0xE3, 0x7C, 0xDB, 0x30, 0x3A, 0xF3, 0x20,
5649 0x33, 0x02, 0xB5, 0x08, 0x83, 0xC5, 0x8B, 0x07, 0xDD, 0x08, 0x92, 0x82,
5650 0xD6, 0x2A, 0x2B, 0x7F, 0xC6, 0xF0, 0xBD, 0xB8, 0x01, 0xF8, 0xCF, 0x78,
5651 0x4F, 0xFE, 0xE2, 0x9D, 0x2F, 0xF4, 0x2D, 0xC5, 0x48, 0xE0, 0xFD, 0x8A,
5652 0xC2, 0xCF, 0x1B, 0xD9, 0xE1, 0x23, 0xC6, 0xDA, 0xFC, 0x1C, 0x9B, 0xA4,
5653 0x70, 0x91, 0x1A, 0x6A, 0x35, 0x00, 0x5E, 0x63, 0x14, 0x04, 0xAB, 0x3B,
5654 0x00, 0xEE, 0x44, 0xE6, 0xAE, 0x49, 0xDB, 0xB7, 0xEF, 0xE1, 0x6E, 0xF9,
5655 0x88, 0xCC, 0xAB, 0x5E, 0x0A, 0x20, 0x84, 0x09, 0x03, 0xFA, 0xAA, 0x8C,
5656 0xFE, 0xB8, 0xEA, 0x31, 0x78, 0xD2, 0x92, 0xF3, 0x77, 0xCF, 0xEC, 0xB9,
5657 0xF8, 0x3C, 0x79, 0x4A, 0x9B, 0xB6, 0xCC, 0xC0, 0x5E, 0xAB, 0x92, 0xE6,
5658 0x39, 0x74, 0x5E, 0x8D, 0x2B, 0x28, 0x3B, 0x4D, 0x26, 0x6B, 0x2F, 0xF6,
5659 0xA8, 0xB1, 0x01, 0x53,
5660};
5661
5662static const uint8_t keygen_dh1088_g[] = {
5663 0x05,
5664};
5665
5666static const uint8_t keygen_dh1152_p[] = {
5667 0xCA, 0xD6, 0x34, 0x4F, 0xAE, 0x99, 0x47, 0x51, 0x14, 0x5D, 0xF4, 0xCA,
5668 0x47, 0xE2, 0xE7, 0x62, 0x7D, 0xB9, 0xC9, 0xE7, 0xF7, 0xEE, 0xD4, 0xF0,
5669 0x04, 0xC1, 0x93, 0x06, 0xC2, 0xC8, 0x5E, 0x9D, 0xD3, 0x9F, 0x4A, 0x87,
5670 0xF2, 0x22, 0x5A, 0x72, 0x8D, 0xEB, 0x8B, 0x12, 0x26, 0x82, 0x3A, 0xA7,
5671 0x6B, 0xE1, 0x55, 0xB0, 0x9F, 0x97, 0x4C, 0xC5, 0xEC, 0x5C, 0x1C, 0x23,
5672 0xAB, 0x95, 0xDC, 0x17, 0xD5, 0x80, 0x0A, 0xE6, 0x53, 0x9E, 0xD8, 0xC6,
5673 0xB9, 0x9E, 0xFA, 0x62, 0x60, 0x2A, 0x8D, 0xD5, 0x3D, 0x36, 0x5E, 0x4E,
5674 0x42, 0x1F, 0xAF, 0x2B, 0x87, 0x0E, 0xC6, 0x44, 0xB7, 0x55, 0x1C, 0x81,
5675 0x7E, 0x48, 0x96, 0x1B, 0xF9, 0x73, 0x1C, 0x3D, 0x80, 0xDF, 0x43, 0xDB,
5676 0x93, 0xB6, 0x1E, 0xC1, 0x04, 0x12, 0x9E, 0x33, 0x21, 0xCE, 0xF7, 0x49,
5677 0x41, 0x7E, 0x97, 0x31, 0xC3, 0x74, 0x1D, 0x95, 0x85, 0x6F, 0x3A, 0xA1,
5678 0xCF, 0x61, 0xD9, 0xEB, 0x67, 0x67, 0xED, 0x91, 0xDF, 0x23, 0xCD, 0xC3,
5679};
5680
5681static const uint8_t keygen_dh1152_g[] = {
5682 0x05,
5683};
5684
5685static const uint8_t keygen_dh1216_p[] = {
5686 0xB1, 0xFC, 0x4E, 0xF5, 0xDE, 0xC5, 0xDD, 0x33, 0xDD, 0xB2, 0x2E, 0x44,
5687 0x52, 0xDD, 0x74, 0x2F, 0x1F, 0x61, 0x20, 0x21, 0x72, 0x65, 0xC5, 0xEC,
5688 0x5A, 0xAA, 0xF1, 0x24, 0xA1, 0xD0, 0xEB, 0x4B, 0x4C, 0x32, 0x8A, 0xDD,
5689 0x4F, 0x9F, 0xEE, 0xFA, 0x5F, 0x81, 0xD4, 0x18, 0x3D, 0xCD, 0x39, 0x38,
5690 0xDC, 0x3D, 0x2E, 0x37, 0xEB, 0xFE, 0x73, 0xEF, 0x99, 0x53, 0x54, 0xA6,
5691 0xAB, 0x25, 0xFE, 0x9A, 0x10, 0xAE, 0x3E, 0xC9, 0x63, 0x45, 0x75, 0xAF,
5692 0xCA, 0xD9, 0x57, 0xF7, 0x71, 0xE0, 0xBE, 0x0D, 0x90, 0xE9, 0xC5, 0x5A,
5693 0xC6, 0x2E, 0x3D, 0xDE, 0xE4, 0x8B, 0x38, 0x8E, 0x83, 0x06, 0xA6, 0xE2,
5694 0x38, 0xA6, 0x88, 0x81, 0xDE, 0x8E, 0xA6, 0x6A, 0xBF, 0xF4, 0x75, 0xFB,
5695 0xAB, 0xAA, 0x02, 0xEA, 0x0E, 0xCF, 0xCA, 0xEA, 0x45, 0xFE, 0x1C, 0xC2,
5696 0xF9, 0xBE, 0x26, 0x31, 0xA6, 0x8F, 0xFE, 0x07, 0x9E, 0x79, 0x47, 0x11,
5697 0xA1, 0x25, 0xA4, 0xE5, 0xFB, 0xEA, 0xE7, 0xC1, 0xFF, 0x12, 0x12, 0x71,
5698 0x5D, 0xC1, 0x99, 0x44, 0xD1, 0xCE, 0x82, 0xA7,
5699};
5700
5701static const uint8_t keygen_dh1216_g[] = {
5702 0x05,
5703};
5704
5705static const uint8_t keygen_dh1280_p[] = {
5706 0xF0, 0x10, 0x04, 0x04, 0x08, 0x13, 0x79, 0x15, 0x62, 0x5C, 0xFA, 0x2A,
5707 0x6D, 0xFC, 0x3F, 0x23, 0x4C, 0x47, 0x83, 0x45, 0xE7, 0x6F, 0x64, 0x04,
5708 0x1A, 0xFD, 0xBF, 0xD2, 0xB9, 0x0A, 0x98, 0x14, 0x16, 0xA4, 0xB5, 0x03,
5709 0x13, 0xBB, 0xFB, 0x72, 0x1E, 0xF5, 0x23, 0x12, 0xB8, 0x74, 0x49, 0x3F,
5710 0x84, 0xF3, 0x02, 0x3A, 0x50, 0x6F, 0xB7, 0xC7, 0x6F, 0x37, 0x8F, 0x61,
5711 0x88, 0x60, 0x7C, 0xF1, 0xE7, 0x1E, 0xED, 0x55, 0xF1, 0xCD, 0x64, 0x93,
5712 0xA7, 0x12, 0xB7, 0x74, 0x5F, 0x23, 0x20, 0xF7, 0x87, 0xC2, 0x83, 0x2A,
5713 0x86, 0x0C, 0xF3, 0x4B, 0x88, 0x32, 0xF5, 0xB7, 0x86, 0x2F, 0xBF, 0xEE,
5714 0xA1, 0x59, 0xC4, 0xDB, 0x0F, 0xEF, 0x06, 0xC8, 0xF2, 0xEE, 0x39, 0xB4,
5715 0x19, 0x24, 0x8A, 0x2C, 0xE7, 0xF8, 0xA0, 0x34, 0x2A, 0x15, 0xA9, 0x54,
5716 0x4D, 0x04, 0x1B, 0xC0, 0xC5, 0x15, 0xCF, 0x38, 0x96, 0x83, 0x3E, 0xEE,
5717 0xD0, 0xFD, 0xBC, 0x62, 0xD9, 0x84, 0xA3, 0x02, 0x6D, 0x2A, 0x7B, 0x4B,
5718 0x3E, 0xCC, 0xAD, 0xA1, 0xF0, 0xA0, 0x44, 0xDD, 0x7E, 0x4B, 0xBD, 0x75,
5719 0xAD, 0x8F, 0xF1, 0x57,
5720};
5721
5722static const uint8_t keygen_dh1280_g[] = {
5723 0x05,
5724};
5725
5726static const uint8_t keygen_dh1344_p[] = {
5727 0x8E, 0x0F, 0xCC, 0x61, 0x96, 0xCA, 0xF2, 0x3A, 0x13, 0xD5, 0xF9, 0x2A,
5728 0xD0, 0xF0, 0x5A, 0x4C, 0x1B, 0xC2, 0xD2, 0xDE, 0xD6, 0x54, 0x53, 0x83,
5729 0x70, 0x1E, 0x0A, 0x17, 0x6D, 0x4C, 0xBA, 0xCD, 0xEE, 0x32, 0x08, 0x55,
5730 0xD8, 0xD3, 0x80, 0x81, 0x07, 0x04, 0xF3, 0x19, 0xDD, 0x20, 0x30, 0x6A,
5731 0x6C, 0x74, 0x25, 0x56, 0xEB, 0xA0, 0x9E, 0x0A, 0x08, 0x94, 0x88, 0xE8,
5732 0xD2, 0xFD, 0xC3, 0x16, 0x27, 0x51, 0xE2, 0xF8, 0xAE, 0x8B, 0x2B, 0xFF,
5733 0x2A, 0x75, 0xEC, 0x21, 0xEB, 0xA9, 0xE2, 0x24, 0x8A, 0xAE, 0xF9, 0x7D,
5734 0x90, 0x8B, 0x31, 0x10, 0x6B, 0x14, 0x97, 0x2D, 0xB2, 0x93, 0x59, 0xFF,
5735 0x4B, 0x9A, 0x0A, 0x90, 0xA8, 0x0E, 0xDE, 0x19, 0x2B, 0x74, 0xF2, 0xCC,
5736 0x2D, 0x5B, 0x4F, 0x91, 0xBE, 0x43, 0x86, 0xA2, 0x91, 0xDD, 0x01, 0xDD,
5737 0x24, 0x75, 0xD8, 0x9F, 0x85, 0x53, 0xC3, 0xDB, 0x08, 0x5F, 0x01, 0x24,
5738 0xA7, 0x45, 0xAA, 0x6E, 0xB4, 0xFB, 0x05, 0x1C, 0x58, 0x51, 0x3D, 0xFD,
5739 0x39, 0x57, 0xD4, 0xF9, 0x11, 0x81, 0x60, 0x48, 0xF1, 0xD7, 0x7C, 0xAE,
5740 0xDE, 0x58, 0x6E, 0x6A, 0x02, 0xC5, 0x51, 0x69, 0x47, 0xF3, 0xAC, 0x47,
5741};
5742
5743static const uint8_t keygen_dh1344_g[] = {
5744 0x05,
5745};
5746
5747static const uint8_t keygen_dh1408_p[] = {
5748 0xE1, 0xE7, 0xA6, 0xF3, 0x5C, 0x06, 0x00, 0x8B, 0x4B, 0x3C, 0x7A, 0xF9,
5749 0x4D, 0x30, 0x08, 0x73, 0x69, 0xCF, 0x79, 0x6F, 0xAB, 0x66, 0x47, 0x05,
5750 0x65, 0xA8, 0x4A, 0x5C, 0xA6, 0x5E, 0x3D, 0x46, 0x10, 0x0A, 0x58, 0x3E,
5751 0x7C, 0x3F, 0x0F, 0x3A, 0xE1, 0xFF, 0x2C, 0x7D, 0xE1, 0x40, 0x05, 0xED,
5752 0xC3, 0x0B, 0x6C, 0x36, 0x90, 0xDC, 0x10, 0x94, 0x9B, 0xEB, 0xA9, 0x31,
5753 0xD9, 0x1F, 0x46, 0xBF, 0xC0, 0xF4, 0x49, 0x44, 0x39, 0xF2, 0xE9, 0xB8,
5754 0x86, 0x52, 0xCB, 0x60, 0xAC, 0xAF, 0x2C, 0x38, 0x9A, 0x63, 0xCE, 0xB7,
5755 0x30, 0x17, 0x81, 0xA9, 0x1C, 0x3D, 0x73, 0x0D, 0x3F, 0xCE, 0xC8, 0xA6,
5756 0x95, 0x65, 0x8F, 0x9F, 0x5C, 0xE8, 0xEB, 0x5C, 0x69, 0x59, 0x8B, 0xA5,
5757 0x1D, 0x74, 0x23, 0x35, 0x3C, 0x35, 0x08, 0x50, 0x53, 0xE5, 0xDB, 0x93,
5758 0x69, 0x8F, 0x17, 0xF7, 0xA0, 0xBA, 0xED, 0xD6, 0xE9, 0x7C, 0x4F, 0x97,
5759 0xAB, 0x25, 0x26, 0x39, 0xF9, 0xF3, 0x12, 0x0A, 0xB1, 0xE0, 0x7C, 0xCD,
5760 0x60, 0x5C, 0x46, 0x2E, 0x22, 0xAB, 0xEF, 0x8D, 0x09, 0xB8, 0x3D, 0xB1,
5761 0xA6, 0xB0, 0x1C, 0x5D, 0x75, 0x66, 0x02, 0x0E, 0xFD, 0xB9, 0xD6, 0x47,
5762 0x5F, 0x80, 0xF3, 0xAF, 0xB3, 0x39, 0x7B, 0xF7,
5763};
5764
5765static const uint8_t keygen_dh1408_g[] = {
5766 0x05,
5767};
5768
5769static const uint8_t keygen_dh1472_p[] = {
5770 0x9D, 0x8A, 0x3D, 0x5A, 0xC0, 0x90, 0x55, 0x02, 0x4E, 0x28, 0xB7, 0x8F,
5771 0x33, 0x91, 0xDC, 0xEB, 0xD2, 0x81, 0x00, 0x16, 0x2D, 0x89, 0x9A, 0x3C,
5772 0x83, 0xD5, 0xF3, 0x2A, 0x59, 0x5D, 0x63, 0x86, 0xFB, 0xEB, 0xA8, 0xFD,
5773 0x27, 0x1E, 0x18, 0x9F, 0x3C, 0xF7, 0xEF, 0xAE, 0xDE, 0x6C, 0xA5, 0x30,
5774 0x16, 0x93, 0xF0, 0x00, 0xB3, 0x36, 0xD2, 0xF6, 0x2C, 0x95, 0xF1, 0x31,
5775 0x4A, 0x75, 0xA8, 0x4F, 0xF6, 0xA8, 0x0F, 0xE9, 0x0B, 0xB4, 0xAF, 0xEE,
5776 0xFF, 0x50, 0x6D, 0xE8, 0xFC, 0x3A, 0xCC, 0x04, 0x71, 0x21, 0x74, 0x38,
5777 0xEB, 0x7E, 0x66, 0x70, 0x85, 0xA7, 0x35, 0x50, 0x07, 0x21, 0x2D, 0x24,
5778 0x45, 0xCC, 0x00, 0xB1, 0x7F, 0x7A, 0x73, 0x54, 0x9B, 0x96, 0x7B, 0x60,
5779 0x46, 0xDE, 0x57, 0x4B, 0xE3, 0xF5, 0xEA, 0x0E, 0xFC, 0x7A, 0xC1, 0xFE,
5780 0x8D, 0x13, 0xD8, 0x2D, 0xAB, 0xDD, 0xA6, 0x61, 0x5C, 0x95, 0xB4, 0x15,
5781 0x6F, 0x2A, 0x40, 0x6C, 0xB3, 0xC6, 0xC2, 0x1C, 0xC6, 0x74, 0x6F, 0x31,
5782 0x73, 0x47, 0x94, 0x95, 0x23, 0x8D, 0xCD, 0x4F, 0x4D, 0xA8, 0xF3, 0x67,
5783 0x5D, 0xDE, 0x83, 0x49, 0x9C, 0xD3, 0xD9, 0xB5, 0x0D, 0xD4, 0x0E, 0xD1,
5784 0x99, 0xB7, 0x53, 0x2E, 0xE5, 0xFD, 0xB5, 0x75, 0xFD, 0xE6, 0xD6, 0xC6,
5785 0xA2, 0x43, 0x33, 0x83,
5786};
5787
5788static const uint8_t keygen_dh1472_g[] = {
5789 0x05,
5790};
5791
5792static const uint8_t keygen_dh1536_p[] = {
5793 0xE2, 0x5A, 0x3F, 0x8E, 0xE8, 0x72, 0x92, 0x84, 0x2F, 0xB2, 0xC0, 0x01,
5794 0x1F, 0xE9, 0x42, 0x0A, 0x0B, 0x1A, 0x71, 0x27, 0x51, 0xD8, 0xB5, 0xD8,
5795 0x31, 0x7B, 0xEE, 0xEE, 0xAA, 0xA5, 0x67, 0x67, 0x36, 0xAF, 0xAB, 0x55,
5796 0xB9, 0x07, 0xA7, 0xF7, 0x55, 0xE3, 0x08, 0x52, 0x7C, 0x55, 0xF3, 0x28,
5797 0x6F, 0x37, 0x84, 0xC7, 0x26, 0x66, 0x2F, 0x84, 0x8C, 0x09, 0xA5, 0x0C,
5798 0x5A, 0x60, 0x45, 0x7A, 0xDC, 0x11, 0x11, 0xB6, 0xF8, 0x6B, 0x2A, 0x63,
5799 0x6E, 0x86, 0x00, 0x65, 0x92, 0x8F, 0xE8, 0xB8, 0x4A, 0x2F, 0xDC, 0x62,
5800 0xE0, 0x2C, 0x1F, 0x95, 0x8F, 0x16, 0x7D, 0xB9, 0xC2, 0xCE, 0x58, 0x9A,
5801 0x12, 0x55, 0xC2, 0x01, 0xE2, 0xBE, 0xE5, 0xF0, 0x80, 0x04, 0xFD, 0xDD,
5802 0x95, 0x04, 0x11, 0xCA, 0xE3, 0xAA, 0x9E, 0x3F, 0x4C, 0x9A, 0xE9, 0x8C,
5803 0x11, 0xD9, 0x1C, 0x3A, 0x22, 0xEF, 0xEC, 0xB0, 0x9D, 0x73, 0x0C, 0xBB,
5804 0x4E, 0x3F, 0xFC, 0xF4, 0xFF, 0x63, 0x85, 0x7C, 0xE6, 0x5C, 0x22, 0x60,
5805 0x0A, 0x92, 0x32, 0xEC, 0x7C, 0x6B, 0x01, 0x72, 0x93, 0x42, 0x9D, 0x8D,
5806 0xC5, 0x78, 0x88, 0x8F, 0xCB, 0xA8, 0x93, 0xD1, 0x8F, 0x67, 0x74, 0x7A,
5807 0xA2, 0x93, 0x18, 0xDB, 0x84, 0xA5, 0xA6, 0xB9, 0x35, 0x0C, 0xCD, 0x8B,
5808 0x85, 0x2F, 0xC0, 0xBA, 0x27, 0x3D, 0x9C, 0x55, 0xDA, 0xB8, 0x94, 0x1F,
5809};
5810
5811static const uint8_t keygen_dh1536_g[] = {
5812 0x05,
5813};
5814
5815static const uint8_t keygen_dh1600_p[] = {
5816 0xAC, 0xF5, 0x91, 0x7E, 0xA3, 0x07, 0xD1, 0x24, 0x69, 0x38, 0x4D, 0x1B,
5817 0x1D, 0x60, 0x81, 0xF5, 0x22, 0x71, 0xE3, 0xEC, 0x17, 0x7B, 0x22, 0x81,
5818 0x22, 0xC7, 0x55, 0xBC, 0x61, 0x41, 0x03, 0xA5, 0x9D, 0xDC, 0x58, 0x28,
5819 0x6C, 0xE6, 0xF7, 0x9B, 0x0D, 0x2F, 0xD5, 0x4F, 0x3E, 0x4D, 0x6B, 0x26,
5820 0x5B, 0x09, 0x09, 0x79, 0x58, 0xC4, 0x39, 0x33, 0x8C, 0x29, 0x9E, 0x9F,
5821 0x5C, 0x76, 0xA5, 0xC8, 0x99, 0xF8, 0x69, 0xEE, 0x8F, 0xBA, 0x2C, 0xD4,
5822 0x68, 0x4F, 0xB2, 0xDC, 0xE6, 0xD9, 0x20, 0xE8, 0x02, 0xF2, 0x43, 0x9C,
5823 0xDD, 0x31, 0x79, 0xBD, 0x39, 0x78, 0x31, 0xC6, 0x03, 0x66, 0x69, 0x05,
5824 0xD6, 0x1E, 0xFE, 0x11, 0x1D, 0x9E, 0x01, 0xB8, 0xCB, 0xE8, 0xC7, 0x51,
5825 0xD9, 0xCD, 0x49, 0xEA, 0xD6, 0xC3, 0xC7, 0xF1, 0xC0, 0xA2, 0x6B, 0xD1,
5826 0x52, 0xD3, 0x80, 0xFD, 0x52, 0x35, 0x5C, 0x3D, 0xD3, 0x97, 0x61, 0x58,
5827 0x69, 0x1B, 0x4F, 0x9C, 0xF9, 0xC9, 0x34, 0xDA, 0x9B, 0x8B, 0x04, 0x18,
5828 0x12, 0x2F, 0xF1, 0x22, 0x78, 0x0F, 0xD3, 0xAA, 0x85, 0x06, 0xA9, 0xCA,
5829 0x9E, 0x80, 0x39, 0x25, 0x12, 0x41, 0xDD, 0x86, 0x58, 0x1F, 0x4D, 0x1F,
5830 0x9B, 0xDB, 0x63, 0xD0, 0x80, 0x5E, 0x53, 0xAC, 0x86, 0x0C, 0x1E, 0x11,
5831 0xB1, 0x0D, 0xB6, 0x1F, 0xFE, 0x7C, 0x23, 0x6A, 0x71, 0x47, 0xA5, 0xC2,
5832 0x20, 0x23, 0x9F, 0x1D, 0xDF, 0xB9, 0x91, 0x4B,
5833};
5834
5835static const uint8_t keygen_dh1600_g[] = {
5836 0x05,
5837};
5838
5839static const uint8_t keygen_dh1664_p[] = {
5840 0xAB, 0xF8, 0x74, 0x92, 0xCE, 0x1A, 0x3F, 0x89, 0xE1, 0xB7, 0x75, 0x5E,
5841 0x99, 0xBE, 0xFF, 0x73, 0x3E, 0x78, 0x86, 0xB0, 0x5E, 0x2F, 0x5C, 0xA4,
5842 0xB2, 0xE4, 0x72, 0x2C, 0x59, 0xB6, 0x64, 0x6F, 0x63, 0x72, 0xE3, 0x82,
5843 0xA4, 0xFB, 0x03, 0x57, 0x40, 0x6D, 0x6B, 0x1E, 0x2B, 0xB9, 0x8C, 0xB0,
5844 0x19, 0xB0, 0xE8, 0xC3, 0x3D, 0xEC, 0xC2, 0xA0, 0x91, 0x15, 0x02, 0x79,
5845 0x93, 0x31, 0xE4, 0x3A, 0x17, 0x9D, 0x9F, 0x68, 0xCD, 0x73, 0x28, 0x83,
5846 0xC3, 0x07, 0x43, 0x15, 0x05, 0x50, 0x9F, 0x78, 0x91, 0x2A, 0x98, 0x35,
5847 0xA3, 0xE4, 0x84, 0x84, 0x55, 0xDF, 0x32, 0x29, 0x27, 0x91, 0xC8, 0xFF,
5848 0x8B, 0x7B, 0x4E, 0x1B, 0xA1, 0x02, 0xBA, 0x31, 0x33, 0x79, 0x2E, 0x73,
5849 0x1D, 0x00, 0x30, 0xF2, 0x1E, 0x83, 0xB4, 0x7B, 0xD1, 0x76, 0xD4, 0x9E,
5850 0x2E, 0x32, 0xB6, 0xA5, 0x69, 0xB2, 0x28, 0x8E, 0xC4, 0xE3, 0xB0, 0x33,
5851 0x7E, 0x59, 0x90, 0x92, 0x40, 0x3F, 0x2C, 0x98, 0xC6, 0xEE, 0x26, 0xF1,
5852 0xE0, 0xE2, 0xB0, 0xA6, 0x50, 0xB0, 0x2E, 0xF1, 0xE3, 0x2D, 0x4F, 0xB5,
5853 0x58, 0xDA, 0x07, 0xBE, 0x9D, 0x20, 0x7C, 0x10, 0x23, 0x6D, 0x60, 0x96,
5854 0x11, 0xC9, 0xB4, 0xD4, 0x9C, 0xF0, 0x01, 0x8F, 0x9B, 0xC4, 0x83, 0xC6,
5855 0x47, 0x53, 0x74, 0xDD, 0x74, 0x01, 0x03, 0x9C, 0x99, 0xA0, 0x5E, 0xE2,
5856 0xA0, 0x05, 0x6E, 0x66, 0xB0, 0x01, 0xDD, 0x44, 0xFF, 0xA6, 0x65, 0x96,
5857 0x92, 0x2B, 0x89, 0x57,
5858};
5859
5860static const uint8_t keygen_dh1664_g[] = {
5861 0x05,
5862};
5863
5864static const uint8_t keygen_dh1728_p[] = {
5865 0xED, 0x9F, 0xF6, 0x0C, 0xD6, 0x18, 0x33, 0xE8, 0x26, 0x13, 0xF2, 0x56,
5866 0xE7, 0x9D, 0x03, 0x45, 0x99, 0xA0, 0x12, 0xB1, 0xBC, 0x45, 0xAD, 0xA7,
5867 0x14, 0xCC, 0x37, 0x97, 0x4D, 0x21, 0x6D, 0x52, 0x16, 0x6B, 0x20, 0x0B,
5868 0x8D, 0xA6, 0x43, 0xDF, 0x6C, 0x5C, 0x5A, 0xF2, 0x24, 0xBF, 0x04, 0x03,
5869 0x2E, 0xF6, 0xFE, 0x45, 0x30, 0x88, 0x2B, 0x07, 0x5C, 0xAA, 0xAE, 0x7E,
5870 0x33, 0xEF, 0xE6, 0x92, 0xD6, 0xFD, 0x61, 0x5F, 0xEF, 0xAC, 0xFB, 0x64,
5871 0x8D, 0x41, 0xE7, 0x52, 0xD2, 0x56, 0x74, 0x3A, 0xE5, 0x5E, 0x7E, 0x88,
5872 0x8D, 0xCD, 0xEA, 0xA8, 0xEF, 0x09, 0x9E, 0xDC, 0xBB, 0xC2, 0x10, 0xA8,
5873 0xE8, 0x7B, 0x24, 0x1B, 0x28, 0xA7, 0x1C, 0x0C, 0x53, 0xB8, 0xC2, 0xF3,
5874 0x01, 0x32, 0xBA, 0xE5, 0x8B, 0x6F, 0x3B, 0xB9, 0x36, 0x44, 0x5B, 0x3A,
5875 0x73, 0x44, 0x8F, 0xDE, 0x99, 0x69, 0x22, 0xE0, 0x2C, 0x45, 0x71, 0xA9,
5876 0x52, 0x1C, 0xCD, 0x19, 0x02, 0xBD, 0x06, 0xD2, 0x57, 0x45, 0xE3, 0x6C,
5877 0x96, 0x6D, 0x0B, 0x25, 0x56, 0x4C, 0x40, 0x2E, 0x7E, 0x83, 0xEE, 0xE1,
5878 0xB2, 0x65, 0x51, 0x04, 0x8D, 0x6A, 0x08, 0x44, 0xF0, 0x80, 0xB1, 0xFE,
5879 0x13, 0x15, 0x9B, 0x82, 0x65, 0xF0, 0x89, 0xBC, 0x7E, 0x63, 0xF6, 0x08,
5880 0xD3, 0xBA, 0xA9, 0x66, 0x35, 0x5F, 0x0C, 0xF7, 0xE9, 0x52, 0xA3, 0x4D,
5881 0x66, 0x01, 0xE7, 0x28, 0xF4, 0xDC, 0xF2, 0x46, 0xBB, 0x02, 0x95, 0x21,
5882 0x6A, 0x8F, 0x97, 0xA7, 0x3F, 0x06, 0x2E, 0xB2, 0x97, 0xEC, 0x5A, 0xFB,
5883};
5884
5885
5886static const uint8_t keygen_dh1728_g[] = {
5887 0x05,
5888};
5889
5890static const uint8_t keygen_dh1792_p[] = {
5891 0x9A, 0x87, 0x16, 0x1D, 0x23, 0x55, 0xC7, 0x06, 0x55, 0xD7, 0xB1, 0xB3,
5892 0x71, 0x66, 0x9A, 0x16, 0x5A, 0xA6, 0x8F, 0x54, 0x50, 0x99, 0xBD, 0x90,
5893 0x8C, 0x84, 0xB3, 0xBC, 0x02, 0xFE, 0xCB, 0x07, 0x3A, 0x7E, 0x97, 0x12,
5894 0x32, 0xEC, 0xA0, 0x0B, 0xEA, 0x96, 0x51, 0xB4, 0x50, 0x4E, 0x3A, 0xCB,
5895 0x27, 0xA9, 0x42, 0x51, 0x49, 0x35, 0x9F, 0x45, 0x6B, 0xDA, 0xE0, 0x6C,
5896 0x10, 0x80, 0x00, 0x41, 0xC2, 0xFC, 0x91, 0xB6, 0x59, 0xCE, 0x76, 0x7F,
5897 0x21, 0xC6, 0x10, 0x8A, 0x68, 0x68, 0x54, 0x76, 0xCE, 0x33, 0xA6, 0x37,
5898 0xCF, 0x80, 0xDF, 0x37, 0x12, 0x77, 0xBA, 0xBF, 0x15, 0x10, 0x22, 0x4A,
5899 0xA1, 0x9B, 0xA6, 0x6B, 0x8E, 0x14, 0x4F, 0x64, 0xF4, 0x87, 0x64, 0xAA,
5900 0x6E, 0xBC, 0xB5, 0xB2, 0x96, 0x27, 0xD1, 0x1A, 0x6E, 0x6D, 0x4B, 0xC6,
5901 0x43, 0x28, 0xE9, 0xFC, 0xA4, 0xCB, 0x61, 0x8F, 0xEA, 0xE8, 0x40, 0xF2,
5902 0x0A, 0x19, 0xBA, 0x17, 0x49, 0x9A, 0x9F, 0xEF, 0x65, 0xBC, 0x70, 0x85,
5903 0xDD, 0x98, 0xB9, 0x8B, 0x25, 0x2C, 0xE1, 0x89, 0xC4, 0x60, 0xA0, 0xA9,
5904 0x7E, 0xFB, 0xEC, 0xBC, 0x4C, 0x1D, 0x25, 0x5D, 0x70, 0x2E, 0x73, 0x29,
5905 0x22, 0xA7, 0x83, 0x11, 0xC0, 0x64, 0xA9, 0xB6, 0xFA, 0x11, 0xC8, 0xC4,
5906 0x14, 0x30, 0x64, 0xE4, 0x76, 0xBE, 0x41, 0x62, 0xE6, 0x9F, 0xD6, 0x2A,
5907 0xEC, 0x60, 0xCF, 0xBD, 0x25, 0x2E, 0x3C, 0x6C, 0x40, 0x16, 0x32, 0x5C,
5908 0xB5, 0x3D, 0xFB, 0xD7, 0x3C, 0x59, 0x06, 0xBE, 0x37, 0x54, 0x40, 0x90,
5909 0x3D, 0x51, 0x01, 0x9A, 0x1E, 0x87, 0x05, 0xE3,
5910};
5911
5912static const uint8_t keygen_dh1792_g[] = {
5913 0x05,
5914};
5915
5916static const uint8_t keygen_dh1856_p[] = {
5917 0xA8, 0xD1, 0xC4, 0xCA, 0x89, 0xB5, 0xB3, 0x17, 0xEB, 0x4D, 0xB1, 0x58,
5918 0x73, 0x28, 0xDD, 0x7F, 0x67, 0x78, 0x13, 0x7D, 0x0D, 0x0E, 0x77, 0x43,
5919 0xB8, 0xA5, 0xCD, 0x84, 0xD3, 0x29, 0x3F, 0x00, 0xD7, 0xB0, 0x66, 0x95,
5920 0x52, 0x9D, 0x49, 0xAD, 0x9C, 0xCE, 0x83, 0xB1, 0xDB, 0x86, 0x90, 0x9A,
5921 0x40, 0xAD, 0x0A, 0xB0, 0x3A, 0x93, 0x33, 0x07, 0xC8, 0x32, 0x4D, 0x75,
5922 0x1E, 0x7B, 0xDC, 0xD3, 0x23, 0x5C, 0xCB, 0x83, 0x62, 0x79, 0x3A, 0x88,
5923 0xE8, 0xD0, 0x9B, 0x75, 0x4D, 0xA0, 0x1F, 0x3E, 0x08, 0x61, 0x5D, 0xEF,
5924 0x7C, 0xF0, 0x4D, 0xF8, 0xDD, 0x95, 0xEC, 0x31, 0xDD, 0x50, 0xA5, 0x4B,
5925 0xAA, 0x8E, 0xED, 0x45, 0x34, 0xCB, 0x87, 0x09, 0x4F, 0x36, 0xF6, 0xF4,
5926 0xF7, 0x08, 0x0D, 0xBA, 0xBC, 0x06, 0x22, 0x59, 0x83, 0x93, 0xF6, 0x4B,
5927 0xBC, 0x35, 0xAD, 0x48, 0x82, 0x40, 0x55, 0x51, 0xBC, 0xF8, 0xE2, 0x9A,
5928 0x11, 0xF2, 0x08, 0x1E, 0xCA, 0x55, 0x40, 0x36, 0x00, 0xBE, 0x1C, 0xC8,
5929 0x94, 0x2E, 0x35, 0x7D, 0xB0, 0xA4, 0xCD, 0x1C, 0xC1, 0xFF, 0x58, 0xE1,
5930 0xBB, 0x31, 0xE9, 0x13, 0x16, 0x7F, 0x43, 0x88, 0xB2, 0x43, 0x62, 0x2A,
5931 0x79, 0xE3, 0x61, 0xDF, 0xF5, 0xC9, 0x9C, 0x33, 0xDD, 0x93, 0x58, 0xFC,
5932 0x08, 0x51, 0xE8, 0xA8, 0x30, 0x61, 0x64, 0x83, 0xB3, 0x20, 0xC4, 0x53,
5933 0x95, 0xD6, 0xB3, 0x74, 0xB5, 0xFA, 0xB1, 0x65, 0xD1, 0xF9, 0xED, 0xB1,
5934 0x9B, 0x97, 0x86, 0xC6, 0xDE, 0x6E, 0x5F, 0xF4, 0x6A, 0x42, 0xFA, 0x1F,
5935 0x6E, 0xEA, 0x5B, 0x43, 0x4C, 0xCC, 0x62, 0x76, 0xFE, 0x9B, 0xA0, 0xB9,
5936 0x7C, 0x50, 0x5E, 0x8B,
5937};
5938
5939static const uint8_t keygen_dh1856_g[] = {
5940 0x05,
5941};
5942
5943static const uint8_t keygen_dh1920_p[] = {
5944 0xC2, 0x68, 0xB1, 0x2E, 0x41, 0xB7, 0xA3, 0xCC, 0xE8, 0x10, 0x48, 0xE8,
5945 0x80, 0xA5, 0x56, 0x82, 0x3C, 0x05, 0xA3, 0xC4, 0x20, 0xD5, 0xD7, 0x19,
5946 0x54, 0x60, 0xA4, 0x97, 0x95, 0x09, 0x3D, 0xDF, 0x10, 0xFF, 0x21, 0x0D,
5947 0x68, 0x19, 0x15, 0x89, 0xD1, 0x44, 0x14, 0x1E, 0xF2, 0xD8, 0xFD, 0x9D,
5948 0x35, 0x8C, 0xA6, 0x2B, 0x7D, 0x73, 0x9A, 0xEB, 0x86, 0x28, 0x4D, 0x3B,
5949 0x22, 0xEF, 0x1A, 0x35, 0xB6, 0x95, 0xA2, 0xFF, 0x03, 0x40, 0x49, 0x60,
5950 0x59, 0xD2, 0x2D, 0xAD, 0x00, 0xEF, 0x6A, 0x5B, 0xFB, 0xA6, 0x16, 0x01,
5951 0x92, 0x5E, 0x7D, 0x95, 0x2E, 0x18, 0xD5, 0x23, 0x9E, 0x9E, 0x87, 0xF2,
5952 0x2F, 0xFC, 0xE4, 0xF7, 0xC2, 0x28, 0x44, 0x97, 0xAB, 0xB5, 0xC1, 0xD3,
5953 0x8A, 0x53, 0xD7, 0xE5, 0x04, 0x78, 0xF2, 0xD9, 0x21, 0xD5, 0x46, 0x17,
5954 0x8A, 0xFC, 0xDB, 0x57, 0x29, 0xDD, 0x78, 0x5B, 0x05, 0xA9, 0xB0, 0x13,
5955 0x45, 0x1C, 0x84, 0xEE, 0x46, 0x73, 0x1B, 0x8E, 0x80, 0x45, 0x73, 0x04,
5956 0xF9, 0x23, 0x96, 0xBA, 0xBD, 0x51, 0x69, 0x81, 0xE4, 0xAE, 0x0D, 0x0A,
5957 0xC4, 0x93, 0xD9, 0x67, 0x14, 0x92, 0x5A, 0x96, 0x86, 0x9F, 0xCD, 0x6E,
5958 0x9A, 0x2A, 0x17, 0xA9, 0x1A, 0xDD, 0x00, 0x7C, 0x78, 0xD8, 0x06, 0xC5,
5959 0xB4, 0xA4, 0xF6, 0xCF, 0x22, 0xCD, 0xCA, 0x0E, 0x27, 0x97, 0xDD, 0x22,
5960 0x02, 0x31, 0x2B, 0x9C, 0xFF, 0x7E, 0x35, 0x3C, 0xDA, 0xAB, 0x51, 0x68,
5961 0x5A, 0x81, 0xF3, 0xA5, 0xA9, 0x04, 0xDA, 0x45, 0x07, 0xC6, 0x4A, 0xEF,
5962 0x5D, 0x0E, 0xC3, 0x41, 0xD6, 0xAC, 0xD0, 0x8D, 0x56, 0xAC, 0xB4, 0x89,
5963 0x53, 0x41, 0x06, 0x99, 0x83, 0x04, 0xBE, 0x6D, 0x2B, 0x28, 0xEB, 0x47,
5964};
5965
5966static const uint8_t keygen_dh1920_g[] = {
5967 0x05,
5968};
5969
5970static const uint8_t keygen_dh1984_p[] = {
5971 0xD8, 0xF3, 0xDC, 0x89, 0xE0, 0x6E, 0xD4, 0x07, 0xC3, 0x95, 0xC0, 0x17,
5972 0x39, 0xCE, 0xF6, 0xD0, 0x8A, 0xD7, 0x85, 0xD3, 0x83, 0x4D, 0xDC, 0x0B,
5973 0x85, 0x3B, 0xB7, 0x47, 0xEA, 0xDF, 0xE3, 0x34, 0xCA, 0xA9, 0x60, 0x9A,
5974 0x4F, 0x8E, 0x8B, 0xAE, 0x8A, 0xAF, 0xD3, 0x96, 0x56, 0xFC, 0x1D, 0x37,
5975 0x9A, 0x96, 0x57, 0x21, 0x32, 0xF0, 0x22, 0xE8, 0x68, 0x8B, 0x73, 0xAE,
5976 0x1B, 0xAB, 0xFB, 0x79, 0x1B, 0x7E, 0xDC, 0xAD, 0x9D, 0xA2, 0xF3, 0x5E,
5977 0x11, 0x46, 0x54, 0x4E, 0x88, 0x92, 0x2B, 0x79, 0x3B, 0xBB, 0x14, 0xD8,
5978 0x3B, 0x0B, 0xB0, 0x55, 0xE5, 0x9A, 0xA9, 0xA0, 0x94, 0x3C, 0x72, 0xE0,
5979 0x47, 0x58, 0xA5, 0x85, 0xDC, 0x4A, 0x6D, 0x50, 0x98, 0x28, 0x9B, 0xA1,
5980 0xB2, 0x95, 0xBB, 0x1A, 0x41, 0x05, 0xBC, 0x32, 0x02, 0x72, 0xBB, 0xF7,
5981 0x1A, 0x48, 0xC3, 0xD9, 0x4F, 0xBD, 0x32, 0xC8, 0x82, 0xAB, 0xCE, 0xDE,
5982 0x24, 0x6A, 0x0C, 0x92, 0xF8, 0xFB, 0xFF, 0x18, 0x33, 0x48, 0xAC, 0xD7,
5983 0xA3, 0x12, 0x0D, 0x52, 0x15, 0x3A, 0xA4, 0x6D, 0x85, 0x0A, 0xBF, 0x19,
5984 0x63, 0x82, 0x3E, 0xB9, 0x52, 0x98, 0xEA, 0xCC, 0x56, 0x66, 0x0F, 0x96,
5985 0x90, 0x1D, 0x35, 0xD6, 0xE1, 0xF6, 0x2B, 0x5B, 0xF7, 0x75, 0x12, 0xE5,
5986 0xD9, 0xED, 0x2E, 0x20, 0xA0, 0xF5, 0x68, 0xA8, 0xC9, 0x6E, 0x08, 0xD0,
5987 0xD2, 0xE7, 0xB6, 0xCB, 0x51, 0xA2, 0x5A, 0x34, 0x0B, 0xF3, 0x13, 0xAF,
5988 0x5A, 0x46, 0x8B, 0xCB, 0xC9, 0x46, 0x02, 0x15, 0xFE, 0x96, 0x45, 0x25,
5989 0x7D, 0x76, 0x56, 0x16, 0x8C, 0x97, 0xF3, 0x74, 0xFC, 0x2F, 0x5D, 0xFA,
5990 0xCD, 0x62, 0x23, 0x02, 0xF8, 0x19, 0x94, 0xEE, 0xE6, 0x18, 0x09, 0xDE,
5991 0x64, 0xB4, 0x3A, 0xDC, 0x0A, 0x5E, 0x26, 0x83,
5992};
5993
5994static const uint8_t keygen_dh1984_g[] = {
5995 0x05,
5996};
5997
5998static const uint8_t keygen_dh2048_p[] = {
5999 0x8F, 0x3E, 0xC1, 0x36, 0xCA, 0x60, 0xCE, 0xD1, 0xC5, 0xFD, 0x22, 0x05,
6000 0xD6, 0x94, 0x38, 0x20, 0x4F, 0xE1, 0xAF, 0xBC, 0xA6, 0x82, 0xBD, 0x71,
6001 0xFD, 0xD6, 0xC2, 0x61, 0xE8, 0xC1, 0xBD, 0xA9, 0x5E, 0xFD, 0x02, 0x51,
6002 0xB6, 0x1F, 0x38, 0x30, 0x44, 0x76, 0x94, 0xB3, 0x26, 0x79, 0x35, 0xC4,
6003 0xDF, 0x51, 0x80, 0xAF, 0x0D, 0x81, 0xCC, 0xA2, 0x33, 0xD1, 0x1E, 0x77,
6004 0xB8, 0x06, 0xD7, 0xE5, 0x83, 0x34, 0x04, 0xF2, 0x96, 0x24, 0x37, 0xFE,
6005 0xBC, 0x20, 0x9C, 0x66, 0x4C, 0xEB, 0x4F, 0xFD, 0x1F, 0x99, 0x56, 0x40,
6006 0xD9, 0xE8, 0x6B, 0x2A, 0x8D, 0x6B, 0x56, 0xB2, 0xB4, 0x6D, 0x83, 0x47,
6007 0x4C, 0x18, 0x53, 0x8B, 0xB1, 0xA3, 0x51, 0xC2, 0x07, 0xA3, 0x36, 0x43,
6008 0x4B, 0x94, 0x10, 0xFD, 0x24, 0xA3, 0x77, 0x74, 0x77, 0xFA, 0x98, 0x4B,
6009 0x43, 0x0B, 0xB6, 0xEC, 0x7F, 0x5C, 0x7E, 0xBA, 0xB7, 0xC7, 0xAA, 0x72,
6010 0x11, 0x9F, 0x73, 0x14, 0x45, 0x03, 0x7A, 0x4E, 0xE5, 0xE7, 0x5C, 0x64,
6011 0xB8, 0x66, 0x66, 0xCE, 0xEE, 0xF8, 0xFF, 0x61, 0x0F, 0x5D, 0x4E, 0xF6,
6012 0xED, 0xB1, 0xE5, 0x2F, 0x52, 0xAC, 0x2B, 0x8F, 0x34, 0x0D, 0x13, 0xF6,
6013 0x4A, 0x3A, 0x6C, 0x56, 0xB3, 0x3C, 0x52, 0xA8, 0xB9, 0xBC, 0x27, 0xCA,
6014 0x3B, 0xFB, 0x6E, 0xE7, 0x52, 0xFB, 0xB0, 0x2B, 0x4F, 0xC4, 0xBD, 0x24,
6015 0x36, 0xE4, 0x71, 0x07, 0x74, 0x69, 0x5F, 0xE0, 0xB8, 0x59, 0x5F, 0x74,
6016 0x2F, 0xCC, 0x03, 0xB0, 0x6D, 0x90, 0xD8, 0xD3, 0x7C, 0x5A, 0x31, 0x46,
6017 0x5C, 0x7D, 0x1C, 0xC8, 0x0D, 0x18, 0x80, 0x8E, 0x5A, 0xA8, 0x5E, 0x4D,
6018 0x11, 0x2B, 0x76, 0xAC, 0x1E, 0x00, 0x51, 0x80, 0xE3, 0xED, 0x7A, 0xC0,
6019 0x4F, 0x80, 0xFA, 0x5F, 0xD5, 0xD7, 0x4F, 0xA7, 0x14, 0xE1, 0x60, 0x3C,
6020 0x95, 0x77, 0xCA, 0x3B,
6021};
6022
6023static const uint8_t keygen_dh2048_g[] = {
6024 0x05,
6025};
6026
6027static const uint8_t keygen_dh2048_subprime_p[] = {
6028 0x8F, 0x3E, 0xC1, 0x36, 0xCA, 0x60, 0xCE, 0xD1, 0xC5, 0xFD, 0x22, 0x05,
6029 0xD6, 0x94, 0x38, 0x20, 0x4F, 0xE1, 0xAF, 0xBC, 0xA6, 0x82, 0xBD, 0x71,
6030 0xFD, 0xD6, 0xC2, 0x61, 0xE8, 0xC1, 0xBD, 0xA9, 0x5E, 0xFD, 0x02, 0x51,
6031 0xB6, 0x1F, 0x38, 0x30, 0x44, 0x76, 0x94, 0xB3, 0x26, 0x79, 0x35, 0xC4,
6032 0xDF, 0x51, 0x80, 0xAF, 0x0D, 0x81, 0xCC, 0xA2, 0x33, 0xD1, 0x1E, 0x77,
6033 0xB8, 0x06, 0xD7, 0xE5, 0x83, 0x34, 0x04, 0xF2, 0x96, 0x24, 0x37, 0xFE,
6034 0xBC, 0x20, 0x9C, 0x66, 0x4C, 0xEB, 0x4F, 0xFD, 0x1F, 0x99, 0x56, 0x40,
6035 0xD9, 0xE8, 0x6B, 0x2A, 0x8D, 0x6B, 0x56, 0xB2, 0xB4, 0x6D, 0x83, 0x47,
6036 0x4C, 0x18, 0x53, 0x8B, 0xB1, 0xA3, 0x51, 0xC2, 0x07, 0xA3, 0x36, 0x43,
6037 0x4B, 0x94, 0x10, 0xFD, 0x24, 0xA3, 0x77, 0x74, 0x77, 0xFA, 0x98, 0x4B,
6038 0x43, 0x0B, 0xB6, 0xEC, 0x7F, 0x5C, 0x7E, 0xBA, 0xB7, 0xC7, 0xAA, 0x72,
6039 0x11, 0x9F, 0x73, 0x14, 0x45, 0x03, 0x7A, 0x4E, 0xE5, 0xE7, 0x5C, 0x64,
6040 0xB8, 0x66, 0x66, 0xCE, 0xEE, 0xF8, 0xFF, 0x61, 0x0F, 0x5D, 0x4E, 0xF6,
6041 0xED, 0xB1, 0xE5, 0x2F, 0x52, 0xAC, 0x2B, 0x8F, 0x34, 0x0D, 0x13, 0xF6,
6042 0x4A, 0x3A, 0x6C, 0x56, 0xB3, 0x3C, 0x52, 0xA8, 0xB9, 0xBC, 0x27, 0xCA,
6043 0x3B, 0xFB, 0x6E, 0xE7, 0x52, 0xFB, 0xB0, 0x2B, 0x4F, 0xC4, 0xBD, 0x24,
6044 0x36, 0xE4, 0x71, 0x07, 0x74, 0x69, 0x5F, 0xE0, 0xB8, 0x59, 0x5F, 0x74,
6045 0x2F, 0xCC, 0x03, 0xB0, 0x6D, 0x90, 0xD8, 0xD3, 0x7C, 0x5A, 0x31, 0x46,
6046 0x5C, 0x7D, 0x1C, 0xC8, 0x0D, 0x18, 0x80, 0x8E, 0x5A, 0xA8, 0x5E, 0x4D,
6047 0x11, 0x2B, 0x76, 0xAC, 0x1E, 0x00, 0x51, 0x80, 0xE3, 0xED, 0x7A, 0xC0,
6048 0x4F, 0x80, 0xFA, 0x5F, 0xD5, 0xD7, 0x4F, 0xA7, 0x14, 0xE1, 0x60, 0x3C,
6049 0x95, 0x77, 0xCA, 0x3B,
6050};
6051
6052static const uint8_t keygen_dh2048_subprime_g[] = {
6053 0x05,
6054};
6055static const uint32_t keygen_dh256_private_bits;
6056
6057static const uint32_t keygen_dh320_private_bits = 256;
6058
6059static const uint32_t keygen_dh384_private_bits;
6060
6061static const uint32_t keygen_dh448_private_bits = 256;
6062
6063static const uint32_t keygen_dh512_private_bits;
6064
6065static const uint32_t keygen_dh576_private_bits = 288;
6066
6067static const uint32_t keygen_dh640_private_bits;
6068
6069static const uint32_t keygen_dh704_private_bits = 352;
6070
6071static const uint32_t keygen_dh768_private_bits;
6072
6073static const uint32_t keygen_dh832_private_bits = 416;
6074
6075static const uint32_t keygen_dh896_private_bits;
6076
6077static const uint32_t keygen_dh960_private_bits = 480;
6078
6079static const uint32_t keygen_dh1024_private_bits;
6080
6081static const uint32_t keygen_dh1088_private_bits = 544;
6082
6083static const uint32_t keygen_dh1152_private_bits;
6084
6085static const uint32_t keygen_dh1216_private_bits = 608;
6086
6087static const uint32_t keygen_dh1280_private_bits;
6088
6089static const uint32_t keygen_dh1344_private_bits = 672;
6090
6091static const uint32_t keygen_dh1408_private_bits;
6092
6093static const uint32_t keygen_dh1472_private_bits = 736;
6094
6095static const uint32_t keygen_dh1536_private_bits;
6096
6097static const uint32_t keygen_dh1600_private_bits = 800;
6098
6099static const uint32_t keygen_dh1664_private_bits;
6100
6101static const uint32_t keygen_dh1728_private_bits = 864;
6102
6103static const uint32_t keygen_dh1792_private_bits;
6104
6105static const uint32_t keygen_dh1856_private_bits = 928;
6106
6107static const uint32_t keygen_dh1920_private_bits;
6108
6109static const uint32_t keygen_dh1984_private_bits = 992;
6110
6111static const uint32_t keygen_dh2048_private_bits;
6112
6113static const uint32_t keygen_dh2048_subprime_private_bits;
6114
6115static const uint8_t keygen_dh2048_subprime_subprime[] = {
6116 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6117 0x00,
6118 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
6119 0x00,
6120 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
6121};
6122
6123/*
6124 * Test data from 186-3dsatestvectors.zip KeyPair.rsp
6125 * http://csrc.nist.gov/groups/STM/cavp/documents/dss/186-3dsatestvectors.zip
6126 */
6127/* [mod = L=1024, N=160] */
6128static const uint8_t keygen_dsa_test1_p[] = {
6129 0xd3, 0x83, 0x11, 0xe2, 0xcd, 0x38, 0x8c, 0x3e, 0xd6, 0x98, 0xe8, 0x2f,
6130 0xdf, 0x88, 0xeb, 0x92, 0xb5, 0xa9, 0xa4, 0x83, 0xdc, 0x88, 0x00, 0x5d,
6131 0x4b, 0x72, 0x5e, 0xf3, 0x41, 0xea, 0xbb, 0x47, 0xcf, 0x8a, 0x7a, 0x8a,
6132 0x41, 0xe7, 0x92, 0xa1, 0x56, 0xb7, 0xce, 0x97, 0x20, 0x6c, 0x4f, 0x9c,
6133 0x5c, 0xe6, 0xfc, 0x5a, 0xe7, 0x91, 0x21, 0x02, 0xb6, 0xb5, 0x02, 0xe5,
6134 0x90, 0x50, 0xb5, 0xb2, 0x1c, 0xe2, 0x63, 0xdd, 0xdb, 0x20, 0x44, 0xb6,
6135 0x52, 0x23, 0x6f, 0x4d, 0x42, 0xab, 0x4b, 0x5d, 0x6a, 0xa7, 0x31, 0x89,
6136 0xce, 0xf1, 0xac, 0xe7, 0x78, 0xd7, 0x84, 0x5a, 0x5c, 0x1c, 0x1c, 0x71,
6137 0x47, 0x12, 0x31, 0x88, 0xf8, 0xdc, 0x55, 0x10, 0x54, 0xee, 0x16, 0x2b,
6138 0x63, 0x4d, 0x60, 0xf0, 0x97, 0xf7, 0x19, 0x07, 0x66, 0x40, 0xe2, 0x09,
6139 0x80, 0xa0, 0x09, 0x31, 0x13, 0xa8, 0xbd, 0x73
6140};
6141
6142static const uint8_t keygen_dsa_test1_q[] = {
6143 0x96, 0xc5, 0x39, 0x0a, 0x8b, 0x61, 0x2c, 0x0e, 0x42, 0x2b, 0xb2, 0xb0,
6144 0xea, 0x19, 0x4a, 0x3e, 0xc9, 0x35, 0xa2, 0x81
6145};
6146
6147static const uint8_t keygen_dsa_test1_g[] = {
6148 0x06, 0xb7, 0x86, 0x1a, 0xbb, 0xd3, 0x5c, 0xc8, 0x9e, 0x79, 0xc5, 0x2f,
6149 0x68, 0xd2, 0x08, 0x75, 0x38, 0x9b, 0x12, 0x73, 0x61, 0xca, 0x66, 0x82,
6150 0x21, 0x38, 0xce, 0x49, 0x91, 0xd2, 0xb8, 0x62, 0x25, 0x9d, 0x6b, 0x45,
6151 0x48, 0xa6, 0x49, 0x5b, 0x19, 0x5a, 0xa0, 0xe0, 0xb6, 0x13, 0x7c, 0xa3,
6152 0x7e, 0xb2, 0x3b, 0x94, 0x07, 0x4d, 0x3c, 0x3d, 0x30, 0x00, 0x42, 0xbd,
6153 0xf1, 0x57, 0x62, 0x81, 0x2b, 0x63, 0x33, 0xef, 0x7b, 0x07, 0xce, 0xba,
6154 0x78, 0x60, 0x76, 0x10, 0xfc, 0xc9, 0xee, 0x68, 0x49, 0x1d, 0xbc, 0x1e,
6155 0x34, 0xcd, 0x12, 0x61, 0x54, 0x74, 0xe5, 0x2b, 0x18, 0xbc, 0x93, 0x4f,
6156 0xb0, 0x0c, 0x61, 0xd3, 0x9e, 0x7d, 0xa8, 0x90, 0x22, 0x91, 0xc4, 0x43,
6157 0x4a, 0x4e, 0x22, 0x24, 0xc3, 0xf4, 0xfd, 0x9f, 0x93, 0xcd, 0x6f, 0x4f,
6158 0x17, 0xfc, 0x07, 0x63, 0x41, 0xa7, 0xe7, 0xd9
6159};
6160
6161/* for i in {512..1024..64}; do openssl dsaparam -C $i; done */
6162static const uint8_t keygen_dsa512_p[] = {
6163 0xC8, 0x6B, 0xB7, 0x91, 0xD6, 0x63, 0xCE, 0xC0, 0xC6, 0xB8, 0xAC, 0x5B,
6164 0xEB, 0xA7, 0xEF, 0x17, 0xBE, 0x1A, 0x1A, 0x36, 0x6B, 0x38, 0x40, 0x0E,
6165 0x69, 0x13, 0x32, 0xD4, 0x4B, 0xBE, 0x00, 0xB5, 0x29, 0x7F, 0x6B, 0x87,
6166 0xAA, 0x1D, 0x98, 0x37, 0xD2, 0xAC, 0x62, 0x26, 0xD7, 0xFD, 0xE1, 0xC9,
6167 0x13, 0x4F, 0x2A, 0xF2, 0x82, 0xEC, 0xA8, 0x83, 0x6F, 0x29, 0xD3, 0xF5,
6168 0x16, 0xB9, 0x13, 0xCD,
6169};
6170
6171static const uint8_t keygen_dsa512_q[] = {
6172 0x8D, 0xF9, 0x8B, 0x8A, 0xDA, 0x3B, 0x0B, 0x1C, 0xFA, 0x1C, 0xA7, 0xE8,
6173 0x9A, 0xA2, 0xD7, 0xC3, 0x2D, 0xD5, 0x9D, 0x1B,
6174};
6175
6176static const uint8_t keygen_dsa512_g[] = {
6177 0xB3, 0xE2, 0xFD, 0x38, 0xE0, 0x9A, 0x21, 0x64, 0x8F, 0x6D, 0x7E, 0x4F,
6178 0xC2, 0x24, 0x18, 0x88, 0xEC, 0xA4, 0xCB, 0xB0, 0x5F, 0x43, 0xD8, 0x2B,
6179 0x5B, 0xDE, 0x01, 0xB4, 0xD2, 0x24, 0x1F, 0x80, 0xE7, 0xFC, 0xF3, 0x15,
6180 0xFA, 0x0C, 0x5B, 0x6F, 0x81, 0x55, 0x8C, 0x80, 0x36, 0xFB, 0x4D, 0xB5,
6181 0x8C, 0x5A, 0x26, 0xBE, 0xFB, 0x78, 0xEA, 0x62, 0x6A, 0x9D, 0x5E, 0xD0,
6182 0x21, 0x0C, 0xD9, 0x4E,
6183};
6184
6185static const uint8_t keygen_dsa576_p[] = {
6186 0xF7, 0x85, 0x23, 0x2C, 0x2C, 0x86, 0xD4, 0x2B, 0xE5, 0x09, 0xAB, 0x60,
6187 0xD6, 0x79, 0x05, 0x13, 0x75, 0x78, 0x1E, 0xAE, 0xEB, 0x5F, 0xBA, 0xFA,
6188 0x6E, 0x05, 0xE7, 0xB3, 0x8D, 0x33, 0x4B, 0xE5, 0xB5, 0xAA, 0xD4, 0xE6,
6189 0xA3, 0x9B, 0xA2, 0xF5, 0x7B, 0xF6, 0x32, 0xE6, 0x31, 0x6F, 0x34, 0x46,
6190 0x16, 0xEA, 0xD8, 0x94, 0x79, 0xD7, 0x69, 0x23, 0xA4, 0x04, 0xE2, 0x25,
6191 0xBB, 0x6D, 0xCC, 0x6E, 0x99, 0xB7, 0x90, 0x90, 0x89, 0xB9, 0x88, 0x19,
6192};
6193
6194static const uint8_t keygen_dsa576_q[] = {
6195 0xF0, 0xD8, 0x71, 0x31, 0xB5, 0x01, 0xC1, 0x6B, 0x09, 0xCE, 0x7D, 0x2F,
6196 0x82, 0x48, 0xB0, 0x21, 0x9C, 0xD6, 0xB5, 0xB1,
6197};
6198
6199static const uint8_t keygen_dsa576_g[] = {
6200 0x33, 0x45, 0xB8, 0x9A, 0x17, 0x4B, 0xBF, 0xD3, 0xB2, 0xBA, 0xD2, 0xE4,
6201 0xAC, 0x54, 0xA0, 0x9B, 0x5F, 0x5D, 0x95, 0x88, 0x9C, 0x0C, 0x59, 0xCE,
6202 0x40, 0x0C, 0x05, 0xFD, 0xC4, 0x9D, 0x22, 0x27, 0xDA, 0xA6, 0xD1, 0x10,
6203 0x61, 0x46, 0x31, 0x5C, 0x7D, 0x4E, 0xF6, 0x01, 0x38, 0x9A, 0x7E, 0x72,
6204 0x4E, 0x7A, 0x07, 0xFB, 0x6D, 0x20, 0x9D, 0x59, 0xC6, 0x33, 0x6A, 0x64,
6205 0xBF, 0x14, 0x30, 0x4E, 0x0C, 0x64, 0x9D, 0x11, 0xCF, 0x64, 0xCE, 0x29,
6206};
6207
6208static const uint8_t keygen_dsa640_p[] = {
6209 0x88, 0x8C, 0x58, 0x99, 0xF4, 0x78, 0xEA, 0x31, 0x56, 0xB7, 0x2C, 0x70,
6210 0xDC, 0x09, 0x5D, 0xB9, 0x13, 0x16, 0xCE, 0xDF, 0xFD, 0x8C, 0x4E, 0xF8,
6211 0x32, 0x59, 0x00, 0x58, 0xD6, 0x44, 0x4F, 0x95, 0xF7, 0x85, 0x14, 0xC3,
6212 0x10, 0x5A, 0xA2, 0x44, 0x2F, 0xA2, 0xC9, 0xB4, 0x88, 0x89, 0xA1, 0xAE,
6213 0x0E, 0x82, 0xE1, 0xC1, 0x45, 0x09, 0x98, 0xF7, 0xCB, 0xF2, 0xD8, 0xA0,
6214 0x6E, 0x32, 0x02, 0xE4, 0x0E, 0x7A, 0x43, 0x3A, 0xE1, 0x04, 0x4C, 0xC5,
6215 0x78, 0x0E, 0x02, 0x27, 0xC4, 0xD0, 0xCA, 0x29,
6216};
6217
6218static const uint8_t keygen_dsa640_q[] = {
6219 0xD7, 0x63, 0x4F, 0x3E, 0x6D, 0x52, 0x93, 0x69, 0xFA, 0xFF, 0xDE, 0x0D,
6220 0x57, 0x3F, 0x24, 0xBB, 0x01, 0xF8, 0x01, 0xAD,
6221};
6222
6223static const uint8_t keygen_dsa640_g[] = {
6224 0x76, 0xCB, 0x07, 0xB9, 0xE9, 0x3F, 0x3C, 0xA5, 0x18, 0x43, 0x83, 0xE6,
6225 0xBC, 0x42, 0x09, 0xD9, 0xC5, 0x1C, 0x56, 0x57, 0x0B, 0x5B, 0x46, 0x65,
6226 0x00, 0x67, 0xCA, 0x33, 0xC0, 0xA6, 0x37, 0xEA, 0x89, 0xAE, 0xDF, 0x1D,
6227 0x79, 0x96, 0xC7, 0x0C, 0xD2, 0xAC, 0xD3, 0x2C, 0x46, 0xC2, 0xA0, 0x9D,
6228 0x4B, 0x06, 0xB5, 0xDF, 0xAE, 0x73, 0xEB, 0x9A, 0x6A, 0x54, 0x39, 0x2C,
6229 0xB1, 0x98, 0xAD, 0x44, 0xF3, 0x29, 0xC9, 0xC5, 0x75, 0xF1, 0x3C, 0xD8,
6230 0x3B, 0xA1, 0x85, 0x29, 0x38, 0xB9, 0x17, 0xA5,
6231};
6232
6233static const uint8_t keygen_dsa704_p[] = {
6234 0xDA, 0xEA, 0x9B, 0x6B, 0x35, 0x06, 0x2E, 0x7E, 0x71, 0xB2, 0x11, 0xD0,
6235 0x37, 0x84, 0x88, 0xC0, 0x50, 0x94, 0x73, 0x78, 0xA8, 0x9C, 0xBD, 0x8C,
6236 0xB1, 0x0A, 0xD5, 0x89, 0x52, 0x39, 0xBF, 0x41, 0xDC, 0xB9, 0xE5, 0x16,
6237 0x1A, 0x86, 0xD5, 0xCF, 0xD6, 0x26, 0x84, 0x95, 0xE9, 0x0D, 0xCD, 0x98,
6238 0x21, 0x6B, 0x3C, 0xFE, 0x6D, 0x2D, 0x42, 0x1A, 0x3F, 0xE0, 0xFF, 0x07,
6239 0x41, 0x82, 0x30, 0x15, 0x17, 0xF3, 0x0F, 0x7B, 0xA0, 0xD3, 0x46, 0xFA,
6240 0x1F, 0x1E, 0xEC, 0xBD, 0x26, 0xCE, 0x4C, 0xE3, 0xBD, 0x73, 0xA3, 0xA6,
6241 0xA0, 0x12, 0xE1, 0xFD,
6242};
6243
6244static const uint8_t keygen_dsa704_q[] = {
6245 0xCE, 0xB3, 0x2E, 0x41, 0xEB, 0xFD, 0x22, 0x2A, 0xCE, 0x9A, 0xAF, 0x24,
6246 0xE3, 0x02, 0x50, 0xDE, 0x47, 0xBC, 0x4C, 0x1F,
6247};
6248
6249static const uint8_t keygen_dsa704_g[] = {
6250 0x08, 0x83, 0x72, 0x6D, 0x0A, 0x8F, 0x19, 0x61, 0xE4, 0x62, 0x40, 0x29,
6251 0x66, 0x6B, 0xDE, 0xBD, 0xAB, 0xE3, 0x5B, 0x58, 0x3F, 0xF5, 0xEA, 0xDE,
6252 0x8E, 0x7A, 0x34, 0xAF, 0x1C, 0x99, 0x03, 0x1A, 0x51, 0x17, 0xFC, 0xE0,
6253 0xA3, 0x22, 0x43, 0x63, 0xB6, 0x7E, 0x29, 0x4B, 0x23, 0x6C, 0xD1, 0xDE,
6254 0x59, 0xEC, 0x1D, 0x67, 0x94, 0xDD, 0x2E, 0x88, 0x86, 0xD3, 0xD6, 0x68,
6255 0x58, 0x36, 0x48, 0xF8, 0xEF, 0x38, 0x3F, 0xF5, 0x87, 0x96, 0x38, 0xD3,
6256 0x48, 0x50, 0x1F, 0xA3, 0x4A, 0xCA, 0xD7, 0x4D, 0xC3, 0x84, 0x83, 0xB1,
6257 0x8A, 0x95, 0xE0, 0xB3,
6258};
6259
6260static const uint8_t keygen_dsa768_p[] = {
6261 0xF0, 0xB1, 0x93, 0xFD, 0x53, 0x98, 0x23, 0x43, 0xFB, 0x04, 0xB1, 0x31,
6262 0x80, 0x3D, 0xD3, 0x95, 0x56, 0x51, 0xCC, 0x32, 0xA4, 0x51, 0x00, 0x8A,
6263 0x80, 0xB6, 0x87, 0x70, 0xD7, 0x77, 0x8D, 0xA6, 0xC2, 0xB5, 0x85, 0xE1,
6264 0xE0, 0x9E, 0x11, 0x28, 0x72, 0xE9, 0x45, 0x5B, 0x4D, 0xC9, 0xDC, 0x46,
6265 0x64, 0x2F, 0x44, 0xD8, 0x24, 0xE3, 0x9B, 0xCC, 0xF9, 0x66, 0x31, 0x9C,
6266 0x40, 0x64, 0xED, 0xC5, 0x48, 0x30, 0x84, 0x0C, 0xF9, 0x1F, 0xBC, 0x75,
6267 0xD8, 0x8C, 0x53, 0x30, 0x25, 0xB6, 0xBD, 0xDA, 0xBE, 0xBC, 0xBA, 0x86,
6268 0xB3, 0x7D, 0x27, 0x74, 0x9D, 0x68, 0xEA, 0xB8, 0xE0, 0x09, 0x3A, 0x7F,
6269};
6270
6271static const uint8_t keygen_dsa768_q[] = {
6272 0xC9, 0x8C, 0x79, 0x7B, 0x98, 0xB5, 0xFD, 0x80, 0x5D, 0x4B, 0x26, 0x30,
6273 0x42, 0x63, 0xDE, 0x37, 0xAB, 0x4B, 0xB7, 0xAF,
6274};
6275
6276static const uint8_t keygen_dsa768_g[] = {
6277 0xD4, 0xE8, 0xF1, 0xB9, 0x6D, 0x40, 0x26, 0x19, 0x72, 0x39, 0x5C, 0x6F,
6278 0x68, 0x4C, 0x8C, 0x18, 0xD8, 0x49, 0x3C, 0xB6, 0x5D, 0x72, 0xE3, 0xF4,
6279 0x89, 0x24, 0x69, 0xC8, 0x76, 0x83, 0x38, 0xA2, 0x23, 0xF5, 0xB3, 0xD5,
6280 0xCB, 0x0F, 0xC4, 0xFE, 0x45, 0x65, 0x2F, 0x2C, 0x3D, 0x32, 0x02, 0x28,
6281 0xE5, 0xCA, 0x34, 0xEC, 0x1A, 0xBB, 0x82, 0x93, 0x2A, 0xD9, 0x64, 0x1E,
6282 0xC5, 0x91, 0x34, 0x60, 0xF2, 0xE2, 0x2D, 0x64, 0x4E, 0x46, 0xAA, 0x00,
6283 0x6F, 0x26, 0xD8, 0x98, 0x97, 0xBF, 0xCC, 0xF1, 0x1B, 0x4A, 0x8A, 0x7D,
6284 0x39, 0xA4, 0xA4, 0x23, 0x82, 0x64, 0x78, 0x40, 0xED, 0x4C, 0x96, 0xB9,
6285};
6286
6287static const uint8_t keygen_dsa832_p[] = {
6288 0x93, 0x47, 0x85, 0x69, 0x79, 0xF2, 0xAA, 0xC2, 0x83, 0xA4, 0x08, 0x2F,
6289 0x3C, 0xE5, 0x4D, 0x3B, 0xFF, 0x4D, 0xC5, 0xF4, 0x03, 0x20, 0xFA, 0x15,
6290 0xA8, 0x27, 0x80, 0x55, 0x29, 0x57, 0x60, 0x0B, 0x75, 0x01, 0x7B, 0x65,
6291 0xCE, 0x4D, 0x7C, 0xF6, 0x7C, 0x4F, 0x1D, 0xC3, 0x67, 0xF2, 0xC1, 0x64,
6292 0x38, 0x49, 0x54, 0x60, 0x57, 0x05, 0xEB, 0x31, 0xFA, 0x7B, 0x50, 0xA1,
6293 0x0F, 0xCB, 0xC4, 0x4E, 0xDF, 0x92, 0x5A, 0x8B, 0x11, 0xBA, 0x6B, 0x7E,
6294 0x7A, 0xB4, 0x80, 0xD0, 0x9A, 0xE2, 0x88, 0x7D, 0x83, 0xA6, 0x81, 0x81,
6295 0x71, 0xD0, 0x06, 0xDE, 0xCC, 0xA4, 0xB9, 0x0A, 0x6B, 0x81, 0x31, 0x28,
6296 0x1D, 0xEF, 0x5F, 0x99, 0xDE, 0xEC, 0xDA, 0x4D,
6297};
6298
6299static const uint8_t keygen_dsa832_q[] = {
6300 0xF8, 0xF5, 0xAF, 0x31, 0x0D, 0xBE, 0x6F, 0x4B, 0x79, 0x87, 0xA2, 0x98,
6301 0xED, 0xF1, 0x2A, 0x93, 0x3D, 0x12, 0x5D, 0x25,
6302};
6303
6304static const uint8_t keygen_dsa832_g[] = {
6305 0x11, 0x21, 0xBC, 0x83, 0x7A, 0xD9, 0x5F, 0x0E, 0xA2, 0xF7, 0x96, 0xB7,
6306 0x6A, 0xDD, 0xAE, 0xBA, 0x11, 0x26, 0x58, 0xF6, 0xB1, 0xCF, 0x94, 0x35,
6307 0x3B, 0xFB, 0x9C, 0x9B, 0x16, 0xB8, 0x58, 0xBA, 0x2F, 0x5C, 0xE5, 0x18,
6308 0xE1, 0x29, 0xA6, 0xA3, 0x1C, 0x0C, 0xA5, 0xC7, 0xAE, 0xE8, 0x31, 0x26,
6309 0x8C, 0xCD, 0xA5, 0x69, 0xB2, 0x74, 0x31, 0x15, 0xCE, 0x82, 0xCD, 0x32,
6310 0xF7, 0xC8, 0x90, 0x60, 0x96, 0x61, 0x07, 0x60, 0x63, 0x6B, 0x48, 0x03,
6311 0xCD, 0x1F, 0x58, 0x7D, 0x8E, 0xAF, 0x26, 0x16, 0x3B, 0xC6, 0xA6, 0x03,
6312 0xB4, 0xE1, 0x3E, 0xBE, 0x5B, 0xC9, 0xD3, 0xBD, 0xB6, 0x31, 0xC9, 0x34,
6313 0x2C, 0x2B, 0x08, 0x3C, 0xE0, 0x1C, 0x1E, 0x01,
6314};
6315
6316static const uint8_t keygen_dsa896_p[] = {
6317 0xCA, 0x16, 0xD2, 0xB2, 0x7C, 0xC5, 0x25, 0x99, 0x3A, 0xCC, 0xCB, 0x3F,
6318 0x72, 0xAE, 0xD4, 0xA0, 0x1E, 0xE0, 0x19, 0x6A, 0x8A, 0xC2, 0xFC, 0xD5,
6319 0xB2, 0xCC, 0xD1, 0x6F, 0xA3, 0x95, 0x30, 0xEC, 0x2B, 0x4A, 0x46, 0x6C,
6320 0x72, 0xC3, 0x31, 0xFD, 0x94, 0x00, 0x55, 0xE7, 0x03, 0xC3, 0xDE, 0xD7,
6321 0xE3, 0xF8, 0xAF, 0x32, 0x0A, 0x29, 0x32, 0xC5, 0x97, 0x93, 0x2A, 0xE6,
6322 0xC6, 0x82, 0x49, 0x5C, 0x76, 0xB3, 0xCB, 0x47, 0xD7, 0xFF, 0xEA, 0xE5,
6323 0x47, 0x87, 0x08, 0x6C, 0xEA, 0x6D, 0x1A, 0xF6, 0x47, 0xBA, 0xE3, 0x94,
6324 0xE9, 0xFE, 0xF6, 0x06, 0xA1, 0x99, 0xDC, 0xCB, 0x3D, 0x7A, 0x06, 0x31,
6325 0xAC, 0x25, 0xD3, 0x3C, 0x35, 0xAD, 0x36, 0x8D, 0x25, 0x41, 0xE9, 0x21,
6326 0xD1, 0xF9, 0xC3, 0xC9,
6327};
6328
6329static const uint8_t keygen_dsa896_q[] = {
6330 0xAE, 0x42, 0x0A, 0x1D, 0x76, 0xA9, 0xFB, 0xF1, 0xCB, 0x2D, 0x73, 0x35,
6331 0x3F, 0x98, 0x63, 0x34, 0xE1, 0xCD, 0x3C, 0xCF,
6332};
6333
6334static const uint8_t keygen_dsa896_g[] = {
6335 0x12, 0xD0, 0x15, 0x32, 0x0B, 0x7D, 0xE3, 0xD0, 0x36, 0x51, 0x79, 0x3E,
6336 0xB4, 0x4E, 0xE2, 0x1E, 0x5E, 0x3E, 0x43, 0x4C, 0x5D, 0x49, 0x9D, 0xD4,
6337 0xA3, 0xE3, 0xC8, 0x1F, 0x46, 0xA2, 0xCE, 0x95, 0xF9, 0x8D, 0xFC, 0xFD,
6338 0x50, 0x48, 0xBF, 0xB5, 0x25, 0xB6, 0xFD, 0xF9, 0xF1, 0x97, 0xD5, 0x82,
6339 0xEE, 0xE7, 0xDF, 0xC6, 0xDD, 0x09, 0x96, 0x15, 0xC0, 0x95, 0x60, 0xF4,
6340 0x53, 0xF6, 0x19, 0xA4, 0x84, 0x53, 0xE4, 0x87, 0xB6, 0x0C, 0x6C, 0x01,
6341 0x31, 0x72, 0x56, 0xA4, 0x2E, 0x25, 0xFC, 0x46, 0xB0, 0x47, 0xF3, 0x5A,
6342 0x90, 0x69, 0xAC, 0x64, 0x02, 0xCB, 0x1F, 0x5F, 0x10, 0x70, 0x2B, 0x71,
6343 0xF7, 0x9B, 0x70, 0x22, 0x7F, 0x05, 0xEB, 0xCB, 0x6D, 0x66, 0xDE, 0xFC,
6344 0xED, 0x51, 0xC2, 0x4D,
6345};
6346
6347static const uint8_t keygen_dsa960_p[] = {
6348 0xCA, 0x86, 0x31, 0x0C, 0x62, 0xC7, 0x25, 0x2F, 0xAA, 0x8D, 0xA5, 0x51,
6349 0x97, 0x81, 0xB8, 0xC5, 0xFD, 0xDB, 0x47, 0xC4, 0x8E, 0xDF, 0x06, 0xAA,
6350 0x76, 0xAD, 0x47, 0xDD, 0x56, 0x6C, 0x97, 0xEB, 0x8C, 0xEC, 0x59, 0x79,
6351 0x1B, 0xBF, 0x96, 0x80, 0x50, 0x72, 0x8E, 0x2F, 0x34, 0x71, 0x5B, 0x03,
6352 0x2D, 0xB0, 0x31, 0x37, 0x8C, 0xC4, 0x62, 0x99, 0x9D, 0xC2, 0xDF, 0x68,
6353 0x35, 0xD5, 0x3F, 0xC1, 0x4B, 0xC4, 0x2F, 0xFA, 0xBD, 0x7E, 0xA5, 0x20,
6354 0x8F, 0xB9, 0x5F, 0x98, 0xA9, 0x1B, 0xAF, 0x8A, 0xF8, 0x29, 0xEB, 0x44,
6355 0xB6, 0x50, 0x96, 0xE2, 0xB4, 0x3D, 0x3C, 0xE6, 0x8B, 0xD5, 0x15, 0x39,
6356 0x4F, 0xF4, 0xC3, 0x32, 0xD3, 0xE6, 0x36, 0x0D, 0x23, 0xFF, 0x76, 0x15,
6357 0x05, 0xC1, 0xDF, 0xC2, 0x82, 0xCE, 0xDD, 0x60, 0x05, 0x92, 0x56, 0xE5,
6358};
6359
6360static const uint8_t keygen_dsa960_q[] = {
6361 0xCE, 0x0A, 0x68, 0xA4, 0xAC, 0x5E, 0x8E, 0x4C, 0xA6, 0x8A, 0xAB, 0xA9,
6362 0x39, 0xC7, 0xB4, 0x10, 0xCC, 0xF6, 0x1E, 0x2F,
6363};
6364
6365static const uint8_t keygen_dsa960_g[] = {
6366 0x8A, 0x50, 0x28, 0x45, 0x69, 0x0E, 0x55, 0xB8, 0x86, 0xB5, 0xCB, 0xBC,
6367 0x49, 0x8D, 0x73, 0x79, 0xE3, 0x26, 0x4E, 0x90, 0x71, 0xF2, 0xBB, 0x50,
6368 0x18, 0xF8, 0x6D, 0x14, 0x8F, 0xCA, 0x20, 0xF7, 0x02, 0x31, 0x71, 0x8A,
6369 0x7E, 0xF0, 0xFE, 0x9C, 0xAD, 0x05, 0x5E, 0x11, 0xB3, 0x40, 0x66, 0xE1,
6370 0x2B, 0x0D, 0x84, 0x15, 0x18, 0x65, 0x00, 0xFA, 0x0D, 0x8A, 0x87, 0xC9,
6371 0xBF, 0x4A, 0x5C, 0x53, 0x29, 0xEB, 0x44, 0xCA, 0xAE, 0x86, 0x50, 0x3B,
6372 0xBB, 0x73, 0x06, 0x83, 0x72, 0x77, 0x17, 0xDB, 0x6E, 0x14, 0xAD, 0xCE,
6373 0xD2, 0x51, 0xE6, 0x1F, 0xA2, 0x64, 0xE4, 0x5F, 0x35, 0x7D, 0x7A, 0xBE,
6374 0x55, 0x9B, 0xB6, 0x0F, 0x3C, 0xA1, 0xD2, 0x45, 0xDD, 0xF8, 0xC4, 0x03,
6375 0x45, 0xAA, 0x12, 0xE4, 0x90, 0x8C, 0xAC, 0x04, 0x45, 0x74, 0x11, 0x28,
6376};
6377
6378static const uint8_t keygen_dsa1024_p[] = {
6379 0xAF, 0xA6, 0x9C, 0x37, 0x47, 0xD4, 0x65, 0xA6, 0xB1, 0x8D, 0xAC, 0x2E,
6380 0xAB, 0xD5, 0x36, 0xCC, 0x83, 0x47, 0xDD, 0xB6, 0x12, 0xCC, 0x93, 0xA5,
6381 0xBF, 0x7B, 0x24, 0xE7, 0x4A, 0xED, 0xEC, 0x63, 0x9E, 0x0B, 0x2D, 0xF8,
6382 0xB3, 0x6B, 0xBB, 0xF9, 0x40, 0x8D, 0x56, 0x26, 0x60, 0xD0, 0xDD, 0x03,
6383 0xF8, 0xC3, 0x82, 0x00, 0x2C, 0x27, 0x82, 0x5E, 0x30, 0x8B, 0x9D, 0xF1,
6384 0xF7, 0xB2, 0x61, 0x01, 0x31, 0x30, 0xF3, 0x05, 0x2F, 0xF4, 0xB7, 0x1C,
6385 0x1C, 0x3C, 0xB0, 0x2D, 0x2F, 0x1F, 0xE6, 0x2E, 0x21, 0x81, 0x0D, 0xFD,
6386 0x66, 0x36, 0x90, 0x39, 0x4D, 0xA0, 0xCF, 0xFA, 0xDD, 0xF7, 0xD5, 0xE4,
6387 0x09, 0xAA, 0x45, 0xDB, 0xE1, 0x55, 0x39, 0xD9, 0xF7, 0xDF, 0x34, 0x67,
6388 0xBF, 0x95, 0x9B, 0xF2, 0x4A, 0x15, 0x42, 0x6F, 0x32, 0x1F, 0xDE, 0xA6,
6389 0xFE, 0x18, 0x46, 0x6B, 0x8C, 0x4E, 0x01, 0x7F,
6390};
6391
6392static const uint8_t keygen_dsa1024_q[] = {
6393 0xCC, 0x18, 0x69, 0xCE, 0x9E, 0x92, 0xE7, 0xCD, 0xBF, 0x94, 0xB5, 0xAD,
6394 0x83, 0x5A, 0x56, 0xD6, 0x4E, 0xC4, 0xF7, 0xED,
6395};
6396
6397static const uint8_t keygen_dsa1024_g[] = {
6398 0x14, 0x1D, 0x91, 0xAB, 0x8F, 0xFF, 0xFB, 0x2D, 0xD3, 0x2A, 0x43, 0xB5,
6399 0x01, 0x40, 0xA4, 0xC7, 0x48, 0x0E, 0xE0, 0x10, 0xA9, 0xF7, 0x8B, 0x7E,
6400 0x45, 0x90, 0xE0, 0x17, 0xC1, 0xB4, 0xE9, 0xBA, 0xC0, 0x04, 0xEF, 0x0F,
6401 0xD6, 0x07, 0x78, 0x05, 0x25, 0xCF, 0x9D, 0x39, 0x66, 0x59, 0x53, 0xF8,
6402 0xCE, 0x1C, 0x61, 0x1B, 0x7F, 0x95, 0x9B, 0xD5, 0xB6, 0xF9, 0xC7, 0xE3,
6403 0xB8, 0x00, 0x78, 0x50, 0xE3, 0x4C, 0x76, 0xF8, 0x0E, 0x96, 0x11, 0xDB,
6404 0x28, 0x53, 0xA5, 0xBB, 0x22, 0xC5, 0x71, 0x97, 0x09, 0xBC, 0xEE, 0x55,
6405 0x9B, 0x6B, 0x22, 0x64, 0xE4, 0x49, 0x2C, 0xCD, 0x9E, 0xA5, 0x86, 0xF0,
6406 0x3F, 0x08, 0xCD, 0x88, 0x07, 0xF6, 0x6E, 0x3F, 0x8E, 0x99, 0x31, 0xBA,
6407 0x1A, 0xB9, 0x8E, 0xEC, 0xA3, 0x13, 0xC2, 0x85, 0xA5, 0xDC, 0xA4, 0xF0,
6408 0x1F, 0xB2, 0xC8, 0xD5, 0x19, 0x79, 0xCA, 0x6A,
6409};
6410
6411/* derive key test data, taken from GP test specifikation */
6412static const uint8_t derive_key_dh_prime[] = {
6413 0xe0, 0x01, 0xe8, 0x96, 0x7d, 0xb4, 0x93, 0x53, 0xe1, 0x6f, 0x8e, 0x89,
6414 0x22, 0x0c, 0xce, 0xfc, 0x5c, 0x5f, 0x12, 0xe3, 0xdf, 0xf8, 0xf1, 0xd1,
6415 0x49, 0x90, 0x12, 0xe6, 0xef, 0x53, 0xe3, 0x1f, 0x02, 0xea, 0xcc, 0x5a,
6416 0xdd, 0xf3, 0x37, 0x89, 0x35, 0xc9, 0x5b, 0x21, 0xea, 0x3d, 0x6f, 0x1c,
6417 0xd7, 0xce, 0x63, 0x75, 0x52, 0xec, 0x38, 0x6c, 0x0e, 0x34, 0xf7, 0x36,
6418 0xad, 0x95, 0x17, 0xef, 0xfe, 0x5e, 0x4d, 0xa7, 0xa8, 0x6a, 0xf9, 0x0e,
6419 0x2c, 0x22, 0x8f, 0xe4, 0xb9, 0xe6, 0xd8, 0xf8, 0xf0, 0x2d, 0x20, 0xaf,
6420 0x78, 0xab, 0xb6, 0x92, 0xac, 0xbc, 0x4b, 0x23, 0xfa, 0xf2, 0xc5, 0xcc,
6421 0xd4, 0x9a, 0x0c, 0x9a, 0x8b, 0xcd, 0x91, 0xac, 0x0c, 0x55, 0x92, 0x01,
6422 0xe6, 0xc2, 0xfd, 0x1f, 0x47, 0xc2, 0xcb, 0x2a, 0x88, 0xa8, 0x3c, 0x21,
6423 0x0f, 0xc0, 0x54, 0xdb, 0x29, 0x2d, 0xbc, 0x45
6424};
6425
6426static const uint8_t derive_key_dh_base[] = {
6427 0x1c, 0xe0, 0xf6, 0x69, 0x26, 0x46, 0x11, 0x97, 0xef, 0x45, 0xc4, 0x65,
6428 0x8b, 0x83, 0xb8, 0xab
6429};
6430
6431static const uint8_t derive_key_dh_public_value[] = {
6432 0xbb, 0xe9, 0x18, 0xdd, 0x4b, 0x2b, 0x94, 0x1b, 0x10, 0x0e, 0x88, 0x35,
6433 0x28, 0x68, 0xfc, 0x62, 0x04, 0x38, 0xa6, 0xdb, 0x32, 0xa6, 0x9e, 0xee,
6434 0x6c, 0x6f, 0x45, 0x1c, 0xa3, 0xa6, 0xd5, 0x37, 0x77, 0x75, 0x5b, 0xc1,
6435 0x37, 0x0a, 0xce, 0xfe, 0x2b, 0x8f, 0x13, 0xa9, 0x14, 0x2c, 0x5b, 0x44,
6436 0x15, 0x78, 0x86, 0x30, 0xd6, 0x95, 0xb1, 0x92, 0x20, 0x63, 0xa3, 0xcf,
6437 0x9d, 0xef, 0x65, 0x61, 0x27, 0x4d, 0x24, 0x01, 0xe7, 0xa1, 0x45, 0xf2,
6438 0xd8, 0xb9, 0x3a, 0x45, 0x17, 0xf4, 0x19, 0xd0, 0x5e, 0xf8, 0xcb, 0x35,
6439 0x59, 0x37, 0x9d, 0x04, 0x20, 0xa3, 0xbf, 0x02, 0xad, 0xfe, 0xa8, 0x60,
6440 0xb2, 0xc3, 0xee, 0x85, 0x58, 0x90, 0xf3, 0xb5, 0x57, 0x2b, 0xb4, 0xef,
6441 0xd7, 0x8f, 0x37, 0x68, 0x78, 0x7c, 0x71, 0x52, 0x9d, 0x5e, 0x0a, 0x61,
6442 0x4f, 0x09, 0x89, 0x92, 0x39, 0xf7, 0x4b, 0x01
6443};
6444
6445static const uint8_t derive_key_dh_private_value[] = {
6446 0x53, 0x8d, 0x3d, 0x64, 0x27, 0x4a, 0x40, 0x05, 0x9b, 0x9c, 0x26, 0xe9,
6447 0x13, 0xe6, 0x91, 0x53, 0x23, 0x7b, 0x55, 0x83
6448};
6449
6450static const uint8_t derive_key_dh_public_value_2[] = {
6451 0xa3, 0xf5, 0x7d, 0xbe, 0x9e, 0x2f, 0x0a, 0xda, 0xa9, 0x4e, 0x4e, 0x6a,
6452 0xf0, 0xe0, 0x71, 0x47, 0x0e, 0x2e, 0x41, 0x2e, 0xde, 0x73, 0x2a, 0x62,
6453 0x14, 0xc3, 0x7c, 0x26, 0xd4, 0xe9, 0x9a, 0x54, 0xba, 0x3d, 0xe7, 0x49,
6454 0x85, 0x95, 0x0e, 0xe9, 0x14, 0xb2, 0x90, 0x22, 0x91, 0xdc, 0xff, 0x61,
6455 0xb2, 0xfc, 0xd1, 0xd0, 0x1b, 0x11, 0x14, 0xb6, 0x02, 0x64, 0x2b, 0x26,
6456 0x5d, 0x88, 0xea, 0x8d, 0xbb, 0xe2, 0x07, 0x0b, 0x48, 0xfb, 0x01, 0x53,
6457 0x55, 0x1e, 0x59, 0x51, 0x36, 0xf2, 0xf9, 0xd1, 0x97, 0xfb, 0x66, 0x12,
6458 0x84, 0x5d, 0xed, 0xb8, 0x9b, 0x2d, 0x3e, 0x2b, 0x8c, 0xeb, 0x2a, 0x72,
6459 0x40, 0x9d, 0x55, 0x4c, 0xed, 0xeb, 0x55, 0x02, 0xff, 0x8c, 0xb0, 0x2e,
6460 0x03, 0x65, 0x3f, 0x41, 0xb1, 0xac, 0xa3, 0x30, 0x6b, 0xff, 0x6d, 0xf4,
6461 0x6d, 0xe6, 0xe1, 0x0f, 0x86, 0x7c, 0x43, 0x64
6462};
6463
6464static const uint8_t derive_key_dh_shared_secret[] = {
6465 0x4e, 0x6a, 0xcf, 0xfd, 0x7d, 0x14, 0x27, 0x65, 0xeb, 0xf4, 0xc7, 0x12,
6466 0x41, 0x4f, 0xe4, 0xb6, 0xab, 0x95, 0x7f, 0x4c, 0xb4, 0x66, 0xb4, 0x66,
6467 0x01, 0x28, 0x9b, 0xb8, 0x20, 0x60, 0x42, 0x82, 0x72, 0x84, 0x2e, 0xe2,
6468 0x8f, 0x11, 0x3c, 0xd1, 0x1f, 0x39, 0x43, 0x1c, 0xbf, 0xfd, 0x82, 0x32,
6469 0x54, 0xce, 0x47, 0x2e, 0x21, 0x05, 0xe4, 0x9b, 0x3d, 0x7f, 0x11, 0x3b,
6470 0x82, 0x50, 0x76, 0xe6, 0x26, 0x45, 0x85, 0x80, 0x7b, 0xc4, 0x64, 0x54,
6471 0x66, 0x5f, 0x27, 0xc5, 0xe4, 0xe1, 0xa4, 0xbd, 0x03, 0x47, 0x04, 0x86,
6472 0x32, 0x29, 0x81, 0xfd, 0xc8, 0x94, 0xcc, 0xa1, 0xe2, 0x93, 0x09, 0x87,
6473 0xc9, 0x2c, 0x15, 0xa3, 0x8b, 0xc4, 0x2e, 0xb3, 0x88, 0x10, 0xe8, 0x67,
6474 0xc4, 0x43, 0x2f, 0x07, 0x25, 0x9e, 0xc0, 0x0c, 0xdb, 0xbb, 0x0f, 0xb9,
6475 0x9e, 0x17, 0x27, 0xc7, 0x06, 0xda, 0x58, 0xdd
6476};
6477
6478static const uint32_t derive_key_max_keysize = 1024;
6479
Pascal Brand2b92b642015-07-16 13:29:42 +02006480static struct derive_key_ecdh_t {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006481 uint32_t level; /* test suite level */
Pascal Brand2b92b642015-07-16 13:29:42 +02006482 uint32_t algo; /* TEE_ALG_ECDH_P192,... */
6483 uint32_t curve; /* TEE_ECC_CURVE_NIST_P192,... */
6484 uint32_t keysize; /* key size, in bits */
6485 const uint8_t *public_x; /* public key - x == QCAVSx */
6486 const uint8_t *public_y; /* public key - y == QCAVSy */
6487 const uint8_t *private; /* private key == dIUT */
6488 const uint8_t *out; /* expected result - ZIUT */
Ruchika Gupta454b0b62020-10-30 13:23:19 +05306489} const derive_key_ecdh[] = {
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006490 /* [P-192] */
Pascal Brand2b92b642015-07-16 13:29:42 +02006491 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006492 .level = 0,
Pascal Brand2b92b642015-07-16 13:29:42 +02006493 .algo = TEE_ALG_ECDH_P192,
6494 .curve = TEE_ECC_CURVE_NIST_P192,
6495 .keysize = 192,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006496 .public_x = nist_kas_ecc_cdh_testvector_1_public_x,
6497 .public_y = nist_kas_ecc_cdh_testvector_1_public_y,
6498 .private = nist_kas_ecc_cdh_testvector_1_private,
6499 .out = nist_kas_ecc_cdh_testvector_1_out,
6500 },
6501 {
Jens Wiklander6a9d15a2016-02-01 10:29:42 +01006502 .level = 1,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006503 .algo = TEE_ALG_ECDH_P192,
6504 .curve = TEE_ECC_CURVE_NIST_P192,
6505 .keysize = 192,
6506 .public_x = nist_kas_ecc_cdh_testvector_2_public_x,
6507 .public_y = nist_kas_ecc_cdh_testvector_2_public_y,
6508 .private = nist_kas_ecc_cdh_testvector_2_private,
6509 .out = nist_kas_ecc_cdh_testvector_2_out,
6510 },
6511 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006512 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006513 .algo = TEE_ALG_ECDH_P192,
6514 .curve = TEE_ECC_CURVE_NIST_P192,
6515 .keysize = 192,
6516 .public_x = nist_kas_ecc_cdh_testvector_3_public_x,
6517 .public_y = nist_kas_ecc_cdh_testvector_3_public_y,
6518 .private = nist_kas_ecc_cdh_testvector_3_private,
6519 .out = nist_kas_ecc_cdh_testvector_3_out,
6520 },
6521 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006522 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006523 .algo = TEE_ALG_ECDH_P192,
6524 .curve = TEE_ECC_CURVE_NIST_P192,
6525 .keysize = 192,
6526 .public_x = nist_kas_ecc_cdh_testvector_4_public_x,
6527 .public_y = nist_kas_ecc_cdh_testvector_4_public_y,
6528 .private = nist_kas_ecc_cdh_testvector_4_private,
6529 .out = nist_kas_ecc_cdh_testvector_4_out,
6530 },
6531 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006532 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006533 .algo = TEE_ALG_ECDH_P192,
6534 .curve = TEE_ECC_CURVE_NIST_P192,
6535 .keysize = 192,
6536 .public_x = nist_kas_ecc_cdh_testvector_5_public_x,
6537 .public_y = nist_kas_ecc_cdh_testvector_5_public_y,
6538 .private = nist_kas_ecc_cdh_testvector_5_private,
6539 .out = nist_kas_ecc_cdh_testvector_5_out,
6540 },
6541 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006542 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006543 .algo = TEE_ALG_ECDH_P192,
6544 .curve = TEE_ECC_CURVE_NIST_P192,
6545 .keysize = 192,
6546 .public_x = nist_kas_ecc_cdh_testvector_6_public_x,
6547 .public_y = nist_kas_ecc_cdh_testvector_6_public_y,
6548 .private = nist_kas_ecc_cdh_testvector_6_private,
6549 .out = nist_kas_ecc_cdh_testvector_6_out,
6550 },
6551 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006552 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006553 .algo = TEE_ALG_ECDH_P192,
6554 .curve = TEE_ECC_CURVE_NIST_P192,
6555 .keysize = 192,
6556 .public_x = nist_kas_ecc_cdh_testvector_7_public_x,
6557 .public_y = nist_kas_ecc_cdh_testvector_7_public_y,
6558 .private = nist_kas_ecc_cdh_testvector_7_private,
6559 .out = nist_kas_ecc_cdh_testvector_7_out,
6560 },
6561 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006562 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006563 .algo = TEE_ALG_ECDH_P192,
6564 .curve = TEE_ECC_CURVE_NIST_P192,
6565 .keysize = 192,
6566 .public_x = nist_kas_ecc_cdh_testvector_8_public_x,
6567 .public_y = nist_kas_ecc_cdh_testvector_8_public_y,
6568 .private = nist_kas_ecc_cdh_testvector_8_private,
6569 .out = nist_kas_ecc_cdh_testvector_8_out,
6570 },
6571 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006572 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006573 .algo = TEE_ALG_ECDH_P192,
6574 .curve = TEE_ECC_CURVE_NIST_P192,
6575 .keysize = 192,
6576 .public_x = nist_kas_ecc_cdh_testvector_9_public_x,
6577 .public_y = nist_kas_ecc_cdh_testvector_9_public_y,
6578 .private = nist_kas_ecc_cdh_testvector_9_private,
6579 .out = nist_kas_ecc_cdh_testvector_9_out,
6580 },
6581 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006582 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006583 .algo = TEE_ALG_ECDH_P192,
6584 .curve = TEE_ECC_CURVE_NIST_P192,
6585 .keysize = 192,
6586 .public_x = nist_kas_ecc_cdh_testvector_10_public_x,
6587 .public_y = nist_kas_ecc_cdh_testvector_10_public_y,
6588 .private = nist_kas_ecc_cdh_testvector_10_private,
6589 .out = nist_kas_ecc_cdh_testvector_10_out,
6590 },
6591 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006592 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006593 .algo = TEE_ALG_ECDH_P192,
6594 .curve = TEE_ECC_CURVE_NIST_P192,
6595 .keysize = 192,
6596 .public_x = nist_kas_ecc_cdh_testvector_11_public_x,
6597 .public_y = nist_kas_ecc_cdh_testvector_11_public_y,
6598 .private = nist_kas_ecc_cdh_testvector_11_private,
6599 .out = nist_kas_ecc_cdh_testvector_11_out,
6600 },
6601 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006602 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006603 .algo = TEE_ALG_ECDH_P192,
6604 .curve = TEE_ECC_CURVE_NIST_P192,
6605 .keysize = 192,
6606 .public_x = nist_kas_ecc_cdh_testvector_12_public_x,
6607 .public_y = nist_kas_ecc_cdh_testvector_12_public_y,
6608 .private = nist_kas_ecc_cdh_testvector_12_private,
6609 .out = nist_kas_ecc_cdh_testvector_12_out,
6610 },
6611 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006612 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006613 .algo = TEE_ALG_ECDH_P192,
6614 .curve = TEE_ECC_CURVE_NIST_P192,
6615 .keysize = 192,
6616 .public_x = nist_kas_ecc_cdh_testvector_13_public_x,
6617 .public_y = nist_kas_ecc_cdh_testvector_13_public_y,
6618 .private = nist_kas_ecc_cdh_testvector_13_private,
6619 .out = nist_kas_ecc_cdh_testvector_13_out,
6620 },
6621 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006622 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006623 .algo = TEE_ALG_ECDH_P192,
6624 .curve = TEE_ECC_CURVE_NIST_P192,
6625 .keysize = 192,
6626 .public_x = nist_kas_ecc_cdh_testvector_14_public_x,
6627 .public_y = nist_kas_ecc_cdh_testvector_14_public_y,
6628 .private = nist_kas_ecc_cdh_testvector_14_private,
6629 .out = nist_kas_ecc_cdh_testvector_14_out,
6630 },
6631 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006632 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006633 .algo = TEE_ALG_ECDH_P192,
6634 .curve = TEE_ECC_CURVE_NIST_P192,
6635 .keysize = 192,
6636 .public_x = nist_kas_ecc_cdh_testvector_15_public_x,
6637 .public_y = nist_kas_ecc_cdh_testvector_15_public_y,
6638 .private = nist_kas_ecc_cdh_testvector_15_private,
6639 .out = nist_kas_ecc_cdh_testvector_15_out,
6640 },
6641 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006642 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006643 .algo = TEE_ALG_ECDH_P192,
6644 .curve = TEE_ECC_CURVE_NIST_P192,
6645 .keysize = 192,
6646 .public_x = nist_kas_ecc_cdh_testvector_16_public_x,
6647 .public_y = nist_kas_ecc_cdh_testvector_16_public_y,
6648 .private = nist_kas_ecc_cdh_testvector_16_private,
6649 .out = nist_kas_ecc_cdh_testvector_16_out,
6650 },
6651 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006652 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006653 .algo = TEE_ALG_ECDH_P192,
6654 .curve = TEE_ECC_CURVE_NIST_P192,
6655 .keysize = 192,
6656 .public_x = nist_kas_ecc_cdh_testvector_17_public_x,
6657 .public_y = nist_kas_ecc_cdh_testvector_17_public_y,
6658 .private = nist_kas_ecc_cdh_testvector_17_private,
6659 .out = nist_kas_ecc_cdh_testvector_17_out,
6660 },
6661 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006662 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006663 .algo = TEE_ALG_ECDH_P192,
6664 .curve = TEE_ECC_CURVE_NIST_P192,
6665 .keysize = 192,
6666 .public_x = nist_kas_ecc_cdh_testvector_18_public_x,
6667 .public_y = nist_kas_ecc_cdh_testvector_18_public_y,
6668 .private = nist_kas_ecc_cdh_testvector_18_private,
6669 .out = nist_kas_ecc_cdh_testvector_18_out,
6670 },
6671 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006672 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006673 .algo = TEE_ALG_ECDH_P192,
6674 .curve = TEE_ECC_CURVE_NIST_P192,
6675 .keysize = 192,
6676 .public_x = nist_kas_ecc_cdh_testvector_19_public_x,
6677 .public_y = nist_kas_ecc_cdh_testvector_19_public_y,
6678 .private = nist_kas_ecc_cdh_testvector_19_private,
6679 .out = nist_kas_ecc_cdh_testvector_19_out,
6680 },
6681 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006682 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006683 .algo = TEE_ALG_ECDH_P192,
6684 .curve = TEE_ECC_CURVE_NIST_P192,
6685 .keysize = 192,
6686 .public_x = nist_kas_ecc_cdh_testvector_20_public_x,
6687 .public_y = nist_kas_ecc_cdh_testvector_20_public_y,
6688 .private = nist_kas_ecc_cdh_testvector_20_private,
6689 .out = nist_kas_ecc_cdh_testvector_20_out,
6690 },
6691 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006692 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006693 .algo = TEE_ALG_ECDH_P192,
6694 .curve = TEE_ECC_CURVE_NIST_P192,
6695 .keysize = 192,
6696 .public_x = nist_kas_ecc_cdh_testvector_21_public_x,
6697 .public_y = nist_kas_ecc_cdh_testvector_21_public_y,
6698 .private = nist_kas_ecc_cdh_testvector_21_private,
6699 .out = nist_kas_ecc_cdh_testvector_21_out,
6700 },
6701 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006702 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006703 .algo = TEE_ALG_ECDH_P192,
6704 .curve = TEE_ECC_CURVE_NIST_P192,
6705 .keysize = 192,
6706 .public_x = nist_kas_ecc_cdh_testvector_22_public_x,
6707 .public_y = nist_kas_ecc_cdh_testvector_22_public_y,
6708 .private = nist_kas_ecc_cdh_testvector_22_private,
6709 .out = nist_kas_ecc_cdh_testvector_22_out,
6710 },
6711 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006712 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006713 .algo = TEE_ALG_ECDH_P192,
6714 .curve = TEE_ECC_CURVE_NIST_P192,
6715 .keysize = 192,
6716 .public_x = nist_kas_ecc_cdh_testvector_23_public_x,
6717 .public_y = nist_kas_ecc_cdh_testvector_23_public_y,
6718 .private = nist_kas_ecc_cdh_testvector_23_private,
6719 .out = nist_kas_ecc_cdh_testvector_23_out,
6720 },
6721 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006722 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006723 .algo = TEE_ALG_ECDH_P192,
6724 .curve = TEE_ECC_CURVE_NIST_P192,
6725 .keysize = 192,
6726 .public_x = nist_kas_ecc_cdh_testvector_24_public_x,
6727 .public_y = nist_kas_ecc_cdh_testvector_24_public_y,
6728 .private = nist_kas_ecc_cdh_testvector_24_private,
6729 .out = nist_kas_ecc_cdh_testvector_24_out,
6730 },
6731 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006732 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006733 .algo = TEE_ALG_ECDH_P192,
6734 .curve = TEE_ECC_CURVE_NIST_P192,
6735 .keysize = 192,
6736 .public_x = nist_kas_ecc_cdh_testvector_25_public_x,
6737 .public_y = nist_kas_ecc_cdh_testvector_25_public_y,
6738 .private = nist_kas_ecc_cdh_testvector_25_private,
6739 .out = nist_kas_ecc_cdh_testvector_25_out,
6740 },
6741 /* [P-224] */
6742 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006743 .level = 0,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006744 .algo = TEE_ALG_ECDH_P224,
6745 .curve = TEE_ECC_CURVE_NIST_P224,
6746 .keysize = 224,
6747 .public_x = nist_kas_ecc_cdh_testvector_26_public_x,
6748 .public_y = nist_kas_ecc_cdh_testvector_26_public_y,
6749 .private = nist_kas_ecc_cdh_testvector_26_private,
6750 .out = nist_kas_ecc_cdh_testvector_26_out,
Pascal Brand2b92b642015-07-16 13:29:42 +02006751 },
6752 {
Jens Wiklander6a9d15a2016-02-01 10:29:42 +01006753 .level = 1,
Pascal Brand2b92b642015-07-16 13:29:42 +02006754 .algo = TEE_ALG_ECDH_P224,
6755 .curve = TEE_ECC_CURVE_NIST_P224,
6756 .keysize = 224,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006757 .public_x = nist_kas_ecc_cdh_testvector_27_public_x,
6758 .public_y = nist_kas_ecc_cdh_testvector_27_public_y,
6759 .private = nist_kas_ecc_cdh_testvector_27_private,
6760 .out = nist_kas_ecc_cdh_testvector_27_out,
6761 },
6762 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006763 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006764 .algo = TEE_ALG_ECDH_P224,
6765 .curve = TEE_ECC_CURVE_NIST_P224,
6766 .keysize = 224,
6767 .public_x = nist_kas_ecc_cdh_testvector_28_public_x,
6768 .public_y = nist_kas_ecc_cdh_testvector_28_public_y,
6769 .private = nist_kas_ecc_cdh_testvector_28_private,
6770 .out = nist_kas_ecc_cdh_testvector_28_out,
6771 },
6772 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006773 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006774 .algo = TEE_ALG_ECDH_P224,
6775 .curve = TEE_ECC_CURVE_NIST_P224,
6776 .keysize = 224,
6777 .public_x = nist_kas_ecc_cdh_testvector_29_public_x,
6778 .public_y = nist_kas_ecc_cdh_testvector_29_public_y,
6779 .private = nist_kas_ecc_cdh_testvector_29_private,
6780 .out = nist_kas_ecc_cdh_testvector_29_out,
6781 },
6782 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006783 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006784 .algo = TEE_ALG_ECDH_P224,
6785 .curve = TEE_ECC_CURVE_NIST_P224,
6786 .keysize = 224,
6787 .public_x = nist_kas_ecc_cdh_testvector_30_public_x,
6788 .public_y = nist_kas_ecc_cdh_testvector_30_public_y,
6789 .private = nist_kas_ecc_cdh_testvector_30_private,
6790 .out = nist_kas_ecc_cdh_testvector_30_out,
6791 },
6792 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006793 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006794 .algo = TEE_ALG_ECDH_P224,
6795 .curve = TEE_ECC_CURVE_NIST_P224,
6796 .keysize = 224,
6797 .public_x = nist_kas_ecc_cdh_testvector_31_public_x,
6798 .public_y = nist_kas_ecc_cdh_testvector_31_public_y,
6799 .private = nist_kas_ecc_cdh_testvector_31_private,
6800 .out = nist_kas_ecc_cdh_testvector_31_out,
6801 },
6802 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006803 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006804 .algo = TEE_ALG_ECDH_P224,
6805 .curve = TEE_ECC_CURVE_NIST_P224,
6806 .keysize = 224,
6807 .public_x = nist_kas_ecc_cdh_testvector_32_public_x,
6808 .public_y = nist_kas_ecc_cdh_testvector_32_public_y,
6809 .private = nist_kas_ecc_cdh_testvector_32_private,
6810 .out = nist_kas_ecc_cdh_testvector_32_out,
6811 },
6812 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006813 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006814 .algo = TEE_ALG_ECDH_P224,
6815 .curve = TEE_ECC_CURVE_NIST_P224,
6816 .keysize = 224,
6817 .public_x = nist_kas_ecc_cdh_testvector_33_public_x,
6818 .public_y = nist_kas_ecc_cdh_testvector_33_public_y,
6819 .private = nist_kas_ecc_cdh_testvector_33_private,
6820 .out = nist_kas_ecc_cdh_testvector_33_out,
6821 },
6822 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006823 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006824 .algo = TEE_ALG_ECDH_P224,
6825 .curve = TEE_ECC_CURVE_NIST_P224,
6826 .keysize = 224,
6827 .public_x = nist_kas_ecc_cdh_testvector_34_public_x,
6828 .public_y = nist_kas_ecc_cdh_testvector_34_public_y,
6829 .private = nist_kas_ecc_cdh_testvector_34_private,
6830 .out = nist_kas_ecc_cdh_testvector_34_out,
6831 },
6832 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006833 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006834 .algo = TEE_ALG_ECDH_P224,
6835 .curve = TEE_ECC_CURVE_NIST_P224,
6836 .keysize = 224,
6837 .public_x = nist_kas_ecc_cdh_testvector_35_public_x,
6838 .public_y = nist_kas_ecc_cdh_testvector_35_public_y,
6839 .private = nist_kas_ecc_cdh_testvector_35_private,
6840 .out = nist_kas_ecc_cdh_testvector_35_out,
6841 },
6842 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006843 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006844 .algo = TEE_ALG_ECDH_P224,
6845 .curve = TEE_ECC_CURVE_NIST_P224,
6846 .keysize = 224,
6847 .public_x = nist_kas_ecc_cdh_testvector_36_public_x,
6848 .public_y = nist_kas_ecc_cdh_testvector_36_public_y,
6849 .private = nist_kas_ecc_cdh_testvector_36_private,
6850 .out = nist_kas_ecc_cdh_testvector_36_out,
6851 },
6852 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006853 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006854 .algo = TEE_ALG_ECDH_P224,
6855 .curve = TEE_ECC_CURVE_NIST_P224,
6856 .keysize = 224,
6857 .public_x = nist_kas_ecc_cdh_testvector_37_public_x,
6858 .public_y = nist_kas_ecc_cdh_testvector_37_public_y,
6859 .private = nist_kas_ecc_cdh_testvector_37_private,
6860 .out = nist_kas_ecc_cdh_testvector_37_out,
6861 },
6862 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006863 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006864 .algo = TEE_ALG_ECDH_P224,
6865 .curve = TEE_ECC_CURVE_NIST_P224,
6866 .keysize = 224,
6867 .public_x = nist_kas_ecc_cdh_testvector_38_public_x,
6868 .public_y = nist_kas_ecc_cdh_testvector_38_public_y,
6869 .private = nist_kas_ecc_cdh_testvector_38_private,
6870 .out = nist_kas_ecc_cdh_testvector_38_out,
6871 },
6872 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006873 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006874 .algo = TEE_ALG_ECDH_P224,
6875 .curve = TEE_ECC_CURVE_NIST_P224,
6876 .keysize = 224,
6877 .public_x = nist_kas_ecc_cdh_testvector_39_public_x,
6878 .public_y = nist_kas_ecc_cdh_testvector_39_public_y,
6879 .private = nist_kas_ecc_cdh_testvector_39_private,
6880 .out = nist_kas_ecc_cdh_testvector_39_out,
6881 },
6882 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006883 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006884 .algo = TEE_ALG_ECDH_P224,
6885 .curve = TEE_ECC_CURVE_NIST_P224,
6886 .keysize = 224,
6887 .public_x = nist_kas_ecc_cdh_testvector_40_public_x,
6888 .public_y = nist_kas_ecc_cdh_testvector_40_public_y,
6889 .private = nist_kas_ecc_cdh_testvector_40_private,
6890 .out = nist_kas_ecc_cdh_testvector_40_out,
6891 },
6892 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006893 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006894 .algo = TEE_ALG_ECDH_P224,
6895 .curve = TEE_ECC_CURVE_NIST_P224,
6896 .keysize = 224,
6897 .public_x = nist_kas_ecc_cdh_testvector_41_public_x,
6898 .public_y = nist_kas_ecc_cdh_testvector_41_public_y,
6899 .private = nist_kas_ecc_cdh_testvector_41_private,
6900 .out = nist_kas_ecc_cdh_testvector_41_out,
6901 },
6902 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006903 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006904 .algo = TEE_ALG_ECDH_P224,
6905 .curve = TEE_ECC_CURVE_NIST_P224,
6906 .keysize = 224,
6907 .public_x = nist_kas_ecc_cdh_testvector_42_public_x,
6908 .public_y = nist_kas_ecc_cdh_testvector_42_public_y,
6909 .private = nist_kas_ecc_cdh_testvector_42_private,
6910 .out = nist_kas_ecc_cdh_testvector_42_out,
6911 },
6912 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006913 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006914 .algo = TEE_ALG_ECDH_P224,
6915 .curve = TEE_ECC_CURVE_NIST_P224,
6916 .keysize = 224,
6917 .public_x = nist_kas_ecc_cdh_testvector_43_public_x,
6918 .public_y = nist_kas_ecc_cdh_testvector_43_public_y,
6919 .private = nist_kas_ecc_cdh_testvector_43_private,
6920 .out = nist_kas_ecc_cdh_testvector_43_out,
6921 },
6922 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006923 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006924 .algo = TEE_ALG_ECDH_P224,
6925 .curve = TEE_ECC_CURVE_NIST_P224,
6926 .keysize = 224,
6927 .public_x = nist_kas_ecc_cdh_testvector_44_public_x,
6928 .public_y = nist_kas_ecc_cdh_testvector_44_public_y,
6929 .private = nist_kas_ecc_cdh_testvector_44_private,
6930 .out = nist_kas_ecc_cdh_testvector_44_out,
6931 },
6932 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006933 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006934 .algo = TEE_ALG_ECDH_P224,
6935 .curve = TEE_ECC_CURVE_NIST_P224,
6936 .keysize = 224,
6937 .public_x = nist_kas_ecc_cdh_testvector_45_public_x,
6938 .public_y = nist_kas_ecc_cdh_testvector_45_public_y,
6939 .private = nist_kas_ecc_cdh_testvector_45_private,
6940 .out = nist_kas_ecc_cdh_testvector_45_out,
6941 },
6942 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006943 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006944 .algo = TEE_ALG_ECDH_P224,
6945 .curve = TEE_ECC_CURVE_NIST_P224,
6946 .keysize = 224,
6947 .public_x = nist_kas_ecc_cdh_testvector_46_public_x,
6948 .public_y = nist_kas_ecc_cdh_testvector_46_public_y,
6949 .private = nist_kas_ecc_cdh_testvector_46_private,
6950 .out = nist_kas_ecc_cdh_testvector_46_out,
6951 },
6952 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006953 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006954 .algo = TEE_ALG_ECDH_P224,
6955 .curve = TEE_ECC_CURVE_NIST_P224,
6956 .keysize = 224,
6957 .public_x = nist_kas_ecc_cdh_testvector_47_public_x,
6958 .public_y = nist_kas_ecc_cdh_testvector_47_public_y,
6959 .private = nist_kas_ecc_cdh_testvector_47_private,
6960 .out = nist_kas_ecc_cdh_testvector_47_out,
6961 },
6962 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006963 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006964 .algo = TEE_ALG_ECDH_P224,
6965 .curve = TEE_ECC_CURVE_NIST_P224,
6966 .keysize = 224,
6967 .public_x = nist_kas_ecc_cdh_testvector_48_public_x,
6968 .public_y = nist_kas_ecc_cdh_testvector_48_public_y,
6969 .private = nist_kas_ecc_cdh_testvector_48_private,
6970 .out = nist_kas_ecc_cdh_testvector_48_out,
6971 },
6972 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006973 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006974 .algo = TEE_ALG_ECDH_P224,
6975 .curve = TEE_ECC_CURVE_NIST_P224,
6976 .keysize = 224,
6977 .public_x = nist_kas_ecc_cdh_testvector_49_public_x,
6978 .public_y = nist_kas_ecc_cdh_testvector_49_public_y,
6979 .private = nist_kas_ecc_cdh_testvector_49_private,
6980 .out = nist_kas_ecc_cdh_testvector_49_out,
6981 },
6982 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006983 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006984 .algo = TEE_ALG_ECDH_P224,
6985 .curve = TEE_ECC_CURVE_NIST_P224,
6986 .keysize = 224,
6987 .public_x = nist_kas_ecc_cdh_testvector_50_public_x,
6988 .public_y = nist_kas_ecc_cdh_testvector_50_public_y,
6989 .private = nist_kas_ecc_cdh_testvector_50_private,
6990 .out = nist_kas_ecc_cdh_testvector_50_out,
6991 },
6992 /* [P-256] */
6993 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02006994 .level = 0,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02006995 .algo = TEE_ALG_ECDH_P256,
6996 .curve = TEE_ECC_CURVE_NIST_P256,
6997 .keysize = 256,
6998 .public_x = nist_kas_ecc_cdh_testvector_51_public_x,
6999 .public_y = nist_kas_ecc_cdh_testvector_51_public_y,
7000 .private = nist_kas_ecc_cdh_testvector_51_private,
7001 .out = nist_kas_ecc_cdh_testvector_51_out,
Pascal Brand2b92b642015-07-16 13:29:42 +02007002 },
7003 {
Jens Wiklander6a9d15a2016-02-01 10:29:42 +01007004 .level = 1,
Pascal Brand2b92b642015-07-16 13:29:42 +02007005 .algo = TEE_ALG_ECDH_P256,
7006 .curve = TEE_ECC_CURVE_NIST_P256,
7007 .keysize = 256,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007008 .public_x = nist_kas_ecc_cdh_testvector_52_public_x,
7009 .public_y = nist_kas_ecc_cdh_testvector_52_public_y,
7010 .private = nist_kas_ecc_cdh_testvector_52_private,
7011 .out = nist_kas_ecc_cdh_testvector_52_out,
7012 },
7013 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007014 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007015 .algo = TEE_ALG_ECDH_P256,
7016 .curve = TEE_ECC_CURVE_NIST_P256,
7017 .keysize = 256,
7018 .public_x = nist_kas_ecc_cdh_testvector_53_public_x,
7019 .public_y = nist_kas_ecc_cdh_testvector_53_public_y,
7020 .private = nist_kas_ecc_cdh_testvector_53_private,
7021 .out = nist_kas_ecc_cdh_testvector_53_out,
7022 },
7023 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007024 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007025 .algo = TEE_ALG_ECDH_P256,
7026 .curve = TEE_ECC_CURVE_NIST_P256,
7027 .keysize = 256,
7028 .public_x = nist_kas_ecc_cdh_testvector_54_public_x,
7029 .public_y = nist_kas_ecc_cdh_testvector_54_public_y,
7030 .private = nist_kas_ecc_cdh_testvector_54_private,
7031 .out = nist_kas_ecc_cdh_testvector_54_out,
7032 },
7033 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007034 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007035 .algo = TEE_ALG_ECDH_P256,
7036 .curve = TEE_ECC_CURVE_NIST_P256,
7037 .keysize = 256,
7038 .public_x = nist_kas_ecc_cdh_testvector_55_public_x,
7039 .public_y = nist_kas_ecc_cdh_testvector_55_public_y,
7040 .private = nist_kas_ecc_cdh_testvector_55_private,
7041 .out = nist_kas_ecc_cdh_testvector_55_out,
7042 },
7043 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007044 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007045 .algo = TEE_ALG_ECDH_P256,
7046 .curve = TEE_ECC_CURVE_NIST_P256,
7047 .keysize = 256,
7048 .public_x = nist_kas_ecc_cdh_testvector_56_public_x,
7049 .public_y = nist_kas_ecc_cdh_testvector_56_public_y,
7050 .private = nist_kas_ecc_cdh_testvector_56_private,
7051 .out = nist_kas_ecc_cdh_testvector_56_out,
7052 },
7053 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007054 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007055 .algo = TEE_ALG_ECDH_P256,
7056 .curve = TEE_ECC_CURVE_NIST_P256,
7057 .keysize = 256,
7058 .public_x = nist_kas_ecc_cdh_testvector_57_public_x,
7059 .public_y = nist_kas_ecc_cdh_testvector_57_public_y,
7060 .private = nist_kas_ecc_cdh_testvector_57_private,
7061 .out = nist_kas_ecc_cdh_testvector_57_out,
7062 },
7063 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007064 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007065 .algo = TEE_ALG_ECDH_P256,
7066 .curve = TEE_ECC_CURVE_NIST_P256,
7067 .keysize = 256,
7068 .public_x = nist_kas_ecc_cdh_testvector_58_public_x,
7069 .public_y = nist_kas_ecc_cdh_testvector_58_public_y,
7070 .private = nist_kas_ecc_cdh_testvector_58_private,
7071 .out = nist_kas_ecc_cdh_testvector_58_out,
7072 },
7073 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007074 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007075 .algo = TEE_ALG_ECDH_P256,
7076 .curve = TEE_ECC_CURVE_NIST_P256,
7077 .keysize = 256,
7078 .public_x = nist_kas_ecc_cdh_testvector_59_public_x,
7079 .public_y = nist_kas_ecc_cdh_testvector_59_public_y,
7080 .private = nist_kas_ecc_cdh_testvector_59_private,
7081 .out = nist_kas_ecc_cdh_testvector_59_out,
7082 },
7083 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007084 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007085 .algo = TEE_ALG_ECDH_P256,
7086 .curve = TEE_ECC_CURVE_NIST_P256,
7087 .keysize = 256,
7088 .public_x = nist_kas_ecc_cdh_testvector_60_public_x,
7089 .public_y = nist_kas_ecc_cdh_testvector_60_public_y,
7090 .private = nist_kas_ecc_cdh_testvector_60_private,
7091 .out = nist_kas_ecc_cdh_testvector_60_out,
7092 },
7093 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007094 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007095 .algo = TEE_ALG_ECDH_P256,
7096 .curve = TEE_ECC_CURVE_NIST_P256,
7097 .keysize = 256,
7098 .public_x = nist_kas_ecc_cdh_testvector_61_public_x,
7099 .public_y = nist_kas_ecc_cdh_testvector_61_public_y,
7100 .private = nist_kas_ecc_cdh_testvector_61_private,
7101 .out = nist_kas_ecc_cdh_testvector_61_out,
7102 },
7103 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007104 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007105 .algo = TEE_ALG_ECDH_P256,
7106 .curve = TEE_ECC_CURVE_NIST_P256,
7107 .keysize = 256,
7108 .public_x = nist_kas_ecc_cdh_testvector_62_public_x,
7109 .public_y = nist_kas_ecc_cdh_testvector_62_public_y,
7110 .private = nist_kas_ecc_cdh_testvector_62_private,
7111 .out = nist_kas_ecc_cdh_testvector_62_out,
7112 },
7113 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007114 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007115 .algo = TEE_ALG_ECDH_P256,
7116 .curve = TEE_ECC_CURVE_NIST_P256,
7117 .keysize = 256,
7118 .public_x = nist_kas_ecc_cdh_testvector_63_public_x,
7119 .public_y = nist_kas_ecc_cdh_testvector_63_public_y,
7120 .private = nist_kas_ecc_cdh_testvector_63_private,
7121 .out = nist_kas_ecc_cdh_testvector_63_out,
7122 },
7123 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007124 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007125 .algo = TEE_ALG_ECDH_P256,
7126 .curve = TEE_ECC_CURVE_NIST_P256,
7127 .keysize = 256,
7128 .public_x = nist_kas_ecc_cdh_testvector_64_public_x,
7129 .public_y = nist_kas_ecc_cdh_testvector_64_public_y,
7130 .private = nist_kas_ecc_cdh_testvector_64_private,
7131 .out = nist_kas_ecc_cdh_testvector_64_out,
7132 },
7133 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007134 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007135 .algo = TEE_ALG_ECDH_P256,
7136 .curve = TEE_ECC_CURVE_NIST_P256,
7137 .keysize = 256,
7138 .public_x = nist_kas_ecc_cdh_testvector_65_public_x,
7139 .public_y = nist_kas_ecc_cdh_testvector_65_public_y,
7140 .private = nist_kas_ecc_cdh_testvector_65_private,
7141 .out = nist_kas_ecc_cdh_testvector_65_out,
7142 },
7143 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007144 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007145 .algo = TEE_ALG_ECDH_P256,
7146 .curve = TEE_ECC_CURVE_NIST_P256,
7147 .keysize = 256,
7148 .public_x = nist_kas_ecc_cdh_testvector_66_public_x,
7149 .public_y = nist_kas_ecc_cdh_testvector_66_public_y,
7150 .private = nist_kas_ecc_cdh_testvector_66_private,
7151 .out = nist_kas_ecc_cdh_testvector_66_out,
7152 },
7153 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007154 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007155 .algo = TEE_ALG_ECDH_P256,
7156 .curve = TEE_ECC_CURVE_NIST_P256,
7157 .keysize = 256,
7158 .public_x = nist_kas_ecc_cdh_testvector_67_public_x,
7159 .public_y = nist_kas_ecc_cdh_testvector_67_public_y,
7160 .private = nist_kas_ecc_cdh_testvector_67_private,
7161 .out = nist_kas_ecc_cdh_testvector_67_out,
7162 },
7163 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007164 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007165 .algo = TEE_ALG_ECDH_P256,
7166 .curve = TEE_ECC_CURVE_NIST_P256,
7167 .keysize = 256,
7168 .public_x = nist_kas_ecc_cdh_testvector_68_public_x,
7169 .public_y = nist_kas_ecc_cdh_testvector_68_public_y,
7170 .private = nist_kas_ecc_cdh_testvector_68_private,
7171 .out = nist_kas_ecc_cdh_testvector_68_out,
7172 },
7173 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007174 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007175 .algo = TEE_ALG_ECDH_P256,
7176 .curve = TEE_ECC_CURVE_NIST_P256,
7177 .keysize = 256,
7178 .public_x = nist_kas_ecc_cdh_testvector_69_public_x,
7179 .public_y = nist_kas_ecc_cdh_testvector_69_public_y,
7180 .private = nist_kas_ecc_cdh_testvector_69_private,
7181 .out = nist_kas_ecc_cdh_testvector_69_out,
7182 },
7183 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007184 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007185 .algo = TEE_ALG_ECDH_P256,
7186 .curve = TEE_ECC_CURVE_NIST_P256,
7187 .keysize = 256,
7188 .public_x = nist_kas_ecc_cdh_testvector_70_public_x,
7189 .public_y = nist_kas_ecc_cdh_testvector_70_public_y,
7190 .private = nist_kas_ecc_cdh_testvector_70_private,
7191 .out = nist_kas_ecc_cdh_testvector_70_out,
7192 },
7193 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007194 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007195 .algo = TEE_ALG_ECDH_P256,
7196 .curve = TEE_ECC_CURVE_NIST_P256,
7197 .keysize = 256,
7198 .public_x = nist_kas_ecc_cdh_testvector_71_public_x,
7199 .public_y = nist_kas_ecc_cdh_testvector_71_public_y,
7200 .private = nist_kas_ecc_cdh_testvector_71_private,
7201 .out = nist_kas_ecc_cdh_testvector_71_out,
7202 },
7203 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007204 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007205 .algo = TEE_ALG_ECDH_P256,
7206 .curve = TEE_ECC_CURVE_NIST_P256,
7207 .keysize = 256,
7208 .public_x = nist_kas_ecc_cdh_testvector_72_public_x,
7209 .public_y = nist_kas_ecc_cdh_testvector_72_public_y,
7210 .private = nist_kas_ecc_cdh_testvector_72_private,
7211 .out = nist_kas_ecc_cdh_testvector_72_out,
7212 },
7213 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007214 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007215 .algo = TEE_ALG_ECDH_P256,
7216 .curve = TEE_ECC_CURVE_NIST_P256,
7217 .keysize = 256,
7218 .public_x = nist_kas_ecc_cdh_testvector_73_public_x,
7219 .public_y = nist_kas_ecc_cdh_testvector_73_public_y,
7220 .private = nist_kas_ecc_cdh_testvector_73_private,
7221 .out = nist_kas_ecc_cdh_testvector_73_out,
7222 },
7223 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007224 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007225 .algo = TEE_ALG_ECDH_P256,
7226 .curve = TEE_ECC_CURVE_NIST_P256,
7227 .keysize = 256,
7228 .public_x = nist_kas_ecc_cdh_testvector_74_public_x,
7229 .public_y = nist_kas_ecc_cdh_testvector_74_public_y,
7230 .private = nist_kas_ecc_cdh_testvector_74_private,
7231 .out = nist_kas_ecc_cdh_testvector_74_out,
7232 },
7233 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007234 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007235 .algo = TEE_ALG_ECDH_P256,
7236 .curve = TEE_ECC_CURVE_NIST_P256,
7237 .keysize = 256,
7238 .public_x = nist_kas_ecc_cdh_testvector_75_public_x,
7239 .public_y = nist_kas_ecc_cdh_testvector_75_public_y,
7240 .private = nist_kas_ecc_cdh_testvector_75_private,
7241 .out = nist_kas_ecc_cdh_testvector_75_out,
7242 },
7243 /* [P-384] */
7244 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007245 .level = 0,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007246 .algo = TEE_ALG_ECDH_P384,
7247 .curve = TEE_ECC_CURVE_NIST_P384,
7248 .keysize = 384,
7249 .public_x = nist_kas_ecc_cdh_testvector_76_public_x,
7250 .public_y = nist_kas_ecc_cdh_testvector_76_public_y,
7251 .private = nist_kas_ecc_cdh_testvector_76_private,
7252 .out = nist_kas_ecc_cdh_testvector_76_out,
Pascal Brand2b92b642015-07-16 13:29:42 +02007253 },
7254 {
Jens Wiklander6a9d15a2016-02-01 10:29:42 +01007255 .level = 1,
Pascal Brand2b92b642015-07-16 13:29:42 +02007256 .algo = TEE_ALG_ECDH_P384,
7257 .curve = TEE_ECC_CURVE_NIST_P384,
7258 .keysize = 384,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007259 .public_x = nist_kas_ecc_cdh_testvector_77_public_x,
7260 .public_y = nist_kas_ecc_cdh_testvector_77_public_y,
7261 .private = nist_kas_ecc_cdh_testvector_77_private,
7262 .out = nist_kas_ecc_cdh_testvector_77_out,
7263 },
7264 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007265 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007266 .algo = TEE_ALG_ECDH_P384,
7267 .curve = TEE_ECC_CURVE_NIST_P384,
7268 .keysize = 384,
7269 .public_x = nist_kas_ecc_cdh_testvector_78_public_x,
7270 .public_y = nist_kas_ecc_cdh_testvector_78_public_y,
7271 .private = nist_kas_ecc_cdh_testvector_78_private,
7272 .out = nist_kas_ecc_cdh_testvector_78_out,
7273 },
7274 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007275 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007276 .algo = TEE_ALG_ECDH_P384,
7277 .curve = TEE_ECC_CURVE_NIST_P384,
7278 .keysize = 384,
7279 .public_x = nist_kas_ecc_cdh_testvector_79_public_x,
7280 .public_y = nist_kas_ecc_cdh_testvector_79_public_y,
7281 .private = nist_kas_ecc_cdh_testvector_79_private,
7282 .out = nist_kas_ecc_cdh_testvector_79_out,
7283 },
7284 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007285 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007286 .algo = TEE_ALG_ECDH_P384,
7287 .curve = TEE_ECC_CURVE_NIST_P384,
7288 .keysize = 384,
7289 .public_x = nist_kas_ecc_cdh_testvector_80_public_x,
7290 .public_y = nist_kas_ecc_cdh_testvector_80_public_y,
7291 .private = nist_kas_ecc_cdh_testvector_80_private,
7292 .out = nist_kas_ecc_cdh_testvector_80_out,
7293 },
7294 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007295 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007296 .algo = TEE_ALG_ECDH_P384,
7297 .curve = TEE_ECC_CURVE_NIST_P384,
7298 .keysize = 384,
7299 .public_x = nist_kas_ecc_cdh_testvector_81_public_x,
7300 .public_y = nist_kas_ecc_cdh_testvector_81_public_y,
7301 .private = nist_kas_ecc_cdh_testvector_81_private,
7302 .out = nist_kas_ecc_cdh_testvector_81_out,
7303 },
7304 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007305 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007306 .algo = TEE_ALG_ECDH_P384,
7307 .curve = TEE_ECC_CURVE_NIST_P384,
7308 .keysize = 384,
7309 .public_x = nist_kas_ecc_cdh_testvector_82_public_x,
7310 .public_y = nist_kas_ecc_cdh_testvector_82_public_y,
7311 .private = nist_kas_ecc_cdh_testvector_82_private,
7312 .out = nist_kas_ecc_cdh_testvector_82_out,
7313 },
7314 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007315 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007316 .algo = TEE_ALG_ECDH_P384,
7317 .curve = TEE_ECC_CURVE_NIST_P384,
7318 .keysize = 384,
7319 .public_x = nist_kas_ecc_cdh_testvector_83_public_x,
7320 .public_y = nist_kas_ecc_cdh_testvector_83_public_y,
7321 .private = nist_kas_ecc_cdh_testvector_83_private,
7322 .out = nist_kas_ecc_cdh_testvector_83_out,
7323 },
7324 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007325 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007326 .algo = TEE_ALG_ECDH_P384,
7327 .curve = TEE_ECC_CURVE_NIST_P384,
7328 .keysize = 384,
7329 .public_x = nist_kas_ecc_cdh_testvector_84_public_x,
7330 .public_y = nist_kas_ecc_cdh_testvector_84_public_y,
7331 .private = nist_kas_ecc_cdh_testvector_84_private,
7332 .out = nist_kas_ecc_cdh_testvector_84_out,
7333 },
7334 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007335 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007336 .algo = TEE_ALG_ECDH_P384,
7337 .curve = TEE_ECC_CURVE_NIST_P384,
7338 .keysize = 384,
7339 .public_x = nist_kas_ecc_cdh_testvector_85_public_x,
7340 .public_y = nist_kas_ecc_cdh_testvector_85_public_y,
7341 .private = nist_kas_ecc_cdh_testvector_85_private,
7342 .out = nist_kas_ecc_cdh_testvector_85_out,
7343 },
7344 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007345 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007346 .algo = TEE_ALG_ECDH_P384,
7347 .curve = TEE_ECC_CURVE_NIST_P384,
7348 .keysize = 384,
7349 .public_x = nist_kas_ecc_cdh_testvector_86_public_x,
7350 .public_y = nist_kas_ecc_cdh_testvector_86_public_y,
7351 .private = nist_kas_ecc_cdh_testvector_86_private,
7352 .out = nist_kas_ecc_cdh_testvector_86_out,
7353 },
7354 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007355 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007356 .algo = TEE_ALG_ECDH_P384,
7357 .curve = TEE_ECC_CURVE_NIST_P384,
7358 .keysize = 384,
7359 .public_x = nist_kas_ecc_cdh_testvector_87_public_x,
7360 .public_y = nist_kas_ecc_cdh_testvector_87_public_y,
7361 .private = nist_kas_ecc_cdh_testvector_87_private,
7362 .out = nist_kas_ecc_cdh_testvector_87_out,
7363 },
7364 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007365 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007366 .algo = TEE_ALG_ECDH_P384,
7367 .curve = TEE_ECC_CURVE_NIST_P384,
7368 .keysize = 384,
7369 .public_x = nist_kas_ecc_cdh_testvector_88_public_x,
7370 .public_y = nist_kas_ecc_cdh_testvector_88_public_y,
7371 .private = nist_kas_ecc_cdh_testvector_88_private,
7372 .out = nist_kas_ecc_cdh_testvector_88_out,
7373 },
7374 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007375 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007376 .algo = TEE_ALG_ECDH_P384,
7377 .curve = TEE_ECC_CURVE_NIST_P384,
7378 .keysize = 384,
7379 .public_x = nist_kas_ecc_cdh_testvector_89_public_x,
7380 .public_y = nist_kas_ecc_cdh_testvector_89_public_y,
7381 .private = nist_kas_ecc_cdh_testvector_89_private,
7382 .out = nist_kas_ecc_cdh_testvector_89_out,
7383 },
7384 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007385 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007386 .algo = TEE_ALG_ECDH_P384,
7387 .curve = TEE_ECC_CURVE_NIST_P384,
7388 .keysize = 384,
7389 .public_x = nist_kas_ecc_cdh_testvector_90_public_x,
7390 .public_y = nist_kas_ecc_cdh_testvector_90_public_y,
7391 .private = nist_kas_ecc_cdh_testvector_90_private,
7392 .out = nist_kas_ecc_cdh_testvector_90_out,
7393 },
7394 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007395 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007396 .algo = TEE_ALG_ECDH_P384,
7397 .curve = TEE_ECC_CURVE_NIST_P384,
7398 .keysize = 384,
7399 .public_x = nist_kas_ecc_cdh_testvector_91_public_x,
7400 .public_y = nist_kas_ecc_cdh_testvector_91_public_y,
7401 .private = nist_kas_ecc_cdh_testvector_91_private,
7402 .out = nist_kas_ecc_cdh_testvector_91_out,
7403 },
7404 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007405 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007406 .algo = TEE_ALG_ECDH_P384,
7407 .curve = TEE_ECC_CURVE_NIST_P384,
7408 .keysize = 384,
7409 .public_x = nist_kas_ecc_cdh_testvector_92_public_x,
7410 .public_y = nist_kas_ecc_cdh_testvector_92_public_y,
7411 .private = nist_kas_ecc_cdh_testvector_92_private,
7412 .out = nist_kas_ecc_cdh_testvector_92_out,
7413 },
7414 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007415 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007416 .algo = TEE_ALG_ECDH_P384,
7417 .curve = TEE_ECC_CURVE_NIST_P384,
7418 .keysize = 384,
7419 .public_x = nist_kas_ecc_cdh_testvector_93_public_x,
7420 .public_y = nist_kas_ecc_cdh_testvector_93_public_y,
7421 .private = nist_kas_ecc_cdh_testvector_93_private,
7422 .out = nist_kas_ecc_cdh_testvector_93_out,
7423 },
7424 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007425 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007426 .algo = TEE_ALG_ECDH_P384,
7427 .curve = TEE_ECC_CURVE_NIST_P384,
7428 .keysize = 384,
7429 .public_x = nist_kas_ecc_cdh_testvector_94_public_x,
7430 .public_y = nist_kas_ecc_cdh_testvector_94_public_y,
7431 .private = nist_kas_ecc_cdh_testvector_94_private,
7432 .out = nist_kas_ecc_cdh_testvector_94_out,
7433 },
7434 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007435 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007436 .algo = TEE_ALG_ECDH_P384,
7437 .curve = TEE_ECC_CURVE_NIST_P384,
7438 .keysize = 384,
7439 .public_x = nist_kas_ecc_cdh_testvector_95_public_x,
7440 .public_y = nist_kas_ecc_cdh_testvector_95_public_y,
7441 .private = nist_kas_ecc_cdh_testvector_95_private,
7442 .out = nist_kas_ecc_cdh_testvector_95_out,
7443 },
7444 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007445 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007446 .algo = TEE_ALG_ECDH_P384,
7447 .curve = TEE_ECC_CURVE_NIST_P384,
7448 .keysize = 384,
7449 .public_x = nist_kas_ecc_cdh_testvector_96_public_x,
7450 .public_y = nist_kas_ecc_cdh_testvector_96_public_y,
7451 .private = nist_kas_ecc_cdh_testvector_96_private,
7452 .out = nist_kas_ecc_cdh_testvector_96_out,
7453 },
7454 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007455 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007456 .algo = TEE_ALG_ECDH_P384,
7457 .curve = TEE_ECC_CURVE_NIST_P384,
7458 .keysize = 384,
7459 .public_x = nist_kas_ecc_cdh_testvector_97_public_x,
7460 .public_y = nist_kas_ecc_cdh_testvector_97_public_y,
7461 .private = nist_kas_ecc_cdh_testvector_97_private,
7462 .out = nist_kas_ecc_cdh_testvector_97_out,
7463 },
7464 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007465 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007466 .algo = TEE_ALG_ECDH_P384,
7467 .curve = TEE_ECC_CURVE_NIST_P384,
7468 .keysize = 384,
7469 .public_x = nist_kas_ecc_cdh_testvector_98_public_x,
7470 .public_y = nist_kas_ecc_cdh_testvector_98_public_y,
7471 .private = nist_kas_ecc_cdh_testvector_98_private,
7472 .out = nist_kas_ecc_cdh_testvector_98_out,
7473 },
7474 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007475 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007476 .algo = TEE_ALG_ECDH_P384,
7477 .curve = TEE_ECC_CURVE_NIST_P384,
7478 .keysize = 384,
7479 .public_x = nist_kas_ecc_cdh_testvector_99_public_x,
7480 .public_y = nist_kas_ecc_cdh_testvector_99_public_y,
7481 .private = nist_kas_ecc_cdh_testvector_99_private,
7482 .out = nist_kas_ecc_cdh_testvector_99_out,
7483 },
7484 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007485 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007486 .algo = TEE_ALG_ECDH_P384,
7487 .curve = TEE_ECC_CURVE_NIST_P384,
7488 .keysize = 384,
7489 .public_x = nist_kas_ecc_cdh_testvector_100_public_x,
7490 .public_y = nist_kas_ecc_cdh_testvector_100_public_y,
7491 .private = nist_kas_ecc_cdh_testvector_100_private,
7492 .out = nist_kas_ecc_cdh_testvector_100_out,
7493 },
7494 /* [P-521] */
7495 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007496 .level = 0,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007497 .algo = TEE_ALG_ECDH_P521,
7498 .curve = TEE_ECC_CURVE_NIST_P521,
7499 .keysize = 521,
7500 .public_x = nist_kas_ecc_cdh_testvector_101_public_x,
7501 .public_y = nist_kas_ecc_cdh_testvector_101_public_y,
7502 .private = nist_kas_ecc_cdh_testvector_101_private,
7503 .out = nist_kas_ecc_cdh_testvector_101_out,
Pascal Brand2b92b642015-07-16 13:29:42 +02007504 },
7505 {
Jens Wiklander6a9d15a2016-02-01 10:29:42 +01007506 .level = 1,
Pascal Brand2b92b642015-07-16 13:29:42 +02007507 .algo = TEE_ALG_ECDH_P521,
7508 .curve = TEE_ECC_CURVE_NIST_P521,
7509 .keysize = 521,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007510 .public_x = nist_kas_ecc_cdh_testvector_102_public_x,
7511 .public_y = nist_kas_ecc_cdh_testvector_102_public_y,
7512 .private = nist_kas_ecc_cdh_testvector_102_private,
7513 .out = nist_kas_ecc_cdh_testvector_102_out,
Pascal Brand2b92b642015-07-16 13:29:42 +02007514 },
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007515 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007516 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007517 .algo = TEE_ALG_ECDH_P521,
7518 .curve = TEE_ECC_CURVE_NIST_P521,
7519 .keysize = 521,
7520 .public_x = nist_kas_ecc_cdh_testvector_103_public_x,
7521 .public_y = nist_kas_ecc_cdh_testvector_103_public_y,
7522 .private = nist_kas_ecc_cdh_testvector_103_private,
7523 .out = nist_kas_ecc_cdh_testvector_103_out,
7524 },
7525 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007526 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007527 .algo = TEE_ALG_ECDH_P521,
7528 .curve = TEE_ECC_CURVE_NIST_P521,
7529 .keysize = 521,
7530 .public_x = nist_kas_ecc_cdh_testvector_104_public_x,
7531 .public_y = nist_kas_ecc_cdh_testvector_104_public_y,
7532 .private = nist_kas_ecc_cdh_testvector_104_private,
7533 .out = nist_kas_ecc_cdh_testvector_104_out,
7534 },
7535 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007536 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007537 .algo = TEE_ALG_ECDH_P521,
7538 .curve = TEE_ECC_CURVE_NIST_P521,
7539 .keysize = 521,
7540 .public_x = nist_kas_ecc_cdh_testvector_105_public_x,
7541 .public_y = nist_kas_ecc_cdh_testvector_105_public_y,
7542 .private = nist_kas_ecc_cdh_testvector_105_private,
7543 .out = nist_kas_ecc_cdh_testvector_105_out,
7544 },
7545 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007546 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007547 .algo = TEE_ALG_ECDH_P521,
7548 .curve = TEE_ECC_CURVE_NIST_P521,
7549 .keysize = 521,
7550 .public_x = nist_kas_ecc_cdh_testvector_106_public_x,
7551 .public_y = nist_kas_ecc_cdh_testvector_106_public_y,
7552 .private = nist_kas_ecc_cdh_testvector_106_private,
7553 .out = nist_kas_ecc_cdh_testvector_106_out,
7554 },
7555 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007556 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007557 .algo = TEE_ALG_ECDH_P521,
7558 .curve = TEE_ECC_CURVE_NIST_P521,
7559 .keysize = 521,
7560 .public_x = nist_kas_ecc_cdh_testvector_107_public_x,
7561 .public_y = nist_kas_ecc_cdh_testvector_107_public_y,
7562 .private = nist_kas_ecc_cdh_testvector_107_private,
7563 .out = nist_kas_ecc_cdh_testvector_107_out,
7564 },
7565 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007566 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007567 .algo = TEE_ALG_ECDH_P521,
7568 .curve = TEE_ECC_CURVE_NIST_P521,
7569 .keysize = 521,
7570 .public_x = nist_kas_ecc_cdh_testvector_108_public_x,
7571 .public_y = nist_kas_ecc_cdh_testvector_108_public_y,
7572 .private = nist_kas_ecc_cdh_testvector_108_private,
7573 .out = nist_kas_ecc_cdh_testvector_108_out,
7574 },
7575 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007576 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007577 .algo = TEE_ALG_ECDH_P521,
7578 .curve = TEE_ECC_CURVE_NIST_P521,
7579 .keysize = 521,
7580 .public_x = nist_kas_ecc_cdh_testvector_109_public_x,
7581 .public_y = nist_kas_ecc_cdh_testvector_109_public_y,
7582 .private = nist_kas_ecc_cdh_testvector_109_private,
7583 .out = nist_kas_ecc_cdh_testvector_109_out,
7584 },
7585 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007586 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007587 .algo = TEE_ALG_ECDH_P521,
7588 .curve = TEE_ECC_CURVE_NIST_P521,
7589 .keysize = 521,
7590 .public_x = nist_kas_ecc_cdh_testvector_110_public_x,
7591 .public_y = nist_kas_ecc_cdh_testvector_110_public_y,
7592 .private = nist_kas_ecc_cdh_testvector_110_private,
7593 .out = nist_kas_ecc_cdh_testvector_110_out,
7594 },
7595 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007596 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007597 .algo = TEE_ALG_ECDH_P521,
7598 .curve = TEE_ECC_CURVE_NIST_P521,
7599 .keysize = 521,
7600 .public_x = nist_kas_ecc_cdh_testvector_111_public_x,
7601 .public_y = nist_kas_ecc_cdh_testvector_111_public_y,
7602 .private = nist_kas_ecc_cdh_testvector_111_private,
7603 .out = nist_kas_ecc_cdh_testvector_111_out,
7604 },
7605 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007606 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007607 .algo = TEE_ALG_ECDH_P521,
7608 .curve = TEE_ECC_CURVE_NIST_P521,
7609 .keysize = 521,
7610 .public_x = nist_kas_ecc_cdh_testvector_112_public_x,
7611 .public_y = nist_kas_ecc_cdh_testvector_112_public_y,
7612 .private = nist_kas_ecc_cdh_testvector_112_private,
7613 .out = nist_kas_ecc_cdh_testvector_112_out,
7614 },
7615 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007616 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007617 .algo = TEE_ALG_ECDH_P521,
7618 .curve = TEE_ECC_CURVE_NIST_P521,
7619 .keysize = 521,
7620 .public_x = nist_kas_ecc_cdh_testvector_113_public_x,
7621 .public_y = nist_kas_ecc_cdh_testvector_113_public_y,
7622 .private = nist_kas_ecc_cdh_testvector_113_private,
7623 .out = nist_kas_ecc_cdh_testvector_113_out,
7624 },
7625 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007626 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007627 .algo = TEE_ALG_ECDH_P521,
7628 .curve = TEE_ECC_CURVE_NIST_P521,
7629 .keysize = 521,
7630 .public_x = nist_kas_ecc_cdh_testvector_114_public_x,
7631 .public_y = nist_kas_ecc_cdh_testvector_114_public_y,
7632 .private = nist_kas_ecc_cdh_testvector_114_private,
7633 .out = nist_kas_ecc_cdh_testvector_114_out,
7634 },
7635 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007636 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007637 .algo = TEE_ALG_ECDH_P521,
7638 .curve = TEE_ECC_CURVE_NIST_P521,
7639 .keysize = 521,
7640 .public_x = nist_kas_ecc_cdh_testvector_115_public_x,
7641 .public_y = nist_kas_ecc_cdh_testvector_115_public_y,
7642 .private = nist_kas_ecc_cdh_testvector_115_private,
7643 .out = nist_kas_ecc_cdh_testvector_115_out,
7644 },
7645 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007646 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007647 .algo = TEE_ALG_ECDH_P521,
7648 .curve = TEE_ECC_CURVE_NIST_P521,
7649 .keysize = 521,
7650 .public_x = nist_kas_ecc_cdh_testvector_116_public_x,
7651 .public_y = nist_kas_ecc_cdh_testvector_116_public_y,
7652 .private = nist_kas_ecc_cdh_testvector_116_private,
7653 .out = nist_kas_ecc_cdh_testvector_116_out,
7654 },
7655 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007656 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007657 .algo = TEE_ALG_ECDH_P521,
7658 .curve = TEE_ECC_CURVE_NIST_P521,
7659 .keysize = 521,
7660 .public_x = nist_kas_ecc_cdh_testvector_117_public_x,
7661 .public_y = nist_kas_ecc_cdh_testvector_117_public_y,
7662 .private = nist_kas_ecc_cdh_testvector_117_private,
7663 .out = nist_kas_ecc_cdh_testvector_117_out,
7664 },
7665 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007666 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007667 .algo = TEE_ALG_ECDH_P521,
7668 .curve = TEE_ECC_CURVE_NIST_P521,
7669 .keysize = 521,
7670 .public_x = nist_kas_ecc_cdh_testvector_118_public_x,
7671 .public_y = nist_kas_ecc_cdh_testvector_118_public_y,
7672 .private = nist_kas_ecc_cdh_testvector_118_private,
7673 .out = nist_kas_ecc_cdh_testvector_118_out,
7674 },
7675 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007676 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007677 .algo = TEE_ALG_ECDH_P521,
7678 .curve = TEE_ECC_CURVE_NIST_P521,
7679 .keysize = 521,
7680 .public_x = nist_kas_ecc_cdh_testvector_119_public_x,
7681 .public_y = nist_kas_ecc_cdh_testvector_119_public_y,
7682 .private = nist_kas_ecc_cdh_testvector_119_private,
7683 .out = nist_kas_ecc_cdh_testvector_119_out,
7684 },
7685 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007686 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007687 .algo = TEE_ALG_ECDH_P521,
7688 .curve = TEE_ECC_CURVE_NIST_P521,
7689 .keysize = 521,
7690 .public_x = nist_kas_ecc_cdh_testvector_120_public_x,
7691 .public_y = nist_kas_ecc_cdh_testvector_120_public_y,
7692 .private = nist_kas_ecc_cdh_testvector_120_private,
7693 .out = nist_kas_ecc_cdh_testvector_120_out,
7694 },
7695 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007696 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007697 .algo = TEE_ALG_ECDH_P521,
7698 .curve = TEE_ECC_CURVE_NIST_P521,
7699 .keysize = 521,
7700 .public_x = nist_kas_ecc_cdh_testvector_121_public_x,
7701 .public_y = nist_kas_ecc_cdh_testvector_121_public_y,
7702 .private = nist_kas_ecc_cdh_testvector_121_private,
7703 .out = nist_kas_ecc_cdh_testvector_121_out,
7704 },
7705 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007706 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007707 .algo = TEE_ALG_ECDH_P521,
7708 .curve = TEE_ECC_CURVE_NIST_P521,
7709 .keysize = 521,
7710 .public_x = nist_kas_ecc_cdh_testvector_122_public_x,
7711 .public_y = nist_kas_ecc_cdh_testvector_122_public_y,
7712 .private = nist_kas_ecc_cdh_testvector_122_private,
7713 .out = nist_kas_ecc_cdh_testvector_122_out,
7714 },
7715 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007716 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007717 .algo = TEE_ALG_ECDH_P521,
7718 .curve = TEE_ECC_CURVE_NIST_P521,
7719 .keysize = 521,
7720 .public_x = nist_kas_ecc_cdh_testvector_123_public_x,
7721 .public_y = nist_kas_ecc_cdh_testvector_123_public_y,
7722 .private = nist_kas_ecc_cdh_testvector_123_private,
7723 .out = nist_kas_ecc_cdh_testvector_123_out,
7724 },
7725 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007726 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007727 .algo = TEE_ALG_ECDH_P521,
7728 .curve = TEE_ECC_CURVE_NIST_P521,
7729 .keysize = 521,
7730 .public_x = nist_kas_ecc_cdh_testvector_124_public_x,
7731 .public_y = nist_kas_ecc_cdh_testvector_124_public_y,
7732 .private = nist_kas_ecc_cdh_testvector_124_private,
7733 .out = nist_kas_ecc_cdh_testvector_124_out,
7734 },
7735 {
Cedric Chaumontc3b6c282015-09-25 03:05:18 +02007736 .level = 15,
Cedric Chaumonteb1f7902015-09-18 12:54:58 +02007737 .algo = TEE_ALG_ECDH_P521,
7738 .curve = TEE_ECC_CURVE_NIST_P521,
7739 .keysize = 521,
7740 .public_x = nist_kas_ecc_cdh_testvector_125_public_x,
7741 .public_y = nist_kas_ecc_cdh_testvector_125_public_y,
7742 .private = nist_kas_ecc_cdh_testvector_125_private,
7743 .out = nist_kas_ecc_cdh_testvector_125_out,
7744 },
7745 /* [K-163] - GP NOT SUPPORTED */
7746 /* [K-233] - GP NOT SUPPORTED */
7747 /* [K-283] - GP NOT SUPPORTED */
7748 /* [K-409] - GP NOT SUPPORTED */
7749 /* [K-571] - GP NOT SUPPORTED */
7750 /* [B-163] - GP NOT SUPPORTED */
7751 /* [B-233] - GP NOT SUPPORTED */
7752 /* [B-283] - GP NOT SUPPORTED */
7753 /* [B-409] - GP NOT SUPPORTED */
7754 /* [B-571] - GP NOT SUPPORTED */
Pascal Brand2b92b642015-07-16 13:29:42 +02007755};
Pascal Brandc639ac82015-07-02 08:53:34 +02007756
Jerome Forissierb6f5ac92019-12-19 16:37:14 +01007757/* G/MT 0003 (SM2) Part 5 Annex C.2 - encryption/decryption */
7758static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] =
7759/* M */
7760 "encryption standard";
7761static const uint8_t gmt_0003_part5_c2_sm2_testvector_private[] = {
7762/* dB */
7763 0x39, 0x45, 0x20, 0x8F, 0x7B, 0x21, 0x44, 0xB1, 0x3F, 0x36, 0xE3, 0x8A,
7764 0xC6, 0xD3, 0x9F, 0x95, 0x88, 0x93, 0x93, 0x69, 0x28, 0x60, 0xB5, 0x1A,
7765 0x42, 0xFB, 0x81, 0xEF, 0x4D, 0xF7, 0xC5, 0xB8
7766};
7767static const uint8_t gmt_0003_part5_c2_sm2_testvector_public_x[] = {
7768/* xB */
7769 0x09, 0xF9, 0xDF, 0x31, 0x1E, 0x54, 0x21, 0xA1, 0x50, 0xDD, 0x7D, 0x16,
7770 0x1E, 0x4B, 0xC5, 0xC6, 0x72, 0x17, 0x9F, 0xAD, 0x18, 0x33, 0xFC, 0x07,
7771 0x6B, 0xB0, 0x8F, 0xF3, 0x56, 0xF3, 0x50, 0x20
7772};
7773static const uint8_t gmt_0003_part5_c2_sm2_testvector_public_y[] = {
7774/* yB */
7775 0xCC, 0xEA, 0x49, 0x0C, 0xE2, 0x67, 0x75, 0xA5, 0x2D, 0xC6, 0xEA, 0x71,
7776 0x8C, 0xC1, 0xAA, 0x60, 0x0A, 0xED, 0x05, 0xFB, 0xF3, 0x5E, 0x08, 0x4A,
7777 0x66, 0x32, 0xF6, 0x07, 0x2D, 0xA9, 0xAD, 0x13
7778};
7779static const uint8_t gmt_0003_part5_c2_sm2_testvector_out[] = {
7780/* C */
7781 /* C1 */
7782 0x04,
7783 0x04, 0xEB, 0xFC, 0x71, 0x8E, 0x8D, 0x17, 0x98, 0x62, 0x04, 0x32, 0x26,
7784 0x8E, 0x77, 0xFE, 0xB6, 0x41, 0x5E, 0x2E, 0xDE, 0x0E, 0x07, 0x3C, 0x0F,
7785 0x4F, 0x64, 0x0E, 0xCD, 0x2E, 0x14, 0x9A, 0x73, 0xE8, 0x58, 0xF9, 0xD8,
7786 0x1E, 0x54, 0x30, 0xA5, 0x7B, 0x36, 0xDA, 0xAB, 0x8F, 0x95, 0x0A, 0x3C,
7787 0x64, 0xE6, 0xEE, 0x6A, 0x63, 0x09, 0x4D, 0x99, 0x28, 0x3A, 0xFF, 0x76,
7788 0x7E, 0x12, 0x4D, 0xF0,
7789 /* C2 */
7790 0x21, 0x88, 0x6C, 0xA9, 0x89, 0xCA, 0x9C, 0x7D, 0x58, 0x08, 0x73, 0x07,
7791 0xCA, 0x93, 0x09, 0x2D, 0x65, 0x1E, 0xFA,
7792 /* C3 */
7793 0x59, 0x98, 0x3C, 0x18, 0xF8, 0x09, 0xE2, 0x62, 0x92, 0x3C, 0x53, 0xAE,
7794 0xC2, 0x95, 0xD3, 0x03, 0x83, 0xB5, 0x4E, 0x39, 0xD6, 0x09, 0xD1, 0x60,
7795 0xAF, 0xCB, 0x19, 0x08, 0xD0, 0xBD, 0x87, 0x66
7796};
7797
7798/* SM2 encryption/decryption */
7799static const uint8_t sm2_testvector2_ptx[] =
7800/* M */
7801 "This test vector is used to test encryption then decryption. The "
7802 "plain text is longer than 64 characters, so it will exercise parts "
7803 "of the code that are not used for shorter messages.";
7804static const uint8_t sm2_testvector2_private[] = {
7805/* dB */
7806 0x39, 0x45, 0x20, 0x8F, 0x7B, 0x21, 0x44, 0xB1, 0x3F, 0x36, 0xE3, 0x8A,
7807 0xC6, 0xD3, 0x9F, 0x95, 0x88, 0x93, 0x93, 0x69, 0x28, 0x60, 0xB5, 0x1A,
7808 0x42, 0xFB, 0x81, 0xEF, 0x4D, 0xF7, 0xC5, 0xB8
7809};
7810static const uint8_t sm2_testvector2_public_x[] = {
7811/* xB */
7812 0x09, 0xF9, 0xDF, 0x31, 0x1E, 0x54, 0x21, 0xA1, 0x50, 0xDD, 0x7D, 0x16,
7813 0x1E, 0x4B, 0xC5, 0xC6, 0x72, 0x17, 0x9F, 0xAD, 0x18, 0x33, 0xFC, 0x07,
7814 0x6B, 0xB0, 0x8F, 0xF3, 0x56, 0xF3, 0x50, 0x20
7815};
7816static const uint8_t sm2_testvector2_public_y[] = {
7817/* yB */
7818 0xCC, 0xEA, 0x49, 0x0C, 0xE2, 0x67, 0x75, 0xA5, 0x2D, 0xC6, 0xEA, 0x71,
7819 0x8C, 0xC1, 0xAA, 0x60, 0x0A, 0xED, 0x05, 0xFB, 0xF3, 0x5E, 0x08, 0x4A,
7820 0x66, 0x32, 0xF6, 0x07, 0x2D, 0xA9, 0xAD, 0x13
7821};
7822static const uint8_t sm2_testvector2_out[] = {
7823 0x00, /* Not used -- test runs in encrypt/decrypt mode */
7824};
Jerome Forissier849b57e2019-12-19 16:37:14 +01007825
7826/*
7827 * G/MT 0003 (SM2) Part 5 Annex A.2 - SM2 digital signature based on
7828 * elliptic curves
7829 */
7830static const uint8_t gmt_003_part5_a2_ptx[] = {
7831 /* ZA = SM3(ENTLA || IDA || a || b || xG || yG || xA || yA) */
7832 0xB2, 0xE1, 0x4C, 0x5C, 0x79, 0xC6, 0xDF, 0x5B, 0x85, 0xF4, 0xFE, 0x7E,
7833 0xD8, 0xDB, 0x7A, 0x26, 0x2B, 0x9D, 0xA7, 0xE0, 0x7C, 0xCB, 0x0E, 0xA9,
7834 0xF4, 0x74, 0x7B, 0x8C, 0xCD, 0xA8, 0xA4, 0xF3,
7835 /* M */
7836 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x64, 0x69, 0x67, 0x65,
7837 0x73, 0x74
7838};
7839static const uint8_t gmt_003_part5_a2_private[] = {
7840 /* dA */
7841 0x39, 0x45, 0x20, 0x8F, 0x7B, 0x21, 0x44, 0xB1, 0x3F, 0x36, 0xE3, 0x8A,
7842 0xC6, 0xD3, 0x9F, 0x95, 0x88, 0x93, 0x93, 0x69, 0x28, 0x60, 0xB5, 0x1A,
7843 0x42, 0xFB, 0x81, 0xEF, 0x4D, 0xF7, 0xC5, 0xB8,
7844};
7845static const uint8_t gmt_003_part5_a2_public_x[] = {
7846 /* xA */
7847 0x09, 0xF9, 0xDF, 0x31, 0x1E, 0x54, 0x21, 0xA1, 0x50, 0xDD, 0x7D, 0x16,
7848 0x1E, 0x4B, 0xC5, 0xC6, 0x72, 0x17, 0x9F, 0xAD, 0x18, 0x33, 0xFC, 0x07,
7849 0x6B, 0xB0, 0x8F, 0xF3, 0x56, 0xF3, 0x50, 0x20,
7850};
7851static const uint8_t gmt_003_part5_a2_public_y[] = {
7852 /* yA */
7853 0xCC, 0xEA, 0x49, 0x0C, 0xE2, 0x67, 0x75, 0xA5, 0x2D, 0xC6, 0xEA, 0x71,
7854 0x8C, 0xC1, 0xAA, 0x60, 0x0A, 0xED, 0x05, 0xFB, 0xF3, 0x5E, 0x08, 0x4A,
7855 0x66, 0x32, 0xF6, 0x07, 0x2D, 0xA9, 0xAD, 0x13,
7856};
7857static const uint8_t gmt_003_part5_a2_out[] = {
7858 /* r */
7859 0xF5, 0xA0, 0x3B, 0x06, 0x48, 0xD2, 0xC4, 0x63, 0x0E, 0xEA, 0xC5, 0x13,
7860 0xE1, 0xBB, 0x81, 0xA1, 0x59, 0x44, 0xDA, 0x38, 0x27, 0xD5, 0xB7, 0x41,
7861 0x43, 0xAC, 0x7E, 0xAC, 0xEE, 0xE7, 0x20, 0xB3,
7862 /* s */
7863 0xB1, 0xB6, 0xAA, 0x29, 0xDF, 0x21, 0x2F, 0xD8, 0x76, 0x31, 0x82, 0xBC,
7864 0x0D, 0x42, 0x1C, 0xA1, 0xBB, 0x90, 0x38, 0xFD, 0x1F, 0x7F, 0x42, 0xD4,
7865 0x84, 0x0B, 0x69, 0xC4, 0x85, 0xBB, 0xC1, 0xAA,
7866};
7867
Jerome Forissierf0cf5182020-01-09 17:04:18 +01007868/*
7869 * G/MT 0003 (SM2) Part 5 Annex B.2 - key exchange protocol based on elliptic
7870 * curves
7871 */
7872static const uint8_t gmt_003_part5_b2_private_A[] = {
7873 /* dA */
7874 0x81, 0xEB, 0x26, 0xE9, 0x41, 0xBB, 0x5A, 0xF1, 0x6D, 0xF1, 0x16, 0x49,
7875 0x5F, 0x90, 0x69, 0x52, 0x72, 0xAE, 0x2C, 0xD6, 0x3D, 0x6C, 0x4A, 0xE1,
7876 0x67, 0x84, 0x18, 0xBE, 0x48, 0x23, 0x00, 0x29,
7877};
7878static const uint8_t gmt_003_part5_b2_public_xA[] = {
7879 /* xA */
7880 0x16, 0x0E, 0x12, 0x89, 0x7D, 0xF4, 0xED, 0xB6, 0x1D, 0xD8, 0x12, 0xFE,
7881 0xB9, 0x67, 0x48, 0xFB, 0xD3, 0xCC, 0xF4, 0xFF, 0xE2, 0x6A, 0xA6, 0xF6,
7882 0xDB, 0x95, 0x40, 0xAF, 0x49, 0xC9, 0x42, 0x32,
7883};
7884static const uint8_t gmt_003_part5_b2_public_yA[] = {
7885 /* xA */
7886 0x4A, 0x7D, 0xAD, 0x08, 0xBB, 0x9A, 0x45, 0x95, 0x31, 0x69, 0x4B, 0xEB,
7887 0x20, 0xAA, 0x48, 0x9D, 0x66, 0x49, 0x97, 0x5E, 0x1B, 0xFC, 0xF8, 0xC4,
7888 0x74, 0x1B, 0x78, 0xB4, 0xB2, 0x23, 0x00, 0x7F,
7889};
7890static const uint8_t gmt_003_part5_b2_eph_private_A[] = {
7891 /* rA */
7892 0xD4, 0xDE, 0x15, 0x47, 0x4D, 0xB7, 0x4D, 0x06, 0x49, 0x1C, 0x44, 0x0D,
7893 0x30, 0x5E, 0x01, 0x24, 0x00, 0x99, 0x0F, 0x3E, 0x39, 0x0C, 0x7E, 0x87,
7894 0x15, 0x3C, 0x12, 0xDB, 0x2E, 0xA6, 0x0B, 0xB3,
7895};
7896static const uint8_t gmt_003_part5_b2_eph_public_xA[] = {
7897 /* x1 where (x1, y1) = [rA]G */
7898 0x64, 0xCE, 0xD1, 0xBD, 0xBC, 0x99, 0xD5, 0x90, 0x04, 0x9B, 0x43, 0x4D,
7899 0x0F, 0xD7, 0x34, 0x28, 0xCF, 0x60, 0x8A, 0x5D, 0xB8, 0xFE, 0x5C, 0xE0,
7900 0x7F, 0x15, 0x02, 0x69, 0x40, 0xBA, 0xE4, 0x0E,
7901};
7902static const uint8_t gmt_003_part5_b2_eph_public_yA[] = {
7903 /* y1 where (x1, y1) = [rA]G */
7904 0x37, 0x66, 0x29, 0xC7, 0xAB, 0x21, 0xE7, 0xDB, 0x26, 0x09, 0x22, 0x49,
7905 0x9D, 0xDB, 0x11, 0x8F, 0x07, 0xCE, 0x8E, 0xAA, 0xE3, 0xE7, 0x72, 0x0A,
7906 0xFE, 0xF6, 0xA5, 0xCC, 0x06, 0x20, 0x70, 0xC0,
7907};
7908static const uint8_t gmt_003_part5_b2_public_xB[] = {
7909 /* xB */
7910 0x6A, 0xE8, 0x48, 0xC5, 0x7C, 0x53, 0xC7, 0xB1, 0xB5, 0xFA, 0x99, 0xEB,
7911 0x22, 0x86, 0xAF, 0x07, 0x8B, 0xA6, 0x4C, 0x64, 0x59, 0x1B, 0x8B, 0x56,
7912 0x6F, 0x73, 0x57, 0xD5, 0x76, 0xF1, 0x6D, 0xFB,
7913};
7914static const uint8_t gmt_003_part5_b2_private_B[] = {
7915 /* dB */
7916 0x78, 0x51, 0x29, 0x91, 0x7D, 0x45, 0xA9, 0xEA, 0x54, 0x37, 0xA5, 0x93,
7917 0x56, 0xB8, 0x23, 0x38, 0xEA, 0xAD, 0xDA, 0x6C, 0xEB, 0x19, 0x90, 0x88,
7918 0xF1, 0x4A, 0xE1, 0x0D, 0xEF, 0xA2, 0x29, 0xB5,
7919};
7920static const uint8_t gmt_003_part5_b2_public_yB[] = {
7921 /* yB */
7922 0xEE, 0x48, 0x9D, 0x77, 0x16, 0x21, 0xA2, 0x7B, 0x36, 0xC5, 0xC7, 0x99,
7923 0x20, 0x62, 0xE9, 0xCD, 0x09, 0xA9, 0x26, 0x43, 0x86, 0xF3, 0xFB, 0xEA,
7924 0x54, 0xDF, 0xF6, 0x93, 0x05, 0x62, 0x1C, 0x4D,
7925};
7926static const uint8_t gmt_003_part5_b2_eph_private_B[] = {
7927 /* rB */
7928 0x7E, 0x07, 0x12, 0x48, 0x14, 0xB3, 0x09, 0x48, 0x91, 0x25, 0xEA, 0xED,
7929 0x10, 0x11, 0x13, 0x16, 0x4E, 0xBF, 0x0F, 0x34, 0x58, 0xC5, 0xBD, 0x88,
7930 0x33, 0x5C, 0x1F, 0x9D, 0x59, 0x62, 0x43, 0xD6,
7931};
7932static const uint8_t gmt_003_part5_b2_eph_public_xB[] = {
7933 /* x2 where (x2, y2) = [rB]G */
7934 0xAC, 0xC2, 0x76, 0x88, 0xA6, 0xF7, 0xB7, 0x06, 0x09, 0x8B, 0xC9, 0x1F,
7935 0xF3, 0xAD, 0x1B, 0xFF, 0x7D, 0xC2, 0x80, 0x2C, 0xDB, 0x14, 0xCC, 0xCC,
7936 0xDB, 0x0A, 0x90, 0x47, 0x1F, 0x9B, 0xD7, 0x07,
7937};
7938static const uint8_t gmt_003_part5_b2_eph_public_yB[] = {
7939 /* y2 where (x2, y2) = [rB]G */
7940 0x2F, 0xED, 0xAC, 0x04, 0x94, 0xB2, 0xFF, 0xC4, 0xD6, 0x85, 0x38, 0x76,
7941 0xC7, 0x9B, 0x8F, 0x30, 0x1C, 0x65, 0x73, 0xAD, 0x0A, 0xA5, 0x0F, 0x39,
7942 0xFC, 0x87, 0x18, 0x1E, 0x1A, 0x1B, 0x46, 0xFE,
7943};
7944static const uint8_t gmt_003_part5_b2_id_A[] = {
7945 /* IDA */
7946 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x31, 0x32, 0x33, 0x34,
7947 0x35, 0x36, 0x37, 0x38,
7948};
7949static const uint8_t gmt_003_part5_b2_id_B[] = {
7950 /* IDB */
7951 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x31, 0x32, 0x33, 0x34,
7952 0x35, 0x36, 0x37, 0x38,
7953};
7954static const uint8_t gmt_003_part5_b2_conf_A[] = {
7955 /* S2 = SA */
7956 0x18, 0xC7, 0x89, 0x4B, 0x38, 0x16, 0xDF, 0x16, 0xCF, 0x07, 0xB0, 0x5C,
7957 0x5E, 0xC0, 0xBE, 0xF5, 0xD6, 0x55, 0xD5, 0x8F, 0x77, 0x9C, 0xC1, 0xB4,
7958 0x00, 0xA4, 0xF3, 0x88, 0x46, 0x44, 0xDB, 0x88,
7959};
7960static const uint8_t gmt_003_part5_b2_conf_B[] = {
7961 /* S1 = SB */
7962 0xD3, 0xA0, 0xFE, 0x15, 0xDE, 0xE1, 0x85, 0xCE, 0xAE, 0x90, 0x7A, 0x6B,
7963 0x59, 0x5C, 0xC3, 0x2A, 0x26, 0x6E, 0xD7, 0xB3, 0x36, 0x7E, 0x99, 0x83,
7964 0xA8, 0x96, 0xDC, 0x32, 0xFA, 0x20, 0xF8, 0xEB,
7965};
7966static const uint8_t gmt_003_part5_b2_shared_secret[] = {
7967 /* KA = KB */
7968 0x6C, 0x89, 0x34, 0x73, 0x54, 0xDE, 0x24, 0x84, 0xC6, 0x0B, 0x4A, 0xB1,
7969 0xFD, 0xE4, 0xC6, 0xE5,
7970};
Ruchika Gupta454b0b62020-10-30 13:23:19 +05307971
7972/* MAC Tests Data and Keys */
7973
7974static const uint8_t mac_data_md5_key1[10] = {
7975 0x6B, 0x65, 0x79, /* key */
7976};
7977
7978static const uint8_t mac_data_md5_in1[] = {
7979 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, /* The quic */
7980 0x6B, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x6E, 0x20, /* k brown */
7981 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, /* fox jump */
7982 0x73, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, /* s over t */
7983 0x68, 0x65, 0x20, 0x6C, 0x61, 0x7A, 0x79, 0x20, /* he lazy */
7984 0x64, 0x6F, 0x67, /* dog */
7985};
7986
7987static const uint8_t mac_data_md5_out1[] = {
7988 0x80, 0x07, 0x07, 0x13, 0x46, 0x3e, 0x77, 0x49,
7989 0xb9, 0x0c, 0x2d, 0xc2, 0x49, 0x11, 0xe2, 0x75
7990};
7991
7992
7993/* generated with scripts/digest_hmac.pl */
7994static const uint8_t mac_data_sha1_key1[10] = {
7995 0x6B, 0x65, 0x79, /* key */
7996};
7997
7998static const uint8_t mac_data_sha1_in1[] = {
7999 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, /* The quic */
8000 0x6B, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x6E, 0x20, /* k brown */
8001 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, /* fox jump */
8002 0x73, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, /* s over t */
8003 0x68, 0x65, 0x20, 0x6C, 0x61, 0x7A, 0x79, 0x20, /* he lazy */
8004 0x64, 0x6F, 0x67, /* dog */
8005};
8006
8007static const uint8_t mac_data_sha1_out1[] = {
8008 0xDE, 0x7C, 0x9B, 0x85, 0xB8, 0xB7, 0x8A, 0xA6, /* .|...... */
8009 0xBC, 0x8A, 0x7A, 0x36, 0xF7, 0x0A, 0x90, 0x70, /* ..z6...p */
8010 0x1C, 0x9D, 0xB4, 0xD9, /* .... */
8011};
8012
8013static const uint8_t mac_data_sha224_key1[24] = {
8014 0x6B, 0x65, 0x79, /* key */
8015};
8016
8017static const uint8_t mac_data_sha224_in1[] = {
8018 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, /* The quic */
8019 0x6B, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x6E, 0x20, /* k brown */
8020 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, /* fox jump */
8021 0x73, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, /* s over t */
8022 0x68, 0x65, 0x20, 0x6C, 0x61, 0x7A, 0x79, 0x20, /* he lazy */
8023 0x64, 0x6F, 0x67, /* dog */
8024};
8025
8026static const uint8_t mac_data_sha224_out1[] = {
8027 0x88, 0xFF, 0x8B, 0x54, 0x67, 0x5D, 0x39, 0xB8, /* ...Tg]9. */
8028 0xF7, 0x23, 0x22, 0xE6, 0x5F, 0xF9, 0x45, 0xC5, /* .#"._.E. */
8029 0x2D, 0x96, 0x37, 0x99, 0x88, 0xAD, 0xA2, 0x56, /* -.7....V */
8030 0x39, 0x74, 0x7E, 0x69, /* 9t~i */
8031};
8032
8033
8034static const uint8_t mac_data_sha256_key1[24] = {
8035 'Q', 'W', 'E', 'R', 'T', 'Y'
8036};
8037
8038static const uint8_t mac_data_sha256_in1[] = { 'a', 'b', 'c' };
8039
8040static const uint8_t mac_data_sha256_out1[] = {
8041 0xee, 0x2e, 0x5d, 0x9b, 0x51, 0xe2, 0x9c, 0x1d,
8042 0x49, 0xe9, 0xae, 0x6f, 0x0a, 0xcc, 0x15, 0x18,
8043 0xde, 0x1e, 0xa3, 0x88, 0x8e, 0xee, 0x48, 0xbb,
8044 0x82, 0x77, 0xe9, 0x09, 0x74, 0x4b, 0xa2, 0xf2
8045};
8046
8047/* generated with scripts/digest_hmac.pl */
8048static const uint8_t mac_data_sha256_key2[24] = {
8049 0x6B, 0x65, 0x79, /* key */
8050};
8051
8052static const uint8_t mac_data_sha256_in2[] = {
8053 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, /* The quic */
8054 0x6B, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x6E, 0x20, /* k brown */
8055 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, /* fox jump */
8056 0x73, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, /* s over t */
8057 0x68, 0x65, 0x20, 0x6C, 0x61, 0x7A, 0x79, 0x20, /* he lazy */
8058 0x64, 0x6F, 0x67, /* dog */
8059};
8060
8061static const uint8_t mac_data_sha256_out2[] = {
8062 0xF7, 0xBC, 0x83, 0xF4, 0x30, 0x53, 0x84, 0x24, /* ....0S.$ */
8063 0xB1, 0x32, 0x98, 0xE6, 0xAA, 0x6F, 0xB1, 0x43, /* .2...o.C */
8064 0xEF, 0x4D, 0x59, 0xA1, 0x49, 0x46, 0x17, 0x59, /* .MY.IF.Y */
8065 0x97, 0x47, 0x9D, 0xBC, 0x2D, 0x1A, 0x3C, 0xD8, /* .G..-.<. */
8066};
8067
8068static const uint8_t mac_data_sha384_key1[32] = {
8069 0x6B, 0x65, 0x79, /* key */
8070};
8071
8072static const uint8_t mac_data_sha384_in1[] = {
8073 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, /* The quic */
8074 0x6B, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x6E, 0x20, /* k brown */
8075 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, /* fox jump */
8076 0x73, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, /* s over t */
8077 0x68, 0x65, 0x20, 0x6C, 0x61, 0x7A, 0x79, 0x20, /* he lazy */
8078 0x64, 0x6F, 0x67, /* dog */
8079};
8080
8081static const uint8_t mac_data_sha384_out1[] = {
8082 0xD7, 0xF4, 0x72, 0x7E, 0x2C, 0x0B, 0x39, 0xAE, /* ..r~, .9. */
8083 0x0F, 0x1E, 0x40, 0xCC, 0x96, 0xF6, 0x02, 0x42, /* ..@....B */
8084 0xD5, 0xB7, 0x80, 0x18, 0x41, 0xCE, 0xA6, 0xFC, /* ....A... */
8085 0x59, 0x2C, 0x5D, 0x3E, 0x1A, 0xE5, 0x07, 0x00, /* Y, ]>.... */
8086 0x58, 0x2A, 0x96, 0xCF, 0x35, 0xE1, 0xE5, 0x54, /* X...5..T */
8087 0x99, 0x5F, 0xE4, 0xE0, 0x33, 0x81, 0xC2, 0x37, /* ._..3..7 */
8088};
8089
8090static const uint8_t mac_data_sha512_key1[32] = {
8091 0x6B, 0x65, 0x79, /* key */
8092};
8093
8094static const uint8_t mac_data_sha512_in1[] = {
8095 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, /* The quic */
8096 0x6B, 0x20, 0x62, 0x72, 0x6F, 0x77, 0x6E, 0x20, /* k brown */
8097 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, /* fox jump */
8098 0x73, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, /* s over t */
8099 0x68, 0x65, 0x20, 0x6C, 0x61, 0x7A, 0x79, 0x20, /* he lazy */
8100 0x64, 0x6F, 0x67, /* dog */
8101};
8102
8103static const uint8_t mac_data_sha512_out1[] = {
8104 0xB4, 0x2A, 0xF0, 0x90, 0x57, 0xBA, 0xC1, 0xE2, /* ....W... */
8105 0xD4, 0x17, 0x08, 0xE4, 0x8A, 0x90, 0x2E, 0x09, /* ........ */
8106 0xB5, 0xFF, 0x7F, 0x12, 0xAB, 0x42, 0x8A, 0x4F, /* .....B.O */
8107 0xE8, 0x66, 0x53, 0xC7, 0x3D, 0xD2, 0x48, 0xFB, /* .fS.=.H. */
8108 0x82, 0xF9, 0x48, 0xA5, 0x49, 0xF7, 0xB7, 0x91, /* ..H.I... */
8109 0xA5, 0xB4, 0x19, 0x15, 0xEE, 0x4D, 0x1E, 0xC3, /* .....M.. */
8110 0x93, 0x53, 0x57, 0xE4, 0xE2, 0x31, 0x72, 0x50, /* .SW..1rP */
8111 0xD0, 0x37, 0x2A, 0xFA, 0x2E, 0xBE, 0xEB, 0x3A, /* .7.....: */
8112};
8113
8114/*
8115 * SM3 HMAC
8116 * GM/T 0042-2015
8117 * Section D.3 Test vector 1
8118 */
8119static const uint8_t mac_data_sm3_d31_in[112] =
8120 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
8121 "opnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmn"
8122 "lmnomnopnopq";
8123
8124static const uint8_t mac_data_sm3_d31_key[] = {
8125 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
8126 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
8127 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
8128 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
8129};
8130
8131static const uint8_t mac_data_sm3_d31_out[] = {
8132 0xca, 0x05, 0xe1, 0x44, 0xed, 0x05, 0xd1, 0x85,
8133 0x78, 0x40, 0xd1, 0xf3, 0x18, 0xa4, 0xa8, 0x66,
8134 0x9e, 0x55, 0x9f, 0xc8, 0x39, 0x1f, 0x41, 0x44,
8135 0x85, 0xbf, 0xdf, 0x7b, 0xb4, 0x08, 0x96, 0x3a,
8136};
8137
8138/*
8139 * SM3 HMAC
8140 * GM/T 0042-2015
8141 * Section D.3 Test vector 2
8142 */
8143static const uint8_t mac_data_sm3_d32_in[] = {
8144 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
8145 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
8146 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
8147 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
8148 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
8149 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
8150 0xcd, 0xcd
8151};
8152
8153static const uint8_t mac_data_sm3_d32_key[] = {
8154 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
8155 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
8156 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
8157 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
8158 0x21, 0x22, 0x23, 0x24, 0x25,
8159};
8160
8161static const uint8_t mac_data_sm3_d32_out[] = {
8162 0x22, 0x0b, 0xf5, 0x79, 0xde, 0xd5, 0x55, 0x39,
8163 0x3f, 0x01, 0x59, 0xf6, 0x6c, 0x99, 0x87, 0x78,
8164 0x22, 0xa3, 0xec, 0xf6, 0x10, 0xd1, 0x55, 0x21,
8165 0x54, 0xb4, 0x1d, 0x44, 0xb9, 0x4d, 0xb3, 0xae,
8166};
8167
8168/* AES-CBC-MAC */
8169static const uint8_t mac_cbc_vect1_key[] = {
8170 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8171 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
8172};
8173
8174static const uint8_t mac_cbc_vect1_data[] = {
8175 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x20, 0x62, /* Cipher b */
8176 0x6C, 0x6F, 0x63, 0x6B, 0x20, 0x63, 0x68, 0x61, /* lock cha */
8177 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x28, 0x43, /* ining (C */
8178 0x42, 0x43, 0x29, 0x20, 0x69, 0x73, 0x20, 0x61, /* BC) is a */
8179 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x6F, 0x6E, 0x20, /* common */
8180 0x63, 0x68, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, /* chaining */
8181 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x69, 0x6E, /* mode in */
8182 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, /* which t */
8183 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, /* he previ */
8184 0x6F, 0x75, 0x73, 0x20, 0x62, 0x6C, 0x6F, 0x63, /* ous bloc */
8185 0x6B, 0x27, 0x73, 0x20, 0x63, 0x69, 0x70, 0x68, /* k's ciph */
8186 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x20, 0x69, /* ertext i */
8187 0x73, 0x20, 0x78, 0x6F, 0x72, 0x65, 0x64, 0x20, /* s xored */
8188 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, /* with the */
8189 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, /* current */
8190 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x27, 0x73, /* block's */
8191 0x20, 0x70, 0x6C, 0x61, 0x69, 0x6E, 0x74, 0x65, /* plainte */
8192 0x78, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6F, 0x72, /* xt befor */
8193 0x65, 0x20, 0x65, 0x6E, 0x63, 0x72, 0x79, 0x70, /* e encryp */
8194 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x2E, 0x2E, 0x2E, /* tion.... */
8195};
8196
8197static const uint8_t mac_cbc_vect1_out[] = {
8198 0xC9, 0x6E, 0x83, 0x7E, 0x35, 0xC8, 0xA7, 0xA0, /* .n.~5... */
8199 0x33, 0xA3, 0xB1, 0x4B, 0x5A, 0x92, 0x51, 0x2E, /* 3..KZ.Q. */
8200};
8201
8202/* DES-CBC-MAC */
8203static const uint8_t mac_cbc_vect2_key[] = {
8204 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8205};
8206
8207#define mac_cbc_vect2_data mac_cbc_vect1_data
8208static const uint8_t mac_cbc_vect2_out[] = {
8209 0xE9, 0x41, 0x46, 0x30, 0x69, 0x32, 0xBD, 0xD6, /* .AF0i2.. */
8210};
8211
8212/* DES3-CBC-MAC */
8213static const uint8_t mac_cbc_vect3_key[] = {
8214 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8215 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
8216 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, /* 12345678 */
8217};
8218
8219#define mac_cbc_vect3_data mac_cbc_vect2_data
8220static const uint8_t mac_cbc_vect3_out[] = {
8221 0x1C, 0x17, 0xB7, 0xB5, 0x9F, 0x54, 0x9C, 0x63, /* .....T.c */
8222};
8223
8224/* AES-CBC-MAC PKCS#5 pad*/
8225static const uint8_t mac_cbc_vect4_key[] = {
8226 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8227 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
8228 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8229 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
8230};
8231
8232#define mac_cbc_vect4_data mac_cbc_vect1_data
8233static const uint8_t mac_cbc_vect4_out[] = {
8234 0x0B, 0x46, 0xC7, 0xA2, 0xE1, 0x5A, 0xE2, 0x23, /* .F...Z.# */
8235 0x83, 0x34, 0x1C, 0x86, 0x53, 0xF8, 0x51, 0x24, /* .4..S.Q$ */
8236};
8237
8238/* DES-CBC-MAC PKCS#5 pad*/
8239static const uint8_t mac_cbc_vect5_key[] = {
8240 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8241};
8242
8243#define mac_cbc_vect5_data mac_cbc_vect1_data
8244static const uint8_t mac_cbc_vect5_out[] = {
8245 0x30, 0x81, 0x4F, 0x42, 0x03, 0x7E, 0xD8, 0xA9, /* 0.OB.~.. */
8246};
8247
8248/* DES3-CBC-MAC PKCS#5 pad*/
8249static const uint8_t mac_cbc_vect6_key[] = {
8250 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8251 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
8252 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, /* 12345678 */
8253};
8254
8255#define mac_cbc_vect6_data mac_cbc_vect1_data
8256static const uint8_t mac_cbc_vect6_out[] = {
8257 0x6E, 0x37, 0x6E, 0x14, 0x5E, 0x21, 0xDD, 0xF8, /* n7n.^!.. */
8258};
8259
8260/* AES-CBC-MAC PKCS#5 pad*/
8261#define mac_cbc_vect7_key mac_cbc_vect4_key
8262static const uint8_t mac_cbc_vect7_data[] = {
8263 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x20, 0x62, /* Cipher b */
8264 0x6C, 0x6F, 0x63, 0x6B, 0x20, 0x63, 0x68, 0x61, /* lock cha */
8265 0x69, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x28, 0x43, /* ining (C */
8266 0x42, 0x43, 0x29, 0x20, 0x69, 0x73, 0x20, 0x61, /* BC) is a */
8267 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x6F, 0x6E, 0x20, /* common */
8268 0x63, 0x68, 0x61, 0x69, 0x6E, 0x69, 0x6E, 0x67, /* chaining */
8269 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x69, 0x6E, /* mode in */
8270 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, /* which t */
8271 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, /* he previ */
8272 0x6F, 0x75, 0x73, 0x20, 0x62, 0x6C, 0x6F, 0x63, /* ous bloc */
8273 0x6B, 0x27, 0x73, 0x20, 0x63, 0x69, 0x70, 0x68, /* k's ciph */
8274 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x20, 0x69, /* ertext i */
8275 0x73, 0x20, 0x78, 0x6F, 0x72, 0x65, 0x64, 0x20, /* s xored */
8276 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, /* with the */
8277 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, /* current */
8278 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x27, 0x73, /* block's */
8279 0x20, 0x70, 0x6C, 0x61, 0x69, 0x6E, 0x74, 0x65, /* plainte */
8280 0x78, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6F, 0x72, /* xt befor */
8281 0x65, 0x20, 0x65, 0x6E, 0x63, 0x72, 0x79, 0x70, /* e encryp */
8282 0x74, 0x69, 0x6F, 0x6E, 0x2E, /* tion. */
8283};
8284
8285static const uint8_t mac_cbc_vect7_out[] = {
8286 0xFD, 0x89, 0x35, 0xB3, 0x93, 0x7F, 0xBB, 0xA2, /* ..5..... */
8287 0xFB, 0x65, 0x60, 0xC4, 0x0A, 0x62, 0xA0, 0xF9, /* .e`..b.. */
8288};
8289
8290/* DES-CBC-MAC PKCS#5 pad*/
8291#define mac_cbc_vect8_key mac_cbc_vect5_key
8292#define mac_cbc_vect8_data mac_cbc_vect7_data
8293static const uint8_t mac_cbc_vect8_out[] = {
8294 0x02, 0x2A, 0xA8, 0x2E, 0x47, 0xC6, 0xBB, 0x7C, /* ....G..| */
8295};
8296
8297/* DES3-CBC-MAC PKCS#5 pad*/
8298#define mac_cbc_vect9_key mac_cbc_vect6_key
8299#define mac_cbc_vect9_data mac_cbc_vect7_data
8300static const uint8_t mac_cbc_vect9_out[] = {
8301 0xD4, 0xF7, 0x3E, 0x27, 0x78, 0x0E, 0x1C, 0x79, /* ..>'x..y */
8302};
8303
8304/*
8305 * DES3-CBC-MAC, with key size of 112bit
8306 * out obtained with:
8307 * echo -n "Cipher block chaining (CBC) is a common chaining mode in which the previous block's ciphertext is xored with the current block's plaintext before encryption...."|openssl enc -iv 0 -des3 -K 303132333435363738394142434445463031323334353637 |xxd
8308 */
8309/* DES3-CBC-MAC PKCS#5 pad*/
8310static const uint8_t mac_cbc_vect10_key[] = {
8311 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
8312 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
8313};
8314#define mac_cbc_vect10_data mac_cbc_vect1_data
8315static const uint8_t mac_cbc_vect10_out[] = {
8316 0x30, 0x92, 0x60, 0x99, 0x66, 0xac, 0x8c, 0xa6,
8317};
8318
8319
8320/*
8321 * AES-CMAC
8322 * Test vectors from
8323 * http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
8324 */
8325
8326/* AES-128 */
8327static const uint8_t mac_cmac_vect1_key[] = {
8328 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
8329 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
8330};
8331
8332static const uint8_t mac_cmac_vect1_out[] = {
8333 0xbb, 0x1d, 0x69, 0x29, 0xe9, 0x59, 0x37, 0x28,
8334 0x7f, 0xa3, 0x7d, 0x12, 0x9b, 0x75, 0x67, 0x46
8335};
8336
8337#define mac_cmac_vect2_key mac_cmac_vect1_key
8338static const uint8_t mac_cmac_vect2_data[] = {
8339 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8340 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a
8341};
8342
8343static const uint8_t mac_cmac_vect2_out[] = {
8344 0x07, 0x0a, 0x16, 0xb4, 0x6b, 0x4d, 0x41, 0x44,
8345 0xf7, 0x9b, 0xdd, 0x9d, 0xd0, 0x4a, 0x28, 0x7c
8346};
8347
8348#define mac_cmac_vect3_key mac_cmac_vect1_key
8349static const uint8_t mac_cmac_vect3_data[] = {
8350 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8351 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
8352 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
8353 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
8354 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11
8355};
8356
8357static const uint8_t mac_cmac_vect3_out[] = {
8358 0xdf, 0xa6, 0x67, 0x47, 0xde, 0x9a, 0xe6, 0x30,
8359 0x30, 0xca, 0x32, 0x61, 0x14, 0x97, 0xc8, 0x27
8360};
8361
8362#define mac_cmac_vect4_key mac_cmac_vect1_key
8363static const uint8_t mac_cmac_vect4_data[] = {
8364 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8365 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
8366 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
8367 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
8368 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
8369 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
8370 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
8371 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
8372};
8373
8374static const uint8_t mac_cmac_vect4_out[] = {
8375 0x51, 0xf0, 0xbe, 0xbf, 0x7e, 0x3b, 0x9d, 0x92,
8376 0xfc, 0x49, 0x74, 0x17, 0x79, 0x36, 0x3c, 0xfe
8377};
8378
8379/* AES-192 */
8380static const uint8_t mac_cmac_vect5_key[] = {
8381 0x8e, 0x73, 0xb0, 0xf7, 0xda, 0x0e, 0x64, 0x52,
8382 0xc8, 0x10, 0xf3, 0x2b, 0x80, 0x90, 0x79, 0xe5,
8383 0x62, 0xf8, 0xea, 0xd2, 0x52, 0x2c, 0x6b, 0x7b
8384};
8385
8386static const uint8_t mac_cmac_vect5_out[] = {
8387 0xd1, 0x7d, 0xdf, 0x46, 0xad, 0xaa, 0xcd, 0xe5,
8388 0x31, 0xca, 0xc4, 0x83, 0xde, 0x7a, 0x93, 0x67
8389};
8390
8391
8392#define mac_cmac_vect6_key mac_cmac_vect5_key
8393static const uint8_t mac_cmac_vect6_data[] = {
8394 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8395 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a
8396};
8397
8398static const uint8_t mac_cmac_vect6_out[] = {
8399 0x9e, 0x99, 0xa7, 0xbf, 0x31, 0xe7, 0x10, 0x90,
8400 0x06, 0x62, 0xf6, 0x5e, 0x61, 0x7c, 0x51, 0x84
8401};
8402
8403#define mac_cmac_vect7_key mac_cmac_vect5_key
8404static const uint8_t mac_cmac_vect7_data[] = {
8405 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8406 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
8407 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
8408 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
8409 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11
8410};
8411
8412static const uint8_t mac_cmac_vect7_out[] = {
8413 0x8a, 0x1d, 0xe5, 0xbe, 0x2e, 0xb3, 0x1a, 0xad,
8414 0x08, 0x9a, 0x82, 0xe6, 0xee, 0x90, 0x8b, 0x0e
8415};
8416
8417#define mac_cmac_vect8_key mac_cmac_vect5_key
8418static const uint8_t mac_cmac_vect8_data[] = {
8419 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8420 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
8421 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
8422 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
8423 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
8424 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
8425 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
8426 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
8427};
8428
8429static const uint8_t mac_cmac_vect8_out[] = {
8430 0xa1, 0xd5, 0xdf, 0x0e, 0xed, 0x79, 0x0f, 0x79,
8431 0x4d, 0x77, 0x58, 0x96, 0x59, 0xf3, 0x9a, 0x11
8432};
8433
8434/* AES-256 */
8435static const uint8_t mac_cmac_vect9_key[] = {
8436 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe,
8437 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81,
8438 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7,
8439 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4
8440};
8441
8442static const uint8_t mac_cmac_vect9_out[] = {
8443 0x02, 0x89, 0x62, 0xf6, 0x1b, 0x7b, 0xf8, 0x9e,
8444 0xfc, 0x6b, 0x55, 0x1f, 0x46, 0x67, 0xd9, 0x83
8445};
8446
8447#define mac_cmac_vect10_key mac_cmac_vect9_key
8448static const uint8_t mac_cmac_vect10_data[] = {
8449 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8450 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a
8451};
8452
8453static const uint8_t mac_cmac_vect10_out[] = {
8454 0x28, 0xa7, 0x02, 0x3f, 0x45, 0x2e, 0x8f, 0x82,
8455 0xbd, 0x4b, 0xf2, 0x8d, 0x8c, 0x37, 0xc3, 0x5c
8456};
8457
8458#define mac_cmac_vect11_key mac_cmac_vect9_key
8459static const uint8_t mac_cmac_vect11_data[] = {
8460 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8461 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
8462 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
8463 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
8464 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11
8465};
8466
8467static const uint8_t mac_cmac_vect11_out[] = {
8468 0xaa, 0xf3, 0xd8, 0xf1, 0xde, 0x56, 0x40, 0xc2,
8469 0x32, 0xf5, 0xb1, 0x69, 0xb9, 0xc9, 0x11, 0xe6
8470};
8471
8472#define mac_cmac_vect12_key mac_cmac_vect9_key
8473static const uint8_t mac_cmac_vect12_data[] = {
8474 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
8475 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
8476 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
8477 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
8478 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
8479 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
8480 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
8481 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
8482};
8483
8484static const uint8_t mac_cmac_vect12_out[] = {
8485 0xe1, 0x99, 0x21, 0x90, 0x54, 0x9f, 0x6e, 0xd5,
8486 0x69, 0x6a, 0x2c, 0x05, 0x6c, 0x31, 0x54, 0x10
8487};
8488
Pascal Brandc639ac82015-07-02 08:53:34 +02008489#endif /*XTEST_4000_DATA_H*/