xref: /dpdk/app/test/test_cryptodev_security_tls_record_test_vectors.h (revision 7b20e6626a1ea245c0d6811509f211dddbcaf7d0)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2023 Marvell
3  */
4 
5 #ifndef _TEST_CRYPTODEV_SECURITY_TLS_RECORD_TEST_VECTORS_H_
6 #define _TEST_CRYPTODEV_SECURITY_TLS_RECORD_TEST_VECTORS_H_
7 
8 #include <rte_crypto.h>
9 #include <rte_security.h>
10 
11 #include "test_cryptodev.h"
12 #include "test_cryptodev_security_tls_record.h"
13 
14 /* TLS 1.2 AES-GCM 128 vector generated with kTLS. */
15 struct tls_record_test_data tls_test_data_aes_128_gcm_v1 = {
16 	.key = {
17 		.data = {
18 			0x77, 0xc4, 0x9b, 0x0c, 0x2b, 0xe2, 0xd2, 0x4e,
19 			0xf5, 0x36, 0xb4, 0xea, 0x16, 0xb0, 0xed, 0x1f
20 		},
21 	},
22 	.input_text = {
23 		.data = {
24 			0x61, 0x62, 0x63, 0x64, 0x31, 0x32, 0x33, 0x34,
25 			0x61, 0x62, 0x63, 0x64, 0x31, 0x32, 0x33, 0x34,
26 			0xa
27 		},
28 		.len = 17,
29 	},
30 	.output_text = {
31 		.data = {
32 			0x17, 0x03, 0x03, 0x00, 0x29,
33 			0x3a, 0xcd, 0x41, 0x5d, 0x42, 0xac, 0xce, 0x36,
34 			0xad, 0xd1, 0x83, 0xa0, 0x16, 0x84, 0xce, 0x84,
35 			0xfc, 0xc2, 0xa7, 0x6b, 0xa1, 0x89, 0x5d, 0xf2,
36 			0xeb,
37 			0x9b, 0x90, 0x01, 0x56, 0xf8, 0x9d, 0xac, 0x0c,
38 			0xa8, 0x95, 0xba, 0xcc, 0x1f, 0xf3, 0x36, 0x2b
39 		},
40 		.len = 46,
41 	},
42 	.imp_nonce = {
43 		.data = {
44 			0xda, 0xf8, 0x8f, 0x12
45 		},
46 		.len = 4,
47 	},
48 
49 	.iv = {
50 		.data = {
51 			0x3a, 0xcd, 0x41, 0x5d, 0x42, 0xac, 0xce, 0x36
52 		},
53 	},
54 
55 	.xform = {
56 		.aead = {
57 			.next = NULL,
58 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
59 			.aead = {
60 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
61 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
62 				.key.length = 16,
63 				.iv.length = 12,
64 				.iv.offset = IV_OFFSET,
65 				.digest_length = 16,
66 				.aad_length = 13,
67 			},
68 		},
69 	},
70 
71 	.tls_record_xform = {
72 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
73 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
74 		.tls_1_2.seq_no = 0x1,
75 	},
76 
77 	.aead = true,
78 	.app_type = 0x17,
79 };
80 
81 /* TLS 1.2 AES-128-GCM */
82 struct tls_record_test_data tls_test_data_aes_128_gcm_v2 = {
83 	.key = {
84 		.data = {
85 			0x64, 0xda, 0xc6, 0x34, 0xd4, 0x88, 0x59, 0x57,
86 			0x2d, 0x7c, 0xcc, 0x6d, 0xb2, 0x88, 0x40, 0x4c,
87 		},
88 	},
89 	.input_text = {
90 		.data = {
91 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
92 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
93 			0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x2d,
94 			0x47, 0x43, 0x4d, 0x20, 0x65, 0x78, 0x61, 0x6d,
95 			0x70, 0x6c, 0x65, 0xa,
96 		},
97 		.len = 36,
98 	},
99 	.output_text = {
100 		.data = {
101 			0x17, 0x03, 0x03, 0x00, 0x3c,
102 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
103 			0xb2, 0x8f, 0x1e, 0x8d, 0xe3, 0x67, 0xfd, 0xfa,
104 			0x68, 0x5a, 0xf4, 0x0f, 0x68, 0xdc, 0x5b, 0x6f,
105 			0x88, 0xd0, 0x1b, 0x3c, 0x84, 0xad, 0x01, 0xcf,
106 			0xd2, 0xab, 0x8b, 0x59, 0xbd, 0x66, 0x93, 0xd2,
107 			0x6f, 0xbd, 0xb2, 0xf0, 0xc7, 0xa3, 0x26, 0x78,
108 			0x35, 0xda, 0xe1, 0x4b, 0xb3, 0x3b, 0x21, 0x08,
109 			0xd2, 0x9b, 0x5c, 0x16,
110 		},
111 		.len = 65,
112 	},
113 	.imp_nonce = {
114 		.data = {
115 			0xdf, 0x13, 0xc5, 0x7c,
116 		},
117 		.len = 4,
118 	},
119 	.iv = {
120 		.data = {
121 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
122 		},
123 	},
124 
125 	.xform = {
126 		.aead = {
127 			.next = NULL,
128 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
129 			.aead = {
130 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
131 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
132 				.key.length = 16,
133 				.iv.length = 12,
134 				.iv.offset = IV_OFFSET,
135 				.digest_length = 16,
136 				.aad_length = 13,
137 			},
138 		},
139 	},
140 
141 	.tls_record_xform = {
142 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
143 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
144 		.tls_1_2.seq_no = 0x1,
145 	},
146 
147 	.aead = true,
148 	.app_type = 0x17,
149 };
150 
151 /* TLS 1.2 AES-256-GCM */
152 struct tls_record_test_data tls_test_data_aes_256_gcm = {
153 	.key = {
154 		.data = {
155 			0x14, 0x8d, 0x98, 0x26, 0xc3, 0x9f, 0xae, 0x1a,
156 			0x52, 0x38, 0x7c, 0xfe, 0xcd, 0x2e, 0x7f, 0x28,
157 			0x1f, 0x11, 0x07, 0x02, 0x83, 0xa0, 0x24, 0x78,
158 			0x09, 0x83, 0x65, 0xb9, 0x99, 0x1b, 0x2c, 0x3a,
159 		},
160 	},
161 	.input_text = {
162 		.data = {
163 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
164 			0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36, 0x2d,
165 			0x47, 0x43, 0x4d, 0x20, 0x54, 0x4c, 0x53, 0x20,
166 			0x31, 0x2e, 0x32, 0x20, 0x65, 0x78, 0x61, 0x6d,
167 			0x70, 0x6c, 0x65, 0xa,
168 		},
169 		.len = 36,
170 	},
171 	.output_text = {
172 		.data = {
173 			0x17, 0x03, 0x03, 0x00, 0x3c,
174 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
175 			0x37, 0xed, 0x76, 0x33, 0xb3, 0xcd, 0x66, 0x76,
176 			0x68, 0x2d, 0xc2, 0xb2, 0x83, 0x91, 0x15, 0xdf,
177 			0xc3, 0x13, 0x14, 0x83, 0x99, 0x4c, 0x0c, 0xcc,
178 			0xc0, 0x41, 0x6f, 0x54, 0x8d, 0xd5, 0x6f, 0xe7,
179 			0xe9, 0x7d, 0x9c, 0xed, 0xe8, 0xd6, 0x92, 0xac,
180 			0xa5, 0xc2, 0x93, 0xdf, 0xdc, 0xf7, 0x80, 0x3c,
181 			0xc6, 0xc3, 0x6e, 0x7f,
182 		},
183 		.len = 65,
184 	},
185 	.imp_nonce = {
186 		.data = {
187 			0xff, 0x9d, 0x56, 0x96,
188 		},
189 		.len = 4,
190 	},
191 	.iv = {
192 		.data = {
193 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
194 		},
195 	},
196 
197 	.xform = {
198 		.aead = {
199 			.next = NULL,
200 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
201 			.aead = {
202 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
203 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
204 				.key.length = 32,
205 				.iv.length = 12,
206 				.iv.offset = IV_OFFSET,
207 				.digest_length = 16,
208 				.aad_length = 13,
209 			},
210 		},
211 	},
212 
213 	.tls_record_xform = {
214 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
215 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
216 		.tls_1_2.seq_no = 0x1,
217 	},
218 
219 	.aead = true,
220 	.app_type = 0x17,
221 };
222 
223 struct tls_record_test_data tls_test_data_aes_128_cbc_sha1_hmac = {
224 	.key = {
225 		.data = {
226 			0xee, 0x2b, 0x2a, 0x59, 0xbf, 0x60, 0x36, 0xba,
227 			0xe4, 0xdc, 0x7d, 0x8b, 0xc7, 0x0d, 0xbb, 0x85,
228 		},
229 	},
230 	.auth_key = {
231 		.data = {
232 			0xcf, 0x4f, 0xc1, 0x7d, 0x6d, 0x4c, 0x0d, 0x13,
233 			0x3d, 0x8f, 0x95, 0xb5, 0xdd, 0xb0, 0x85, 0x08,
234 			0x38, 0x2c, 0xa1, 0xa0,
235 		},
236 	},
237 	.input_text = {
238 		.data = {
239 			/* plain text data */
240 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
241 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
242 			0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x2d,
243 			0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41, 0x31,
244 			0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
245 			0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x0a,
246 		},
247 		.len = 48,
248 	},
249 	.output_text = {
250 		.data = {
251 			/* TLS header */
252 			0x17, 0x03, 0x03, 0x00, 0x60,
253 			/* Encrypted data */
254 			0x30, 0x76, 0x10, 0x2e, 0xb2, 0xe3, 0xb6, 0x93,
255 			0x70, 0xd4, 0xdf, 0x2a, 0x4f, 0x92, 0x1d, 0x3c,
256 			0x9a, 0x87, 0x38, 0xb0, 0x8e, 0x82, 0xf1, 0x33,
257 			0xa2, 0x5e, 0xce, 0xaf, 0x51, 0xf1, 0x51, 0x17,
258 			0x4f, 0x63, 0x55, 0x60, 0xa5, 0x3f, 0xc5, 0x42,
259 			0x9a, 0x80, 0x7a, 0x19, 0xb9, 0x77, 0x5b, 0x6f,
260 			0x1b, 0x2e, 0x2c, 0x0a, 0xa1, 0xa9, 0xf4, 0xb1,
261 			0xc7, 0x12, 0x7d, 0xfc, 0x92, 0x2f, 0xf4, 0xfc,
262 			0x20, 0x16, 0x1a, 0xa3, 0x94, 0xc6, 0xfe, 0x64,
263 			0x8d, 0x16, 0xd2, 0x52, 0x56, 0x83, 0x75, 0x3f,
264 			0x5b, 0x89, 0xf4, 0x29, 0x72, 0x46, 0x19, 0xd2,
265 			0xae, 0xea, 0xe3, 0xfc, 0x23, 0xd9, 0x00, 0x6c,
266 		},
267 		.len = 101,
268 	},
269 	.iv = {
270 		.data = {
271 			0x30, 0x76, 0x10, 0x2e, 0xb2, 0xe3, 0xb6, 0x93,
272 			0x70, 0xd4, 0xdf, 0x2a, 0x4f, 0x92, 0x1d, 0x3c,
273 		},
274 	},
275 
276 	.xform = {
277 		.chain = {
278 			.auth = {
279 				.next = NULL,
280 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
281 				.auth = {
282 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
283 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
284 					.key.length = 20,
285 					.iv.length = 0,
286 					.iv.offset = 0,
287 					.digest_length = 20,
288 				},
289 			},
290 			.cipher = {
291 				.next = NULL,
292 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
293 				.cipher = {
294 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
295 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
296 					.key.length = 16,
297 					.iv.length = 16,
298 					.iv.offset = IV_OFFSET,
299 				},
300 			},
301 		},
302 	},
303 
304 	.tls_record_xform = {
305 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
306 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
307 		.tls_1_2.seq_no = 0x1,
308 	},
309 
310 	.aead = false,
311 	.app_type = 0x17,
312 };
313 
314 /* DTLS 1.2 AES-128-GCM */
315 struct tls_record_test_data dtls_test_data_aes_128_gcm = {
316 	.key = {
317 		.data = {
318 			0xde, 0x1f, 0xf3, 0x6f, 0x76, 0x9a, 0x99, 0x71,
319 			0x19, 0x5f, 0x03, 0x36, 0x64, 0x7d, 0xb2, 0x1e,
320 		},
321 	},
322 	.output_text = {
323 		.data = {
324 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
325 			0x00, 0x00, 0x01, 0x00, 0x3d, 0x00, 0x01, 0x00,
326 			0x00, 0x00, 0x00, 0x00, 0x01, 0xe8, 0x02, 0xd6,
327 			0xa6, 0x78, 0x71, 0x50, 0x8f, 0x26, 0x43, 0x5d,
328 			0xf7, 0x50, 0x5a, 0x45, 0x8b, 0xc9, 0x7f, 0xa7,
329 			0x12, 0x51, 0x3a, 0x72, 0x0c, 0xfa, 0x21, 0xff,
330 			0x8c, 0xc9, 0x3f, 0x25, 0x08, 0xb5, 0xe8, 0x7d,
331 			0x5f, 0xbc, 0xa8, 0xb9, 0xd3, 0xe3, 0x15, 0xb0,
332 			0x9b, 0xbd, 0x82, 0x9b, 0x77, 0x14, 0x17, 0x2a,
333 			0x28, 0xbb,
334 		},
335 		.len = 74,
336 	},
337 	.input_text = {
338 		.data = {
339 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
340 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
341 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38,
342 			0x2d, 0x47, 0x43, 0x4d, 0x20, 0x65, 0x78, 0x61,
343 			0x6d, 0x70, 0x6c, 0x65, 0xa,
344 		},
345 		.len = 37,
346 	},
347 	.imp_nonce = {
348 		.data = {
349 			0x66, 0xb2, 0x04, 0x1d,
350 		},
351 		.len = 4,
352 	},
353 	.iv = {
354 		.data = {
355 			0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
356 		},
357 	},
358 
359 	.xform = {
360 		.aead = {
361 			.next = NULL,
362 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
363 			.aead = {
364 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
365 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
366 				.key.length = 16,
367 				.iv.length = 12,
368 				.iv.offset = IV_OFFSET,
369 				.digest_length = 16,
370 				.aad_length = 13,
371 			},
372 		},
373 	},
374 
375 	.tls_record_xform = {
376 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
377 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
378 		.dtls_1_2.epoch = 1,
379 		.dtls_1_2.seq_no = 1,
380 	},
381 
382 	.aead = true,
383 	.app_type = 0x17,
384 };
385 
386 /* DTLS 1.2 AES-256-GCM */
387 struct tls_record_test_data dtls_test_data_aes_256_gcm = {
388 	.key = {
389 		.data = {
390 			0x9e, 0x0d, 0xe9, 0x57, 0x4d, 0x24, 0xa7, 0x15,
391 			0x0d, 0x49, 0xf0, 0x87, 0xa6, 0xf1, 0x3e, 0x33,
392 			0x8c, 0xb8, 0x86, 0xb6, 0xbb, 0x72, 0x93, 0xa2,
393 			0x5e, 0xcb, 0x31, 0xe3, 0x60, 0xc6, 0x7e, 0x11,
394 		},
395 	},
396 	.output_text = {
397 		.data = {
398 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
399 			0x00, 0x00, 0x01, 0x00, 0x39, 0x00, 0x01, 0x00,
400 			0x00, 0x00, 0x00, 0x00, 0x01, 0xf9, 0xed, 0xe7,
401 			0xe2, 0x53, 0x97, 0x9a, 0x3c, 0xc7, 0x66, 0x21,
402 			0x62, 0xfb, 0x29, 0x27, 0x8d, 0xc6, 0x11, 0xa3,
403 			0x69, 0x89, 0xdc, 0x34, 0x50, 0x6d, 0x2f, 0xf7,
404 			0x58, 0xd5, 0xc7, 0x71, 0xf4, 0x6d, 0x07, 0xae,
405 			0x35, 0x39, 0x7b, 0xa8, 0xc3, 0x38, 0x71, 0xb8,
406 			0xee, 0xb0, 0x18, 0xc6, 0xb5, 0x49,
407 		},
408 		.len = 70,
409 	},
410 	.input_text = {
411 		.data = {
412 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
413 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x65, 0x78, 0x61,
414 			0x6d, 0x70, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x73,
415 			0x74, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xa,
416 		},
417 		.len = 33,
418 	},
419 	.imp_nonce = {
420 		.data = {
421 			0x24, 0x58, 0x29, 0x71,
422 		},
423 		.len = 4,
424 	},
425 	.iv = {
426 		.data = {
427 			0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
428 		},
429 	},
430 
431 	.xform = {
432 		.aead = {
433 			.next = NULL,
434 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
435 			.aead = {
436 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
437 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
438 				.key.length = 32,
439 				.iv.length = 12,
440 				.iv.offset = IV_OFFSET,
441 				.digest_length = 16,
442 				.aad_length = 13,
443 			},
444 		},
445 	},
446 
447 	.tls_record_xform = {
448 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
449 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
450 		.dtls_1_2.epoch = 1,
451 		.dtls_1_2.seq_no = 1,
452 	},
453 
454 	.aead = true,
455 	.app_type = 0x17,
456 };
457 
458 struct tls_record_test_data tls_test_data_null_cipher_sha1_hmac = {
459 	.auth_key = {
460 		.data = {
461 			0xd7, 0x8c, 0xe2, 0xda, 0x51, 0x2a, 0xd3, 0x9c,
462 			0xb4, 0x6c, 0xa1, 0xcf, 0x3f, 0x13, 0xf6, 0x1d,
463 			0x9e, 0x40, 0x6f, 0x38,
464 		},
465 	},
466 	.input_text = {
467 		.data = {
468 			/* actual plain text */
469 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
470 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
471 			0x4e, 0x55, 0x4c, 0x4c, 0x20, 0x53, 0x48, 0x41,
472 			0x31, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
473 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xa,
474 		},
475 		.len = 41,
476 	},
477 	.output_text = {
478 		.data = {
479 			0x17, 0x03, 0x03, 0x00, 0x3d,
480 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
481 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
482 			0x4e, 0x55, 0x4c, 0x4c, 0x20, 0x53, 0x48, 0x41,
483 			0x31, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
484 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72,
485 			0x0a, 0x80, 0xa3, 0x85, 0x16, 0x85, 0xbf, 0x31,
486 			0xca, 0xac, 0x18, 0x8c, 0x4e, 0xd3, 0x02, 0x75,
487 			0x4e, 0xc9, 0xeb, 0x26, 0xab,
488 		},
489 		.len = 66,
490 	},
491 
492 	.xform = {
493 		.chain = {
494 			.auth = {
495 				.next = NULL,
496 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
497 				.auth = {
498 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
499 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
500 					.key.length = 20,
501 					.iv.length = 0,
502 					.iv.offset = 0,
503 					.digest_length = 20,
504 				},
505 			},
506 			.cipher = {
507 				.next = NULL,
508 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
509 				.cipher = {
510 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
511 					.algo = RTE_CRYPTO_CIPHER_NULL,
512 					.key.length = 0,
513 					.iv.length = 0,
514 					.iv.offset = IV_OFFSET,
515 				},
516 			},
517 		},
518 	},
519 
520 	.tls_record_xform = {
521 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
522 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
523 		.tls_1_2.seq_no = 0x1,
524 	},
525 
526 	.aead = false,
527 	.app_type = 0x17,
528 };
529 
530 struct tls_record_test_data tls_test_data_chacha20_poly1305 = {
531 	.key = {
532 		.data = {
533 			0xe3, 0x5b, 0x21, 0x49, 0x5d, 0xfa, 0x6d, 0xb5,
534 			0x93, 0xbf, 0xd3, 0xde, 0xa0, 0xef, 0x8b, 0xb2,
535 			0x86, 0xf3, 0xae, 0x20, 0x7c, 0x4d, 0x98, 0xda,
536 			0x20, 0x03, 0x3f, 0x57, 0x9f, 0x45, 0xdc, 0x8f,
537 		},
538 	},
539 	.input_text = {
540 		.data = {
541 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
542 			0x54, 0x4c, 0x53, 0x31, 0x2e, 0x32, 0x20, 0x43,
543 			0x48, 0x41, 0x43, 0x48, 0x41, 0x32, 0x30, 0x2d,
544 			0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35,
545 			0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
546 			0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x0a,
547 		},
548 		.len = 48,
549 	},
550 	.output_text = {
551 		.data = {
552 			0x17, 0x03, 0x03, 0x00, 0x40,
553 			0xdc, 0x3d, 0x81, 0xa1, 0xda, 0x88, 0x24, 0xcf,
554 			0xeb, 0xd3, 0x38, 0x99, 0x3d, 0x0f, 0xfa, 0xdc,
555 			0xac, 0x17, 0x8f, 0xa4, 0x20, 0xff, 0x08, 0x3a,
556 			0x04, 0x70, 0x52, 0xcf, 0x9e, 0x25, 0xf5, 0x98,
557 			0xf0, 0x5b, 0x0f, 0x80, 0xb1, 0x77, 0x6d, 0x7a,
558 			0x20, 0x73, 0xf6, 0x10, 0x1b, 0x5e, 0xfd, 0xc4,
559 			0x3c, 0xe1, 0x40, 0xa1, 0x7c, 0x43, 0xde, 0x13,
560 			0x6e, 0x43, 0xe2, 0x81, 0x16, 0x9c, 0xf0, 0x4a,
561 		},
562 		.len = 69,
563 	},
564 	.imp_nonce = {
565 		.data = {
566 			0x2e, 0x86, 0x13, 0x09, 0x34, 0xe8, 0xa7, 0x3f,
567 			0xda, 0x87, 0x68, 0xcb
568 		},
569 		.len = 12,
570 	},
571 	.iv = {
572 		.data = {
573 			0xdc, 0x3d, 0x81, 0xa1, 0xda, 0x88, 0x24, 0xcf,
574 		},
575 	},
576 
577 	.xform = {
578 		.aead = {
579 			.next = NULL,
580 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
581 			.aead = {
582 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
583 				.algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305,
584 				.key.length = 32,
585 				.iv.length = 8,
586 				.iv.offset = IV_OFFSET,
587 				.digest_length = 16,
588 				.aad_length = 13,
589 			},
590 		},
591 	},
592 
593 	.tls_record_xform = {
594 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
595 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
596 		.tls_1_2.seq_no = 0x1,
597 	},
598 
599 	.aead = true,
600 	.app_type = 0x17,
601 };
602 
603 struct tls_record_test_data dtls_test_data_chacha20_poly1305 = {
604 	.key = {
605 		.data = {
606 			0x11, 0x6b, 0x4e, 0x91, 0x74, 0x57, 0x15, 0x94,
607 			0xca, 0x11, 0x2e, 0xe8, 0xb2, 0x48, 0xf1, 0x9b,
608 			0x49, 0xbd, 0xbf, 0x91, 0x13, 0x4c, 0x83, 0xd7,
609 			0x24, 0xb1, 0xa1, 0x0e, 0xc1, 0x54, 0xe6, 0xe2,
610 		},
611 	},
612 	.input_text = {
613 		.data = {
614 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
615 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
616 			0x20, 0x43, 0x48, 0x41, 0x43, 0x48, 0x41, 0x32,
617 			0x30, 0x2d, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33,
618 			0x30, 0x35, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70,
619 			0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f,
620 			0x72, 0x0a,
621 		},
622 		.len = 50,
623 	},
624 	.output_text = {
625 		.data = {
626 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
627 			0x00, 0x00, 0x01, 0x00, 0x42,
628 			0xd5, 0x38, 0xd0, 0x1e, 0x7e, 0x9d, 0x69, 0xa1,
629 			0xf9, 0x7c, 0x1f, 0xad, 0x64, 0x24, 0xac, 0x07,
630 			0x37, 0x3d, 0x7b, 0x8b, 0x63, 0x6e, 0x9d, 0x63,
631 			0xa2, 0xd2, 0x05, 0x91, 0x1c, 0xa2, 0x5f, 0xbd,
632 			0x3e, 0x5d, 0x82, 0x37, 0xb4, 0x46, 0x8d, 0x7f,
633 			0x1c, 0x20, 0xb4, 0x5c, 0xb2, 0x05, 0xdb, 0x84,
634 			0x77, 0xad, 0x9c, 0xbd, 0x09, 0x14, 0x50, 0x9e,
635 			0xad, 0xc3, 0xc6, 0xfe, 0x2f, 0x13, 0xf6, 0x79,
636 			0x65, 0x70,
637 		},
638 		.len = 79,
639 	},
640 	.imp_nonce = {
641 		.data = {
642 			0x5b, 0xb2, 0x29, 0x02, 0x14, 0x1d, 0xf1, 0x86,
643 			0x5a, 0xe5, 0x70, 0x3f,
644 		},
645 		.len = 12,
646 	},
647 	.iv = {
648 		.data = {
649 			0xd5, 0x38, 0xd0, 0x1e, 0x7e, 0x9d, 0x69, 0xa1,
650 		},
651 	},
652 
653 	.xform = {
654 		.aead = {
655 			.next = NULL,
656 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
657 			.aead = {
658 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
659 				.algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305,
660 				.key.length = 32,
661 				.iv.length = 8,
662 				.iv.offset = IV_OFFSET,
663 				.digest_length = 16,
664 				.aad_length = 21,
665 			},
666 		},
667 	},
668 
669 	.tls_record_xform = {
670 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
671 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
672 		.dtls_1_2.epoch = 1,
673 		.dtls_1_2.seq_no = 1,
674 	},
675 
676 	.aead = true,
677 	.app_type = 0x17,
678 };
679 
680 struct tls_record_test_data dtls_test_data_null_cipher_sha1_hmac = {
681 	.auth_key = {
682 		.data = {
683 			0xb1, 0x1d, 0x4f, 0x46, 0x23, 0x42, 0x51, 0x51,
684 			0xda, 0x91, 0x59, 0x01, 0xde, 0x9e, 0x0c, 0x27,
685 			0xe6, 0x8a, 0xdc, 0xf8,
686 		},
687 	},
688 	.input_text = {
689 		.data = {
690 			/* actual plain text */
691 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
692 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
693 			0x20, 0x4e, 0x55, 0x4c, 0x4c, 0x20, 0x63, 0x69,
694 			0x70, 0x68, 0x65, 0x72, 0x20, 0x53, 0x48, 0x41,
695 			0x31, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
696 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x0a,
697 		},
698 		.len = 49,
699 	},
700 	.output_text = {
701 		.data = {
702 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
703 			0x00, 0x00, 0x01, 0x00, 0x45,
704 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
705 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
706 			0x20, 0x4e, 0x55, 0x4c, 0x4c, 0x20, 0x63, 0x69,
707 			0x70, 0x68, 0x65, 0x72, 0x20, 0x53, 0x48, 0x41,
708 			0x31, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
709 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72,
710 			0x0a, 0xfc, 0x24, 0x2f, 0x1c, 0x74, 0xda, 0x3d,
711 			0xb3, 0xa9, 0x81, 0x51, 0xcb, 0x9b, 0xb6, 0x7e,
712 			0x25, 0xa6, 0x53, 0x04, 0x2f,
713 		},
714 		.len = 82,
715 	},
716 
717 	.xform = {
718 		.chain = {
719 			.auth = {
720 				.next = NULL,
721 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
722 				.auth = {
723 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
724 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
725 					.key.length = 20,
726 					.iv.length = 0,
727 					.iv.offset = 0,
728 					.digest_length = 20,
729 				},
730 			},
731 			.cipher = {
732 				.next = NULL,
733 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
734 				.cipher = {
735 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
736 					.algo = RTE_CRYPTO_CIPHER_NULL,
737 					.key.length = 0,
738 					.iv.length = 0,
739 					.iv.offset = IV_OFFSET,
740 				},
741 			},
742 		},
743 	},
744 
745 	.tls_record_xform = {
746 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
747 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
748 		.dtls_1_2.epoch = 1,
749 		.dtls_1_2.seq_no = 1,
750 	},
751 
752 	.aead = false,
753 	.app_type = 0x17,
754 };
755 
756 struct tls_record_test_data dtls_test_data_aes_128_cbc_sha1_hmac = {
757 	.key = {
758 		.data = {
759 			0x6f, 0x78, 0x95, 0x1f, 0x08, 0xff, 0xd7, 0xa6,
760 			0x7f, 0x64, 0x70, 0xa8, 0x10, 0xde, 0xce, 0xca,
761 		},
762 	},
763 	.auth_key = {
764 		.data = {
765 			0x8e, 0x8a, 0xae, 0xa2, 0xe9, 0x8e, 0x4a, 0xa2,
766 			0x7a, 0xa7, 0x24, 0x76, 0xf1, 0x48, 0x20, 0x25,
767 			0x8b, 0x04, 0xd7, 0x2d,
768 		},
769 	},
770 	.input_text = {
771 		.data = {
772 			/* actual plain text */
773 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
774 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
775 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38,
776 			0x2d, 0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41,
777 			0x31, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
778 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xa,
779 		},
780 		.len = 49,
781 	},
782 	.output_text = {
783 		.data = {
784 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
785 			0x00, 0x00, 0x01, 0x00, 0x60,
786 			0x3a, 0x0f, 0xaf, 0x47, 0x0d, 0x9e, 0x0f, 0x47,
787 			0x88, 0x23, 0x4e, 0xa0, 0x05, 0x1e, 0x35, 0x99,
788 			0x03, 0xa8, 0x32, 0x8f, 0x3d, 0x5d, 0xd6, 0xb1,
789 			0xf1, 0x93, 0x40, 0x16, 0xed, 0x3a, 0xea, 0x0d,
790 			0xb0, 0x03, 0xcd, 0x56, 0x8f, 0x96, 0x26, 0x00,
791 			0xb3, 0x54, 0xaf, 0x18, 0xbc, 0x95, 0xfe, 0x3e,
792 			0x5d, 0xfa, 0x57, 0xa0, 0x8d, 0x95, 0x8f, 0xd2,
793 			0xab, 0x2e, 0x58, 0x5c, 0xe8, 0x37, 0xff, 0xc5,
794 			0x00, 0x62, 0xfa, 0x19, 0xfd, 0x39, 0x4f, 0xc2,
795 			0x10, 0xd3, 0x98, 0x72, 0xec, 0x2f, 0x00, 0x2b,
796 			0x1c, 0xb9, 0xf4, 0xe2, 0xf4, 0xd4, 0xbf, 0x5b,
797 			0x77, 0x45, 0x42, 0x57, 0x77, 0x26, 0xff, 0x41,
798 		},
799 		.len = 109,
800 	},
801 	.iv = {
802 		.data = {
803 			0x3a, 0x0f, 0xaf, 0x47, 0x0d, 0x9e, 0x0f, 0x47,
804 			0x88, 0x23, 0x4e, 0xa0, 0x05, 0x1e, 0x35, 0x99,
805 		},
806 	},
807 
808 	.xform = {
809 		.chain = {
810 			.auth = {
811 				.next = NULL,
812 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
813 				.auth = {
814 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
815 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
816 					.key.length = 20,
817 					.iv.length = 0,
818 					.iv.offset = 0,
819 					.digest_length = 20,
820 				},
821 			},
822 			.cipher = {
823 				.next = NULL,
824 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
825 				.cipher = {
826 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
827 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
828 					.key.length = 16,
829 					.iv.length = 16,
830 					.iv.offset = IV_OFFSET,
831 				},
832 			},
833 		},
834 	},
835 
836 	.tls_record_xform = {
837 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
838 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
839 		.dtls_1_2.epoch = 1,
840 		.dtls_1_2.seq_no = 1,
841 	},
842 
843 	.aead = false,
844 	.app_type = 0x17,
845 };
846 
847 struct tls_record_test_data dtls_test_data_aes_128_cbc_sha256_hmac = {
848 	.key = {
849 		.data = {
850 			0x4c, 0x3f, 0x7e, 0x56, 0xdf, 0x60, 0x0e, 0xfa,
851 			0x47, 0x8b, 0xb5, 0x44, 0x7f, 0x47, 0xfa, 0x22,
852 		},
853 	},
854 	.auth_key = {
855 		.data = {
856 			0x5b, 0xaa, 0x3c, 0x1a, 0x60, 0x9b, 0x15, 0x04,
857 			0x02, 0xda, 0xdb, 0x96, 0x5e, 0xd9, 0x7b, 0x7a,
858 			0xa4, 0xca, 0xd6, 0xab, 0x0b, 0x55, 0x87, 0xef,
859 			0x20, 0xcd, 0x2e, 0xd5, 0xe4, 0x70, 0xae, 0x36,
860 		},
861 	},
862 	.input_text = {
863 		.data = {
864 			/* actual plain text */
865 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
866 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
867 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38,
868 			0x2d, 0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41,
869 			0x32, 0x35, 0x36, 0x20, 0x65, 0x78, 0x61, 0x6d,
870 			0x70, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74,
871 			0x6f, 0x72, 0xa,
872 		},
873 		.len = 51,
874 	},
875 	.output_text = {
876 		.data = {
877 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
878 			0x00, 0x00, 0x01, 0x00, 0x70,
879 			0x9c, 0xfe, 0xdf, 0x4f, 0xaf, 0x86, 0x46, 0xc7,
880 			0x97, 0xaa, 0x2e, 0xe4, 0xd8, 0x51, 0xa8, 0xbb,
881 			0x22, 0x25, 0x09, 0xa7, 0x25, 0xb1, 0xa1, 0xe1,
882 			0xcc, 0xcb, 0x3f, 0x08, 0xae, 0xa9, 0xae, 0xa1,
883 			0x43, 0xe0, 0xf5, 0x6b, 0x98, 0xda, 0x98, 0x09,
884 			0x99, 0xfa, 0x8c, 0x01, 0xd8, 0x90, 0x0d, 0x42,
885 			0xcc, 0x5f, 0x1d, 0x52, 0x48, 0xbe, 0xd2, 0x4e,
886 			0x62, 0xf5, 0x64, 0x89, 0x2f, 0x05, 0x91, 0x4e,
887 			0x54, 0x3a, 0x58, 0x1c, 0x99, 0xb0, 0xa5, 0x4a,
888 			0xc1, 0x42, 0xa1, 0x87, 0xa3, 0x00, 0x17, 0x6f,
889 			0xa8, 0xf8, 0x9d, 0xae, 0xaf, 0x40, 0xf8, 0x72,
890 			0xbf, 0xad, 0xbe, 0x68, 0x74, 0x20, 0xe5, 0xe9,
891 			0x1b, 0x1d, 0x17, 0x28, 0xf7, 0xb2, 0xf8, 0x01,
892 			0xc5, 0xcb, 0xca, 0xc5, 0xda, 0x70, 0x1c, 0x7d,
893 		},
894 		.len = 125,
895 	},
896 	.iv = {
897 		.data = {
898 			0x9c, 0xfe, 0xdf, 0x4f, 0xaf, 0x86, 0x46, 0xc7,
899 			0x97, 0xaa, 0x2e, 0xe4, 0xd8, 0x51, 0xa8, 0xbb,
900 		},
901 	},
902 
903 	.xform = {
904 		.chain = {
905 			.auth = {
906 				.next = NULL,
907 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
908 				.auth = {
909 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
910 					.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
911 					.key.length = 32,
912 					.iv.length = 0,
913 					.iv.offset = 0,
914 					.digest_length = 32,
915 				},
916 			},
917 			.cipher = {
918 				.next = NULL,
919 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
920 				.cipher = {
921 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
922 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
923 					.key.length = 16,
924 					.iv.length = 16,
925 					.iv.offset = IV_OFFSET,
926 				},
927 			},
928 		},
929 	},
930 
931 	.tls_record_xform = {
932 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
933 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
934 		.dtls_1_2.epoch = 1,
935 		.dtls_1_2.seq_no = 1,
936 	},
937 
938 	.aead = false,
939 	.app_type = 0x17,
940 };
941 
942 struct tls_record_test_data dtls_test_data_aes_256_cbc_sha1_hmac = {
943 	.key = {
944 		.data = {
945 			0xd5, 0x5d, 0xae, 0xb4, 0xb4, 0x6f, 0xef, 0xd9,
946 			0x08, 0xbd, 0x61, 0xf7, 0x95, 0x50, 0x72, 0x85,
947 			0x4f, 0x4f, 0x3a, 0x1a, 0x55, 0x5b, 0xa9, 0x65,
948 			0xcb, 0x54, 0x29, 0xdb, 0xdb, 0xdc, 0xb9, 0x66,
949 		},
950 	},
951 	.auth_key = {
952 		.data = {
953 			0x9f, 0xb0, 0xcb, 0xe1, 0xca, 0xc4, 0x13, 0xa0,
954 			0x57, 0xa8, 0x5b, 0xd6, 0x5e, 0xe7, 0x8d, 0xfb,
955 			0xe9, 0x99, 0x05, 0x88,
956 		},
957 	},
958 	.input_text = {
959 		.data = {
960 			/* actual plain text */
961 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
962 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
963 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36,
964 			0x2d, 0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41,
965 			0x31, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
966 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xa,
967 		},
968 		.len = 49,
969 	},
970 	.output_text = {
971 		.data = {
972 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
973 			0x00, 0x00, 0x01, 0x00, 0x60,
974 			0x55, 0xdd, 0x04, 0x79, 0xa9, 0xc2, 0x62, 0x2c,
975 			0xc1, 0x89, 0x8e, 0xc4, 0x0a, 0x3f, 0x80, 0x2c,
976 			0x14, 0xcc, 0xa4, 0x01, 0xf3, 0x4f, 0x33, 0x10,
977 			0xe0, 0x7a, 0xc1, 0x5b, 0xeb, 0x51, 0xd6, 0x34,
978 			0x51, 0xaf, 0x81, 0x6c, 0xeb, 0xce, 0x97, 0xa2,
979 			0x27, 0x02, 0x66, 0xb6, 0x35, 0x4c, 0x1c, 0xbd,
980 			0x5e, 0x8d, 0x1b, 0x12, 0x42, 0xad, 0xf3, 0x43,
981 			0x52, 0x6d, 0x1b, 0xb5, 0x4f, 0x7c, 0x48, 0xd8,
982 			0xae, 0xf2, 0x5e, 0xe0, 0xe6, 0x57, 0x3f, 0x61,
983 			0xa0, 0x8d, 0x3d, 0x42, 0x3c, 0x33, 0xb9, 0x39,
984 			0x84, 0x06, 0x49, 0xd8, 0xd4, 0xfc, 0x7d, 0x0f,
985 			0x30, 0x6d, 0x7b, 0x98, 0xee, 0xd3, 0xbd, 0x35,
986 		},
987 		.len = 109,
988 	},
989 	.iv = {
990 		.data = {
991 			0x55, 0xdd, 0x04, 0x79, 0xa9, 0xc2, 0x62, 0x2c,
992 			0xc1, 0x89, 0x8e, 0xc4, 0x0a, 0x3f, 0x80, 0x2c,
993 		},
994 	},
995 
996 	.xform = {
997 		.chain = {
998 			.auth = {
999 				.next = NULL,
1000 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1001 				.auth = {
1002 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1003 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1004 					.key.length = 20,
1005 					.iv.length = 0,
1006 					.iv.offset = 0,
1007 					.digest_length = 20,
1008 				},
1009 			},
1010 			.cipher = {
1011 				.next = NULL,
1012 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1013 				.cipher = {
1014 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1015 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1016 					.key.length = 32,
1017 					.iv.length = 16,
1018 					.iv.offset = IV_OFFSET,
1019 				},
1020 			},
1021 		},
1022 	},
1023 
1024 	.tls_record_xform = {
1025 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
1026 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1027 		.dtls_1_2.epoch = 1,
1028 		.dtls_1_2.seq_no = 1,
1029 	},
1030 
1031 	.aead = false,
1032 	.app_type = 0x17,
1033 };
1034 
1035 struct tls_record_test_data dtls_test_data_aes_256_cbc_sha256_hmac = {
1036 	.key = {
1037 		.data = {
1038 			0xaa, 0x18, 0xb6, 0x7b, 0xf1, 0x74, 0xf5, 0x8d,
1039 			0xab, 0x6e, 0xfc, 0x12, 0x59, 0x5b, 0xab, 0x6f,
1040 			0xe7, 0x23, 0xc9, 0x80, 0x2e, 0x5d, 0xba, 0x73,
1041 			0x93, 0xd7, 0xe3, 0xc9, 0x86, 0xd7, 0x9c, 0x8e,
1042 		},
1043 	},
1044 	.auth_key = {
1045 		.data = {
1046 			0x78, 0x92, 0x52, 0xb3, 0x2a, 0x2f, 0x3e, 0xdf,
1047 			0xf0, 0xdd, 0x91, 0xd3, 0xf4, 0xeb, 0xd5, 0xdd,
1048 			0x97, 0x7c, 0x24, 0xb4, 0xec, 0x28, 0xf6, 0xbd,
1049 			0x8f, 0x7b, 0xdf, 0x97, 0x32, 0xdf, 0x81, 0xde,
1050 		},
1051 	},
1052 	.input_text = {
1053 		.data = {
1054 			/* actual plain text */
1055 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1056 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
1057 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36,
1058 			0x2d, 0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41,
1059 			0x32, 0x35, 0x36, 0x20, 0x65, 0x78, 0x61, 0x6d,
1060 			0x70, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74,
1061 			0x6f, 0x72, 0xa,
1062 		},
1063 		.len = 51,
1064 	},
1065 	.output_text = {
1066 		.data = {
1067 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
1068 			0x00, 0x00, 0x01, 0x00, 0x70,
1069 			0x8f, 0x07, 0x1c, 0x60, 0x41, 0xbd, 0x77, 0x0c,
1070 			0x0b, 0x42, 0xbe, 0x95, 0x80, 0xc5, 0xdb, 0x1c,
1071 			0x46, 0xe4, 0x16, 0x83, 0xf7, 0x89, 0xe4, 0x82,
1072 			0xae, 0xaa, 0x8b, 0xc6, 0x91, 0x1a, 0x34, 0x9c,
1073 			0x23, 0x48, 0x83, 0x4c, 0x21, 0xf4, 0xed, 0xf8,
1074 			0x74, 0x1e, 0xd6, 0x9a, 0x76, 0x6d, 0xa3, 0x53,
1075 			0x56, 0xda, 0x78, 0x22, 0xea, 0x77, 0x87, 0xd0,
1076 			0xb5, 0x73, 0x7c, 0x53, 0x14, 0xdf, 0xc1, 0x84,
1077 			0x93, 0x97, 0xa4, 0x1d, 0x32, 0x1c, 0x57, 0x9a,
1078 			0xdd, 0x29, 0x0d, 0x41, 0x4d, 0x44, 0x4c, 0x7f,
1079 			0x7c, 0xd7, 0xa2, 0x8b, 0xaf, 0xfd, 0x76, 0x24,
1080 			0x81, 0x03, 0x11, 0x9e, 0xd0, 0x62, 0xc1, 0xfd,
1081 			0xc4, 0xe1, 0xf9, 0x88, 0xae, 0xf8, 0x7e, 0x25,
1082 			0xbf, 0xfb, 0xea, 0xa6, 0xe9, 0x70, 0x33, 0x6a,
1083 		},
1084 		.len = 125,
1085 	},
1086 	.iv = {
1087 		.data = {
1088 			0x8f, 0x07, 0x1c, 0x60, 0x41, 0xbd, 0x77, 0x0c,
1089 			0x0b, 0x42, 0xbe, 0x95, 0x80, 0xc5, 0xdb, 0x1c,
1090 		},
1091 	},
1092 
1093 	.xform = {
1094 		.chain = {
1095 			.auth = {
1096 				.next = NULL,
1097 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1098 				.auth = {
1099 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1100 					.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1101 					.key.length = 32,
1102 					.iv.length = 0,
1103 					.iv.offset = 0,
1104 					.digest_length = 32,
1105 				},
1106 			},
1107 			.cipher = {
1108 				.next = NULL,
1109 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1110 				.cipher = {
1111 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1112 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1113 					.key.length = 32,
1114 					.iv.length = 16,
1115 					.iv.offset = IV_OFFSET,
1116 				},
1117 			},
1118 		},
1119 	},
1120 
1121 	.tls_record_xform = {
1122 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
1123 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1124 		.dtls_1_2.epoch = 1,
1125 		.dtls_1_2.seq_no = 1,
1126 	},
1127 
1128 	.aead = false,
1129 	.app_type = 0x17,
1130 };
1131 
1132 struct tls_record_test_data dtls_test_data_aes_256_cbc_sha384_hmac = {
1133 	.key = {
1134 		.data = {
1135 			0x1d, 0xe5, 0x19, 0x18, 0x57, 0xa0, 0xee, 0x79,
1136 			0x84, 0x61, 0x92, 0x9d, 0x3d, 0xce, 0x42, 0x92,
1137 			0x4a, 0x98, 0x23, 0x3b, 0xf8, 0xec, 0x29, 0x47,
1138 			0xb3, 0xae, 0x1f, 0x22, 0xd2, 0x8d, 0xbe, 0x2c,
1139 		},
1140 	},
1141 	.auth_key = {
1142 		.data = {
1143 			0xf8, 0xbd, 0x28, 0xf9, 0x4a, 0xde, 0x1d, 0xde,
1144 			0x8c, 0xf5, 0xe9, 0x49, 0x34, 0x2a, 0x1a, 0xd0,
1145 			0x0d, 0xe3, 0x64, 0xb2, 0x54, 0xd6, 0xd6, 0x40,
1146 			0x90, 0x5d, 0x16, 0xc1, 0xf2, 0x77, 0x14, 0x90,
1147 			0xe6, 0xfa, 0xbc, 0x9d, 0xe2, 0x72, 0x12, 0xec,
1148 			0xb6, 0x05, 0xec, 0xdd, 0x1d, 0x23, 0xb3, 0x8e,
1149 		},
1150 	},
1151 	.input_text = {
1152 		.data = {
1153 			/* actual plain text */
1154 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1155 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
1156 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36,
1157 			0x2d, 0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41,
1158 			0x33, 0x38, 0x34, 0x20, 0x65, 0x78, 0x61, 0x6d,
1159 			0x70, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74,
1160 			0x6f, 0x72, 0x0a,
1161 		},
1162 		.len = 51,
1163 	},
1164 	.output_text = {
1165 		.data = {
1166 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
1167 			0x00, 0x00, 0x01, 0x00, 0x80,
1168 			0x63, 0xe2, 0x70, 0xce, 0x45, 0x93, 0x18, 0xa3,
1169 			0xa6, 0xd6, 0xf5, 0x50, 0x9f, 0x07, 0x9d, 0xab,
1170 			0x88, 0x41, 0xee, 0x5b, 0x32, 0x1e, 0x85, 0xaf,
1171 			0x33, 0x7b, 0x59, 0x8a, 0xe9, 0x41, 0x11, 0x6a,
1172 			0xbb, 0x7d, 0x16, 0x6c, 0xbb, 0x66, 0x5e, 0xf5,
1173 			0xfb, 0x5f, 0x03, 0xf9, 0x75, 0x7d, 0xb9, 0xff,
1174 			0x70, 0xc3, 0x4a, 0x19, 0xe5, 0x25, 0xa0, 0x5d,
1175 			0xad, 0x45, 0xef, 0xce, 0xd8, 0x2a, 0xde, 0xf0,
1176 			0x0c, 0xca, 0x1c, 0x6b, 0x5a, 0x31, 0x8f, 0x49,
1177 			0xff, 0x7d, 0xf3, 0x71, 0x15, 0x06, 0x07, 0x9d,
1178 			0x6a, 0x5f, 0x5c, 0xd8, 0x2a, 0xa5, 0x0e, 0x61,
1179 			0xde, 0x18, 0x6b, 0x7d, 0xc8, 0x74, 0x58, 0x18,
1180 			0xf1, 0xac, 0xde, 0xb9, 0x6d, 0x8a, 0x44, 0xad,
1181 			0x10, 0xf8, 0x63, 0x15, 0xcf, 0x25, 0x2f, 0x82,
1182 			0x2f, 0xda, 0x74, 0x45, 0x02, 0xda, 0x61, 0x3c,
1183 			0x2f, 0xf9, 0xa5, 0x92, 0x2a, 0x7c, 0x5e, 0x5d,
1184 		},
1185 		.len = 141,
1186 	},
1187 	.iv = {
1188 		.data = {
1189 			0x63, 0xe2, 0x70, 0xce, 0x45, 0x93, 0x18, 0xa3,
1190 			0xa6, 0xd6, 0xf5, 0x50, 0x9f, 0x07, 0x9d, 0xab,
1191 		},
1192 	},
1193 
1194 	.xform = {
1195 		.chain = {
1196 			.auth = {
1197 				.next = NULL,
1198 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1199 				.auth = {
1200 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1201 					.algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
1202 					.key.length = 48,
1203 					.iv.length = 0,
1204 					.iv.offset = 0,
1205 					.digest_length = 48,
1206 				},
1207 			},
1208 			.cipher = {
1209 				.next = NULL,
1210 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1211 				.cipher = {
1212 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1213 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1214 					.key.length = 32,
1215 					.iv.length = 16,
1216 					.iv.offset = IV_OFFSET,
1217 				},
1218 			},
1219 		},
1220 	},
1221 
1222 	.tls_record_xform = {
1223 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
1224 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1225 		.dtls_1_2.epoch = 1,
1226 		.dtls_1_2.seq_no = 1,
1227 	},
1228 
1229 	.aead = false,
1230 	.app_type = 0x17,
1231 };
1232 
1233 struct tls_record_test_data dtls_test_data_3des_cbc_sha1_hmac = {
1234 	.key = {
1235 		.data = {
1236 			0x2f, 0x60, 0xdc, 0xe6, 0x75, 0x71, 0xaa, 0x11,
1237 			0xb6, 0x37, 0xc3, 0x8e, 0xc4, 0x72, 0x19, 0xec,
1238 			0xc7, 0xd5, 0x43, 0x9b, 0x35, 0xe9, 0x5f, 0xc4,
1239 		},
1240 	},
1241 	.auth_key = {
1242 		.data = {
1243 			0x3e, 0xaa, 0x47, 0xfc, 0x45, 0x1c, 0x49, 0xe0,
1244 			0xf1, 0x76, 0x82, 0x70, 0xb2, 0xbd, 0x43, 0x49,
1245 			0xc5, 0x31, 0x2b, 0xf0,
1246 		},
1247 	},
1248 	.input_text = {
1249 		.data = {
1250 			/* actual plain text */
1251 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1252 			0x44, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
1253 			0x20, 0x33, 0x44, 0x45, 0x53, 0x2d, 0x43, 0x42,
1254 			0x43, 0x20, 0x53, 0x48, 0x41, 0x31, 0x20, 0x65,
1255 			0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x76,
1256 			0x65, 0x63, 0x74, 0x6f, 0x72, 0xa,
1257 		},
1258 		.len = 46,
1259 	},
1260 	.output_text = {
1261 		.data = {
1262 			0x17, 0xfe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00,
1263 			0x00, 0x00, 0x01, 0x00, 0x50,
1264 			0xe1, 0xae, 0x8c, 0x7d, 0x1c, 0x50, 0x3d, 0xb4,
1265 			0xf6, 0xd0, 0x63, 0xc2, 0x70, 0x4e, 0x01, 0x2d,
1266 			0x78, 0x0e, 0xbc, 0x88, 0xf3, 0xf6, 0xaa, 0x75,
1267 			0xf8, 0x72, 0xe3, 0x4b, 0x3f, 0x3e, 0xf7, 0x91,
1268 			0x5c, 0x20, 0xd9, 0x66, 0x1d, 0x76, 0xa7, 0x4e,
1269 			0x14, 0x50, 0x51, 0x79, 0x37, 0xc2, 0xbb, 0x7a,
1270 			0xdb, 0x89, 0x3d, 0xaa, 0x98, 0x68, 0x67, 0x17,
1271 			0xb2, 0x68, 0x30, 0x25, 0x98, 0xa4, 0x26, 0xa1,
1272 			0xaf, 0x91, 0x18, 0x16, 0x2e, 0x66, 0x75, 0xb7,
1273 			0xd5, 0x59, 0x66, 0x13, 0x40, 0xce, 0x5e, 0xe0,
1274 		},
1275 		.len = 93,
1276 	},
1277 	.iv = {
1278 		.data = {
1279 			0xe1, 0xae, 0x8c, 0x7d, 0x1c, 0x50, 0x3d, 0xb4,
1280 		},
1281 	},
1282 
1283 	.xform = {
1284 		.chain = {
1285 			.auth = {
1286 				.next = NULL,
1287 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1288 				.auth = {
1289 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1290 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1291 					.key.length = 20,
1292 					.iv.length = 0,
1293 					.iv.offset = 0,
1294 					.digest_length = 20,
1295 				},
1296 			},
1297 			.cipher = {
1298 				.next = NULL,
1299 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1300 				.cipher = {
1301 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1302 					.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
1303 					.key.length = 24,
1304 					.iv.length = 8,
1305 					.iv.offset = IV_OFFSET,
1306 				},
1307 			},
1308 		},
1309 	},
1310 
1311 	.tls_record_xform = {
1312 		.ver = RTE_SECURITY_VERSION_DTLS_1_2,
1313 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1314 		.dtls_1_2.epoch = 1,
1315 		.dtls_1_2.seq_no = 1,
1316 	},
1317 
1318 	.aead = false,
1319 	.app_type = 0x17,
1320 };
1321 
1322 struct tls_record_test_data tls_test_data_aes_128_cbc_sha256_hmac = {
1323 	.key = {
1324 		.data = {
1325 			0x77, 0xe2, 0xad, 0x5f, 0x3a, 0xac, 0xae, 0xaf,
1326 			0x29, 0x4c, 0x94, 0xe0, 0x27, 0x99, 0x1a, 0x6c,
1327 		},
1328 	},
1329 	.auth_key = {
1330 		.data = {
1331 			0x1e, 0xbb, 0x70, 0xaf, 0x09, 0x9d, 0x1b, 0xbd,
1332 			0xd9, 0xce, 0x48, 0x9b, 0x42, 0x52, 0x53, 0x1b,
1333 			0x16, 0x37, 0xdb, 0xc5, 0x0a, 0x0f, 0x01, 0xa4,
1334 			0x57, 0x22, 0x84, 0x95, 0xa5, 0xea, 0x33, 0x61,
1335 		},
1336 	},
1337 	.input_text = {
1338 		.data = {
1339 			/* actual plain text */
1340 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1341 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
1342 			0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x2d,
1343 			0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41, 0x32,
1344 			0x35, 0x36, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70,
1345 			0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f,
1346 			0x72, 0xa,
1347 		},
1348 		.len = 50,
1349 	},
1350 	.output_text = {
1351 		.data = {
1352 			0x17, 0x03, 0x03, 0x00, 0x70,
1353 			0xe4, 0xe7, 0xdf, 0x4b, 0x35, 0x8d, 0xcd, 0xc2,
1354 			0x0c, 0x83, 0x54, 0xb9, 0x7c, 0x11, 0x39, 0xcc,
1355 			0xb8, 0x52, 0xd8, 0x79, 0x39, 0x0e, 0x5e, 0xe8,
1356 			0x13, 0x5e, 0xd0, 0x7e, 0x19, 0xd1, 0xbb, 0x5c,
1357 			0x33, 0xdd, 0x95, 0xc9, 0x71, 0x22, 0xa1, 0xae,
1358 			0x21, 0x99, 0x89, 0xde, 0x9a, 0x88, 0xdd, 0x53,
1359 			0x46, 0x7c, 0xa4, 0xdd, 0x21, 0xb6, 0xe1, 0x19,
1360 			0x41, 0xc9, 0xd2, 0x27, 0xa3, 0xec, 0x3f, 0x9a,
1361 			0xd5, 0x53, 0x07, 0x0c, 0x1f, 0xb8, 0x3d, 0xdf,
1362 			0xaf, 0x87, 0xa2, 0x67, 0x97, 0xd0, 0x3f, 0xf5,
1363 			0x25, 0x9c, 0xfd, 0x9d, 0x40, 0x22, 0x91, 0xb7,
1364 			0xed, 0xb0, 0xfc, 0x93, 0xd9, 0xa6, 0x1c, 0x04,
1365 			0x5f, 0xc8, 0x55, 0x4c, 0x32, 0x5f, 0x0b, 0x65,
1366 			0x87, 0xd1, 0x79, 0x72, 0xc3, 0x44, 0x89, 0x2e,
1367 		},
1368 		.len = 117,
1369 	},
1370 	.iv = {
1371 		.data = {
1372 			0xe4, 0xe7, 0xdf, 0x4b, 0x35, 0x8d, 0xcd, 0xc2,
1373 			0x0c, 0x83, 0x54, 0xb9, 0x7c, 0x11, 0x39, 0xcc,
1374 		},
1375 	},
1376 
1377 	.xform = {
1378 		.chain = {
1379 			.auth = {
1380 				.next = NULL,
1381 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1382 				.auth = {
1383 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1384 					.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1385 					.key.length = 32,
1386 					.iv.length = 0,
1387 					.iv.offset = 0,
1388 					.digest_length = 32,
1389 				},
1390 			},
1391 			.cipher = {
1392 				.next = NULL,
1393 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1394 				.cipher = {
1395 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1396 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1397 					.key.length = 16,
1398 					.iv.length = 16,
1399 					.iv.offset = IV_OFFSET,
1400 				},
1401 			},
1402 		},
1403 	},
1404 
1405 	.tls_record_xform = {
1406 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
1407 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1408 		.tls_1_2.seq_no = 0x1,
1409 	},
1410 
1411 	.aead = false,
1412 	.app_type = 0x17,
1413 };
1414 
1415 struct tls_record_test_data tls_test_data_aes_256_cbc_sha1_hmac = {
1416 	.key = {
1417 		.data = {
1418 			0xa3, 0x43, 0x65, 0xb7, 0xb1, 0x86, 0x96, 0xc9,
1419 			0xa7, 0x98, 0xe9, 0xcc, 0x3e, 0x97, 0x7b, 0xba,
1420 			0x52, 0x5f, 0x9c, 0x0d, 0x25, 0x1d, 0x07, 0x1f,
1421 			0x97, 0xf8, 0xfa, 0x06, 0x1c, 0x1c, 0x23, 0xed,
1422 		},
1423 	},
1424 	.auth_key = {
1425 		.data = {
1426 			0x8e, 0xec, 0x48, 0x7b, 0xe9, 0xf2, 0xbb, 0x47,
1427 			0x82, 0x01, 0x49, 0xa3, 0x79, 0x30, 0x47, 0xb8,
1428 			0xd7, 0x28, 0x94, 0x08,
1429 		},
1430 	},
1431 	.input_text = {
1432 		.data = {
1433 			/* actual plain text */
1434 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1435 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
1436 			0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36, 0x2d,
1437 			0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41, 0x31,
1438 			0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0xa,
1439 		},
1440 		.len = 41,
1441 	},
1442 	.output_text = {
1443 		.data = {
1444 			0x17, 0x03, 0x03, 0x00, 0x50,
1445 			0x7a, 0xc6, 0x7e, 0x16, 0x63, 0x2f, 0x11, 0xd4,
1446 			0x14, 0x22, 0x8f, 0xfa, 0x0a, 0x60, 0xe1, 0x58,
1447 			0x11, 0xa3, 0xa3, 0xef, 0x8a, 0x04, 0xab, 0x87,
1448 			0x20, 0x67, 0xc1, 0x99, 0xde, 0x8a, 0xe9, 0x5a,
1449 			0x1c, 0xd6, 0xbd, 0x46, 0x99, 0xeb, 0x60, 0xad,
1450 			0x06, 0xf4, 0xfe, 0x8f, 0x50, 0x5f, 0x18, 0x52,
1451 			0x0c, 0x70, 0x25, 0xf2, 0xcc, 0x65, 0xff, 0x88,
1452 			0x17, 0xe9, 0xe6, 0xf9, 0x5e, 0x6f, 0xf8, 0xaa,
1453 			0x58, 0xf0, 0x49, 0xb5, 0xb3, 0x5c, 0x0f, 0x62,
1454 			0x06, 0x45, 0x08, 0x4e, 0x98, 0x2e, 0x71, 0x26,
1455 		},
1456 		.len = 85,
1457 	},
1458 	.iv = {
1459 		.data = {
1460 			0x7a, 0xc6, 0x7e, 0x16, 0x63, 0x2f, 0x11, 0xd4,
1461 			0x14, 0x22, 0x8f, 0xfa, 0x0a, 0x60, 0xe1, 0x58,
1462 		},
1463 	},
1464 
1465 	.xform = {
1466 		.chain = {
1467 			.auth = {
1468 				.next = NULL,
1469 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1470 				.auth = {
1471 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1472 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1473 					.key.length = 20,
1474 					.iv.length = 0,
1475 					.iv.offset = 0,
1476 					.digest_length = 20,
1477 				},
1478 			},
1479 			.cipher = {
1480 				.next = NULL,
1481 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1482 				.cipher = {
1483 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1484 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1485 					.key.length = 32,
1486 					.iv.length = 16,
1487 					.iv.offset = IV_OFFSET,
1488 				},
1489 			},
1490 		},
1491 	},
1492 
1493 	.tls_record_xform = {
1494 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
1495 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1496 		.tls_1_2.seq_no = 0x1,
1497 	},
1498 
1499 	.aead = false,
1500 	.app_type = 0x17,
1501 };
1502 
1503 struct tls_record_test_data tls_test_data_aes_256_cbc_sha256_hmac = {
1504 	.key = {
1505 		.data = {
1506 			0xed, 0x63, 0xb2, 0xad, 0xa5, 0xb7, 0x95, 0xf1,
1507 			0xf2, 0x64, 0x83, 0xac, 0xd4, 0xbb, 0x37, 0x31,
1508 			0xec, 0xf7, 0x8a, 0xa9, 0xdd, 0x19, 0x6d, 0x47,
1509 			0x12, 0xb4, 0xa0, 0x5b, 0x8f, 0x6f, 0xa7, 0x5d,
1510 		},
1511 	},
1512 	.auth_key = {
1513 		.data = {
1514 			0xe3, 0x0f, 0x07, 0x9c, 0xee, 0x5a, 0xe6, 0xdd,
1515 			0xd1, 0xc5, 0x49, 0x9a, 0x94, 0x22, 0xd3, 0xee,
1516 			0x13, 0x41, 0x5b, 0x2b, 0x2a, 0x88, 0x89, 0xc9,
1517 			0xd8, 0xeb, 0xbf, 0x16, 0x4d, 0x89, 0xcb, 0x5a,
1518 		},
1519 	},
1520 	.input_text = {
1521 		.data = {
1522 			/* actual plain text */
1523 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1524 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
1525 			0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36, 0x2d,
1526 			0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41, 0x32,
1527 			0x35, 0x36, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70,
1528 			0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f,
1529 			0x72, 0xa,
1530 		},
1531 		.len = 50,
1532 	},
1533 	.output_text = {
1534 		.data = {
1535 			0x17, 0x03, 0x03, 0x00, 0x70,
1536 			0x83, 0x7c, 0x06, 0xa9, 0x9f, 0x57, 0xf3, 0x53,
1537 			0xc2, 0xca, 0xd5, 0xe0, 0x8d, 0xd0, 0x6d, 0x13,
1538 			0xe9, 0x09, 0xff, 0xf7, 0x56, 0xd6, 0x9b, 0x73,
1539 			0xd5, 0xea, 0x43, 0x55, 0xd1, 0xab, 0x25, 0x66,
1540 			0x6e, 0x06, 0x0a, 0x98, 0xa2, 0x83, 0x4d, 0x91,
1541 			0xef, 0x36, 0x2c, 0xde, 0x69, 0xf5, 0xbc, 0x7f,
1542 			0xf6, 0x98, 0x85, 0xab, 0x89, 0x0f, 0x1e, 0xcb,
1543 			0x54, 0x87, 0xae, 0xab, 0xc6, 0x2e, 0xb9, 0x4c,
1544 			0xa5, 0x16, 0x7f, 0x04, 0x92, 0x2a, 0x59, 0x61,
1545 			0x3c, 0x2e, 0x40, 0x6b, 0xb6, 0xb1, 0x2f, 0x04,
1546 			0x66, 0x55, 0xd1, 0x12, 0x9c, 0x35, 0xb5, 0xbd,
1547 			0xbc, 0x0e, 0xa1, 0xb1, 0x88, 0xe5, 0x4f, 0xdd,
1548 			0x11, 0x47, 0x61, 0xed, 0x85, 0xca, 0xbb, 0x3e,
1549 			0xec, 0xf5, 0xea, 0x49, 0x07, 0x86, 0x1f, 0x2a,
1550 		},
1551 		.len = 117,
1552 	},
1553 	.iv = {
1554 		.data = {
1555 			0x83, 0x7c, 0x06, 0xa9, 0x9f, 0x57, 0xf3, 0x53,
1556 			0xc2, 0xca, 0xd5, 0xe0, 0x8d, 0xd0, 0x6d, 0x13,
1557 		},
1558 	},
1559 
1560 	.xform = {
1561 		.chain = {
1562 			.auth = {
1563 				.next = NULL,
1564 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1565 				.auth = {
1566 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1567 					.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1568 					.key.length = 32,
1569 					.iv.length = 0,
1570 					.iv.offset = 0,
1571 					.digest_length = 32,
1572 				},
1573 			},
1574 			.cipher = {
1575 				.next = NULL,
1576 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1577 				.cipher = {
1578 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1579 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1580 					.key.length = 32,
1581 					.iv.length = 16,
1582 					.iv.offset = IV_OFFSET,
1583 				},
1584 			},
1585 		},
1586 	},
1587 
1588 	.tls_record_xform = {
1589 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
1590 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1591 		.tls_1_2.seq_no = 0x1,
1592 	},
1593 
1594 	.aead = false,
1595 	.app_type = 0x17,
1596 };
1597 
1598 struct tls_record_test_data tls_test_data_aes_256_cbc_sha384_hmac = {
1599 	.key = {
1600 		.data = {
1601 			0x48, 0x70, 0xc7, 0x93, 0x77, 0xe3, 0x4c, 0x8c,
1602 			0x27, 0x00, 0x64, 0x06, 0x3e, 0xc6, 0x47, 0x64,
1603 			0xcc, 0xee, 0xa4, 0x9a, 0x1a, 0xe7, 0x3a, 0xc6,
1604 			0xef, 0xe5, 0xe6, 0x2c, 0x15, 0xe3, 0xac, 0x16,
1605 		},
1606 	},
1607 	.auth_key = {
1608 		.data = {
1609 			0x23, 0x95, 0x84, 0x30, 0xaf, 0x2b, 0x07, 0xfe,
1610 			0x12, 0x83, 0x87, 0x28, 0x2b, 0x38, 0xb9, 0x02,
1611 			0xc0, 0x27, 0x59, 0x3e, 0xa7, 0xbd, 0xce, 0xcb,
1612 			0xe1, 0x8a, 0xe9, 0x43, 0x5d, 0xed, 0xb4, 0xf2,
1613 			0x11, 0x4d, 0x19, 0xbb, 0x0f, 0x1b, 0x76, 0x86,
1614 			0xfb, 0xb5, 0xda, 0xfd, 0x38, 0xfe, 0x7d, 0x02,
1615 		},
1616 	},
1617 	.input_text = {
1618 		.data = {
1619 			/* actual plain text */
1620 			0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73,
1621 			0x20, 0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32,
1622 			0x20, 0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36,
1623 			0x2d, 0x43, 0x42, 0x43, 0x20, 0x53, 0x48, 0x41,
1624 			0x33, 0x38, 0x34, 0x20, 0x65, 0x78, 0x61, 0x6d,
1625 			0x70, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74,
1626 			0x6f, 0x72, 0x0a,
1627 		},
1628 		.len = 51,
1629 	},
1630 	.output_text = {
1631 		.data = {
1632 			0x17, 0x03, 0x03, 0x00, 0x80,
1633 			0xc4, 0x90, 0xd7, 0x74, 0x5e, 0x26, 0xc8, 0x43,
1634 			0x12, 0x45, 0x48, 0xc1, 0x0f, 0xb1, 0x18, 0xd8,
1635 			0x1e, 0x5b, 0x1e, 0x50, 0x3e, 0x19, 0x25, 0x41,
1636 			0x35, 0xc7, 0x7c, 0x14, 0x99, 0x7b, 0x97, 0x80,
1637 			0x60, 0x9d, 0xf8, 0xf1, 0xac, 0x43, 0x7b, 0x5c,
1638 			0xb6, 0xe2, 0xc4, 0x8f, 0x3f, 0xd7, 0x1b, 0xd4,
1639 			0x61, 0x90, 0x40, 0xe3, 0xd5, 0x60, 0xac, 0xee,
1640 			0x62, 0x53, 0x1f, 0x1f, 0x75, 0xf6, 0x2c, 0xda,
1641 			0x1a, 0xed, 0x4a, 0x6a, 0x11, 0xeb, 0x9b, 0x1c,
1642 			0x39, 0x0d, 0x6e, 0x8a, 0xf8, 0x3d, 0x45, 0x08,
1643 			0x3e, 0x24, 0x17, 0x3e, 0xcf, 0x74, 0xcf, 0x6a,
1644 			0xcb, 0x37, 0xdf, 0x25, 0xc6, 0xa5, 0xe4, 0x1e,
1645 			0x53, 0x28, 0x71, 0xcf, 0xac, 0x1e, 0xad, 0x77,
1646 			0x8c, 0xfc, 0x80, 0x19, 0x9c, 0xcc, 0x00, 0x60,
1647 			0xc6, 0x82, 0xa0, 0xb8, 0x5e, 0x42, 0xd1, 0xff,
1648 			0x14, 0x0a, 0x92, 0x5c, 0xde, 0x8a, 0x15, 0x7a,
1649 		},
1650 		.len = 133,
1651 	},
1652 	.iv = {
1653 		.data = {
1654 			0xc4, 0x90, 0xd7, 0x74, 0x5e, 0x26, 0xc8, 0x43,
1655 			0x12, 0x45, 0x48, 0xc1, 0x0f, 0xb1, 0x18, 0xd8,
1656 		},
1657 	},
1658 
1659 	.xform = {
1660 		.chain = {
1661 			.auth = {
1662 				.next = NULL,
1663 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1664 				.auth = {
1665 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1666 					.algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
1667 					.key.length = 48,
1668 					.iv.length = 0,
1669 					.iv.offset = 0,
1670 					.digest_length = 48,
1671 				},
1672 			},
1673 			.cipher = {
1674 				.next = NULL,
1675 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1676 				.cipher = {
1677 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1678 					.algo = RTE_CRYPTO_CIPHER_AES_CBC,
1679 					.key.length = 32,
1680 					.iv.length = 16,
1681 					.iv.offset = IV_OFFSET,
1682 				},
1683 			},
1684 		},
1685 	},
1686 
1687 	.tls_record_xform = {
1688 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
1689 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1690 		.tls_1_2.seq_no = 0x1,
1691 	},
1692 
1693 	.aead = false,
1694 	.app_type = 0x17,
1695 };
1696 
1697 struct tls_record_test_data tls_test_data_3des_cbc_sha1_hmac = {
1698 	.key = {
1699 		.data = {
1700 			0x71, 0x61, 0x3c, 0x0f, 0xbd, 0x54, 0x25, 0xea,
1701 			0x18, 0x1e, 0xae, 0xb8, 0x6d, 0xed, 0xc7, 0xff,
1702 			0x0e, 0x8d, 0x19, 0x20, 0x9e, 0xba, 0x88, 0xbb,
1703 		},
1704 	},
1705 	.auth_key = {
1706 		.data = {
1707 			0x32, 0x06, 0xea, 0x9c, 0xa8, 0x7a, 0xf5, 0x75,
1708 			0xc5, 0xea, 0xd2, 0x4e, 0x2b, 0x7a, 0xf9, 0x20,
1709 			0x0b, 0xa5, 0x83, 0x53,
1710 		},
1711 	},
1712 	.input_text = {
1713 		.data = {
1714 			/* actual plain text */
1715 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1716 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x32, 0x20,
1717 			0x33, 0x44, 0x45, 0x53, 0x2d, 0x43, 0x42, 0x43,
1718 			0x20, 0x53, 0x48, 0x41, 0x31, 0x20, 0x65, 0x78,
1719 			0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x76, 0x65,
1720 			0x63, 0x74, 0x6f, 0x72, 0xa,
1721 		},
1722 		.len = 45,
1723 	},
1724 	.output_text = {
1725 		.data = {
1726 			0x17, 0x03, 0x03, 0x00, 0x50,
1727 			0x6f, 0xcf, 0x77, 0x13, 0xc3, 0xa2, 0x31, 0x30,
1728 			0x3f, 0xe7, 0x1d, 0x7a, 0xaa, 0xaa, 0x1f, 0x19,
1729 			0xc1, 0xb7, 0x6b, 0xa3, 0x54, 0x24, 0x9c, 0xa6,
1730 			0xe6, 0x8c, 0xf3, 0xef, 0xc5, 0xd4, 0x47, 0xde,
1731 			0x13, 0xe0, 0xf3, 0x2f, 0x91, 0xa1, 0xb9, 0xb0,
1732 			0x4f, 0x16, 0xd3, 0xa9, 0x45, 0xba, 0xd9, 0x37,
1733 			0x07, 0x8d, 0xc6, 0x05, 0x83, 0x07, 0x75, 0x8c,
1734 			0x4b, 0xf5, 0xa4, 0xa0, 0xf8, 0x36, 0xfe, 0x9f,
1735 			0x18, 0xb5, 0x83, 0xb5, 0x47, 0x33, 0x64, 0xdc,
1736 			0x2f, 0xac, 0x95, 0x2a, 0x72, 0xa9, 0x3c, 0xc6,
1737 		},
1738 		.len = 85,
1739 	},
1740 	.iv = {
1741 		.data = {
1742 			0x6f, 0xcf, 0x77, 0x13, 0xc3, 0xa2, 0x31, 0x30,
1743 		},
1744 	},
1745 
1746 	.xform = {
1747 		.chain = {
1748 			.auth = {
1749 				.next = NULL,
1750 				.type = RTE_CRYPTO_SYM_XFORM_AUTH,
1751 				.auth = {
1752 					.op = RTE_CRYPTO_AUTH_OP_GENERATE,
1753 					.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1754 					.key.length = 20,
1755 					.iv.length = 0,
1756 					.iv.offset = 0,
1757 					.digest_length = 20,
1758 				},
1759 			},
1760 			.cipher = {
1761 				.next = NULL,
1762 				.type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1763 				.cipher = {
1764 					.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1765 					.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
1766 					.key.length = 24,
1767 					.iv.length = 8,
1768 					.iv.offset = IV_OFFSET,
1769 				},
1770 			},
1771 		},
1772 	},
1773 
1774 	.tls_record_xform = {
1775 		.ver = RTE_SECURITY_VERSION_TLS_1_2,
1776 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1777 		.tls_1_2.seq_no = 0x1,
1778 	},
1779 
1780 	.aead = false,
1781 	.app_type = 0x17,
1782 };
1783 
1784 /* TLS 1.3 AES-128-GCM */
1785 struct tls_record_test_data tls13_test_data_aes_128_gcm = {
1786 	.key = {
1787 		.data = {
1788 			0x03, 0x12, 0xf5, 0x86, 0xe4, 0xd0, 0x27, 0xc7,
1789 			0x47, 0x82, 0x44, 0xca, 0xd3, 0xce, 0x06, 0x6c,
1790 		},
1791 	},
1792 	.input_text = {
1793 		.data = {
1794 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1795 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x33, 0x20,
1796 			0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x2d,
1797 			0x47, 0x43, 0x4d, 0x20, 0x65, 0x78, 0x61, 0x6d,
1798 			0x70, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74,
1799 			0x6f, 0x72, 0xa,
1800 		},
1801 		.len = 43,
1802 	},
1803 	.output_text = {
1804 		.data = {
1805 			0x17, 0x03, 0x03, 0x00, 0x3c,
1806 			0x52, 0xb5, 0x24, 0xce, 0x5c, 0x29, 0x0f, 0x0a,
1807 			0x3a, 0xc0, 0x60, 0xaf, 0xba, 0xe3, 0x0d, 0x28,
1808 			0x6c, 0xbb, 0x3e, 0x5f, 0xde, 0x4a, 0xcd, 0xf1,
1809 			0x30, 0x12, 0xa9, 0x42, 0x95, 0x55, 0xf5, 0x2c,
1810 			0xb7, 0xb6, 0x60, 0x82, 0xa2, 0x1d, 0x34, 0x33,
1811 			0x0a, 0xd7, 0x48, 0x40, 0xef, 0xab, 0x70, 0xa7,
1812 			0xb2, 0x58, 0x41, 0xdb, 0xf6, 0x37, 0xe4, 0x6d,
1813 			0xa3, 0x1e, 0xbf, 0x6f,
1814 		},
1815 		.len = 65,
1816 	},
1817 	.imp_nonce = {
1818 		.data = {
1819 			0x8d, 0x1f, 0xa0, 0x14, 0xc7, 0x66, 0x9f, 0x93,
1820 			0x74, 0x3f, 0x46, 0x52,
1821 		},
1822 		.len = 12,
1823 	},
1824 
1825 	.xform = {
1826 		.aead = {
1827 			.next = NULL,
1828 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
1829 			.aead = {
1830 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
1831 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
1832 				.key.length = 16,
1833 				.iv.length = 0,
1834 				.iv.offset = 0,
1835 				.digest_length = 16,
1836 				.aad_length = 5,
1837 			},
1838 		},
1839 	},
1840 
1841 	.tls_record_xform = {
1842 		.ver = RTE_SECURITY_VERSION_TLS_1_3,
1843 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1844 		.tls_1_3.seq_no = 0x0,
1845 	},
1846 
1847 	.aead = true,
1848 	.app_type = 0x17,
1849 };
1850 
1851 /* TLS 1.3 AES-256-GCM */
1852 struct tls_record_test_data tls13_test_data_aes_256_gcm = {
1853 	.key = {
1854 		.data = {
1855 			0xc9, 0xc2, 0xa2, 0x4c, 0x4e, 0x36, 0x19, 0x6e,
1856 			0xd8, 0xf5, 0xb9, 0x14, 0x30, 0xfc, 0xe0, 0xef,
1857 			0x29, 0xb0, 0x00, 0xd1, 0x2d, 0xfc, 0x5a, 0x76,
1858 			0x50, 0xf4, 0xf3, 0xb1, 0x82, 0x21, 0x57, 0x82,
1859 		},
1860 	},
1861 	.input_text = {
1862 		.data = {
1863 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1864 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x33, 0x20,
1865 			0x41, 0x45, 0x53, 0x2d, 0x32, 0x35, 0x36, 0x2d,
1866 			0x47, 0x43, 0x4d, 0x20, 0x65, 0x78, 0x61, 0x6d,
1867 			0x70, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x63, 0x74,
1868 			0x6f, 0x72, 0xa,
1869 		},
1870 		.len = 43,
1871 	},
1872 	.output_text = {
1873 		.data = {
1874 			0x17, 0x03, 0x03, 0x00, 0x3c,
1875 			0xc9, 0xb0, 0x44, 0x23, 0xd5, 0xe2, 0xbd, 0x1d,
1876 			0xf1, 0x96, 0x53, 0x2c, 0x8c, 0xe2, 0xa3, 0x00,
1877 			0x7b, 0x2a, 0xb1, 0xa1, 0xd6, 0x79, 0x58, 0xb5,
1878 			0x35, 0x1f, 0xbb, 0x98, 0x03, 0xe1, 0x82, 0xa2,
1879 			0x1e, 0x26, 0x81, 0xbe, 0x77, 0x65, 0xaf, 0x7d,
1880 			0x9f, 0x52, 0xec, 0x3a, 0x18, 0x2d, 0x36, 0xab,
1881 			0xdc, 0xa9, 0xfb, 0xd3, 0xa8, 0xd5, 0xbc, 0x98,
1882 			0xa4, 0xab, 0x70, 0xe9,
1883 		},
1884 		.len = 65,
1885 	},
1886 	.imp_nonce = {
1887 		.data = {
1888 			0xd4, 0x78, 0xf2, 0x90, 0x61, 0x5d, 0x8c, 0x63,
1889 			0x4b, 0xf4, 0x72, 0xf3,
1890 		},
1891 		.len = 12,
1892 	},
1893 
1894 	.xform = {
1895 		.aead = {
1896 			.next = NULL,
1897 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
1898 			.aead = {
1899 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
1900 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
1901 				.key.length = 32,
1902 				.iv.length = 0,
1903 				.iv.offset = 0,
1904 				.digest_length = 16,
1905 				.aad_length = 5,
1906 			},
1907 		},
1908 	},
1909 
1910 	.tls_record_xform = {
1911 		.ver = RTE_SECURITY_VERSION_TLS_1_3,
1912 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1913 		.tls_1_3.seq_no = 0x0,
1914 	},
1915 
1916 	.aead = true,
1917 	.app_type = 0x17,
1918 };
1919 
1920 struct tls_record_test_data tls13_test_data_chacha20_poly1305 = {
1921 	.key = {
1922 		.data = {
1923 			0xec, 0x7d, 0x7a, 0x3f, 0x91, 0xdd, 0xb9, 0x70,
1924 			0x95, 0x3b, 0x99, 0xb0, 0xe7, 0x66, 0xda, 0xdc,
1925 			0x85, 0xbb, 0xfc, 0xc8, 0x50, 0xe9, 0x61, 0x88,
1926 			0xc8, 0x1e, 0xf0, 0x61, 0xb0, 0xcd, 0x6c, 0x3d,
1927 		},
1928 	},
1929 	.input_text = {
1930 		.data = {
1931 			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
1932 			0x54, 0x4c, 0x53, 0x20, 0x31, 0x2e, 0x33, 0x20,
1933 			0x43, 0x48, 0x41, 0x43, 0x48, 0x41, 0x32, 0x30,
1934 			0x2d, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30,
1935 			0x35, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
1936 			0x65, 0x20, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xa,
1937 		},
1938 		.len = 49,
1939 	},
1940 	.output_text = {
1941 		.data = {
1942 			0x17, 0x03, 0x03, 0x00, 0x42,
1943 			0x9a, 0xc1, 0xd9, 0x0e, 0xf9, 0x4c, 0x51, 0x8c,
1944 			0xb4, 0xa7, 0x54, 0x57, 0x56, 0xba, 0xbb, 0xf7,
1945 			0xd7, 0x1d, 0x49, 0x5a, 0x42, 0xd2, 0xab, 0x75,
1946 			0x3f, 0xb1, 0x5f, 0xb5, 0x2b, 0x2b, 0xa3, 0xc5,
1947 			0x61, 0x32, 0x7e, 0x62, 0x1e, 0xf5, 0x56, 0xff,
1948 			0x84, 0x8e, 0x9a, 0x99, 0x06, 0xba, 0x3b, 0xc0,
1949 			0x15, 0x4c, 0xf5, 0xb1, 0x5e, 0xcc, 0xff, 0x42,
1950 			0x79, 0x4b, 0xa9, 0x23, 0x16, 0x08, 0xc3, 0x9a,
1951 			0x52, 0x2a,
1952 		},
1953 		.len = 71,
1954 	},
1955 	.imp_nonce = {
1956 		.data = {
1957 			0x3c, 0x28, 0xa0, 0xb8, 0xf8, 0x74, 0x35, 0xfe,
1958 			0xd2, 0xa0, 0x31, 0x28,
1959 		},
1960 		.len = 12,
1961 	},
1962 
1963 	.xform = {
1964 		.aead = {
1965 			.next = NULL,
1966 			.type = RTE_CRYPTO_SYM_XFORM_AEAD,
1967 			.aead = {
1968 				.op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
1969 				.algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305,
1970 				.key.length = 32,
1971 				.iv.length = 0,
1972 				.iv.offset = 0,
1973 				.digest_length = 16,
1974 				.aad_length = 5,
1975 			},
1976 		},
1977 	},
1978 
1979 	.tls_record_xform = {
1980 		.ver = RTE_SECURITY_VERSION_TLS_1_3,
1981 		.type = RTE_SECURITY_TLS_SESS_TYPE_WRITE,
1982 		.tls_1_3.seq_no = 0x0,
1983 	},
1984 
1985 	.aead = true,
1986 	.app_type = 0x17,
1987 };
1988 
1989 #endif
1990