xref: /dpdk/app/test/test_cryptodev_rsa_test_vectors.h (revision 089e5ed727a15da2729cfee9b63533dd120bd04c)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Cavium Networks
3  */
4 
5 #ifndef TEST_CRYPTODEV_RSA_TEST_VECTORS_H__
6 #define TEST_CRYPTODEV_RSA_TEST_VECTORS_H__
7 
8 #include "rte_crypto_asym.h"
9 
10 #define TEST_DATA_SIZE 4096
11 
12 struct rsa_test_data {
13 	uint8_t data[TEST_DATA_SIZE];
14 	unsigned int len;
15 };
16 
17 struct rsa_test_data rsaplaintext = {
18 	.data = {
19 		0xf8, 0xba, 0x1a, 0x55, 0xd0, 0x2f, 0x85, 0xae,
20 		0x96, 0x7b, 0xb6, 0x2f, 0xb6, 0xcd, 0xa8, 0xeb,
21 		0x7e, 0x78, 0xa0, 0x50
22 	},
23 	.len = 20
24 };
25 
26 uint8_t rsa_n[] = {
27 	0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00,
28 	0x0a, 0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5,
29 	0xce, 0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a,
30 	0xa2, 0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde,
31 	0x0a, 0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a,
32 	0x3d, 0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63,
33 	0x6a, 0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27,
34 	0x6e, 0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa,
35 	0x72, 0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53,
36 	0x87, 0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a,
37 	0x62, 0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63,
38 	0x18, 0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33,
39 	0x4e, 0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3,
40 	0x03, 0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e,
41 	0xee, 0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb,
42 	0xa6, 0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde,
43 	0x55
44 };
45 
46 uint8_t rsa_d[] = {
47 	0x24, 0xd7, 0xea, 0xf4, 0x7f, 0xe0, 0xca, 0x31,
48 	0x4d, 0xee, 0xc4, 0xa1, 0xbe, 0xab, 0x06, 0x61,
49 	0x32, 0xe7, 0x51, 0x46, 0x27, 0xdf, 0x72, 0xe9,
50 	0x6f, 0xa8, 0x4c, 0xd1, 0x26, 0xef, 0x65, 0xeb,
51 	0x67, 0xff, 0x5f, 0xa7, 0x3b, 0x25, 0xb9, 0x08,
52 	0x8e, 0xa0, 0x47, 0x56, 0xe6, 0x8e, 0xf9, 0xd3,
53 	0x18, 0x06, 0x3d, 0xc6, 0xb1, 0xf8, 0xdc, 0x1b,
54 	0x8d, 0xe5, 0x30, 0x54, 0x26, 0xac, 0x16, 0x3b,
55 	0x7b, 0xad, 0x46, 0x9e, 0x21, 0x6a, 0x57, 0xe6,
56 	0x81, 0x56, 0x1d, 0x2a, 0xc4, 0x39, 0x63, 0x67,
57 	0x81, 0x2c, 0xca, 0xcc, 0xf8, 0x42, 0x04, 0xbe,
58 	0xcf, 0x8f, 0x6c, 0x5b, 0x81, 0x46, 0xb9, 0xc7,
59 	0x62, 0x90, 0x87, 0x35, 0x03, 0x9b, 0x89, 0xcb,
60 	0x37, 0xbd, 0xf1, 0x1b, 0x99, 0xa1, 0x9a, 0x78,
61 	0xd5, 0x4c, 0xdd, 0x3f, 0x41, 0x0c, 0xb7, 0x1a,
62 	0xd9, 0x7b, 0x87, 0x5f, 0xbe, 0xb1, 0x83, 0x41
63 };
64 
65 uint8_t rsa_e[] = {0x01, 0x00, 0x01};
66 
67 uint8_t rsa_p[] = {
68 	0xdc, 0xba, 0x00, 0x01, 0x57, 0x93, 0xe3, 0x05,
69 	0xed, 0x61, 0x9a, 0xa3, 0xaf, 0x6a, 0xd3, 0x47,
70 	0x8f, 0x2d, 0x1e, 0x7f, 0x4d, 0x60, 0xc8, 0x8d,
71 	0x34, 0xb8, 0x17, 0x84, 0xbc, 0xd4, 0xe9, 0x79,
72 	0x95, 0x75, 0x19, 0x37, 0xe0, 0xcc, 0xfe, 0x4c,
73 	0x5d, 0x49, 0x53, 0x61, 0x29, 0xf1, 0xdc, 0x82,
74 	0x03, 0x96, 0x7d, 0x95, 0x4f, 0xdd, 0x3c, 0x0a,
75 	0x64, 0x8a, 0x43, 0x2f, 0x95, 0x4a, 0xed, 0xdd
76 };
77 
78 uint8_t rsa_q[] = {
79 	0xd0, 0x56, 0x7a, 0x0a, 0xd5, 0x95, 0xa4, 0x85,
80 	0x53, 0x35, 0xa1, 0x48, 0x07, 0x6a, 0x7c, 0x08,
81 	0xe0, 0xfd, 0x4b, 0x88, 0x77, 0xa6, 0x15, 0x23,
82 	0x0f, 0xbf, 0x14, 0x46, 0x11, 0xee, 0x95, 0xc7,
83 	0x5e, 0x77, 0x65, 0xa2, 0xb5, 0x50, 0xdf, 0x19,
84 	0x07, 0xc7, 0x72, 0xdb, 0x29, 0xf6, 0x54, 0x86,
85 	0xe1, 0xb3, 0x97, 0x0a, 0x28, 0x64, 0x3a, 0x38,
86 	0xa6, 0x7d, 0x13, 0xc3, 0x79, 0xaa, 0x56, 0xd9
87 };
88 
89 uint8_t rsa_dP[] = {
90 	0xc5, 0x43, 0x0d, 0x82, 0x25, 0x8c, 0xab, 0x55,
91 	0xbe, 0xc2, 0x7d, 0xfb, 0x4f, 0x68, 0x3f, 0x0e,
92 	0x32, 0xec, 0xf5, 0xd6, 0x7b, 0x86, 0xc5, 0x75,
93 	0x3c, 0xea, 0x51, 0x4a, 0x75, 0xa0, 0x2a, 0x50,
94 	0x58, 0xbb, 0xe0, 0x1f, 0xca, 0x2e, 0x2a, 0x0e,
95 	0x81, 0x48, 0x68, 0xd5, 0xeb, 0x30, 0x96, 0x0b,
96 	0x33, 0xbd, 0xa8, 0xda, 0x6a, 0x17, 0xa3, 0xf2,
97 	0xfd, 0xcb, 0x7b, 0x23, 0xe9, 0x5e, 0x9f, 0x99
98 };
99 uint8_t rsa_dQ[] = {
100 	0xbe, 0xff, 0xf9, 0x05, 0x43, 0xc8, 0xdc, 0x3b,
101 	0x0b, 0x0d, 0x28, 0xde, 0x73, 0x46, 0x11, 0x8e,
102 	0xc6, 0x4e, 0x11, 0xd8, 0x7b, 0xf0, 0xfc, 0x81,
103 	0xd7, 0x66, 0xd3, 0xbc, 0x65, 0xa6, 0x39, 0x14,
104 	0xbd, 0xab, 0x72, 0xb7, 0x57, 0xc9, 0x5b, 0xaf,
105 	0x83, 0xed, 0x3b, 0x84, 0x68, 0x15, 0x18, 0x6b,
106 	0x4c, 0x32, 0xac, 0x6f, 0x38, 0x96, 0xa2, 0xb5,
107 	0xdb, 0x14, 0xe2, 0x70, 0x9c, 0x73, 0x29, 0x09
108 };
109 
110 uint8_t rsa_qInv[] = {
111 	0x59, 0xbd, 0xb1, 0x37, 0xeb, 0x4e, 0xcf, 0x68,
112 	0xe7, 0x85, 0x91, 0xbb, 0xc0, 0xdb, 0x8e, 0x41,
113 	0x91, 0x4a, 0xc0, 0xb1, 0xc5, 0xe8, 0x91, 0xf6,
114 	0xc7, 0x5a, 0x98, 0x1a, 0x8a, 0x0f, 0x45, 0xb2,
115 	0x5b, 0xff, 0x7a, 0x2d, 0x98, 0x89, 0x55, 0xd9,
116 	0xbf, 0x6e, 0xdd, 0x2d, 0xd4, 0xe8, 0x0a, 0xaa,
117 	0xae, 0x2a, 0xc4, 0x16, 0xb5, 0xba, 0xe1, 0x69,
118 	0x71, 0x94, 0xdd, 0xa0, 0xf5, 0x1e, 0x6d, 0xcc
119 };
120 
121 /** rsa xform using exponent key */
122 struct rte_crypto_asym_xform rsa_xform = {
123 	.next = NULL,
124 	.xform_type = RTE_CRYPTO_ASYM_XFORM_RSA,
125 	.rsa = {
126 		.n = {
127 			.data = rsa_n,
128 			.length = sizeof(rsa_n)
129 		},
130 		.e = {
131 			.data = rsa_e,
132 			.length = sizeof(rsa_e)
133 		},
134 		.key_type = RTE_RSA_KEY_TYPE_EXP,
135 		.d = {
136 			.data = rsa_d,
137 			.length = sizeof(rsa_d)
138 		}
139 	}
140 };
141 
142 /** rsa xform using quintuple key */
143 struct rte_crypto_asym_xform rsa_xform_crt = {
144 	.next = NULL,
145 	.xform_type = RTE_CRYPTO_ASYM_XFORM_RSA,
146 	.rsa = {
147 		.n = {
148 			.data = rsa_n,
149 			.length = sizeof(rsa_n)
150 		},
151 		.e = {
152 			.data = rsa_e,
153 			.length = sizeof(rsa_e)
154 		},
155 		.key_type = RTE_RSA_KET_TYPE_QT,
156 		.qt = {
157 			.p = {
158 				.data = rsa_p,
159 				.length = sizeof(rsa_p)
160 			},
161 			.q = {
162 				.data = rsa_q,
163 				.length = sizeof(rsa_q)
164 			},
165 			.dP = {
166 				.data = rsa_dP,
167 				.length = sizeof(rsa_dP)
168 			},
169 			.dQ = {
170 				.data = rsa_dQ,
171 				.length = sizeof(rsa_dQ)
172 			},
173 			.qInv = {
174 				.data = rsa_qInv,
175 				.length = sizeof(rsa_qInv)
176 			},
177 		}
178 	}
179 };
180 
181 #endif /* TEST_CRYPTODEV_RSA_TEST_VECTORS_H__ */
182