1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 2020 Marvell International Ltd.
5 #ifndef __TEST_CRYPTODEV_ECDSA_TEST_VECTORS_H__
6 #define __TEST_CRYPTODEV_ECDSA_TEST_VECTORS_H__
8 #include "rte_crypto_asym.h"
20 const char *curve[] = {"SECP192R1",
26 struct crypto_testsuite_ecdsa_params {
27 rte_crypto_param pubkey_qx;
28 rte_crypto_param pubkey_qy;
29 rte_crypto_param scalar;
30 rte_crypto_param digest;
31 rte_crypto_param sign_r;
32 rte_crypto_param sign_s;
33 rte_crypto_param pkey;
38 * Test vector reference:
39 * https://csrc.nist.gov/CSRC/media/Projects/
40 * Cryptographic-Algorithm-Validation-Program/
41 * documents/components/186-3ecdsasiggencomponenttestvectors.zip
44 /* SECP192R1 (P-192 NIST) test vector */
46 static uint8_t digest_secp192r1[] = {
47 0x5a, 0xe8, 0x31, 0x7d, 0x34, 0xd1, 0xe5, 0x95,
48 0xe3, 0xfa, 0x72, 0x47, 0xdb, 0x80, 0xc0, 0xaf,
49 0x43, 0x20, 0xcc, 0xe1, 0x11, 0x6d, 0xe1, 0x87,
50 0xf8, 0xf7, 0xe2, 0xe0, 0x99, 0xc0, 0xd8, 0xd0
53 static uint8_t pkey_secp192r1[] = {
54 0x24, 0xed, 0xd2, 0x2f, 0x7d, 0xdd, 0x6f, 0xa5,
55 0xbc, 0x61, 0xfc, 0x06, 0x53, 0x47, 0x9a, 0xa4,
56 0x08, 0x09, 0xef, 0x86, 0x5c, 0xf2, 0x7a, 0x47
59 static uint8_t scalar_secp192r1[] = {
60 0xa5, 0xc8, 0x17, 0xa2, 0x36, 0xa5, 0xf7, 0xfa,
61 0xa3, 0x29, 0xb8, 0xec, 0xc3, 0xc5, 0x96, 0x68,
62 0x7c, 0x71, 0xaa, 0xaf, 0x86, 0xc7, 0x70, 0x3e
65 static uint8_t pubkey_qx_secp192r1[] = {
66 0x9b, 0xf1, 0x2d, 0x71, 0x74, 0xb7, 0x70, 0x8a,
67 0x07, 0x6a, 0x38, 0xbc, 0x80, 0xaa, 0x28, 0x66,
68 0x2f, 0x25, 0x1e, 0x2e, 0xd8, 0xd4, 0x14, 0xdc
71 static uint8_t pubkey_qy_secp192r1[] = {
72 0x48, 0x54, 0xc8, 0xd0, 0x7d, 0xfc, 0x08, 0x82,
73 0x4e, 0x9e, 0x47, 0x1c, 0xa2, 0xfe, 0xdc, 0xfc,
74 0xff, 0x3d, 0xdc, 0xb0, 0x11, 0x57, 0x34, 0x98
77 static uint8_t sign_secp192r1_r[] = {
78 0x35, 0x4a, 0xba, 0xec, 0xf4, 0x36, 0x1f, 0xea,
79 0x90, 0xc2, 0x9b, 0x91, 0x99, 0x88, 0x2e, 0xdf,
80 0x85, 0x73, 0xe6, 0x86, 0xa8, 0x13, 0xef, 0xf8
83 static uint8_t sign_secp192r1_s[] = {
84 0x80, 0xf5, 0x00, 0x00, 0xac, 0x86, 0x11, 0x1c,
85 0x9b, 0x30, 0x47, 0x38, 0x5a, 0x15, 0xd7, 0x8e,
86 0x63, 0x2c, 0x58, 0xb7, 0x94, 0x9e, 0x82, 0xc1
89 /** ECDSA SECP192R1 elliptic curve param */
91 struct crypto_testsuite_ecdsa_params ecdsa_param_secp192r1 = {
93 .data = pubkey_qx_secp192r1,
94 .length = sizeof(pubkey_qx_secp192r1),
97 .data = pubkey_qy_secp192r1,
98 .length = sizeof(pubkey_qy_secp192r1),
101 .data = scalar_secp192r1,
102 .length = sizeof(scalar_secp192r1),
105 .data = digest_secp192r1,
106 .length = sizeof(digest_secp192r1),
109 .data = sign_secp192r1_r,
110 .length = sizeof(sign_secp192r1_r),
113 .data = sign_secp192r1_s,
114 .length = sizeof(sign_secp192r1_s),
117 .data = pkey_secp192r1,
118 .length = sizeof(pkey_secp192r1),
120 .curve = RTE_CRYPTO_EC_GROUP_SECP192R1
123 /* SECP224R1 (P-224 NIST) test vectors */
125 static uint8_t digest_secp224r1[] = {
126 0x00, 0xc6, 0xfc, 0x53, 0xc1, 0x98, 0x6d, 0x19,
127 0xa8, 0xa8, 0xb5, 0x80, 0xee, 0x55, 0x3d, 0xc1,
128 0x24, 0x07, 0x45, 0xd7, 0x60, 0x64, 0x7d, 0x1c,
129 0x0a, 0xdf, 0x44, 0x2c, 0x13, 0x3c, 0x7f, 0x56
132 static uint8_t pkey_secp224r1[] = {
133 0x88, 0x8f, 0xc9, 0x92, 0x89, 0x3b, 0xdd, 0x8a,
134 0xa0, 0x2c, 0x80, 0x76, 0x88, 0x32, 0x60, 0x5d,
135 0x02, 0x0b, 0x81, 0xae, 0x0b, 0x25, 0x47, 0x41,
136 0x54, 0xec, 0x89, 0xaa
139 static uint8_t scalar_secp224r1[] = {
140 0x06, 0xf7, 0xa5, 0x60, 0x07, 0x82, 0x54, 0x33,
141 0xc4, 0xc6, 0x11, 0x53, 0xdf, 0x1a, 0x13, 0x5e,
142 0xee, 0x2f, 0x38, 0xec, 0x68, 0x7b, 0x49, 0x2e,
143 0xd4, 0x0d, 0x9c, 0x90
146 static uint8_t pubkey_qx_secp224r1[] = {
147 0x4c, 0x74, 0x1e, 0x4d, 0x20, 0x10, 0x36, 0x70,
148 0xb7, 0x16, 0x1a, 0xe7, 0x22, 0x71, 0x08, 0x21,
149 0x55, 0x83, 0x84, 0x18, 0x08, 0x43, 0x35, 0x33,
150 0x8a, 0xc3, 0x8f, 0xa4
153 static uint8_t pubkey_qy_secp224r1[] = {
154 0xdb, 0x79, 0x19, 0x15, 0x1a, 0xc2, 0x85, 0x87,
155 0xb7, 0x2b, 0xad, 0x7a, 0xb1, 0x80, 0xec, 0x8e,
156 0x95, 0xab, 0x9e, 0x2c, 0x8d, 0x81, 0xd9, 0xb9,
157 0xd7, 0xe2, 0xe3, 0x83
160 static uint8_t sign_secp224r1_r[] = {
161 0x09, 0x09, 0xc9, 0xb9, 0xca, 0xe8, 0xd2, 0x79,
162 0x0e, 0x29, 0xdb, 0x6a, 0xfd, 0xb4, 0x5c, 0x04,
163 0xf5, 0xb0, 0x72, 0xc4, 0xc2, 0x04, 0x10, 0xc7,
164 0xdc, 0x9b, 0x67, 0x72
167 static uint8_t sign_secp224r1_s[] = {
168 0x29, 0x8f, 0x4f, 0xca, 0xe1, 0xfe, 0x27, 0x1d,
169 0xa1, 0xe0, 0x34, 0x5d, 0x11, 0xd0, 0x7a, 0x1f,
170 0xca, 0x43, 0xf5, 0x8a, 0xf4, 0xc1, 0x13, 0xb9,
171 0x09, 0xee, 0xde, 0xa0
174 /** ECDSA SECP224R1 elliptic curve param */
176 struct crypto_testsuite_ecdsa_params ecdsa_param_secp224r1 = {
178 .data = pubkey_qx_secp224r1,
179 .length = sizeof(pubkey_qx_secp224r1),
182 .data = pubkey_qy_secp224r1,
183 .length = sizeof(pubkey_qy_secp224r1),
186 .data = scalar_secp224r1,
187 .length = sizeof(scalar_secp224r1),
190 .data = digest_secp224r1,
191 .length = sizeof(digest_secp224r1),
194 .data = sign_secp224r1_r,
195 .length = sizeof(sign_secp224r1_r),
198 .data = sign_secp224r1_s,
199 .length = sizeof(sign_secp224r1_s),
202 .data = pkey_secp224r1,
203 .length = sizeof(pkey_secp224r1),
205 .curve = RTE_CRYPTO_EC_GROUP_SECP224R1
208 /* SECP256R1 (P-256 NIST) test vectors */
210 static uint8_t digest_secp256r1[] = {
211 0x44, 0xac, 0xf6, 0xb7, 0xe3, 0x6c, 0x13, 0x42,
212 0xc2, 0xc5, 0x89, 0x72, 0x04, 0xfe, 0x09, 0x50,
213 0x4e, 0x1e, 0x2e, 0xfb, 0x1a, 0x90, 0x03, 0x77,
214 0xdb, 0xc4, 0xe7, 0xa6, 0xa1, 0x33, 0xec, 0x56
217 static uint8_t pkey_secp256r1[] = {
218 0x51, 0x9b, 0x42, 0x3d, 0x71, 0x5f, 0x8b, 0x58,
219 0x1f, 0x4f, 0xa8, 0xee, 0x59, 0xf4, 0x77, 0x1a,
220 0x5b, 0x44, 0xc8, 0x13, 0x0b, 0x4e, 0x3e, 0xac,
221 0xca, 0x54, 0xa5, 0x6d, 0xda, 0x72, 0xb4, 0x64
224 static uint8_t scalar_secp256r1[] = {
225 0x94, 0xa1, 0xbb, 0xb1, 0x4b, 0x90, 0x6a, 0x61,
226 0xa2, 0x80, 0xf2, 0x45, 0xf9, 0xe9, 0x3c, 0x7f,
227 0x3b, 0x4a, 0x62, 0x47, 0x82, 0x4f, 0x5d, 0x33,
228 0xb9, 0x67, 0x07, 0x87, 0x64, 0x2a, 0x68, 0xde
231 static uint8_t pubkey_qx_secp256r1[] = {
232 0x1c, 0xcb, 0xe9, 0x1c, 0x07, 0x5f, 0xc7, 0xf4,
233 0xf0, 0x33, 0xbf, 0xa2, 0x48, 0xdb, 0x8f, 0xcc,
234 0xd3, 0x56, 0x5d, 0xe9, 0x4b, 0xbf, 0xb1, 0x2f,
235 0x3c, 0x59, 0xff, 0x46, 0xc2, 0x71, 0xbf, 0x83
238 static uint8_t pubkey_qy_secp256r1[] = {
239 0xce, 0x40, 0x14, 0xc6, 0x88, 0x11, 0xf9, 0xa2,
240 0x1a, 0x1f, 0xdb, 0x2c, 0x0e, 0x61, 0x13, 0xe0,
241 0x6d, 0xb7, 0xca, 0x93, 0xb7, 0x40, 0x4e, 0x78,
242 0xdc, 0x7c, 0xcd, 0x5c, 0xa8, 0x9a, 0x4c, 0xa9
245 static uint8_t sign_secp256r1_r[] = {
246 0xf3, 0xac, 0x80, 0x61, 0xb5, 0x14, 0x79, 0x5b,
247 0x88, 0x43, 0xe3, 0xd6, 0x62, 0x95, 0x27, 0xed,
248 0x2a, 0xfd, 0x6b, 0x1f, 0x6a, 0x55, 0x5a, 0x7a,
249 0xca, 0xbb, 0x5e, 0x6f, 0x79, 0xc8, 0xc2, 0xac
252 static uint8_t sign_secp256r1_s[] = {
253 0x8b, 0xf7, 0x78, 0x19, 0xca, 0x05, 0xa6, 0xb2,
254 0x78, 0x6c, 0x76, 0x26, 0x2b, 0xf7, 0x37, 0x1c,
255 0xef, 0x97, 0xb2, 0x18, 0xe9, 0x6f, 0x17, 0x5a,
256 0x3c, 0xcd, 0xda, 0x2a, 0xcc, 0x05, 0x89, 0x03
259 /** ECDSA SECP256R1 elliptic curve param */
261 struct crypto_testsuite_ecdsa_params ecdsa_param_secp256r1 = {
263 .data = pubkey_qx_secp256r1,
264 .length = sizeof(pubkey_qx_secp256r1),
267 .data = pubkey_qy_secp256r1,
268 .length = sizeof(pubkey_qy_secp256r1),
271 .data = scalar_secp256r1,
272 .length = sizeof(scalar_secp256r1),
275 .data = digest_secp256r1,
276 .length = sizeof(digest_secp256r1),
279 .data = sign_secp256r1_r,
280 .length = sizeof(sign_secp256r1_r),
283 .data = sign_secp256r1_s,
284 .length = sizeof(sign_secp256r1_s),
287 .data = pkey_secp256r1,
288 .length = sizeof(pkey_secp256r1),
290 .curve = RTE_CRYPTO_EC_GROUP_SECP256R1
293 /* SECP384R1 (P-384 NIST) test vectors */
295 static uint8_t digest_secp384r1[] = {
296 0xbb, 0xbd, 0x0a, 0x5f, 0x64, 0x5d, 0x3f, 0xda,
297 0x10, 0xe2, 0x88, 0xd1, 0x72, 0xb2, 0x99, 0x45,
298 0x5f, 0x9d, 0xff, 0x00, 0xe0, 0xfb, 0xc2, 0x83,
299 0x3e, 0x18, 0xcd, 0x01, 0x7d, 0x7f, 0x3e, 0xd1
302 static uint8_t pkey_secp384r1[] = {
303 0xc6, 0x02, 0xbc, 0x74, 0xa3, 0x45, 0x92, 0xc3,
304 0x11, 0xa6, 0x56, 0x96, 0x61, 0xe0, 0x83, 0x2c,
305 0x84, 0xf7, 0x20, 0x72, 0x74, 0x67, 0x6c, 0xc4,
306 0x2a, 0x89, 0xf0, 0x58, 0x16, 0x26, 0x30, 0x18,
307 0x4b, 0x52, 0xf0, 0xd9, 0x9b, 0x85, 0x5a, 0x77,
308 0x83, 0xc9, 0x87, 0x47, 0x6d, 0x7f, 0x9e, 0x6b
311 static uint8_t scalar_secp384r1[] = {
312 0xc1, 0x0b, 0x5c, 0x25, 0xc4, 0x68, 0x3d, 0x0b,
313 0x78, 0x27, 0xd0, 0xd8, 0x86, 0x97, 0xcd, 0xc0,
314 0x93, 0x24, 0x96, 0xb5, 0x29, 0x9b, 0x79, 0x8c,
315 0x0d, 0xd1, 0xe7, 0xaf, 0x6c, 0xc7, 0x57, 0xcc,
316 0xb3, 0x0f, 0xcd, 0x3d, 0x36, 0xea, 0xd4, 0xa8,
317 0x04, 0x87, 0x7e, 0x24, 0xf3, 0xa3, 0x24, 0x43
320 static uint8_t pubkey_qx_secp384r1[] = {
321 0x04, 0x00, 0x19, 0x3b, 0x21, 0xf0, 0x7c, 0xd0,
322 0x59, 0x82, 0x6e, 0x94, 0x53, 0xd3, 0xe9, 0x6d,
323 0xd1, 0x45, 0x04, 0x1c, 0x97, 0xd4, 0x9f, 0xf6,
324 0xb7, 0x04, 0x7f, 0x86, 0xbb, 0x0b, 0x04, 0x39,
325 0xe9, 0x09, 0x27, 0x4c, 0xb9, 0xc2, 0x82, 0xbf,
326 0xab, 0x88, 0x67, 0x4c, 0x07, 0x65, 0xbc, 0x75
329 static uint8_t pubkey_qy_secp384r1[] = {
330 0xf7, 0x0d, 0x89, 0xc5, 0x2a, 0xcb, 0xc7, 0x04,
331 0x68, 0xd2, 0xc5, 0xae, 0x75, 0xc7, 0x6d, 0x7f,
332 0x69, 0xb7, 0x6a, 0xf6, 0x2d, 0xcf, 0x95, 0xe9,
333 0x9e, 0xba, 0x5d, 0xd1, 0x1a, 0xdf, 0x8f, 0x42,
334 0xec, 0x9a, 0x42, 0x5b, 0x0c, 0x5e, 0xc9, 0x8e,
335 0x2f, 0x23, 0x4a, 0x92, 0x6b, 0x82, 0xa1, 0x47
338 static uint8_t sign_secp384r1_r[] = {
339 0xb1, 0x1d, 0xb0, 0x0c, 0xda, 0xf5, 0x32, 0x86,
340 0xd4, 0x48, 0x3f, 0x38, 0xcd, 0x02, 0x78, 0x59,
341 0x48, 0x47, 0x7e, 0xd7, 0xeb, 0xc2, 0xad, 0x60,
342 0x90, 0x54, 0x55, 0x1d, 0xa0, 0xab, 0x03, 0x59,
343 0x97, 0x8c, 0x61, 0x85, 0x17, 0x88, 0xaa, 0x2e,
344 0xc3, 0x26, 0x79, 0x46, 0xd4, 0x40, 0xe8, 0x78
347 static uint8_t sign_secp384r1_s[] = {
348 0x16, 0x00, 0x78, 0x73, 0xc5, 0xb0, 0x60, 0x4c,
349 0xe6, 0x81, 0x12, 0xa8, 0xfe, 0xe9, 0x73, 0xe8,
350 0xe2, 0xb6, 0xe3, 0x31, 0x9c, 0x68, 0x3a, 0x76,
351 0x2f, 0xf5, 0x06, 0x5a, 0x07, 0x65, 0x12, 0xd7,
352 0xc9, 0x8b, 0x27, 0xe7, 0x4b, 0x78, 0x87, 0x67,
353 0x10, 0x48, 0xac, 0x02, 0x7d, 0xf8, 0xcb, 0xf2
356 /** ECDSA SECP384R1 elliptic curve param */
358 struct crypto_testsuite_ecdsa_params ecdsa_param_secp384r1 = {
360 .data = pubkey_qx_secp384r1,
361 .length = sizeof(pubkey_qx_secp384r1),
364 .data = pubkey_qy_secp384r1,
365 .length = sizeof(pubkey_qy_secp384r1),
368 .data = scalar_secp384r1,
369 .length = sizeof(scalar_secp384r1),
372 .data = digest_secp384r1,
373 .length = sizeof(digest_secp384r1),
376 .data = sign_secp384r1_r,
377 .length = sizeof(sign_secp384r1_r),
380 .data = sign_secp384r1_s,
381 .length = sizeof(sign_secp384r1_s),
384 .data = pkey_secp384r1,
385 .length = sizeof(pkey_secp384r1),
387 .curve = RTE_CRYPTO_EC_GROUP_SECP384R1
390 /* SECP521R1 (P-521 NIST) test vectors */
392 static uint8_t digest_secp521r1[] = {
393 0x53, 0xe6, 0x53, 0x7c, 0xb6, 0xea, 0x68, 0xae,
394 0x47, 0xa8, 0x16, 0x11, 0xc2, 0x27, 0x56, 0xd7,
395 0x70, 0xd7, 0xa3, 0x7e, 0x33, 0x6c, 0x3a, 0xf0,
396 0xb0, 0x81, 0x4b, 0x04, 0xfa, 0x39, 0x43, 0x4b
399 static uint8_t pkey_secp521r1[] = {
400 0x01, 0xe8, 0xc0, 0x59, 0x96, 0xb8, 0x5e, 0x6f,
401 0x3f, 0x87, 0x57, 0x12, 0xa0, 0x9c, 0x1b, 0x40,
402 0x67, 0x2b, 0x5e, 0x7a, 0x78, 0xd5, 0x85, 0x2d,
403 0xe0, 0x15, 0x85, 0xc5, 0xfb, 0x99, 0x0b, 0xf3,
404 0x81, 0x2c, 0x32, 0x45, 0x53, 0x4a, 0x71, 0x43,
405 0x89, 0xae, 0x90, 0x14, 0xd6, 0x77, 0xa4, 0x49,
406 0xef, 0xd6, 0x58, 0x25, 0x4e, 0x61, 0x0d, 0xa8,
407 0xe6, 0xca, 0xd3, 0x34, 0x14, 0xb9, 0xd3, 0x3e,
411 static uint8_t scalar_secp521r1[] = {
412 0x00, 0xdc, 0x8d, 0xaa, 0xac, 0xdd, 0xb8, 0xfd,
413 0x2f, 0xf5, 0xc3, 0x4a, 0x5c, 0xe1, 0x83, 0xa4,
414 0x22, 0x61, 0xad, 0x3c, 0x64, 0xdb, 0xfc, 0x09,
415 0x5e, 0x58, 0x92, 0x43, 0x64, 0xdc, 0x47, 0xea,
416 0x1c, 0x05, 0xe2, 0x59, 0x9a, 0xae, 0x91, 0x7c,
417 0x2c, 0x95, 0xf4, 0x7d, 0x6b, 0xb3, 0x7d, 0xa0,
418 0x08, 0xaf, 0x9f, 0x55, 0x73, 0x0d, 0xdb, 0xe4,
419 0xd8, 0xde, 0xd2, 0x4f, 0x9e, 0x8d, 0xaa, 0x46,
423 static uint8_t pubkey_qx_secp521r1[] = {
424 0x00, 0x7d, 0x04, 0x2c, 0xa1, 0x94, 0x08, 0x52,
425 0x4e, 0x68, 0xb9, 0x81, 0xf1, 0x41, 0x93, 0x51,
426 0xe3, 0xb8, 0x47, 0x36, 0xc7, 0x7f, 0xe5, 0x8f,
427 0xee, 0x7d, 0x11, 0x31, 0x7d, 0xf2, 0xe8, 0x50,
428 0xd9, 0x60, 0xc7, 0xdd, 0x10, 0xd1, 0x0b, 0xa7,
429 0x14, 0xc8, 0xa6, 0x09, 0xd1, 0x63, 0x50, 0x2b,
430 0x79, 0xd6, 0x82, 0xe8, 0xbb, 0xec, 0xd4, 0xf5,
431 0x25, 0x91, 0xd2, 0x74, 0x85, 0x33, 0xe4, 0x5a,
435 static uint8_t pubkey_qy_secp521r1[] = {
436 0x01, 0x97, 0xac, 0x64, 0x16, 0x11, 0x1c, 0xcf,
437 0x98, 0x7d, 0x29, 0x04, 0x59, 0xeb, 0xc8, 0xad,
438 0x9e, 0xc5, 0x6e, 0x49, 0x05, 0x9c, 0x99, 0x21,
439 0x55, 0x53, 0x9a, 0x36, 0xa6, 0x26, 0x63, 0x1f,
440 0x4a, 0x2d, 0x89, 0x16, 0x4b, 0x98, 0x51, 0x54,
441 0xf2, 0xdd, 0xdc, 0x02, 0x81, 0xee, 0x5b, 0x51,
442 0x78, 0x27, 0x1f, 0x3a, 0x76, 0xa0, 0x91, 0x4c,
443 0x3f, 0xcd, 0x1f, 0x97, 0xbe, 0x8e, 0x83, 0x76,
447 static uint8_t sign_secp521r1_r[] = {
448 0x00, 0x9d, 0xd1, 0xf2, 0xa7, 0x16, 0x84, 0x3e,
449 0xed, 0xec, 0x7a, 0x66, 0x45, 0xac, 0x83, 0x4d,
450 0x43, 0x36, 0xe7, 0xb1, 0x8e, 0x35, 0x70, 0x1f,
451 0x06, 0xca, 0xe9, 0xd6, 0xb2, 0x90, 0xd4, 0x14,
452 0x91, 0x42, 0x47, 0x35, 0xf3, 0xb5, 0x7e, 0x82,
453 0x9a, 0xd5, 0xde, 0x05, 0x5e, 0xae, 0xef, 0x17,
454 0x78, 0xf0, 0x51, 0xc1, 0xee, 0x15, 0x2b, 0xf2,
455 0x13, 0x1a, 0x08, 0x1e, 0x53, 0xdf, 0x2a, 0x56,
459 static uint8_t sign_secp521r1_s[] = {
460 0x00, 0x21, 0x48, 0xe8, 0x42, 0x8d, 0x70, 0xa7,
461 0x2b, 0xc9, 0xfa, 0x98, 0x6c, 0x38, 0xc2, 0xc9,
462 0x7d, 0xed, 0xa0, 0x42, 0x0f, 0x22, 0x2f, 0x9d,
463 0xc9, 0x9d, 0x32, 0xc0, 0xac, 0xba, 0x69, 0x9d,
464 0xc7, 0xba, 0x0a, 0x2b, 0x79, 0xce, 0x59, 0x99,
465 0xff, 0x61, 0xbd, 0x0b, 0x23, 0x3c, 0x74, 0x4a,
466 0x89, 0x3b, 0xc1, 0x05, 0xbc, 0xa5, 0xc2, 0x35,
467 0x42, 0x3e, 0x53, 0x16, 0x12, 0xda, 0x65, 0xd7,
471 /** ECDSA SECP521R1 elliptic curve param */
473 struct crypto_testsuite_ecdsa_params ecdsa_param_secp521r1 = {
475 .data = pubkey_qx_secp521r1,
476 .length = sizeof(pubkey_qx_secp521r1),
479 .data = pubkey_qy_secp521r1,
480 .length = sizeof(pubkey_qy_secp521r1),
483 .data = scalar_secp521r1,
484 .length = sizeof(scalar_secp521r1),
487 .data = digest_secp521r1,
488 .length = sizeof(digest_secp521r1),
491 .data = sign_secp521r1_r,
492 .length = sizeof(sign_secp521r1_r),
495 .data = sign_secp521r1_s,
496 .length = sizeof(sign_secp521r1_s),
499 .data = pkey_secp521r1,
500 .length = sizeof(pkey_secp521r1),
502 .curve = RTE_CRYPTO_EC_GROUP_SECP521R1
505 #endif /* __TEST_CRYPTODEV_ECDSA_TEST_VECTORS_H__ */