1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2021 Marvell
5 #ifndef TEST_CRYPTODEV_SECURITY_IPSEC_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_SECURITY_IPSEC_TEST_VECTORS_H_
8 #include <rte_crypto.h>
9 #include <rte_security.h>
11 #include "test_cryptodev_security_ipsec.h"
16 * AES-GCM vectors are based on :
17 * https://datatracker.ietf.org/doc/html/draft-mcgrew-gcm-test-01
19 * Vectors are updated to have corrected L4 checksum and sequence number 1.
22 struct ipsec_test_data pkt_aes_128_gcm = {
25 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
26 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
32 0x45, 0x00, 0x00, 0x3e, 0x69, 0x8f, 0x00, 0x00,
33 0x80, 0x11, 0x4d, 0xcc, 0xc0, 0xa8, 0x01, 0x02,
34 0xc0, 0xa8, 0x01, 0x01,
37 0x0a, 0x98, 0x00, 0x35, 0x00, 0x2a, 0x23, 0x43,
38 0xb2, 0xd0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
39 0x00, 0x00, 0x00, 0x00, 0x03, 0x73, 0x69, 0x70,
40 0x09, 0x63, 0x79, 0x62, 0x65, 0x72, 0x63, 0x69,
41 0x74, 0x79, 0x02, 0x64, 0x6b, 0x00, 0x00, 0x01,
48 /* IP - outer header */
49 0x45, 0x00, 0x00, 0x74, 0x69, 0x8f, 0x00, 0x00,
50 0x80, 0x32, 0x4d, 0x75, 0xc0, 0xa8, 0x01, 0x02,
51 0xc0, 0xa8, 0x01, 0x01,
54 0x00, 0x00, 0xa5, 0xf8, 0x00, 0x00, 0x00, 0x01,
57 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88,
60 0xde, 0xb2, 0x2c, 0xd9, 0xb0, 0x7c, 0x72, 0xc1,
61 0x6e, 0x3a, 0x65, 0xbe, 0xeb, 0x8d, 0xf3, 0x04,
62 0xa5, 0xa5, 0x89, 0x7d, 0x33, 0xae, 0x53, 0x0f,
63 0x1b, 0xa7, 0x6d, 0x5d, 0x11, 0x4d, 0x2a, 0x5c,
64 0x3d, 0xe8, 0x18, 0x27, 0xc1, 0x0e, 0x9a, 0x4f,
65 0x51, 0x33, 0x0d, 0x0e, 0xec, 0x41, 0x66, 0x42,
66 0xcf, 0xbb, 0x85, 0xa5, 0xb4, 0x7e, 0x48, 0xa4,
67 0xec, 0x3b, 0x9b, 0xa9, 0x5d, 0x91, 0x8b, 0xd4,
68 0x29, 0xc7, 0x37, 0x57, 0x9f, 0xf1, 0x9e, 0x58,
69 0xcf, 0xfc, 0x60, 0x7a, 0x3b, 0xce, 0x89, 0x94,
76 0xca, 0xfe, 0xba, 0xbe
83 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88
90 .options.udp_encap = 0,
91 .options.copy_dscp = 0,
92 .options.copy_flabel = 0,
97 .options.tunnel_hdr_verify = 0,
98 .options.ip_csum_enable = 0,
99 .options.l4_csum_enable = 0,
100 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
101 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
102 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
103 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
113 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
115 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
116 .algo = RTE_CRYPTO_AEAD_AES_GCM,
119 .iv.offset = IV_OFFSET,
127 struct ipsec_test_data pkt_aes_192_gcm = {
130 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
131 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
132 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c
138 0x45, 0x00, 0x00, 0x28, 0xa4, 0xad, 0x40, 0x00,
139 0x40, 0x06, 0x78, 0x80, 0x0a, 0x01, 0x03, 0x8f,
140 0x0a, 0x01, 0x06, 0x12,
143 0x80, 0x23, 0x06, 0xb8, 0xcb, 0x71, 0x26, 0x02,
144 0xdd, 0x6b, 0xb0, 0x3e, 0x50, 0x10, 0x16, 0xd0,
145 0x75, 0x67, 0x00, 0x01
151 /* IP - outer header */
152 0x45, 0x00, 0x00, 0x60, 0x69, 0x8f, 0x00, 0x00,
153 0x80, 0x32, 0x4d, 0x89, 0xc0, 0xa8, 0x01, 0x02,
154 0xc0, 0xa8, 0x01, 0x01,
157 0x00, 0x00, 0xa5, 0xf8, 0x00, 0x00, 0x00, 0x01,
160 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88,
163 0xa5, 0xb1, 0xf8, 0x06, 0x60, 0x29, 0xae, 0xa4,
164 0x0e, 0x59, 0x8b, 0x81, 0x22, 0xde, 0x02, 0x42,
165 0x09, 0x38, 0xb3, 0xab, 0x33, 0xf8, 0x28, 0xe6,
166 0x87, 0xb8, 0x85, 0x8b, 0x5b, 0xfb, 0xdb, 0xd0,
167 0x31, 0x5b, 0x27, 0x45, 0x21, 0x4b, 0xcc, 0x77,
168 0x82, 0xac, 0x91, 0x38, 0xf2, 0xbb, 0xbe, 0xe4,
169 0xcf, 0x03, 0x36, 0x89, 0xdd, 0x40, 0xd3, 0x6e,
170 0x54, 0x05, 0x22, 0x22,
176 0xca, 0xfe, 0xba, 0xbe
183 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88
190 .options.udp_encap = 0,
191 .options.copy_dscp = 0,
192 .options.copy_flabel = 0,
193 .options.copy_df = 0,
194 .options.dec_ttl = 0,
197 .options.tunnel_hdr_verify = 0,
198 .options.ip_csum_enable = 0,
199 .options.l4_csum_enable = 0,
200 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
201 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
202 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
203 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
212 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
214 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
215 .algo = RTE_CRYPTO_AEAD_AES_GCM,
218 .iv.offset = IV_OFFSET,
226 struct ipsec_test_data pkt_aes_256_gcm = {
229 0xab, 0xbc, 0xcd, 0xde, 0xf0, 0x01, 0x12, 0x23,
230 0x34, 0x45, 0x56, 0x67, 0x78, 0x89, 0x9a, 0xab,
231 0xab, 0xbc, 0xcd, 0xde, 0xf0, 0x01, 0x12, 0x23,
232 0x34, 0x45, 0x56, 0x67, 0x78, 0x89, 0x9a, 0xab,
238 0x45, 0x00, 0x00, 0x30, 0x69, 0xa6, 0x40, 0x00,
239 0x80, 0x06, 0x26, 0x90, 0xc0, 0xa8, 0x01, 0x02,
240 0x93, 0x89, 0x15, 0x5e,
243 0x0a, 0x9e, 0x00, 0x8b, 0x2d, 0xc5, 0x7e, 0xe0,
244 0x00, 0x00, 0x00, 0x00, 0x70, 0x02, 0x40, 0x00,
245 0x20, 0xbf, 0x00, 0x00, 0x02, 0x04, 0x05, 0xb4,
246 0x01, 0x01, 0x04, 0x02,
252 /* IP - outer header */
253 0x45, 0x00, 0x00, 0x68, 0x69, 0x8f, 0x00, 0x00,
254 0x80, 0x32, 0x4d, 0x81, 0xc0, 0xa8, 0x01, 0x02,
255 0xc0, 0xa8, 0x01, 0x01,
258 0x4a, 0x2c, 0xbf, 0xe3, 0x00, 0x00, 0x00, 0x01,
261 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
264 0xff, 0x42, 0x5c, 0x9b, 0x72, 0x45, 0x99, 0xdf,
265 0x7a, 0x3b, 0xcd, 0x51, 0x01, 0x94, 0xe0, 0x0d,
266 0x6a, 0x78, 0x10, 0x7f, 0x1b, 0x0b, 0x1c, 0xbf,
267 0x06, 0xef, 0xae, 0x9d, 0x65, 0xa5, 0xd7, 0x63,
268 0x74, 0x8a, 0x63, 0x79, 0x85, 0x77, 0x1d, 0x34,
269 0x7f, 0x05, 0x45, 0x65, 0x9f, 0x14, 0xe9, 0x9d,
270 0xef, 0x84, 0x2d, 0x8b, 0x00, 0x14, 0x4a, 0x1f,
271 0xec, 0x6a, 0xdf, 0x0c, 0x9a, 0x92, 0x7f, 0xee,
272 0xa6, 0xc5, 0x11, 0x60,
278 0x11, 0x22, 0x33, 0x44
285 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
292 .options.udp_encap = 0,
293 .options.copy_dscp = 0,
294 .options.copy_flabel = 0,
295 .options.copy_df = 0,
296 .options.dec_ttl = 0,
299 .options.tunnel_hdr_verify = 0,
300 .options.ip_csum_enable = 0,
301 .options.l4_csum_enable = 0,
302 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
303 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
304 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
305 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
314 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
316 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
317 .algo = RTE_CRYPTO_AEAD_AES_GCM,
320 .iv.offset = IV_OFFSET,
328 /* Known vectors for AES-CBC
329 * https://datatracker.ietf.org/doc/html/rfc3602#section-4
332 struct ipsec_test_data pkt_aes_128_cbc_null = {
335 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
336 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
341 /* IP - outer header */
342 0x45, 0x00, 0x00, 0x8c, 0x00, 0x02, 0x00, 0x00,
343 0x40, 0x32, 0x27, 0xbc, 0x00, 0x01, 0xa8, 0xc0,
344 0x01, 0x01, 0xa8, 0xc0,
347 0x00, 0x00, 0x87, 0x65, 0x00, 0x00, 0x00, 0x02,
350 0xf4, 0xe7, 0x65, 0x24, 0x4f, 0x64, 0x07, 0xad,
351 0xf1, 0x3d, 0xc1, 0x38, 0x0f, 0x67, 0x3f, 0x37,
354 0x77, 0x3b, 0x52, 0x41, 0xa4, 0xc4, 0x49, 0x22,
355 0x5e, 0x4f, 0x3c, 0xe5, 0xed, 0x61, 0x1b, 0x0c,
356 0x23, 0x7c, 0xa9, 0x6c, 0xf7, 0x4a, 0x93, 0x01,
357 0x3c, 0x1b, 0x0e, 0xa1, 0xa0, 0xcf, 0x70, 0xf8,
358 0xe4, 0xec, 0xae, 0xc7, 0x8a, 0xc5, 0x3a, 0xad,
359 0x7a, 0x0f, 0x02, 0x2b, 0x85, 0x92, 0x43, 0xc6,
360 0x47, 0x75, 0x2e, 0x94, 0xa8, 0x59, 0x35, 0x2b,
361 0x8a, 0x4d, 0x4d, 0x2d, 0xec, 0xd1, 0x36, 0xe5,
362 0xc1, 0x77, 0xf1, 0x32, 0xad, 0x3f, 0xbf, 0xb2,
363 0x20, 0x1a, 0xc9, 0x90, 0x4c, 0x74, 0xee, 0x0a,
364 0x10, 0x9e, 0x0c, 0xa1, 0xe4, 0xdf, 0xe9, 0xd5,
365 0xa1, 0x00, 0xb8, 0x42, 0xf1, 0xc2, 0x2f, 0x0d,
372 0x45, 0x00, 0x00, 0x54, 0x09, 0x04, 0x00, 0x00,
373 0x40, 0x01, 0xf9, 0x88, 0xc0, 0xa8, 0x7b, 0x03,
374 0xc0, 0xa8, 0x7b, 0xc8,
377 0x08, 0x00, 0x9f, 0x76, 0xa9, 0x0a, 0x01, 0x00,
378 0xb4, 0x9c, 0x08, 0x3d, 0x02, 0xa2, 0x04, 0x00,
379 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
380 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
381 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
382 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
383 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
384 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
385 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
386 0x09, 0x0a, 0x0a, 0x04,
392 0xf4, 0xe7, 0x65, 0x24, 0x4f, 0x64, 0x07, 0xad,
393 0xf1, 0x3d, 0xc1, 0x38, 0x0f, 0x67, 0x3f, 0x37,
400 .options.udp_encap = 0,
401 .options.copy_dscp = 0,
402 .options.copy_flabel = 0,
403 .options.copy_df = 0,
404 .options.dec_ttl = 0,
407 .options.tunnel_hdr_verify = 0,
408 .direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,
409 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
410 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
411 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
420 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
422 .op = RTE_CRYPTO_CIPHER_OP_DECRYPT,
423 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
430 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
432 .algo = RTE_CRYPTO_AUTH_NULL,
438 struct ipsec_test_data pkt_aes_256_gcm_v6 = {
441 0xde, 0x12, 0xbe, 0x56, 0xde, 0xad, 0xbe, 0xef,
442 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
443 0x12, 0x78, 0xbe, 0x34, 0x01, 0x02, 0x03, 0x07,
444 0xaa, 0xbb, 0xcc, 0xf1, 0x08, 0x07, 0x06, 0x05,
449 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x06, 0x38,
450 0x26, 0x07, 0xf8, 0xb0, 0x40, 0x0c, 0x0c, 0x03,
451 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
452 0x20, 0x01, 0x04, 0x70, 0xe5, 0xbf, 0xde, 0xad,
453 0x49, 0x57, 0x21, 0x74, 0xe8, 0x2c, 0x48, 0x87,
454 0x00, 0x19, 0xf9, 0xc7, 0x95, 0x63, 0x97, 0x9c,
455 0x03, 0xa0, 0x88, 0x31, 0x80, 0x12, 0xa7, 0xd6,
456 0x25, 0x83, 0x00, 0x00, 0x02, 0x04, 0x05, 0x6a,
457 0x01, 0x01, 0x04, 0x02, 0x01, 0x03, 0x03, 0x07,
463 0x60, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x32, 0x40,
464 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
465 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x56, 0x78,
466 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
467 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x34, 0x56,
468 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01,
469 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
470 0xe7, 0xdf, 0xc4, 0x7e, 0x21, 0xbd, 0xec, 0x1b,
471 0x74, 0x5a, 0xe4, 0x7e, 0x2e, 0x94, 0x21, 0x0a,
472 0x9b, 0x0e, 0x59, 0xbe, 0x06, 0x2a, 0xda, 0xb8,
473 0x6b, 0x48, 0x7f, 0x0b, 0x88, 0x3a, 0xa9, 0xfd,
474 0x3c, 0xfe, 0x9f, 0xb1, 0x8c, 0x67, 0xd2, 0xf8,
475 0xaf, 0xb5, 0xad, 0x16, 0xdb, 0xff, 0x8d, 0x50,
476 0xd3, 0x48, 0xf5, 0x6c, 0x3c, 0x0c, 0x27, 0x34,
477 0x2b, 0x65, 0xc8, 0xff, 0xeb, 0x5f, 0xb8, 0xff,
478 0x12, 0x00, 0x1c, 0x9f, 0xb7, 0x85, 0xdd, 0x7d,
479 0x40, 0x19, 0xcb, 0x18, 0xeb, 0x15, 0xc4, 0x88,
480 0xe1, 0xc2, 0x91, 0xc7, 0xb1, 0x65, 0xc3, 0x27,
481 0x16, 0x06, 0x8f, 0xf2,
487 0x11, 0x22, 0x33, 0x44
494 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
501 .options.udp_encap = 0,
502 .options.copy_dscp = 0,
503 .options.copy_flabel = 0,
504 .options.copy_df = 0,
505 .options.dec_ttl = 0,
508 .options.tunnel_hdr_verify = 0,
509 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
510 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
511 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
512 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV6,
521 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
523 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
524 .algo = RTE_CRYPTO_AEAD_AES_GCM,
527 .iv.offset = IV_OFFSET,
535 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha256 = {
538 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
539 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
544 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
545 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
546 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
547 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
553 0x45, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00,
554 0x1f, 0x11, 0x17, 0x8b, 0xc0, 0xa8, 0x01, 0x6f,
555 0xc0, 0xa8, 0x01, 0x70,
558 0x00, 0x09, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
559 0xbe, 0x9b, 0xe9, 0x55, 0x00, 0x00, 0x00, 0x21,
560 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
561 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
567 /* IP - outer header */
568 0x45, 0x00, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x00,
569 0x40, 0x32, 0x52, 0x4d, 0x14, 0x00, 0x00, 0x01,
570 0x14, 0x00, 0x00, 0x02,
573 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01,
576 0x34, 0x12, 0x67, 0x45, 0xff, 0xff, 0x00, 0x00,
577 0x20, 0xbf, 0xe8, 0x39, 0x00, 0x00, 0x00, 0x00,
580 0x67, 0xb5, 0x46, 0x6e, 0x78, 0x17, 0xd3, 0x5a,
581 0xac, 0x62, 0x62, 0x62, 0xb0, 0x57, 0x9b, 0x09,
582 0x19, 0x4f, 0x06, 0x59, 0xc8, 0xb0, 0x30, 0x65,
583 0x1f, 0x45, 0x57, 0x41, 0x72, 0x17, 0x28, 0xe9,
584 0xad, 0x50, 0xbe, 0x44, 0x1d, 0x2d, 0x9a, 0xd0,
585 0x48, 0x75, 0x0d, 0x1c, 0x8d, 0x24, 0xa8, 0x6f,
586 0x6b, 0x24, 0xb6, 0x5d, 0x43, 0x1e, 0x55, 0xf0,
587 0xf7, 0x14, 0x1f, 0xf2, 0x61, 0xd4, 0xe0, 0x30,
588 0x16, 0xbe, 0x1b, 0x5c, 0xcc, 0xb7, 0x66, 0x1c,
589 0x47, 0xad, 0x07, 0x6c, 0xd5, 0xcb, 0xce, 0x6c,
595 0x34, 0x12, 0x67, 0x45, 0xff, 0xff, 0x00, 0x00,
596 0x20, 0xbf, 0xe8, 0x39, 0x00, 0x00, 0x00, 0x00,
603 .options.udp_encap = 0,
604 .options.copy_dscp = 0,
605 .options.copy_flabel = 0,
606 .options.copy_df = 0,
607 .options.dec_ttl = 0,
610 .options.tunnel_hdr_verify = 0,
611 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
612 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
613 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
614 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
623 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
625 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
626 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
633 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
635 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
636 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
644 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha384 = {
647 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
648 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
653 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
654 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
655 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
656 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02,
657 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x34,
658 0x1a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
664 0x45, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00,
665 0x1f, 0x11, 0x17, 0x8b, 0xc0, 0xa8, 0x01, 0x6f,
666 0xc0, 0xa8, 0x01, 0x70,
669 0x00, 0x09, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
670 0xbe, 0x9b, 0xe9, 0x55, 0x00, 0x00, 0x00, 0x21,
671 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
672 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
678 0x45, 0x00, 0x00, 0x84, 0x00, 0x01, 0x00, 0x00,
679 0x40, 0x32, 0x52, 0x45, 0x14, 0x00, 0x00, 0x01,
680 0x14, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34,
681 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
682 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
683 0x00, 0x00, 0x00, 0x00, 0x44, 0x24, 0xb9, 0xd8,
684 0x0f, 0xbe, 0xa3, 0x3f, 0xc9, 0xc0, 0xa2, 0xcb,
685 0xaa, 0xda, 0x3f, 0xc6, 0x0e, 0x88, 0x75, 0x96,
686 0x25, 0x50, 0x07, 0x4d, 0x52, 0xf4, 0x75, 0xec,
687 0xd8, 0xcd, 0xe4, 0xcf, 0x85, 0x9a, 0xbc, 0x9e,
688 0x84, 0x0f, 0xbb, 0x83, 0x72, 0x0c, 0x7f, 0x58,
689 0x02, 0x46, 0xeb, 0x86, 0x6e, 0xd1, 0xcf, 0x05,
690 0x6a, 0xd1, 0xd2, 0xc6, 0xb5, 0x94, 0x09, 0x0a,
691 0x3e, 0xdf, 0x09, 0xfb, 0x0a, 0xb7, 0xb4, 0x97,
692 0x17, 0xf2, 0x20, 0xaf, 0xfa, 0x90, 0x92, 0x4d,
693 0xe4, 0x0e, 0xef, 0x5a, 0xe8, 0x43, 0x46, 0xa8,
694 0x5e, 0x3f, 0x52, 0x46,
700 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
701 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
708 .options.udp_encap = 0,
709 .options.copy_dscp = 0,
710 .options.copy_flabel = 0,
711 .options.copy_df = 0,
712 .options.dec_ttl = 0,
715 .options.tunnel_hdr_verify = 0,
716 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
717 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
718 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
719 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
728 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
730 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
731 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
738 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
740 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
741 .algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
749 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha512 = {
752 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
753 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
758 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
759 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
760 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
761 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
762 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
763 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02,
764 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x34,
765 0x1a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
771 0x45, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00,
772 0x1f, 0x11, 0x17, 0x8b, 0xc0, 0xa8, 0x01, 0x6f,
773 0xc0, 0xa8, 0x01, 0x70,
776 0x00, 0x09, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
777 0xbe, 0x9b, 0xe9, 0x55, 0x00, 0x00, 0x00, 0x21,
778 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
779 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
785 0x45, 0x00, 0x00, 0x8c, 0x00, 0x01, 0x00, 0x00,
786 0x40, 0x32, 0x52, 0x3d, 0x14, 0x00, 0x00, 0x01,
787 0x14, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34,
788 0x00, 0x00, 0x00, 0x01, 0x42, 0x32, 0x76, 0x65,
789 0x45, 0x35, 0x24, 0x41, 0xf0, 0xc1, 0xb4, 0x40,
790 0x00, 0x00, 0x00, 0x00, 0xd0, 0x32, 0x23, 0xf7,
791 0xcd, 0x3d, 0xdb, 0xd5, 0x70, 0x19, 0x1b, 0xf5,
792 0x8f, 0xeb, 0x98, 0x3d, 0x41, 0x5c, 0x28, 0xdd,
793 0xfd, 0xcc, 0xdd, 0xa2, 0xeb, 0x43, 0x4c, 0x13,
794 0x2d, 0xa1, 0x98, 0x87, 0x92, 0x3a, 0x1f, 0x67,
795 0x20, 0x8d, 0x9e, 0x8e, 0x51, 0x21, 0x4c, 0xa9,
796 0xff, 0xad, 0xfb, 0x5d, 0x57, 0xa3, 0x16, 0x91,
797 0xaa, 0x75, 0xc7, 0x28, 0x42, 0x4e, 0x8f, 0x8e,
798 0x84, 0x37, 0x94, 0x09, 0x74, 0xfa, 0x70, 0x0d,
799 0xd1, 0x37, 0xe2, 0x7c, 0x54, 0xdd, 0x2e, 0xb4,
800 0xf4, 0x54, 0x4b, 0x12, 0xe0, 0xaf, 0x4a, 0x0a,
801 0x0b, 0x52, 0x57, 0x9d, 0x36, 0xdc, 0xac, 0x02,
802 0xfb, 0x55, 0x34, 0x05,
808 0x42, 0x32, 0x76, 0x65, 0x45, 0x35, 0x24, 0x41,
809 0xf0, 0xc1, 0xb4, 0x40, 0x00, 0x00, 0x00, 0x00,
816 .options.udp_encap = 0,
817 .options.copy_dscp = 0,
818 .options.copy_flabel = 0,
819 .options.copy_df = 0,
820 .options.dec_ttl = 0,
823 .options.tunnel_hdr_verify = 0,
824 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
825 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
826 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
827 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
836 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
838 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
839 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
846 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
848 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
849 .algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
857 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha256_v6 = {
860 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
861 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
866 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
867 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
868 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
869 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
874 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x06, 0x38,
875 0x26, 0x07, 0xf8, 0xb0, 0x40, 0x0c, 0x0c, 0x03,
876 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
877 0x20, 0x01, 0x04, 0x70, 0xe5, 0xbf, 0xde, 0xad,
878 0x49, 0x57, 0x21, 0x74, 0xe8, 0x2c, 0x48, 0x87,
879 0x00, 0x19, 0xf9, 0xc7, 0x95, 0x63, 0x97, 0x9c,
880 0x03, 0xa0, 0x88, 0x31, 0x80, 0x12, 0xa7, 0xd6,
881 0x25, 0x83, 0x00, 0x00, 0x02, 0x04, 0x05, 0x6a,
882 0x01, 0x01, 0x04, 0x02, 0x01, 0x03, 0x03, 0x07,
888 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0x32, 0x40,
889 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
890 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x56, 0x78,
891 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
892 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x34, 0x56,
893 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01,
894 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
895 0xf0, 0xc1, 0x05, 0x3c, 0x00, 0x00, 0x00, 0x00,
896 0x1b, 0x1c, 0x98, 0x6e, 0x2a, 0xce, 0x61, 0xef,
897 0xc1, 0xdd, 0x25, 0x96, 0x5c, 0xb1, 0xb0, 0x15,
898 0x47, 0x25, 0xb7, 0x8b, 0x00, 0xb6, 0xbb, 0xe6,
899 0x2e, 0x29, 0xcb, 0x4a, 0x94, 0x00, 0xf0, 0x73,
900 0xdb, 0x14, 0x32, 0xd9, 0xa2, 0xdf, 0x22, 0x2f,
901 0x52, 0x3e, 0x79, 0x77, 0xf3, 0x17, 0xaa, 0x40,
902 0x1c, 0x57, 0x27, 0x12, 0x82, 0x44, 0x35, 0xb8,
903 0x64, 0xe0, 0xaa, 0x5c, 0x10, 0xc7, 0x97, 0x35,
904 0x9c, 0x6b, 0x1c, 0xf7, 0xe7, 0xbd, 0x83, 0x33,
905 0x77, 0x48, 0x44, 0x7d, 0xa4, 0x13, 0x74, 0x3b,
906 0x6a, 0x91, 0xd0, 0xd8, 0x7d, 0x41, 0x45, 0x23,
907 0x5d, 0xc9, 0x2d, 0x08, 0x7a, 0xd8, 0x25, 0x8e,
913 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
914 0xf0, 0xc1, 0x05, 0x3c, 0x00, 0x00, 0x00, 0x00,
921 .options.udp_encap = 0,
922 .options.copy_dscp = 0,
923 .options.copy_flabel = 0,
924 .options.copy_df = 0,
925 .options.dec_ttl = 0,
928 .options.tunnel_hdr_verify = 0,
929 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
930 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
931 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
932 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV6,
941 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
943 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
944 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
951 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
953 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
954 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
962 struct ipsec_test_data pkt_aes_128_gcm_frag = {
965 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
966 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
971 0x45, 0x00, 0x00, 0x6e, 0x00, 0x01, 0x00, 0x17,
972 0x40, 0x06, 0xed, 0x48, 0xc6, 0x12, 0x00, 0x00,
973 0xc6, 0x12, 0x01, 0x05, 0x00, 0x14, 0x00, 0x50,
974 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
975 0x50, 0x00, 0x00, 0x00, 0x55, 0x05, 0x00, 0x00,
976 0x00, 0x01, 0x02, 0x03, 0xf2, 0xf6, 0xe9, 0x21,
977 0xf9, 0xf2, 0xf6, 0xe9, 0x21, 0xf9, 0xf2, 0xf6,
978 0xe9, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
979 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
980 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
981 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
982 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
983 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
984 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
990 0x45, 0x00, 0x00, 0xa4, 0x00, 0x01, 0x00, 0x00,
991 0x40, 0x32, 0xf6, 0x0c, 0xc0, 0xa8, 0x01, 0x70,
992 0xc0, 0xa8, 0x01, 0x5a, 0x00, 0x00, 0x00, 0x34,
993 0x00, 0x00, 0x00, 0x01, 0x45, 0xad, 0xfe, 0x23,
994 0x78, 0x56, 0x12, 0x00, 0x49, 0x26, 0xac, 0x4e,
995 0x8d, 0xf3, 0x74, 0x26, 0x18, 0x3f, 0x65, 0x94,
996 0x73, 0x2e, 0xe4, 0xcf, 0x84, 0x6d, 0x03, 0x8a,
997 0x4c, 0xdd, 0x2d, 0xef, 0xcd, 0x9f, 0x84, 0x76,
998 0x93, 0xe1, 0xee, 0x21, 0x92, 0x8b, 0xf7, 0x7a,
999 0xb1, 0x6a, 0x7f, 0xd6, 0x10, 0x66, 0xdd, 0xa1,
1000 0x8b, 0x17, 0x56, 0x99, 0x9a, 0x40, 0xd0, 0x6b,
1001 0x2d, 0xe0, 0x55, 0x40, 0x2f, 0xb8, 0x38, 0xe3,
1002 0x08, 0x46, 0xe2, 0x69, 0xc9, 0xa1, 0x85, 0x9d,
1003 0x7b, 0xec, 0x33, 0x2a, 0x2d, 0x1d, 0x1f, 0x1a,
1004 0x9e, 0xf0, 0x1e, 0xc3, 0x33, 0x64, 0x35, 0x82,
1005 0xbb, 0xb5, 0x7a, 0x91, 0x2e, 0x8d, 0xd5, 0x5b,
1006 0x3a, 0xbe, 0x95, 0x94, 0xba, 0x40, 0x73, 0x4e,
1007 0xa4, 0x15, 0xe4, 0x4a, 0xf9, 0x14, 0x2c, 0x4f,
1008 0x63, 0x2e, 0x23, 0x6e, 0xeb, 0x06, 0xe7, 0x52,
1009 0xe1, 0xc7, 0x91, 0x7f, 0x19, 0xc0, 0x4a, 0xd2,
1010 0xd5, 0x3e, 0x84, 0xa8,
1016 0xde, 0xad, 0xbe, 0xef,
1023 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
1030 .options.udp_encap = 0,
1031 .options.copy_dscp = 0,
1032 .options.copy_flabel = 0,
1033 .options.copy_df = 0,
1034 .options.dec_ttl = 0,
1037 .options.tunnel_hdr_verify = 0,
1038 .options.ip_csum_enable = 0,
1039 .options.l4_csum_enable = 0,
1040 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
1041 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
1042 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
1043 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
1052 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
1054 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
1055 .algo = RTE_CRYPTO_AEAD_AES_GCM,
1058 .iv.offset = IV_OFFSET,
1059 .digest_length = 16,
1066 struct ipsec_test_data pkt_null_aes_xcbc = {
1069 0x61, 0x31, 0x62, 0x32, 0x63, 0x33, 0x64, 0x34,
1070 0x65, 0x35, 0x66, 0x36, 0x67, 0x37, 0x68, 0x38,
1076 0x45, 0x00, 0x00, 0x2f, 0x49, 0x37, 0x00, 0x00,
1077 0x40, 0x11, 0x22, 0x84, 0x0d, 0x00, 0x00, 0x02,
1078 0x02, 0x00, 0x00, 0x02, 0x08, 0x00, 0x08, 0x00,
1079 0x00, 0x1b, 0x6d, 0x99, 0x58, 0x58, 0x58, 0x58,
1080 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1081 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1088 0x45, 0x00, 0x00, 0x5c, 0x06, 0x00, 0x00, 0x00,
1089 0x40, 0x32, 0x13, 0x6c, 0x0a, 0x00, 0x6f, 0x02,
1090 0x0a, 0x00, 0xde, 0x02,
1093 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
1096 0x45, 0x00, 0x00, 0x2f, 0x49, 0x37, 0x00, 0x00,
1097 0x40, 0x11, 0x22, 0x84, 0x0d, 0x00, 0x00, 0x02,
1098 0x02, 0x00, 0x00, 0x02, 0x08, 0x00, 0x08, 0x00,
1099 0x00, 0x1b, 0x6d, 0x99, 0x58, 0x58, 0x58, 0x58,
1100 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1101 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1104 0x01, 0x02, 0x03, 0x03, 0x04,
1107 0xf1, 0x52, 0x64, 0xd1, 0x9b, 0x62, 0x24, 0xdd,
1108 0xcc, 0x14, 0xf5, 0xc1,
1115 .options.udp_encap = 0,
1116 .options.copy_dscp = 0,
1117 .options.copy_flabel = 0,
1118 .options.copy_df = 0,
1119 .options.dec_ttl = 0,
1122 .options.tunnel_hdr_verify = 0,
1123 .options.ip_csum_enable = 0,
1124 .options.l4_csum_enable = 0,
1125 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
1126 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
1127 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
1128 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
1135 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1137 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1138 .algo = RTE_CRYPTO_CIPHER_NULL,
1145 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
1147 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
1148 .algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
1150 .digest_length = 12,
1156 #endif /* TEST_CRYPTODEV_SECURITY_IPSEC_TEST_VECTORS_H_ */