xref: /dpdk/app/test/test_cryptodev_sm2_test_vectors.h (revision 2eef1a6414912c31f76efa4bec59fc0c05935185)
12d970c66SGowrishankar Muthukrishnan /* SPDX-License-Identifier: BSD-3-Clause
22d970c66SGowrishankar Muthukrishnan  * Copyright(C) 2023 Marvell.
32d970c66SGowrishankar Muthukrishnan  */
42d970c66SGowrishankar Muthukrishnan 
52d970c66SGowrishankar Muthukrishnan #ifndef __TEST_CRYPTODEV_SM2_TEST_VECTORS_H__
62d970c66SGowrishankar Muthukrishnan #define __TEST_CRYPTODEV_SM2_TEST_VECTORS_H__
72d970c66SGowrishankar Muthukrishnan 
82d970c66SGowrishankar Muthukrishnan #include "rte_crypto_asym.h"
92d970c66SGowrishankar Muthukrishnan 
102d970c66SGowrishankar Muthukrishnan struct crypto_testsuite_sm2_params {
112d970c66SGowrishankar Muthukrishnan 	rte_crypto_param pubkey_qx;
122d970c66SGowrishankar Muthukrishnan 	rte_crypto_param pubkey_qy;
132d970c66SGowrishankar Muthukrishnan 	rte_crypto_param pkey;
142d970c66SGowrishankar Muthukrishnan 	rte_crypto_param k;
152d970c66SGowrishankar Muthukrishnan 	rte_crypto_param sign_r;
162d970c66SGowrishankar Muthukrishnan 	rte_crypto_param sign_s;
172d970c66SGowrishankar Muthukrishnan 	rte_crypto_param id;
182d970c66SGowrishankar Muthukrishnan 	rte_crypto_param cipher;
192d970c66SGowrishankar Muthukrishnan 	rte_crypto_param message;
20*2eef1a64SGowrishankar Muthukrishnan 	rte_crypto_param digest;
21f8ca1d61SGowrishankar Muthukrishnan 	int curve;
222d970c66SGowrishankar Muthukrishnan };
232d970c66SGowrishankar Muthukrishnan 
242d970c66SGowrishankar Muthukrishnan static uint8_t fp256_pkey[] = {
252d970c66SGowrishankar Muthukrishnan 	0x77, 0x84, 0x35, 0x65, 0x4c, 0x7a, 0x6d, 0xb1,
262d970c66SGowrishankar Muthukrishnan 	0x1e, 0x63, 0x0b, 0x41, 0x97, 0x36, 0x04, 0xf4,
272d970c66SGowrishankar Muthukrishnan 	0xec, 0x35, 0xee, 0x3b, 0x76, 0xc2, 0x34, 0x08,
282d970c66SGowrishankar Muthukrishnan 	0xd9, 0x4a, 0x22, 0x0d, 0x7f, 0xf6, 0xc6, 0x90
292d970c66SGowrishankar Muthukrishnan };
302d970c66SGowrishankar Muthukrishnan 
312d970c66SGowrishankar Muthukrishnan static uint8_t fp256_qx[] = {
322d970c66SGowrishankar Muthukrishnan 	0x7b, 0x24, 0xa3, 0x03, 0xcf, 0xb2, 0x22, 0xfa,
332d970c66SGowrishankar Muthukrishnan 	0x4c, 0xb3, 0x88, 0x54, 0xf9, 0x30, 0xd1, 0x4d,
342d970c66SGowrishankar Muthukrishnan 	0xe3, 0x50, 0xda, 0xba, 0xe6, 0xa7, 0x0b, 0x91,
352d970c66SGowrishankar Muthukrishnan 	0x4c, 0x04, 0x0d, 0x5c, 0xe0, 0x8e, 0x86, 0xc5
362d970c66SGowrishankar Muthukrishnan };
372d970c66SGowrishankar Muthukrishnan 
382d970c66SGowrishankar Muthukrishnan static uint8_t fp256_qy[] = {
392d970c66SGowrishankar Muthukrishnan 	0xbc, 0x39, 0xe3, 0x19, 0x4e, 0xd2, 0x29, 0x22,
402d970c66SGowrishankar Muthukrishnan 	0x5b, 0x37, 0x2d, 0xeb, 0xcc, 0x05, 0x52, 0x8d,
412d970c66SGowrishankar Muthukrishnan 	0xb9, 0x40, 0xa3, 0xab, 0x3c, 0xbe, 0x16, 0x30,
422d970c66SGowrishankar Muthukrishnan 	0x1c, 0xe4, 0xe8, 0x7f, 0xba, 0x6e, 0x0b, 0xae
432d970c66SGowrishankar Muthukrishnan };
442d970c66SGowrishankar Muthukrishnan 
452d970c66SGowrishankar Muthukrishnan static uint8_t fp256_k[] = {
462d970c66SGowrishankar Muthukrishnan 	0x01, 0x04, 0x02, 0x05, 0x04, 0x06, 0x03, 0x07
472d970c66SGowrishankar Muthukrishnan };
482d970c66SGowrishankar Muthukrishnan 
492d970c66SGowrishankar Muthukrishnan static uint8_t fp256_sign_r[] = {
50*2eef1a64SGowrishankar Muthukrishnan 	0x75, 0x2B, 0x8C, 0x15, 0x38, 0x10, 0xF6, 0xC0,
51*2eef1a64SGowrishankar Muthukrishnan 	0x28, 0xC9, 0x8A, 0x51, 0xD0, 0x62, 0x69, 0x4B,
52*2eef1a64SGowrishankar Muthukrishnan 	0xF6, 0x58, 0x06, 0xEB, 0xF1, 0x91, 0x1F, 0x15,
53*2eef1a64SGowrishankar Muthukrishnan 	0x8B, 0x08, 0x09, 0xF9, 0x88, 0x0A, 0x44, 0x24
542d970c66SGowrishankar Muthukrishnan };
552d970c66SGowrishankar Muthukrishnan 
562d970c66SGowrishankar Muthukrishnan static uint8_t fp256_sign_s[] = {
57*2eef1a64SGowrishankar Muthukrishnan 	0x5A, 0x3C, 0x96, 0x3E, 0x1C, 0xB4, 0x19, 0xF9,
58*2eef1a64SGowrishankar Muthukrishnan 	0xD7, 0x78, 0xB8, 0xCE, 0xFF, 0x9D, 0xB1, 0x31,
59*2eef1a64SGowrishankar Muthukrishnan 	0x77, 0xDB, 0xA0, 0xFE, 0x84, 0x61, 0x1A, 0xD9,
60*2eef1a64SGowrishankar Muthukrishnan 	0x4E, 0xFF, 0x82, 0x13, 0x1C, 0xCA, 0x04, 0x75,
612d970c66SGowrishankar Muthukrishnan };
622d970c66SGowrishankar Muthukrishnan 
632d970c66SGowrishankar Muthukrishnan static uint8_t fp256_id[] = {
642d970c66SGowrishankar Muthukrishnan 	0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8
652d970c66SGowrishankar Muthukrishnan };
662d970c66SGowrishankar Muthukrishnan 
672d970c66SGowrishankar Muthukrishnan static uint8_t fp256_message[] = {
682d970c66SGowrishankar Muthukrishnan 	0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20,
692d970c66SGowrishankar Muthukrishnan 	0x64, 0x69, 0x67, 0x65, 0x73, 0x74
702d970c66SGowrishankar Muthukrishnan };
712d970c66SGowrishankar Muthukrishnan 
72*2eef1a64SGowrishankar Muthukrishnan static uint8_t fp256_digest[] = {
73*2eef1a64SGowrishankar Muthukrishnan 	0x0F, 0xB5, 0xCE, 0xF3, 0x3C, 0xB7, 0xD1, 0x35,
74*2eef1a64SGowrishankar Muthukrishnan 	0xA9, 0x3A, 0xC7, 0xA7, 0x89, 0x2A, 0x6D, 0x9A,
75*2eef1a64SGowrishankar Muthukrishnan 	0xF3, 0x1E, 0xC5, 0x38, 0xD3, 0x65, 0x1B, 0xB9,
76*2eef1a64SGowrishankar Muthukrishnan 	0xDF, 0x5F, 0x7F, 0x4A, 0xD8, 0x89, 0x57, 0xF1
77*2eef1a64SGowrishankar Muthukrishnan };
78*2eef1a64SGowrishankar Muthukrishnan 
792d970c66SGowrishankar Muthukrishnan static uint8_t fp256_cipher[] = {
802d970c66SGowrishankar Muthukrishnan 	0x30, 0x78, 0x02, 0x21, 0x00, 0xAB, 0xBD, 0xE8,
812d970c66SGowrishankar Muthukrishnan 	0xE8, 0x80, 0x93, 0x36, 0x77, 0xB6, 0x44, 0x47,
822d970c66SGowrishankar Muthukrishnan 	0x6D, 0x00, 0xF6, 0x51, 0xC8, 0x80, 0x9C, 0x9E,
832d970c66SGowrishankar Muthukrishnan 	0xD9, 0xEC, 0x36, 0x8A, 0x60, 0x8E, 0x26, 0x2D,
842d970c66SGowrishankar Muthukrishnan 	0x71, 0x31, 0xB7, 0xC1, 0x38, 0x02, 0x21, 0x00,
852d970c66SGowrishankar Muthukrishnan 	0xE1, 0xBF, 0x4C, 0x13, 0x7A, 0x87, 0x40, 0x32,
862d970c66SGowrishankar Muthukrishnan 	0xF5, 0xA1, 0xE2, 0xA1, 0x3B, 0x83, 0xBF, 0x6B,
872d970c66SGowrishankar Muthukrishnan 	0x3F, 0xFB, 0xC8, 0x13, 0x01, 0xDE, 0xCF, 0xC0,
882d970c66SGowrishankar Muthukrishnan 	0xF4, 0x24, 0x66, 0x52, 0x89, 0xDA, 0x6D, 0x7A,
892d970c66SGowrishankar Muthukrishnan 	0x04, 0x20, 0x8E, 0xFD, 0x52, 0x77, 0xC9, 0xE7,
902d970c66SGowrishankar Muthukrishnan 	0x90, 0xD1, 0x17, 0x75, 0xDE, 0xEE, 0xF3, 0xE5,
912d970c66SGowrishankar Muthukrishnan 	0x11, 0x0C, 0x5D, 0xE1, 0x3A, 0xB6, 0x2B, 0x72,
922d970c66SGowrishankar Muthukrishnan 	0x60, 0xE5, 0xD5, 0xF3, 0x0F, 0xE2, 0x44, 0xDB,
932d970c66SGowrishankar Muthukrishnan 	0xBC, 0x66, 0x04, 0x0E, 0x78, 0x2D, 0xC0, 0x3D,
942d970c66SGowrishankar Muthukrishnan 	0x38, 0xA2, 0x42, 0xA4, 0x8E, 0x8B, 0xF5, 0x06,
952d970c66SGowrishankar Muthukrishnan 	0x32, 0xFA
962d970c66SGowrishankar Muthukrishnan };
972d970c66SGowrishankar Muthukrishnan 
982d970c66SGowrishankar Muthukrishnan /** SM2 Fp256 elliptic curve test params */
992d970c66SGowrishankar Muthukrishnan struct crypto_testsuite_sm2_params sm2_param_fp256 = {
1002d970c66SGowrishankar Muthukrishnan 	.pubkey_qx = {
1012d970c66SGowrishankar Muthukrishnan 		.data = fp256_qx,
1022d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_qx),
1032d970c66SGowrishankar Muthukrishnan 	},
1042d970c66SGowrishankar Muthukrishnan 	.pubkey_qy = {
1052d970c66SGowrishankar Muthukrishnan 		.data = fp256_qy,
1062d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_qy),
1072d970c66SGowrishankar Muthukrishnan 	},
1082d970c66SGowrishankar Muthukrishnan 	.k = {
1092d970c66SGowrishankar Muthukrishnan 		.data = fp256_k,
1102d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_k),
1112d970c66SGowrishankar Muthukrishnan 	},
1122d970c66SGowrishankar Muthukrishnan 	.sign_r = {
1132d970c66SGowrishankar Muthukrishnan 		.data = fp256_sign_r,
1142d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_sign_r),
1152d970c66SGowrishankar Muthukrishnan 	},
1162d970c66SGowrishankar Muthukrishnan 	.sign_s = {
1172d970c66SGowrishankar Muthukrishnan 		.data = fp256_sign_s,
1182d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_sign_s),
1192d970c66SGowrishankar Muthukrishnan 	},
1202d970c66SGowrishankar Muthukrishnan 	.id = {
1212d970c66SGowrishankar Muthukrishnan 		.data = fp256_id,
1222d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_id),
1232d970c66SGowrishankar Muthukrishnan 	},
1242d970c66SGowrishankar Muthukrishnan 	.pkey = {
1252d970c66SGowrishankar Muthukrishnan 		.data = fp256_pkey,
1262d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_pkey),
1272d970c66SGowrishankar Muthukrishnan 	},
1282d970c66SGowrishankar Muthukrishnan 	.message = {
1292d970c66SGowrishankar Muthukrishnan 		.data = fp256_message,
1302d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_message),
1312d970c66SGowrishankar Muthukrishnan 	},
132*2eef1a64SGowrishankar Muthukrishnan 	.digest = {
133*2eef1a64SGowrishankar Muthukrishnan 		.data = fp256_digest,
134*2eef1a64SGowrishankar Muthukrishnan 		.length = sizeof(fp256_digest),
135*2eef1a64SGowrishankar Muthukrishnan 	},
1362d970c66SGowrishankar Muthukrishnan 	.cipher = {
1372d970c66SGowrishankar Muthukrishnan 		.data = fp256_cipher,
1382d970c66SGowrishankar Muthukrishnan 		.length = sizeof(fp256_cipher),
139f8ca1d61SGowrishankar Muthukrishnan 	},
140f8ca1d61SGowrishankar Muthukrishnan 	.curve = RTE_CRYPTO_EC_GROUP_SM2
1412d970c66SGowrishankar Muthukrishnan };
1422d970c66SGowrishankar Muthukrishnan 
1432d970c66SGowrishankar Muthukrishnan #endif /* __TEST_CRYPTODEV_SM2_TEST_VECTORS_H__ */
144