xref: /dpdk/app/test/test_cryptodev_ecdh_test_vectors.h (revision 2fba5232e77ea72993d282c170bb7be0a48b8110)
131dd9ddfSGowrishankar Muthukrishnan /* SPDX-License-Identifier: BSD-3-Clause
231dd9ddfSGowrishankar Muthukrishnan  * Copyright (C) 2023 Marvell International Ltd.
331dd9ddfSGowrishankar Muthukrishnan  */
431dd9ddfSGowrishankar Muthukrishnan 
531dd9ddfSGowrishankar Muthukrishnan #ifndef __TEST_CRYPTODEV_ECDH_TEST_VECTORS_H__
631dd9ddfSGowrishankar Muthukrishnan #define __TEST_CRYPTODEV_ECDH_TEST_VECTORS_H__
731dd9ddfSGowrishankar Muthukrishnan 
831dd9ddfSGowrishankar Muthukrishnan #include "rte_crypto_asym.h"
931dd9ddfSGowrishankar Muthukrishnan 
1031dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params {
1131dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param pubkey_qA_x;
1231dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param pubkey_qA_y;
1331dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param pkey_A;
1431dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param pubkey_qB_x;
1531dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param pubkey_qB_y;
1631dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param pkey_B;
1731dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param secret_x;
1831dd9ddfSGowrishankar Muthukrishnan 	rte_crypto_param secret_y;
1931dd9ddfSGowrishankar Muthukrishnan 	int curve;
2031dd9ddfSGowrishankar Muthukrishnan };
2131dd9ddfSGowrishankar Muthukrishnan 
2231dd9ddfSGowrishankar Muthukrishnan /*
2331dd9ddfSGowrishankar Muthukrishnan  * Test vector reference:
2431dd9ddfSGowrishankar Muthukrishnan  * https://datatracker.ietf.org/doc/html/rfc5114.html
2531dd9ddfSGowrishankar Muthukrishnan  * Appendix A.
2631dd9ddfSGowrishankar Muthukrishnan  */
2731dd9ddfSGowrishankar Muthukrishnan 
2831dd9ddfSGowrishankar Muthukrishnan /** SECP192R1 (P-192 NIST) test vector */
2931dd9ddfSGowrishankar Muthukrishnan 
3031dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp192r1[] = {
3131dd9ddfSGowrishankar Muthukrishnan 	0x32, 0x3F, 0xA3, 0x16, 0x9D, 0x8E, 0x9C, 0x65,
3231dd9ddfSGowrishankar Muthukrishnan 	0x93, 0xF5, 0x94, 0x76, 0xBC, 0x14, 0x20, 0x00,
3331dd9ddfSGowrishankar Muthukrishnan 	0xAB, 0x5B, 0xE0, 0xE2, 0x49, 0xC4, 0x34, 0x26
3431dd9ddfSGowrishankar Muthukrishnan };
3531dd9ddfSGowrishankar Muthukrishnan 
3631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp192r1[] = {
3731dd9ddfSGowrishankar Muthukrishnan 	0xCD, 0x46, 0x48, 0x9E, 0xCF, 0xD6, 0xC1, 0x05,
3831dd9ddfSGowrishankar Muthukrishnan 	0xE7, 0xB3, 0xD3, 0x25, 0x66, 0xE2, 0xB1, 0x22,
3931dd9ddfSGowrishankar Muthukrishnan 	0xE2, 0x49, 0xAB, 0xAA, 0xDD, 0x87, 0x06, 0x12
4031dd9ddfSGowrishankar Muthukrishnan };
4131dd9ddfSGowrishankar Muthukrishnan 
4231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp192r1[] = {
4331dd9ddfSGowrishankar Muthukrishnan 	0x68, 0x88, 0x7B, 0x48, 0x77, 0xDF, 0x51, 0xDD,
4431dd9ddfSGowrishankar Muthukrishnan 	0x4D, 0xC3, 0xD6, 0xFD, 0x11, 0xF0, 0xA2, 0x6F,
4531dd9ddfSGowrishankar Muthukrishnan 	0x8F, 0xD3, 0x84, 0x43, 0x17, 0x91, 0x6E, 0x9A
4631dd9ddfSGowrishankar Muthukrishnan };
4731dd9ddfSGowrishankar Muthukrishnan 
4831dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp192r1[] = {
4931dd9ddfSGowrishankar Muthukrishnan 	0x63, 0x1F, 0x95, 0xBB, 0x4A, 0x67, 0x63, 0x2C,
5031dd9ddfSGowrishankar Muthukrishnan 	0x9C, 0x47, 0x6E, 0xEE, 0x9A, 0xB6, 0x95, 0xAB,
5131dd9ddfSGowrishankar Muthukrishnan 	0x24, 0x0A, 0x04, 0x99, 0x30, 0x7F, 0xCF, 0x62
5231dd9ddfSGowrishankar Muthukrishnan };
5331dd9ddfSGowrishankar Muthukrishnan 
5431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp192r1[] = {
5531dd9ddfSGowrishankar Muthukrishnan 	0x51, 0x9A, 0x12, 0x16, 0x80, 0xE0, 0x04, 0x54,
5631dd9ddfSGowrishankar Muthukrishnan 	0x66, 0xBA, 0x21, 0xDF, 0x2E, 0xEE, 0x47, 0xF5,
5731dd9ddfSGowrishankar Muthukrishnan 	0x97, 0x3B, 0x50, 0x05, 0x77, 0xEF, 0x13, 0xD5
5831dd9ddfSGowrishankar Muthukrishnan };
5931dd9ddfSGowrishankar Muthukrishnan 
6031dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp192r1[] = {
6131dd9ddfSGowrishankar Muthukrishnan 	0xFF, 0x61, 0x3A, 0xB4, 0xD6, 0x4C, 0xEE, 0x3A,
6231dd9ddfSGowrishankar Muthukrishnan 	0x20, 0x87, 0x5B, 0xDB, 0x10, 0xF9, 0x53, 0xF6,
6331dd9ddfSGowrishankar Muthukrishnan 	0xB3, 0x0C, 0xA0, 0x72, 0xC6, 0x0A, 0xA5, 0x7F
6431dd9ddfSGowrishankar Muthukrishnan };
6531dd9ddfSGowrishankar Muthukrishnan 
6631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp192r1[] = {
6731dd9ddfSGowrishankar Muthukrishnan 	0xAD, 0x42, 0x01, 0x82, 0x63, 0x3F, 0x85, 0x26,
6831dd9ddfSGowrishankar Muthukrishnan 	0xBF, 0xE9, 0x54, 0xAC, 0xDA, 0x37, 0x6F, 0x05,
6931dd9ddfSGowrishankar Muthukrishnan 	0xE5, 0xFF, 0x4F, 0x83, 0x7F, 0x54, 0xFE, 0xBE
7031dd9ddfSGowrishankar Muthukrishnan };
7131dd9ddfSGowrishankar Muthukrishnan 
7231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp192r1[] = {
7331dd9ddfSGowrishankar Muthukrishnan 	0x43, 0x71, 0x54, 0x5E, 0xD7, 0x72, 0xA5, 0x97,
7431dd9ddfSGowrishankar Muthukrishnan 	0x41, 0xD0, 0xED, 0xA3, 0x2C, 0x67, 0x11, 0x12,
7531dd9ddfSGowrishankar Muthukrishnan 	0xB7, 0xFD, 0xDD, 0x51, 0x46, 0x1F, 0xCF, 0x32
7631dd9ddfSGowrishankar Muthukrishnan };
7731dd9ddfSGowrishankar Muthukrishnan 
7831dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP192R1 elliptic curve param */
7931dd9ddfSGowrishankar Muthukrishnan 
8031dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp192r1 = {
8131dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_x = {
8231dd9ddfSGowrishankar Muthukrishnan 		.data = x_qA_secp192r1,
8331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qA_secp192r1),
8431dd9ddfSGowrishankar Muthukrishnan 	},
8531dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_y = {
8631dd9ddfSGowrishankar Muthukrishnan 		.data = y_qA_secp192r1,
8731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qA_secp192r1),
8831dd9ddfSGowrishankar Muthukrishnan 	},
8931dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_x = {
9031dd9ddfSGowrishankar Muthukrishnan 		.data = x_qB_secp192r1,
9131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qB_secp192r1),
9231dd9ddfSGowrishankar Muthukrishnan 	},
9331dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_y = {
9431dd9ddfSGowrishankar Muthukrishnan 		.data = y_qB_secp192r1,
9531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qB_secp192r1),
9631dd9ddfSGowrishankar Muthukrishnan 	},
9731dd9ddfSGowrishankar Muthukrishnan 	.pkey_A = {
9831dd9ddfSGowrishankar Muthukrishnan 		.data = dA_secp192r1,
9931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dA_secp192r1),
10031dd9ddfSGowrishankar Muthukrishnan 	},
10131dd9ddfSGowrishankar Muthukrishnan 	.pkey_B = {
10231dd9ddfSGowrishankar Muthukrishnan 		.data = dB_secp192r1,
10331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dB_secp192r1),
10431dd9ddfSGowrishankar Muthukrishnan 	},
10531dd9ddfSGowrishankar Muthukrishnan 	.secret_x = {
10631dd9ddfSGowrishankar Muthukrishnan 		.data = x_Z_secp192r1,
10731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_Z_secp192r1),
10831dd9ddfSGowrishankar Muthukrishnan 	},
10931dd9ddfSGowrishankar Muthukrishnan 	.secret_y = {
11031dd9ddfSGowrishankar Muthukrishnan 		.data = y_Z_secp192r1,
11131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_Z_secp192r1),
11231dd9ddfSGowrishankar Muthukrishnan 	},
11331dd9ddfSGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_SECP192R1
11431dd9ddfSGowrishankar Muthukrishnan };
11531dd9ddfSGowrishankar Muthukrishnan 
11631dd9ddfSGowrishankar Muthukrishnan /** SECP224R1 (P-224 NIST) test vector */
11731dd9ddfSGowrishankar Muthukrishnan 
11831dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp224r1[] = {
11931dd9ddfSGowrishankar Muthukrishnan 	0xB5, 0x58, 0xEB, 0x6C, 0x28, 0x8D, 0xA7, 0x07,
12031dd9ddfSGowrishankar Muthukrishnan 	0xBB, 0xB4, 0xF8, 0xFB, 0xAE, 0x2A, 0xB9, 0xE9,
12131dd9ddfSGowrishankar Muthukrishnan 	0xCB, 0x62, 0xE3, 0xBC, 0x5C, 0x75, 0x73, 0xE2,
12231dd9ddfSGowrishankar Muthukrishnan 	0x2E, 0x26, 0xD3, 0x7F
12331dd9ddfSGowrishankar Muthukrishnan };
12431dd9ddfSGowrishankar Muthukrishnan 
12531dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp224r1[] = {
12631dd9ddfSGowrishankar Muthukrishnan 	0x49, 0xDF, 0xEF, 0x30, 0x9F, 0x81, 0x48, 0x8C,
12731dd9ddfSGowrishankar Muthukrishnan 	0x30, 0x4C, 0xFF, 0x5A, 0xB3, 0xEE, 0x5A, 0x21,
12831dd9ddfSGowrishankar Muthukrishnan 	0x54, 0x36, 0x7D, 0xC7, 0x83, 0x31, 0x50, 0xE0,
12931dd9ddfSGowrishankar Muthukrishnan 	0xA5, 0x1F, 0x3E, 0xEB
13031dd9ddfSGowrishankar Muthukrishnan };
13131dd9ddfSGowrishankar Muthukrishnan 
13231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp224r1[] = {
13331dd9ddfSGowrishankar Muthukrishnan 	0x4F, 0x2B, 0x5E, 0xE4, 0x57, 0x62, 0xC4, 0xF6,
13431dd9ddfSGowrishankar Muthukrishnan 	0x54, 0xC1, 0xA0, 0xC6, 0x7F, 0x54, 0xCF, 0x88,
13531dd9ddfSGowrishankar Muthukrishnan 	0xB0, 0x16, 0xB5, 0x1B, 0xCE, 0x3D, 0x7C, 0x22,
13631dd9ddfSGowrishankar Muthukrishnan 	0x8D, 0x57, 0xAD, 0xB4,
13731dd9ddfSGowrishankar Muthukrishnan };
13831dd9ddfSGowrishankar Muthukrishnan 
13931dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp224r1[] = {
14031dd9ddfSGowrishankar Muthukrishnan 	0xAC, 0x3B, 0x1A, 0xDD, 0x3D, 0x97, 0x70, 0xE6,
14131dd9ddfSGowrishankar Muthukrishnan 	0xF6, 0xA7, 0x08, 0xEE, 0x9F, 0x3B, 0x8E, 0x0A,
14231dd9ddfSGowrishankar Muthukrishnan 	0xB3, 0xB4, 0x80, 0xE9, 0xF2, 0x7F, 0x85, 0xC8,
14331dd9ddfSGowrishankar Muthukrishnan 	0x8B, 0x5E, 0x6D, 0x18,
14431dd9ddfSGowrishankar Muthukrishnan };
14531dd9ddfSGowrishankar Muthukrishnan 
14631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp224r1[] = {
14731dd9ddfSGowrishankar Muthukrishnan 	0x6B, 0x3A, 0xC9, 0x6A, 0x8D, 0x0C, 0xDE, 0x6A,
14831dd9ddfSGowrishankar Muthukrishnan 	0x55, 0x99, 0xBE, 0x80, 0x32, 0xED, 0xF1, 0x0C,
14931dd9ddfSGowrishankar Muthukrishnan 	0x16, 0x2D, 0x0A, 0x8A, 0xD2, 0x19, 0x50, 0x6D,
15031dd9ddfSGowrishankar Muthukrishnan 	0xCD, 0x42, 0xA2, 0x07,
15131dd9ddfSGowrishankar Muthukrishnan };
15231dd9ddfSGowrishankar Muthukrishnan 
15331dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp224r1[] = {
15431dd9ddfSGowrishankar Muthukrishnan 	0xD4, 0x91, 0xBE, 0x99, 0xC2, 0x13, 0xA7, 0xD1,
15531dd9ddfSGowrishankar Muthukrishnan 	0xCA, 0x37, 0x06, 0xDE, 0xBF, 0xE3, 0x05, 0xF3,
15631dd9ddfSGowrishankar Muthukrishnan 	0x61, 0xAF, 0xCB, 0xB3, 0x3E, 0x26, 0x09, 0xC8,
15731dd9ddfSGowrishankar Muthukrishnan 	0xB1, 0x61, 0x8A, 0xD5
15831dd9ddfSGowrishankar Muthukrishnan };
15931dd9ddfSGowrishankar Muthukrishnan 
16031dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp224r1[] = {
16131dd9ddfSGowrishankar Muthukrishnan 	0x52, 0x27, 0x2F, 0x50, 0xF4, 0x6F, 0x4E, 0xDC,
16231dd9ddfSGowrishankar Muthukrishnan 	0x91, 0x51, 0x56, 0x90, 0x92, 0xF4, 0x6D, 0xF2,
16331dd9ddfSGowrishankar Muthukrishnan 	0xD9, 0x6E, 0xCC, 0x3B, 0x6D, 0xC1, 0x71, 0x4A,
16431dd9ddfSGowrishankar Muthukrishnan 	0x4E, 0xA9, 0x49, 0xFA
16531dd9ddfSGowrishankar Muthukrishnan };
16631dd9ddfSGowrishankar Muthukrishnan 
16731dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp224r1[] = {
16831dd9ddfSGowrishankar Muthukrishnan 	0x5F, 0x30, 0xC6, 0xAA, 0x36, 0xDD, 0xC4, 0x03,
16931dd9ddfSGowrishankar Muthukrishnan 	0xC0, 0xAC, 0xB7, 0x12, 0xBB, 0x88, 0xF1, 0x76,
17031dd9ddfSGowrishankar Muthukrishnan 	0x3C, 0x30, 0x46, 0xF6, 0xD9, 0x19, 0xBD, 0x9C,
17131dd9ddfSGowrishankar Muthukrishnan 	0x52, 0x43, 0x22, 0xBF
17231dd9ddfSGowrishankar Muthukrishnan };
17331dd9ddfSGowrishankar Muthukrishnan 
17431dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP224R1 elliptic curve param */
17531dd9ddfSGowrishankar Muthukrishnan 
17631dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp224r1 = {
17731dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_x = {
17831dd9ddfSGowrishankar Muthukrishnan 		.data = x_qA_secp224r1,
17931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qA_secp224r1),
18031dd9ddfSGowrishankar Muthukrishnan 	},
18131dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_y = {
18231dd9ddfSGowrishankar Muthukrishnan 		.data = y_qA_secp224r1,
18331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qA_secp224r1),
18431dd9ddfSGowrishankar Muthukrishnan 	},
18531dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_x = {
18631dd9ddfSGowrishankar Muthukrishnan 		.data = x_qB_secp224r1,
18731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qB_secp224r1),
18831dd9ddfSGowrishankar Muthukrishnan 	},
18931dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_y = {
19031dd9ddfSGowrishankar Muthukrishnan 		.data = y_qB_secp224r1,
19131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qB_secp224r1),
19231dd9ddfSGowrishankar Muthukrishnan 	},
19331dd9ddfSGowrishankar Muthukrishnan 	.pkey_A = {
19431dd9ddfSGowrishankar Muthukrishnan 		.data = dA_secp224r1,
19531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dA_secp224r1),
19631dd9ddfSGowrishankar Muthukrishnan 	},
19731dd9ddfSGowrishankar Muthukrishnan 	.pkey_B = {
19831dd9ddfSGowrishankar Muthukrishnan 		.data = dB_secp224r1,
19931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dB_secp224r1),
20031dd9ddfSGowrishankar Muthukrishnan 	},
20131dd9ddfSGowrishankar Muthukrishnan 	.secret_x = {
20231dd9ddfSGowrishankar Muthukrishnan 		.data = x_Z_secp224r1,
20331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_Z_secp224r1),
20431dd9ddfSGowrishankar Muthukrishnan 	},
20531dd9ddfSGowrishankar Muthukrishnan 	.secret_y = {
20631dd9ddfSGowrishankar Muthukrishnan 		.data = y_Z_secp224r1,
20731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_Z_secp224r1),
20831dd9ddfSGowrishankar Muthukrishnan 	},
20931dd9ddfSGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_SECP224R1
21031dd9ddfSGowrishankar Muthukrishnan };
21131dd9ddfSGowrishankar Muthukrishnan 
21231dd9ddfSGowrishankar Muthukrishnan /** SECP256R1 (P-256 NIST) test vector */
21331dd9ddfSGowrishankar Muthukrishnan 
21431dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp256r1[] = {
21531dd9ddfSGowrishankar Muthukrishnan 	0x81, 0x42, 0x64, 0x14, 0x5F, 0x2F, 0x56, 0xF2,
21631dd9ddfSGowrishankar Muthukrishnan 	0xE9, 0x6A, 0x8E, 0x33, 0x7A, 0x12, 0x84, 0x99,
21731dd9ddfSGowrishankar Muthukrishnan 	0x3F, 0xAF, 0x43, 0x2A, 0x5A, 0xBC, 0xE5, 0x9E,
21831dd9ddfSGowrishankar Muthukrishnan 	0x86, 0x7B, 0x72, 0x91, 0xD5, 0x07, 0xA3, 0xAF
21931dd9ddfSGowrishankar Muthukrishnan };
22031dd9ddfSGowrishankar Muthukrishnan 
22131dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp256r1[] = {
22231dd9ddfSGowrishankar Muthukrishnan 	0x2A, 0xF5, 0x02, 0xF3, 0xBE, 0x89, 0x52, 0xF2,
22331dd9ddfSGowrishankar Muthukrishnan 	0xC9, 0xB5, 0xA8, 0xD4, 0x16, 0x0D, 0x09, 0xE9,
22431dd9ddfSGowrishankar Muthukrishnan 	0x71, 0x65, 0xBE, 0x50, 0xBC, 0x42, 0xAE, 0x4A,
22531dd9ddfSGowrishankar Muthukrishnan 	0x5E, 0x8D, 0x3B, 0x4B, 0xA8, 0x3A, 0xEB, 0x15
22631dd9ddfSGowrishankar Muthukrishnan };
22731dd9ddfSGowrishankar Muthukrishnan 
22831dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp256r1[] = {
22931dd9ddfSGowrishankar Muthukrishnan 	0xEB, 0x0F, 0xAF, 0x4C, 0xA9, 0x86, 0xC4, 0xD3,
23031dd9ddfSGowrishankar Muthukrishnan 	0x86, 0x81, 0xA0, 0xF9, 0x87, 0x2D, 0x79, 0xD5,
23131dd9ddfSGowrishankar Muthukrishnan 	0x67, 0x95, 0xBD, 0x4B, 0xFF, 0x6E, 0x6D, 0xE3,
23231dd9ddfSGowrishankar Muthukrishnan 	0xC0, 0xF5, 0x01, 0x5E, 0xCE, 0x5E, 0xFD, 0x85
23331dd9ddfSGowrishankar Muthukrishnan };
23431dd9ddfSGowrishankar Muthukrishnan 
23531dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp256r1[] = {
23631dd9ddfSGowrishankar Muthukrishnan 	0x2C, 0xE1, 0x78, 0x8E, 0xC1, 0x97, 0xE0, 0x96,
23731dd9ddfSGowrishankar Muthukrishnan 	0xDB, 0x95, 0xA2, 0x00, 0xCC, 0x0A, 0xB2, 0x6A,
23831dd9ddfSGowrishankar Muthukrishnan 	0x19, 0xCE, 0x6B, 0xCC, 0xAD, 0x56, 0x2B, 0x8E,
23931dd9ddfSGowrishankar Muthukrishnan 	0xEE, 0x1B, 0x59, 0x37, 0x61, 0xCF, 0x7F, 0x41
24031dd9ddfSGowrishankar Muthukrishnan };
24131dd9ddfSGowrishankar Muthukrishnan 
24231dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp256r1[] = {
24331dd9ddfSGowrishankar Muthukrishnan 	0xB1, 0x20, 0xDE, 0x4A, 0xA3, 0x64, 0x92, 0x79,
24431dd9ddfSGowrishankar Muthukrishnan 	0x53, 0x46, 0xE8, 0xDE, 0x6C, 0x2C, 0x86, 0x46,
24531dd9ddfSGowrishankar Muthukrishnan 	0xAE, 0x06, 0xAA, 0xEA, 0x27, 0x9F, 0xA7, 0x75,
24631dd9ddfSGowrishankar Muthukrishnan 	0xB3, 0xAB, 0x07, 0x15, 0xF6, 0xCE, 0x51, 0xB0
24731dd9ddfSGowrishankar Muthukrishnan };
24831dd9ddfSGowrishankar Muthukrishnan 
24931dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp256r1[] = {
25031dd9ddfSGowrishankar Muthukrishnan 	0x9F, 0x1B, 0x7E, 0xEC, 0xE2, 0x0D, 0x7B, 0x5E,
25131dd9ddfSGowrishankar Muthukrishnan 	0xD8, 0xEC, 0x68, 0x5F, 0xA3, 0xF0, 0x71, 0xD8,
25231dd9ddfSGowrishankar Muthukrishnan 	0x37, 0x27, 0x02, 0x70, 0x92, 0xA8, 0x41, 0x13,
25331dd9ddfSGowrishankar Muthukrishnan 	0x85, 0xC3, 0x4D, 0xDE, 0x57, 0x08, 0xB2, 0xB6
25431dd9ddfSGowrishankar Muthukrishnan };
25531dd9ddfSGowrishankar Muthukrishnan 
25631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp256r1[] = {
25731dd9ddfSGowrishankar Muthukrishnan 	0xDD, 0x0F, 0x53, 0x96, 0x21, 0x9D, 0x1E, 0xA3,
25831dd9ddfSGowrishankar Muthukrishnan 	0x93, 0x31, 0x04, 0x12, 0xD1, 0x9A, 0x08, 0xF1,
25931dd9ddfSGowrishankar Muthukrishnan 	0xF5, 0x81, 0x1E, 0x9D, 0xC8, 0xEC, 0x8E, 0xEA,
26031dd9ddfSGowrishankar Muthukrishnan 	0x7F, 0x80, 0xD2, 0x1C, 0x82, 0x0C, 0x27, 0x88
26131dd9ddfSGowrishankar Muthukrishnan };
26231dd9ddfSGowrishankar Muthukrishnan 
26331dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp256r1[] = {
26431dd9ddfSGowrishankar Muthukrishnan 	0x03, 0x57, 0xDC, 0xCD, 0x4C, 0x80, 0x4D, 0x0D,
26531dd9ddfSGowrishankar Muthukrishnan 	0x8D, 0x33, 0xAA, 0x42, 0xB8, 0x48, 0x83, 0x4A,
26631dd9ddfSGowrishankar Muthukrishnan 	0xA5, 0x60, 0x5F, 0x9A, 0xB0, 0xD3, 0x72, 0x39,
26731dd9ddfSGowrishankar Muthukrishnan 	0xA1, 0x15, 0xBB, 0xB6, 0x47, 0x93, 0x6F, 0x50
26831dd9ddfSGowrishankar Muthukrishnan };
26931dd9ddfSGowrishankar Muthukrishnan 
27031dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP256R1 elliptic curve param */
27131dd9ddfSGowrishankar Muthukrishnan 
27231dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp256r1 = {
27331dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_x = {
27431dd9ddfSGowrishankar Muthukrishnan 		.data = x_qA_secp256r1,
27531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qA_secp256r1),
27631dd9ddfSGowrishankar Muthukrishnan 	},
27731dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_y = {
27831dd9ddfSGowrishankar Muthukrishnan 		.data = y_qA_secp256r1,
27931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qA_secp256r1),
28031dd9ddfSGowrishankar Muthukrishnan 	},
28131dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_x = {
28231dd9ddfSGowrishankar Muthukrishnan 		.data = x_qB_secp256r1,
28331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qB_secp256r1),
28431dd9ddfSGowrishankar Muthukrishnan 	},
28531dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_y = {
28631dd9ddfSGowrishankar Muthukrishnan 		.data = y_qB_secp256r1,
28731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qB_secp256r1),
28831dd9ddfSGowrishankar Muthukrishnan 	},
28931dd9ddfSGowrishankar Muthukrishnan 	.pkey_A = {
29031dd9ddfSGowrishankar Muthukrishnan 		.data = dA_secp256r1,
29131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dA_secp256r1),
29231dd9ddfSGowrishankar Muthukrishnan 	},
29331dd9ddfSGowrishankar Muthukrishnan 	.pkey_B = {
29431dd9ddfSGowrishankar Muthukrishnan 		.data = dB_secp256r1,
29531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dB_secp256r1),
29631dd9ddfSGowrishankar Muthukrishnan 	},
29731dd9ddfSGowrishankar Muthukrishnan 	.secret_x = {
29831dd9ddfSGowrishankar Muthukrishnan 		.data = x_Z_secp256r1,
29931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_Z_secp256r1),
30031dd9ddfSGowrishankar Muthukrishnan 	},
30131dd9ddfSGowrishankar Muthukrishnan 	.secret_y = {
30231dd9ddfSGowrishankar Muthukrishnan 		.data = y_Z_secp256r1,
30331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_Z_secp256r1),
30431dd9ddfSGowrishankar Muthukrishnan 	},
30531dd9ddfSGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_SECP256R1
30631dd9ddfSGowrishankar Muthukrishnan };
30731dd9ddfSGowrishankar Muthukrishnan 
30831dd9ddfSGowrishankar Muthukrishnan /** SECP384R1 (P-384 NIST) test vector */
30931dd9ddfSGowrishankar Muthukrishnan 
31031dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp384r1[] = {
31131dd9ddfSGowrishankar Muthukrishnan 	0xD2, 0x73, 0x35, 0xEA, 0x71, 0x66, 0x4A, 0xF2,
31231dd9ddfSGowrishankar Muthukrishnan 	0x44, 0xDD, 0x14, 0xE9, 0xFD, 0x12, 0x60, 0x71,
31331dd9ddfSGowrishankar Muthukrishnan 	0x5D, 0xFD, 0x8A, 0x79, 0x65, 0x57, 0x1C, 0x48,
31431dd9ddfSGowrishankar Muthukrishnan 	0xD7, 0x09, 0xEE, 0x7A, 0x79, 0x62, 0xA1, 0x56,
31531dd9ddfSGowrishankar Muthukrishnan 	0xD7, 0x06, 0xA9, 0x0C, 0xBC, 0xB5, 0xDF, 0x29,
31631dd9ddfSGowrishankar Muthukrishnan 	0x86, 0xF0, 0x5F, 0xEA, 0xDB, 0x93, 0x76, 0xF1
31731dd9ddfSGowrishankar Muthukrishnan };
31831dd9ddfSGowrishankar Muthukrishnan 
31931dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp384r1[] = {
32031dd9ddfSGowrishankar Muthukrishnan 	0x79, 0x31, 0x48, 0xF1, 0x78, 0x76, 0x34, 0xD5,
32131dd9ddfSGowrishankar Muthukrishnan 	0xDA, 0x4C, 0x6D, 0x90, 0x74, 0x41, 0x7D, 0x05,
32231dd9ddfSGowrishankar Muthukrishnan 	0xE0, 0x57, 0xAB, 0x62, 0xF8, 0x20, 0x54, 0xD1,
32331dd9ddfSGowrishankar Muthukrishnan 	0x0E, 0xE6, 0xB0, 0x40, 0x3D, 0x62, 0x79, 0x54,
32431dd9ddfSGowrishankar Muthukrishnan 	0x7E, 0x6A, 0x8E, 0xA9, 0xD1, 0xFD, 0x77, 0x42,
32531dd9ddfSGowrishankar Muthukrishnan 	0x7D, 0x01, 0x6F, 0xE2, 0x7A, 0x8B, 0x8C, 0x66
32631dd9ddfSGowrishankar Muthukrishnan };
32731dd9ddfSGowrishankar Muthukrishnan 
32831dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp384r1[] = {
32931dd9ddfSGowrishankar Muthukrishnan 	0xC6, 0xC4, 0x12, 0x94, 0x33, 0x1D, 0x23, 0xE6,
33031dd9ddfSGowrishankar Muthukrishnan 	0xF4, 0x80, 0xF4, 0xFB, 0x4C, 0xD4, 0x05, 0x04,
33131dd9ddfSGowrishankar Muthukrishnan 	0xC9, 0x47, 0x39, 0x2E, 0x94, 0xF4, 0xC3, 0xF0,
33231dd9ddfSGowrishankar Muthukrishnan 	0x6B, 0x8F, 0x39, 0x8B, 0xB2, 0x9E, 0x42, 0x36,
33331dd9ddfSGowrishankar Muthukrishnan 	0x8F, 0x7A, 0x68, 0x59, 0x23, 0xDE, 0x3B, 0x67,
33431dd9ddfSGowrishankar Muthukrishnan 	0xBA, 0xCE, 0xD2, 0x14, 0xA1, 0xA1, 0xD1, 0x28
33531dd9ddfSGowrishankar Muthukrishnan };
33631dd9ddfSGowrishankar Muthukrishnan 
33731dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp384r1[] = {
33831dd9ddfSGowrishankar Muthukrishnan 	0x52, 0xD1, 0x79, 0x1F, 0xDB, 0x4B, 0x70, 0xF8,
33931dd9ddfSGowrishankar Muthukrishnan 	0x9C, 0x0F, 0x00, 0xD4, 0x56, 0xC2, 0xF7, 0x02,
34031dd9ddfSGowrishankar Muthukrishnan 	0x3B, 0x61, 0x25, 0x26, 0x2C, 0x36, 0xA7, 0xDF,
34131dd9ddfSGowrishankar Muthukrishnan 	0x1F, 0x80, 0x23, 0x11, 0x21, 0xCC, 0xE3, 0xD3,
34231dd9ddfSGowrishankar Muthukrishnan 	0x9B, 0xE5, 0x2E, 0x00, 0xC1, 0x94, 0xA4, 0x13,
34331dd9ddfSGowrishankar Muthukrishnan 	0x2C, 0x4A, 0x6C, 0x76, 0x8B, 0xCD, 0x94, 0xD2
34431dd9ddfSGowrishankar Muthukrishnan };
34531dd9ddfSGowrishankar Muthukrishnan 
34631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp384r1[] = {
34731dd9ddfSGowrishankar Muthukrishnan 	0x5C, 0xD4, 0x2A, 0xB9, 0xC4, 0x1B, 0x53, 0x47,
34831dd9ddfSGowrishankar Muthukrishnan 	0xF7, 0x4B, 0x8D, 0x4E, 0xFB, 0x70, 0x8B, 0x3D,
34931dd9ddfSGowrishankar Muthukrishnan 	0x5B, 0x36, 0xDB, 0x65, 0x91, 0x53, 0x59, 0xB4,
35031dd9ddfSGowrishankar Muthukrishnan 	0x4A, 0xBC, 0x17, 0x64, 0x7B, 0x6B, 0x99, 0x99,
35131dd9ddfSGowrishankar Muthukrishnan 	0x78, 0x9D, 0x72, 0xA8, 0x48, 0x65, 0xAE, 0x2F,
35231dd9ddfSGowrishankar Muthukrishnan 	0x22, 0x3F, 0x12, 0xB5, 0xA1, 0xAB, 0xC1, 0x20
35331dd9ddfSGowrishankar Muthukrishnan };
35431dd9ddfSGowrishankar Muthukrishnan 
35531dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp384r1[] = {
35631dd9ddfSGowrishankar Muthukrishnan 	0xE1, 0x71, 0x45, 0x8F, 0xEA, 0xA9, 0x39, 0xAA,
35731dd9ddfSGowrishankar Muthukrishnan 	0xA3, 0xA8, 0xBF, 0xAC, 0x46, 0xB4, 0x04, 0xBD,
35831dd9ddfSGowrishankar Muthukrishnan 	0x8F, 0x6D, 0x5B, 0x34, 0x8C, 0x0F, 0xA4, 0xD8,
35931dd9ddfSGowrishankar Muthukrishnan 	0x0C, 0xEC, 0xA1, 0x63, 0x56, 0xCA, 0x93, 0x32,
36031dd9ddfSGowrishankar Muthukrishnan 	0x40, 0xBD, 0xE8, 0x72, 0x34, 0x15, 0xA8, 0xEC,
36131dd9ddfSGowrishankar Muthukrishnan 	0xE0, 0x35, 0xB0, 0xED, 0xF3, 0x67, 0x55, 0xDE
36231dd9ddfSGowrishankar Muthukrishnan };
36331dd9ddfSGowrishankar Muthukrishnan 
36431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp384r1[] = {
36531dd9ddfSGowrishankar Muthukrishnan 	0x5E, 0xA1, 0xFC, 0x4A, 0xF7, 0x25, 0x6D, 0x20,
36631dd9ddfSGowrishankar Muthukrishnan 	0x55, 0x98, 0x1B, 0x11, 0x05, 0x75, 0xE0, 0xA8,
36731dd9ddfSGowrishankar Muthukrishnan 	0xCA, 0xE5, 0x31, 0x60, 0x13, 0x7D, 0x90, 0x4C,
36831dd9ddfSGowrishankar Muthukrishnan 	0x59, 0xD9, 0x26, 0xEB, 0x1B, 0x84, 0x56, 0xE4,
36931dd9ddfSGowrishankar Muthukrishnan 	0x27, 0xAA, 0x8A, 0x45, 0x40, 0x88, 0x4C, 0x37,
37031dd9ddfSGowrishankar Muthukrishnan 	0xDE, 0x15, 0x9A, 0x58, 0x02, 0x8A, 0xBC, 0x0E
37131dd9ddfSGowrishankar Muthukrishnan };
37231dd9ddfSGowrishankar Muthukrishnan 
37331dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp384r1[] = {
37431dd9ddfSGowrishankar Muthukrishnan 	0x0C, 0xC5, 0x9E, 0x4B, 0x04, 0x64, 0x14, 0xA8,
37531dd9ddfSGowrishankar Muthukrishnan 	0x1C, 0x8A, 0x3B, 0xDF, 0xDC, 0xA9, 0x25, 0x26,
37631dd9ddfSGowrishankar Muthukrishnan 	0xC4, 0x87, 0x69, 0xDD, 0x8D, 0x31, 0x27, 0xCA,
37731dd9ddfSGowrishankar Muthukrishnan 	0xA9, 0x9B, 0x36, 0x32, 0xD1, 0x91, 0x39, 0x42,
37831dd9ddfSGowrishankar Muthukrishnan 	0xDE, 0x36, 0x2E, 0xAF, 0xAA, 0x96, 0x23, 0x79,
37931dd9ddfSGowrishankar Muthukrishnan 	0x37, 0x4D, 0x9F, 0x3F, 0x06, 0x68, 0x41, 0xCA
38031dd9ddfSGowrishankar Muthukrishnan };
38131dd9ddfSGowrishankar Muthukrishnan 
38231dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP384R1 elliptic curve param */
38331dd9ddfSGowrishankar Muthukrishnan 
38431dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp384r1 = {
38531dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_x = {
38631dd9ddfSGowrishankar Muthukrishnan 		.data = x_qA_secp384r1,
38731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qA_secp384r1),
38831dd9ddfSGowrishankar Muthukrishnan 	},
38931dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_y = {
39031dd9ddfSGowrishankar Muthukrishnan 		.data = y_qA_secp384r1,
39131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qA_secp384r1),
39231dd9ddfSGowrishankar Muthukrishnan 	},
39331dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_x = {
39431dd9ddfSGowrishankar Muthukrishnan 		.data = x_qB_secp384r1,
39531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qB_secp384r1),
39631dd9ddfSGowrishankar Muthukrishnan 	},
39731dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_y = {
39831dd9ddfSGowrishankar Muthukrishnan 		.data = y_qB_secp384r1,
39931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qB_secp384r1),
40031dd9ddfSGowrishankar Muthukrishnan 	},
40131dd9ddfSGowrishankar Muthukrishnan 	.pkey_A = {
40231dd9ddfSGowrishankar Muthukrishnan 		.data = dA_secp384r1,
40331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dA_secp384r1),
40431dd9ddfSGowrishankar Muthukrishnan 	},
40531dd9ddfSGowrishankar Muthukrishnan 	.pkey_B = {
40631dd9ddfSGowrishankar Muthukrishnan 		.data = dB_secp384r1,
40731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dB_secp384r1),
40831dd9ddfSGowrishankar Muthukrishnan 	},
40931dd9ddfSGowrishankar Muthukrishnan 	.secret_x = {
41031dd9ddfSGowrishankar Muthukrishnan 		.data = x_Z_secp384r1,
41131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_Z_secp384r1),
41231dd9ddfSGowrishankar Muthukrishnan 	},
41331dd9ddfSGowrishankar Muthukrishnan 	.secret_y = {
41431dd9ddfSGowrishankar Muthukrishnan 		.data = y_Z_secp384r1,
41531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_Z_secp384r1),
41631dd9ddfSGowrishankar Muthukrishnan 	},
41731dd9ddfSGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_SECP384R1
41831dd9ddfSGowrishankar Muthukrishnan };
41931dd9ddfSGowrishankar Muthukrishnan 
42031dd9ddfSGowrishankar Muthukrishnan /** SECP521R1 (P-521 NIST) test vector */
42131dd9ddfSGowrishankar Muthukrishnan 
42231dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp521r1[] = {
42331dd9ddfSGowrishankar Muthukrishnan 	0x01, 0x13, 0xF8, 0x2D, 0xA8, 0x25, 0x73, 0x5E,
42431dd9ddfSGowrishankar Muthukrishnan 	0x3D, 0x97, 0x27, 0x66, 0x83, 0xB2, 0xB7, 0x42,
42531dd9ddfSGowrishankar Muthukrishnan 	0x77, 0xBA, 0xD2, 0x73, 0x35, 0xEA, 0x71, 0x66,
42631dd9ddfSGowrishankar Muthukrishnan 	0x4A, 0xF2, 0x43, 0x0C, 0xC4, 0xF3, 0x34, 0x59,
42731dd9ddfSGowrishankar Muthukrishnan 	0xB9, 0x66, 0x9E, 0xE7, 0x8B, 0x3F, 0xFB, 0x9B,
42831dd9ddfSGowrishankar Muthukrishnan 	0x86, 0x83, 0x01, 0x5D, 0x34, 0x4D, 0xCB, 0xFE,
42931dd9ddfSGowrishankar Muthukrishnan 	0xF6, 0xFB, 0x9A, 0xF4, 0xC6, 0xC4, 0x70, 0xBE,
43031dd9ddfSGowrishankar Muthukrishnan 	0x25, 0x45, 0x16, 0xCD, 0x3C, 0x1A, 0x1F, 0xB4,
43131dd9ddfSGowrishankar Muthukrishnan 	0x73, 0x62
43231dd9ddfSGowrishankar Muthukrishnan };
43331dd9ddfSGowrishankar Muthukrishnan 
43431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp521r1[] = {
43531dd9ddfSGowrishankar Muthukrishnan 	0x01, 0xEB, 0xB3, 0x4D, 0xD7, 0x57, 0x21, 0xAB,
43631dd9ddfSGowrishankar Muthukrishnan 	0xF8, 0xAD, 0xC9, 0xDB, 0xED, 0x17, 0x88, 0x9C,
43731dd9ddfSGowrishankar Muthukrishnan 	0xBB, 0x97, 0x65, 0xD9, 0x0A, 0x7C, 0x60, 0xF2,
43831dd9ddfSGowrishankar Muthukrishnan 	0xCE, 0xF0, 0x07, 0xBB, 0x0F, 0x2B, 0x26, 0xE1,
43931dd9ddfSGowrishankar Muthukrishnan 	0x48, 0x81, 0xFD, 0x44, 0x42, 0xE6, 0x89, 0xD6,
44031dd9ddfSGowrishankar Muthukrishnan 	0x1C, 0xB2, 0xDD, 0x04, 0x6E, 0xE3, 0x0E, 0x3F,
44131dd9ddfSGowrishankar Muthukrishnan 	0xFD, 0x20, 0xF9, 0xA4, 0x5B, 0xBD, 0xF6, 0x41,
44231dd9ddfSGowrishankar Muthukrishnan 	0x3D, 0x58, 0x3A, 0x2D, 0xBF, 0x59, 0x92, 0x4F,
44331dd9ddfSGowrishankar Muthukrishnan 	0xD3, 0x5C
44431dd9ddfSGowrishankar Muthukrishnan };
44531dd9ddfSGowrishankar Muthukrishnan 
44631dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp521r1[] = {
44731dd9ddfSGowrishankar Muthukrishnan 	0x00, 0xF6, 0xB6, 0x32, 0xD1, 0x94, 0xC0, 0x38,
44831dd9ddfSGowrishankar Muthukrishnan 	0x8E, 0x22, 0xD8, 0x43, 0x7E, 0x55, 0x8C, 0x55,
44931dd9ddfSGowrishankar Muthukrishnan 	0x2A, 0xE1, 0x95, 0xAD, 0xFD, 0x15, 0x3F, 0x92,
45031dd9ddfSGowrishankar Muthukrishnan 	0xD7, 0x49, 0x08, 0x35, 0x1B, 0x2F, 0x8C, 0x4E,
45131dd9ddfSGowrishankar Muthukrishnan 	0xDA, 0x94, 0xED, 0xB0, 0x91, 0x6D, 0x1B, 0x53,
45231dd9ddfSGowrishankar Muthukrishnan 	0xC0, 0x20, 0xB5, 0xEE, 0xCA, 0xED, 0x1A, 0x5F,
45331dd9ddfSGowrishankar Muthukrishnan 	0xC3, 0x8A, 0x23, 0x3E, 0x48, 0x30, 0x58, 0x7B,
45431dd9ddfSGowrishankar Muthukrishnan 	0xB2, 0xEE, 0x34, 0x89, 0xB3, 0xB4, 0x2A, 0x5A,
45531dd9ddfSGowrishankar Muthukrishnan 	0x86, 0xA4
45631dd9ddfSGowrishankar Muthukrishnan };
45731dd9ddfSGowrishankar Muthukrishnan 
45831dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp521r1[] = {
45931dd9ddfSGowrishankar Muthukrishnan 	0x00, 0xCE, 0xE3, 0x48, 0x0D, 0x86, 0x45, 0xA1,
46031dd9ddfSGowrishankar Muthukrishnan 	0x7D, 0x24, 0x9F, 0x27, 0x76, 0xD2, 0x8B, 0xAE,
46131dd9ddfSGowrishankar Muthukrishnan 	0x61, 0x69, 0x52, 0xD1, 0x79, 0x1F, 0xDB, 0x4B,
46231dd9ddfSGowrishankar Muthukrishnan 	0x70, 0xF7, 0xC3, 0x37, 0x87, 0x32, 0xAA, 0x1B,
46331dd9ddfSGowrishankar Muthukrishnan 	0x22, 0x92, 0x84, 0x48, 0xBC, 0xD1, 0xDC, 0x24,
46431dd9ddfSGowrishankar Muthukrishnan 	0x96, 0xD4, 0x35, 0xB0, 0x10, 0x48, 0x06, 0x6E,
46531dd9ddfSGowrishankar Muthukrishnan 	0xBE, 0x4F, 0x72, 0x90, 0x3C, 0x36, 0x1B, 0x1A,
46631dd9ddfSGowrishankar Muthukrishnan 	0x9D, 0xC1, 0x19, 0x3D, 0xC2, 0xC9, 0xD0, 0x89,
46731dd9ddfSGowrishankar Muthukrishnan 	0x1B, 0x96
46831dd9ddfSGowrishankar Muthukrishnan };
46931dd9ddfSGowrishankar Muthukrishnan 
47031dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp521r1[] = {
47131dd9ddfSGowrishankar Muthukrishnan 	0x01, 0x0E, 0xBF, 0xAF, 0xC6, 0xE8, 0x5E, 0x08,
47231dd9ddfSGowrishankar Muthukrishnan 	0xD2, 0x4B, 0xFF, 0xFC, 0xC1, 0xA4, 0x51, 0x1D,
47331dd9ddfSGowrishankar Muthukrishnan 	0xB0, 0xE6, 0x34, 0xBE, 0xEB, 0x1B, 0x6D, 0xEC,
47431dd9ddfSGowrishankar Muthukrishnan 	0x8C, 0x59, 0x39, 0xAE, 0x44, 0x76, 0x62, 0x01,
47531dd9ddfSGowrishankar Muthukrishnan 	0xAF, 0x62, 0x00, 0x43, 0x0B, 0xA9, 0x7C, 0x8A,
47631dd9ddfSGowrishankar Muthukrishnan 	0xC6, 0xA0, 0xE9, 0xF0, 0x8B, 0x33, 0xCE, 0x7E,
47731dd9ddfSGowrishankar Muthukrishnan 	0x9F, 0xEE, 0xB5, 0xBA, 0x4E, 0xE5, 0xE0, 0xD8,
47831dd9ddfSGowrishankar Muthukrishnan 	0x15, 0x10, 0xC2, 0x42, 0x95, 0xB8, 0xA0, 0x8D,
47931dd9ddfSGowrishankar Muthukrishnan 	0x02, 0x35
48031dd9ddfSGowrishankar Muthukrishnan };
48131dd9ddfSGowrishankar Muthukrishnan 
48231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp521r1[] = {
48331dd9ddfSGowrishankar Muthukrishnan 	0x00, 0xA4, 0xA6, 0xEC, 0x30, 0x0D, 0xF9, 0xE2,
48431dd9ddfSGowrishankar Muthukrishnan 	0x57, 0xB0, 0x37, 0x2B, 0x5E, 0x7A, 0xBF, 0xEF,
48531dd9ddfSGowrishankar Muthukrishnan 	0x09, 0x34, 0x36, 0x71, 0x9A, 0x77, 0x88, 0x7E,
48631dd9ddfSGowrishankar Muthukrishnan 	0xBB, 0x0B, 0x18, 0xCF, 0x80, 0x99, 0xB9, 0xF4,
48731dd9ddfSGowrishankar Muthukrishnan 	0x21, 0x2B, 0x6E, 0x30, 0xA1, 0x41, 0x9C, 0x18,
48831dd9ddfSGowrishankar Muthukrishnan 	0xE0, 0x29, 0xD3, 0x68, 0x63, 0xCC, 0x9D, 0x44,
48931dd9ddfSGowrishankar Muthukrishnan 	0x8F, 0x4D, 0xBA, 0x4D, 0x2A, 0x0E, 0x60, 0x71,
49031dd9ddfSGowrishankar Muthukrishnan 	0x1B, 0xE5, 0x72, 0x91, 0x5F, 0xBD, 0x4F, 0xEF,
49131dd9ddfSGowrishankar Muthukrishnan 	0x26, 0x95
49231dd9ddfSGowrishankar Muthukrishnan };
49331dd9ddfSGowrishankar Muthukrishnan 
49431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp521r1[] = {
49531dd9ddfSGowrishankar Muthukrishnan 	0x00, 0xCD, 0xEA, 0x89, 0x62, 0x1C, 0xFA, 0x46,
49631dd9ddfSGowrishankar Muthukrishnan 	0xB1, 0x32, 0xF9, 0xE4, 0xCF, 0xE2, 0x26, 0x1C,
49731dd9ddfSGowrishankar Muthukrishnan 	0xDE, 0x2D, 0x43, 0x68, 0xEB, 0x56, 0x56, 0x63,
49831dd9ddfSGowrishankar Muthukrishnan 	0x4C, 0x7C, 0xC9, 0x8C, 0x7A, 0x00, 0xCD, 0xE5,
49931dd9ddfSGowrishankar Muthukrishnan 	0x4E, 0xD1, 0x86, 0x6A, 0x0D, 0xD3, 0xE6, 0x12,
50031dd9ddfSGowrishankar Muthukrishnan 	0x6C, 0x9D, 0x2F, 0x84, 0x5D, 0xAF, 0xF8, 0x2C,
50131dd9ddfSGowrishankar Muthukrishnan 	0xEB, 0x1D, 0xA0, 0x8F, 0x5D, 0x87, 0x52, 0x1B,
50231dd9ddfSGowrishankar Muthukrishnan 	0xB0, 0xEB, 0xEC, 0xA7, 0x79, 0x11, 0x16, 0x9C,
50331dd9ddfSGowrishankar Muthukrishnan 	0x20, 0xCC
50431dd9ddfSGowrishankar Muthukrishnan };
50531dd9ddfSGowrishankar Muthukrishnan 
50631dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp521r1[] = {
50731dd9ddfSGowrishankar Muthukrishnan 	0x00, 0xF9, 0xA7, 0x16, 0x41, 0x02, 0x9B, 0x7F,
50831dd9ddfSGowrishankar Muthukrishnan 	0xC1, 0xA8, 0x08, 0xAD, 0x07, 0xCD, 0x48, 0x61,
50931dd9ddfSGowrishankar Muthukrishnan 	0xE8, 0x68, 0x61, 0x4B, 0x86, 0x5A, 0xFB, 0xEC,
51031dd9ddfSGowrishankar Muthukrishnan 	0xAB, 0x1F, 0x2B, 0xD4, 0xD8, 0xB5, 0x5E, 0xBC,
51131dd9ddfSGowrishankar Muthukrishnan 	0xB5, 0xE3, 0xA5, 0x31, 0x43, 0xCE, 0xB2, 0xC5,
51231dd9ddfSGowrishankar Muthukrishnan 	0x11, 0xB1, 0xAE, 0x0A, 0xF5, 0xAC, 0x82, 0x7F,
51331dd9ddfSGowrishankar Muthukrishnan 	0x60, 0xF2, 0xFD, 0x87, 0x25, 0x65, 0xAC, 0x5C,
51431dd9ddfSGowrishankar Muthukrishnan 	0xA0, 0xA1, 0x64, 0x03, 0x8F, 0xE9, 0x80, 0xA7,
51531dd9ddfSGowrishankar Muthukrishnan 	0xE4, 0xBD
51631dd9ddfSGowrishankar Muthukrishnan };
51731dd9ddfSGowrishankar Muthukrishnan 
51831dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP521R1 elliptic curve param */
51931dd9ddfSGowrishankar Muthukrishnan 
52031dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp521r1 = {
52131dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_x = {
52231dd9ddfSGowrishankar Muthukrishnan 		.data = x_qA_secp521r1,
52331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qA_secp521r1),
52431dd9ddfSGowrishankar Muthukrishnan 	},
52531dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qA_y = {
52631dd9ddfSGowrishankar Muthukrishnan 		.data = y_qA_secp521r1,
52731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qA_secp521r1),
52831dd9ddfSGowrishankar Muthukrishnan 	},
52931dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_x = {
53031dd9ddfSGowrishankar Muthukrishnan 		.data = x_qB_secp521r1,
53131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_qB_secp521r1),
53231dd9ddfSGowrishankar Muthukrishnan 	},
53331dd9ddfSGowrishankar Muthukrishnan 	.pubkey_qB_y = {
53431dd9ddfSGowrishankar Muthukrishnan 		.data = y_qB_secp521r1,
53531dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_qB_secp521r1),
53631dd9ddfSGowrishankar Muthukrishnan 	},
53731dd9ddfSGowrishankar Muthukrishnan 	.pkey_A = {
53831dd9ddfSGowrishankar Muthukrishnan 		.data = dA_secp521r1,
53931dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dA_secp521r1),
54031dd9ddfSGowrishankar Muthukrishnan 	},
54131dd9ddfSGowrishankar Muthukrishnan 	.pkey_B = {
54231dd9ddfSGowrishankar Muthukrishnan 		.data = dB_secp521r1,
54331dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(dB_secp521r1),
54431dd9ddfSGowrishankar Muthukrishnan 	},
54531dd9ddfSGowrishankar Muthukrishnan 	.secret_x = {
54631dd9ddfSGowrishankar Muthukrishnan 		.data = x_Z_secp521r1,
54731dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(x_Z_secp521r1),
54831dd9ddfSGowrishankar Muthukrishnan 	},
54931dd9ddfSGowrishankar Muthukrishnan 	.secret_y = {
55031dd9ddfSGowrishankar Muthukrishnan 		.data = y_Z_secp521r1,
55131dd9ddfSGowrishankar Muthukrishnan 		.length = sizeof(y_Z_secp521r1),
55231dd9ddfSGowrishankar Muthukrishnan 	},
55331dd9ddfSGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_SECP521R1
55431dd9ddfSGowrishankar Muthukrishnan };
55531dd9ddfSGowrishankar Muthukrishnan 
556*2fba5232SGowrishankar Muthukrishnan /** ED25519 test vector */
557*2fba5232SGowrishankar Muthukrishnan 
558*2fba5232SGowrishankar Muthukrishnan static uint8_t privkey_ed25519[] = {
559*2fba5232SGowrishankar Muthukrishnan 	0x83, 0x3f, 0xe6, 0x24, 0x09, 0x23, 0x7b, 0x9d,
560*2fba5232SGowrishankar Muthukrishnan 	0x62, 0xec, 0x77, 0x58, 0x75, 0x20, 0x91, 0x1e,
561*2fba5232SGowrishankar Muthukrishnan 	0x9a, 0x75, 0x9c, 0xec, 0x1d, 0x19, 0x75, 0x5b,
562*2fba5232SGowrishankar Muthukrishnan 	0x7d, 0xa9, 0x01, 0xb9, 0x6d, 0xca, 0x3d, 0x42
563*2fba5232SGowrishankar Muthukrishnan };
564*2fba5232SGowrishankar Muthukrishnan 
565*2fba5232SGowrishankar Muthukrishnan static uint8_t pubkey_ed25519[] = {
566*2fba5232SGowrishankar Muthukrishnan 	0xec, 0x17, 0x2b, 0x93, 0xad, 0x5e, 0x56, 0x3b,
567*2fba5232SGowrishankar Muthukrishnan 	0xf4, 0x93, 0x2c, 0x70, 0xe1, 0x24, 0x50, 0x34,
568*2fba5232SGowrishankar Muthukrishnan 	0xc3, 0x54, 0x67, 0xef, 0x2e, 0xfd, 0x4d, 0x64,
569*2fba5232SGowrishankar Muthukrishnan 	0xeb, 0xf8, 0x19, 0x68, 0x34, 0x67, 0xe2, 0xbf
570*2fba5232SGowrishankar Muthukrishnan };
571*2fba5232SGowrishankar Muthukrishnan 
572*2fba5232SGowrishankar Muthukrishnan /** ECDH ED25519 elliptic curve param */
573*2fba5232SGowrishankar Muthukrishnan 
574*2fba5232SGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_ed25519 = {
575*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qA_x = {
576*2fba5232SGowrishankar Muthukrishnan 		.data = pubkey_ed25519,
577*2fba5232SGowrishankar Muthukrishnan 		.length = sizeof(pubkey_ed25519),
578*2fba5232SGowrishankar Muthukrishnan 	},
579*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qA_y = {
580*2fba5232SGowrishankar Muthukrishnan 	},
581*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qB_x = {
582*2fba5232SGowrishankar Muthukrishnan 	},
583*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qB_y = {
584*2fba5232SGowrishankar Muthukrishnan 	},
585*2fba5232SGowrishankar Muthukrishnan 	.pkey_A = {
586*2fba5232SGowrishankar Muthukrishnan 		.data = privkey_ed25519,
587*2fba5232SGowrishankar Muthukrishnan 		.length = sizeof(privkey_ed25519),
588*2fba5232SGowrishankar Muthukrishnan 	},
589*2fba5232SGowrishankar Muthukrishnan 	.pkey_B = {
590*2fba5232SGowrishankar Muthukrishnan 	},
591*2fba5232SGowrishankar Muthukrishnan 	.secret_x = {
592*2fba5232SGowrishankar Muthukrishnan 	},
593*2fba5232SGowrishankar Muthukrishnan 	.secret_y = {
594*2fba5232SGowrishankar Muthukrishnan 	},
595*2fba5232SGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_ED25519
596*2fba5232SGowrishankar Muthukrishnan };
597*2fba5232SGowrishankar Muthukrishnan 
598*2fba5232SGowrishankar Muthukrishnan /** ED448 test vector */
599*2fba5232SGowrishankar Muthukrishnan 
600*2fba5232SGowrishankar Muthukrishnan static uint8_t privkey_ed448[] = {
601*2fba5232SGowrishankar Muthukrishnan 	0xd6, 0x5d, 0xf3, 0x41, 0xad, 0x13, 0xe0, 0x08,
602*2fba5232SGowrishankar Muthukrishnan 	0x56, 0x76, 0x88, 0xba, 0xed, 0xda, 0x8e, 0x9d,
603*2fba5232SGowrishankar Muthukrishnan 	0xcd, 0xc1, 0x7d, 0xc0, 0x24, 0x97, 0x4e, 0xa5,
604*2fba5232SGowrishankar Muthukrishnan 	0xb4, 0x22, 0x7b, 0x65, 0x30, 0xe3, 0x39, 0xbf,
605*2fba5232SGowrishankar Muthukrishnan 	0xf2, 0x1f, 0x99, 0xe6, 0x8c, 0xa6, 0x96, 0x8f,
606*2fba5232SGowrishankar Muthukrishnan 	0x3c, 0xca, 0x6d, 0xfe, 0x0f, 0xb9, 0xf4, 0xfa,
607*2fba5232SGowrishankar Muthukrishnan 	0xb4, 0xfa, 0x13, 0x5d, 0x55, 0x42, 0xea, 0x3f,
608*2fba5232SGowrishankar Muthukrishnan 	0x01
609*2fba5232SGowrishankar Muthukrishnan };
610*2fba5232SGowrishankar Muthukrishnan 
611*2fba5232SGowrishankar Muthukrishnan static uint8_t pubkey_ed448[] = {
612*2fba5232SGowrishankar Muthukrishnan 	0xdf, 0x97, 0x05, 0xf5, 0x8e, 0xdb, 0xab, 0x80,
613*2fba5232SGowrishankar Muthukrishnan 	0x2c, 0x7f, 0x83, 0x63, 0xcf, 0xe5, 0x56, 0x0a,
614*2fba5232SGowrishankar Muthukrishnan 	0xb1, 0xc6, 0x13, 0x2c, 0x20, 0xa9, 0xf1, 0xdd,
615*2fba5232SGowrishankar Muthukrishnan 	0x16, 0x34, 0x83, 0xa2, 0x6f, 0x8a, 0xc5, 0x3a,
616*2fba5232SGowrishankar Muthukrishnan 	0x39, 0xd6, 0x80, 0x8b, 0xf4, 0xa1, 0xdf, 0xbd,
617*2fba5232SGowrishankar Muthukrishnan 	0x26, 0x1b, 0x09, 0x9b, 0xb0, 0x3b, 0x3f, 0xb5,
618*2fba5232SGowrishankar Muthukrishnan 	0x09, 0x06, 0xcb, 0x28, 0xbd, 0x8a, 0x08, 0x1f,
619*2fba5232SGowrishankar Muthukrishnan 	0x00
620*2fba5232SGowrishankar Muthukrishnan };
621*2fba5232SGowrishankar Muthukrishnan 
622*2fba5232SGowrishankar Muthukrishnan /** ECDH ED448 elliptic curve param */
623*2fba5232SGowrishankar Muthukrishnan 
624*2fba5232SGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_ed448 = {
625*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qA_x = {
626*2fba5232SGowrishankar Muthukrishnan 		.data = pubkey_ed448,
627*2fba5232SGowrishankar Muthukrishnan 		.length = sizeof(pubkey_ed448),
628*2fba5232SGowrishankar Muthukrishnan 	},
629*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qA_y = {
630*2fba5232SGowrishankar Muthukrishnan 	},
631*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qB_x = {
632*2fba5232SGowrishankar Muthukrishnan 	},
633*2fba5232SGowrishankar Muthukrishnan 	.pubkey_qB_y = {
634*2fba5232SGowrishankar Muthukrishnan 	},
635*2fba5232SGowrishankar Muthukrishnan 	.pkey_A = {
636*2fba5232SGowrishankar Muthukrishnan 		.data = privkey_ed448,
637*2fba5232SGowrishankar Muthukrishnan 		.length = sizeof(privkey_ed448),
638*2fba5232SGowrishankar Muthukrishnan 	},
639*2fba5232SGowrishankar Muthukrishnan 	.pkey_B = {
640*2fba5232SGowrishankar Muthukrishnan 	},
641*2fba5232SGowrishankar Muthukrishnan 	.secret_x = {
642*2fba5232SGowrishankar Muthukrishnan 	},
643*2fba5232SGowrishankar Muthukrishnan 	.secret_y = {
644*2fba5232SGowrishankar Muthukrishnan 	},
645*2fba5232SGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_ED448
646*2fba5232SGowrishankar Muthukrishnan };
647*2fba5232SGowrishankar Muthukrishnan 
648*2fba5232SGowrishankar Muthukrishnan #endif /* __TEST_CRYPTODEV_ECDH_TEST_VECTORS_H__ */
649