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,
112 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
114 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
115 .algo = RTE_CRYPTO_AEAD_AES_GCM,
118 .iv.offset = IV_OFFSET,
126 struct ipsec_test_data pkt_aes_192_gcm = {
129 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
130 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
131 0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c
137 0x45, 0x00, 0x00, 0x28, 0xa4, 0xad, 0x40, 0x00,
138 0x40, 0x06, 0x78, 0x80, 0x0a, 0x01, 0x03, 0x8f,
139 0x0a, 0x01, 0x06, 0x12,
142 0x80, 0x23, 0x06, 0xb8, 0xcb, 0x71, 0x26, 0x02,
143 0xdd, 0x6b, 0xb0, 0x3e, 0x50, 0x10, 0x16, 0xd0,
144 0x75, 0x67, 0x00, 0x01
150 /* IP - outer header */
151 0x45, 0x00, 0x00, 0x60, 0x69, 0x8f, 0x00, 0x00,
152 0x80, 0x32, 0x4d, 0x89, 0xc0, 0xa8, 0x01, 0x02,
153 0xc0, 0xa8, 0x01, 0x01,
156 0x00, 0x00, 0xa5, 0xf8, 0x00, 0x00, 0x00, 0x01,
159 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88,
162 0xa5, 0xb1, 0xf8, 0x06, 0x60, 0x29, 0xae, 0xa4,
163 0x0e, 0x59, 0x8b, 0x81, 0x22, 0xde, 0x02, 0x42,
164 0x09, 0x38, 0xb3, 0xab, 0x33, 0xf8, 0x28, 0xe6,
165 0x87, 0xb8, 0x85, 0x8b, 0x5b, 0xfb, 0xdb, 0xd0,
166 0x31, 0x5b, 0x27, 0x45, 0x21, 0x4b, 0xcc, 0x77,
167 0x82, 0xac, 0x91, 0x38, 0xf2, 0xbb, 0xbe, 0xe4,
168 0xcf, 0x03, 0x36, 0x89, 0xdd, 0x40, 0xd3, 0x6e,
169 0x54, 0x05, 0x22, 0x22,
175 0xca, 0xfe, 0xba, 0xbe
182 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88
189 .options.udp_encap = 0,
190 .options.copy_dscp = 0,
191 .options.copy_flabel = 0,
192 .options.copy_df = 0,
193 .options.dec_ttl = 0,
196 .options.tunnel_hdr_verify = 0,
197 .options.ip_csum_enable = 0,
198 .options.l4_csum_enable = 0,
199 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
200 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
201 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
202 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
211 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
213 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
214 .algo = RTE_CRYPTO_AEAD_AES_GCM,
217 .iv.offset = IV_OFFSET,
225 struct ipsec_test_data pkt_aes_256_gcm = {
228 0xab, 0xbc, 0xcd, 0xde, 0xf0, 0x01, 0x12, 0x23,
229 0x34, 0x45, 0x56, 0x67, 0x78, 0x89, 0x9a, 0xab,
230 0xab, 0xbc, 0xcd, 0xde, 0xf0, 0x01, 0x12, 0x23,
231 0x34, 0x45, 0x56, 0x67, 0x78, 0x89, 0x9a, 0xab,
237 0x45, 0x00, 0x00, 0x30, 0x69, 0xa6, 0x40, 0x00,
238 0x80, 0x06, 0x26, 0x90, 0xc0, 0xa8, 0x01, 0x02,
239 0x93, 0x89, 0x15, 0x5e,
242 0x0a, 0x9e, 0x00, 0x8b, 0x2d, 0xc5, 0x7e, 0xe0,
243 0x00, 0x00, 0x00, 0x00, 0x70, 0x02, 0x40, 0x00,
244 0x20, 0xbf, 0x00, 0x00, 0x02, 0x04, 0x05, 0xb4,
245 0x01, 0x01, 0x04, 0x02,
251 /* IP - outer header */
252 0x45, 0x00, 0x00, 0x68, 0x69, 0x8f, 0x00, 0x00,
253 0x80, 0x32, 0x4d, 0x81, 0xc0, 0xa8, 0x01, 0x02,
254 0xc0, 0xa8, 0x01, 0x01,
257 0x4a, 0x2c, 0xbf, 0xe3, 0x00, 0x00, 0x00, 0x01,
260 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
263 0xff, 0x42, 0x5c, 0x9b, 0x72, 0x45, 0x99, 0xdf,
264 0x7a, 0x3b, 0xcd, 0x51, 0x01, 0x94, 0xe0, 0x0d,
265 0x6a, 0x78, 0x10, 0x7f, 0x1b, 0x0b, 0x1c, 0xbf,
266 0x06, 0xef, 0xae, 0x9d, 0x65, 0xa5, 0xd7, 0x63,
267 0x74, 0x8a, 0x63, 0x79, 0x85, 0x77, 0x1d, 0x34,
268 0x7f, 0x05, 0x45, 0x65, 0x9f, 0x14, 0xe9, 0x9d,
269 0xef, 0x84, 0x2d, 0x8b, 0x00, 0x14, 0x4a, 0x1f,
270 0xec, 0x6a, 0xdf, 0x0c, 0x9a, 0x92, 0x7f, 0xee,
271 0xa6, 0xc5, 0x11, 0x60,
277 0x11, 0x22, 0x33, 0x44
284 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
291 .options.udp_encap = 0,
292 .options.copy_dscp = 0,
293 .options.copy_flabel = 0,
294 .options.copy_df = 0,
295 .options.dec_ttl = 0,
298 .options.tunnel_hdr_verify = 0,
299 .options.ip_csum_enable = 0,
300 .options.l4_csum_enable = 0,
301 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
302 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
303 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
304 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
313 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
315 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
316 .algo = RTE_CRYPTO_AEAD_AES_GCM,
319 .iv.offset = IV_OFFSET,
327 /* Known vectors for AES-CBC
328 * https://datatracker.ietf.org/doc/html/rfc3602#section-4
331 struct ipsec_test_data pkt_aes_128_cbc_null = {
334 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
335 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
340 /* IP - outer header */
341 0x45, 0x00, 0x00, 0x8c, 0x00, 0x02, 0x00, 0x00,
342 0x40, 0x32, 0x27, 0xbc, 0x00, 0x01, 0xa8, 0xc0,
343 0x01, 0x01, 0xa8, 0xc0,
346 0x00, 0x00, 0x87, 0x65, 0x00, 0x00, 0x00, 0x02,
349 0xf4, 0xe7, 0x65, 0x24, 0x4f, 0x64, 0x07, 0xad,
350 0xf1, 0x3d, 0xc1, 0x38, 0x0f, 0x67, 0x3f, 0x37,
353 0x77, 0x3b, 0x52, 0x41, 0xa4, 0xc4, 0x49, 0x22,
354 0x5e, 0x4f, 0x3c, 0xe5, 0xed, 0x61, 0x1b, 0x0c,
355 0x23, 0x7c, 0xa9, 0x6c, 0xf7, 0x4a, 0x93, 0x01,
356 0x3c, 0x1b, 0x0e, 0xa1, 0xa0, 0xcf, 0x70, 0xf8,
357 0xe4, 0xec, 0xae, 0xc7, 0x8a, 0xc5, 0x3a, 0xad,
358 0x7a, 0x0f, 0x02, 0x2b, 0x85, 0x92, 0x43, 0xc6,
359 0x47, 0x75, 0x2e, 0x94, 0xa8, 0x59, 0x35, 0x2b,
360 0x8a, 0x4d, 0x4d, 0x2d, 0xec, 0xd1, 0x36, 0xe5,
361 0xc1, 0x77, 0xf1, 0x32, 0xad, 0x3f, 0xbf, 0xb2,
362 0x20, 0x1a, 0xc9, 0x90, 0x4c, 0x74, 0xee, 0x0a,
363 0x10, 0x9e, 0x0c, 0xa1, 0xe4, 0xdf, 0xe9, 0xd5,
364 0xa1, 0x00, 0xb8, 0x42, 0xf1, 0xc2, 0x2f, 0x0d,
371 0x45, 0x00, 0x00, 0x54, 0x09, 0x04, 0x00, 0x00,
372 0x40, 0x01, 0xf9, 0x88, 0xc0, 0xa8, 0x7b, 0x03,
373 0xc0, 0xa8, 0x7b, 0xc8,
376 0x08, 0x00, 0x9f, 0x76, 0xa9, 0x0a, 0x01, 0x00,
377 0xb4, 0x9c, 0x08, 0x3d, 0x02, 0xa2, 0x04, 0x00,
378 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
379 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
380 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
381 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
382 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
383 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
384 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
385 0x09, 0x0a, 0x0a, 0x04,
391 0xf4, 0xe7, 0x65, 0x24, 0x4f, 0x64, 0x07, 0xad,
392 0xf1, 0x3d, 0xc1, 0x38, 0x0f, 0x67, 0x3f, 0x37,
399 .options.udp_encap = 0,
400 .options.copy_dscp = 0,
401 .options.copy_flabel = 0,
402 .options.copy_df = 0,
403 .options.dec_ttl = 0,
406 .options.tunnel_hdr_verify = 0,
407 .direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,
408 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
409 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
410 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
419 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
421 .op = RTE_CRYPTO_CIPHER_OP_DECRYPT,
422 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
429 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
431 .algo = RTE_CRYPTO_AUTH_NULL,
437 struct ipsec_test_data pkt_aes_256_gcm_v6 = {
440 0xde, 0x12, 0xbe, 0x56, 0xde, 0xad, 0xbe, 0xef,
441 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
442 0x12, 0x78, 0xbe, 0x34, 0x01, 0x02, 0x03, 0x07,
443 0xaa, 0xbb, 0xcc, 0xf1, 0x08, 0x07, 0x06, 0x05,
448 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x06, 0x38,
449 0x26, 0x07, 0xf8, 0xb0, 0x40, 0x0c, 0x0c, 0x03,
450 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
451 0x20, 0x01, 0x04, 0x70, 0xe5, 0xbf, 0xde, 0xad,
452 0x49, 0x57, 0x21, 0x74, 0xe8, 0x2c, 0x48, 0x87,
453 0x00, 0x19, 0xf9, 0xc7, 0x95, 0x63, 0x97, 0x9c,
454 0x03, 0xa0, 0x88, 0x31, 0x80, 0x12, 0xa7, 0xd6,
455 0x25, 0x83, 0x00, 0x00, 0x02, 0x04, 0x05, 0x6a,
456 0x01, 0x01, 0x04, 0x02, 0x01, 0x03, 0x03, 0x07,
462 0x60, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x32, 0x40,
463 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
464 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x56, 0x78,
465 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
466 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x34, 0x56,
467 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01,
468 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
469 0xe7, 0xdf, 0xc4, 0x7e, 0x21, 0xbd, 0xec, 0x1b,
470 0x74, 0x5a, 0xe4, 0x7e, 0x2e, 0x94, 0x21, 0x0a,
471 0x9b, 0x0e, 0x59, 0xbe, 0x06, 0x2a, 0xda, 0xb8,
472 0x6b, 0x48, 0x7f, 0x0b, 0x88, 0x3a, 0xa9, 0xfd,
473 0x3c, 0xfe, 0x9f, 0xb1, 0x8c, 0x67, 0xd2, 0xf8,
474 0xaf, 0xb5, 0xad, 0x16, 0xdb, 0xff, 0x8d, 0x50,
475 0xd3, 0x48, 0xf5, 0x6c, 0x3c, 0x0c, 0x27, 0x34,
476 0x2b, 0x65, 0xc8, 0xff, 0xeb, 0x5f, 0xb8, 0xff,
477 0x12, 0x00, 0x1c, 0x9f, 0xb7, 0x85, 0xdd, 0x7d,
478 0x40, 0x19, 0xcb, 0x18, 0xeb, 0x15, 0xc4, 0x88,
479 0xe1, 0xc2, 0x91, 0xc7, 0xb1, 0x65, 0xc3, 0x27,
480 0x16, 0x06, 0x8f, 0xf2,
486 0x11, 0x22, 0x33, 0x44
493 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
500 .options.udp_encap = 0,
501 .options.copy_dscp = 0,
502 .options.copy_flabel = 0,
503 .options.copy_df = 0,
504 .options.dec_ttl = 0,
507 .options.tunnel_hdr_verify = 0,
508 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
509 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
510 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
511 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV6,
520 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
522 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
523 .algo = RTE_CRYPTO_AEAD_AES_GCM,
526 .iv.offset = IV_OFFSET,
534 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha256 = {
537 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
538 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
543 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
544 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
545 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
546 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
552 0x45, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00,
553 0x1f, 0x11, 0x17, 0x8b, 0xc0, 0xa8, 0x01, 0x6f,
554 0xc0, 0xa8, 0x01, 0x70,
557 0x00, 0x09, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
558 0xbe, 0x9b, 0xe9, 0x55, 0x00, 0x00, 0x00, 0x21,
559 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
560 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
566 /* IP - outer header */
567 0x45, 0x00, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x00,
568 0x40, 0x32, 0x52, 0x4d, 0x14, 0x00, 0x00, 0x01,
569 0x14, 0x00, 0x00, 0x02,
572 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01,
575 0x34, 0x12, 0x67, 0x45, 0xff, 0xff, 0x00, 0x00,
576 0x20, 0xbf, 0xe8, 0x39, 0x00, 0x00, 0x00, 0x00,
579 0x67, 0xb5, 0x46, 0x6e, 0x78, 0x17, 0xd3, 0x5a,
580 0xac, 0x62, 0x62, 0x62, 0xb0, 0x57, 0x9b, 0x09,
581 0x19, 0x4f, 0x06, 0x59, 0xc8, 0xb0, 0x30, 0x65,
582 0x1f, 0x45, 0x57, 0x41, 0x72, 0x17, 0x28, 0xe9,
583 0xad, 0x50, 0xbe, 0x44, 0x1d, 0x2d, 0x9a, 0xd0,
584 0x48, 0x75, 0x0d, 0x1c, 0x8d, 0x24, 0xa8, 0x6f,
585 0x6b, 0x24, 0xb6, 0x5d, 0x43, 0x1e, 0x55, 0xf0,
586 0xf7, 0x14, 0x1f, 0xf2, 0x61, 0xd4, 0xe0, 0x30,
587 0x16, 0xbe, 0x1b, 0x5c, 0xcc, 0xb7, 0x66, 0x1c,
588 0x47, 0xad, 0x07, 0x6c, 0xd5, 0xcb, 0xce, 0x6c,
594 0x34, 0x12, 0x67, 0x45, 0xff, 0xff, 0x00, 0x00,
595 0x20, 0xbf, 0xe8, 0x39, 0x00, 0x00, 0x00, 0x00,
602 .options.udp_encap = 0,
603 .options.copy_dscp = 0,
604 .options.copy_flabel = 0,
605 .options.copy_df = 0,
606 .options.dec_ttl = 0,
609 .options.tunnel_hdr_verify = 0,
610 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
611 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
612 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
613 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
622 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
624 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
625 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
632 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
634 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
635 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
643 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha384 = {
646 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
647 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
652 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
653 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
654 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
655 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02,
656 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x34,
657 0x1a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
663 0x45, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00,
664 0x1f, 0x11, 0x17, 0x8b, 0xc0, 0xa8, 0x01, 0x6f,
665 0xc0, 0xa8, 0x01, 0x70,
668 0x00, 0x09, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
669 0xbe, 0x9b, 0xe9, 0x55, 0x00, 0x00, 0x00, 0x21,
670 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
671 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
677 0x45, 0x00, 0x00, 0x84, 0x00, 0x01, 0x00, 0x00,
678 0x40, 0x32, 0x52, 0x45, 0x14, 0x00, 0x00, 0x01,
679 0x14, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34,
680 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
681 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
682 0x00, 0x00, 0x00, 0x00, 0x44, 0x24, 0xb9, 0xd8,
683 0x0f, 0xbe, 0xa3, 0x3f, 0xc9, 0xc0, 0xa2, 0xcb,
684 0xaa, 0xda, 0x3f, 0xc6, 0x0e, 0x88, 0x75, 0x96,
685 0x25, 0x50, 0x07, 0x4d, 0x52, 0xf4, 0x75, 0xec,
686 0xd8, 0xcd, 0xe4, 0xcf, 0x85, 0x9a, 0xbc, 0x9e,
687 0x84, 0x0f, 0xbb, 0x83, 0x72, 0x0c, 0x7f, 0x58,
688 0x02, 0x46, 0xeb, 0x86, 0x6e, 0xd1, 0xcf, 0x05,
689 0x6a, 0xd1, 0xd2, 0xc6, 0xb5, 0x94, 0x09, 0x0a,
690 0x3e, 0xdf, 0x09, 0xfb, 0x0a, 0xb7, 0xb4, 0x97,
691 0x17, 0xf2, 0x20, 0xaf, 0xfa, 0x90, 0x92, 0x4d,
692 0xe4, 0x0e, 0xef, 0x5a, 0xe8, 0x43, 0x46, 0xa8,
693 0x5e, 0x3f, 0x52, 0x46,
699 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
700 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
707 .options.udp_encap = 0,
708 .options.copy_dscp = 0,
709 .options.copy_flabel = 0,
710 .options.copy_df = 0,
711 .options.dec_ttl = 0,
714 .options.tunnel_hdr_verify = 0,
715 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
716 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
717 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
718 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
727 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
729 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
730 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
737 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
739 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
740 .algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
748 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha512 = {
751 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
752 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
757 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
758 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
759 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
760 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
761 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
762 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02,
763 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x34,
764 0x1a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
770 0x45, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00,
771 0x1f, 0x11, 0x17, 0x8b, 0xc0, 0xa8, 0x01, 0x6f,
772 0xc0, 0xa8, 0x01, 0x70,
775 0x00, 0x09, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
776 0xbe, 0x9b, 0xe9, 0x55, 0x00, 0x00, 0x00, 0x21,
777 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
778 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
784 0x45, 0x00, 0x00, 0x8c, 0x00, 0x01, 0x00, 0x00,
785 0x40, 0x32, 0x52, 0x3d, 0x14, 0x00, 0x00, 0x01,
786 0x14, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34,
787 0x00, 0x00, 0x00, 0x01, 0x42, 0x32, 0x76, 0x65,
788 0x45, 0x35, 0x24, 0x41, 0xf0, 0xc1, 0xb4, 0x40,
789 0x00, 0x00, 0x00, 0x00, 0xd0, 0x32, 0x23, 0xf7,
790 0xcd, 0x3d, 0xdb, 0xd5, 0x70, 0x19, 0x1b, 0xf5,
791 0x8f, 0xeb, 0x98, 0x3d, 0x41, 0x5c, 0x28, 0xdd,
792 0xfd, 0xcc, 0xdd, 0xa2, 0xeb, 0x43, 0x4c, 0x13,
793 0x2d, 0xa1, 0x98, 0x87, 0x92, 0x3a, 0x1f, 0x67,
794 0x20, 0x8d, 0x9e, 0x8e, 0x51, 0x21, 0x4c, 0xa9,
795 0xff, 0xad, 0xfb, 0x5d, 0x57, 0xa3, 0x16, 0x91,
796 0xaa, 0x75, 0xc7, 0x28, 0x42, 0x4e, 0x8f, 0x8e,
797 0x84, 0x37, 0x94, 0x09, 0x74, 0xfa, 0x70, 0x0d,
798 0xd1, 0x37, 0xe2, 0x7c, 0x54, 0xdd, 0x2e, 0xb4,
799 0xf4, 0x54, 0x4b, 0x12, 0xe0, 0xaf, 0x4a, 0x0a,
800 0x0b, 0x52, 0x57, 0x9d, 0x36, 0xdc, 0xac, 0x02,
801 0xfb, 0x55, 0x34, 0x05,
807 0x42, 0x32, 0x76, 0x65, 0x45, 0x35, 0x24, 0x41,
808 0xf0, 0xc1, 0xb4, 0x40, 0x00, 0x00, 0x00, 0x00,
815 .options.udp_encap = 0,
816 .options.copy_dscp = 0,
817 .options.copy_flabel = 0,
818 .options.copy_df = 0,
819 .options.dec_ttl = 0,
822 .options.tunnel_hdr_verify = 0,
823 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
824 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
825 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
826 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
835 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
837 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
838 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
845 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
847 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
848 .algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
856 struct ipsec_test_data pkt_aes_128_cbc_hmac_sha256_v6 = {
859 0x00, 0x04, 0x05, 0x01, 0x23, 0x00, 0x00, 0x00,
860 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0f, 0x00, 0x00,
865 0xde, 0x34, 0x56, 0x00, 0x00, 0x00, 0x78, 0x00,
866 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
867 0x10, 0x30, 0x40, 0x00, 0x01, 0x02, 0x03, 0x04,
868 0x0a, 0x0b, 0x0c, 0x0d, 0x05, 0x06, 0x07, 0x08,
873 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x06, 0x38,
874 0x26, 0x07, 0xf8, 0xb0, 0x40, 0x0c, 0x0c, 0x03,
875 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
876 0x20, 0x01, 0x04, 0x70, 0xe5, 0xbf, 0xde, 0xad,
877 0x49, 0x57, 0x21, 0x74, 0xe8, 0x2c, 0x48, 0x87,
878 0x00, 0x19, 0xf9, 0xc7, 0x95, 0x63, 0x97, 0x9c,
879 0x03, 0xa0, 0x88, 0x31, 0x80, 0x12, 0xa7, 0xd6,
880 0x25, 0x83, 0x00, 0x00, 0x02, 0x04, 0x05, 0x6a,
881 0x01, 0x01, 0x04, 0x02, 0x01, 0x03, 0x03, 0x07,
887 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0x32, 0x40,
888 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
889 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x56, 0x78,
890 0x12, 0x34, 0x12, 0x21, 0x17, 0x45, 0x11, 0x34,
891 0x11, 0xfc, 0x89, 0x71, 0xdf, 0x22, 0x34, 0x56,
892 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01,
893 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
894 0xf0, 0xc1, 0x05, 0x3c, 0x00, 0x00, 0x00, 0x00,
895 0x1b, 0x1c, 0x98, 0x6e, 0x2a, 0xce, 0x61, 0xef,
896 0xc1, 0xdd, 0x25, 0x96, 0x5c, 0xb1, 0xb0, 0x15,
897 0x47, 0x25, 0xb7, 0x8b, 0x00, 0xb6, 0xbb, 0xe6,
898 0x2e, 0x29, 0xcb, 0x4a, 0x94, 0x00, 0xf0, 0x73,
899 0xdb, 0x14, 0x32, 0xd9, 0xa2, 0xdf, 0x22, 0x2f,
900 0x52, 0x3e, 0x79, 0x77, 0xf3, 0x17, 0xaa, 0x40,
901 0x1c, 0x57, 0x27, 0x12, 0x82, 0x44, 0x35, 0xb8,
902 0x64, 0xe0, 0xaa, 0x5c, 0x10, 0xc7, 0x97, 0x35,
903 0x9c, 0x6b, 0x1c, 0xf7, 0xe7, 0xbd, 0x83, 0x33,
904 0x77, 0x48, 0x44, 0x7d, 0xa4, 0x13, 0x74, 0x3b,
905 0x6a, 0x91, 0xd0, 0xd8, 0x7d, 0x41, 0x45, 0x23,
906 0x5d, 0xc9, 0x2d, 0x08, 0x7a, 0xd8, 0x25, 0x8e,
912 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
913 0xf0, 0xc1, 0x05, 0x3c, 0x00, 0x00, 0x00, 0x00,
920 .options.udp_encap = 0,
921 .options.copy_dscp = 0,
922 .options.copy_flabel = 0,
923 .options.copy_df = 0,
924 .options.dec_ttl = 0,
927 .options.tunnel_hdr_verify = 0,
928 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
929 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
930 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
931 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV6,
940 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
942 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
943 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
950 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
952 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
953 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
961 struct ipsec_test_data pkt_aes_128_gcm_frag = {
964 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
965 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
970 0x45, 0x00, 0x00, 0x6e, 0x00, 0x01, 0x00, 0x17,
971 0x40, 0x06, 0xed, 0x48, 0xc6, 0x12, 0x00, 0x00,
972 0xc6, 0x12, 0x01, 0x05, 0x00, 0x14, 0x00, 0x50,
973 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
974 0x50, 0x00, 0x00, 0x00, 0x55, 0x05, 0x00, 0x00,
975 0x00, 0x01, 0x02, 0x03, 0xf2, 0xf6, 0xe9, 0x21,
976 0xf9, 0xf2, 0xf6, 0xe9, 0x21, 0xf9, 0xf2, 0xf6,
977 0xe9, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
978 0x00, 0x00, 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,
989 0x45, 0x00, 0x00, 0xa4, 0x00, 0x01, 0x00, 0x00,
990 0x40, 0x32, 0xf6, 0x0c, 0xc0, 0xa8, 0x01, 0x70,
991 0xc0, 0xa8, 0x01, 0x5a, 0x00, 0x00, 0x00, 0x34,
992 0x00, 0x00, 0x00, 0x01, 0x45, 0xad, 0xfe, 0x23,
993 0x78, 0x56, 0x12, 0x00, 0x49, 0x26, 0xac, 0x4e,
994 0x8d, 0xf3, 0x74, 0x26, 0x18, 0x3f, 0x65, 0x94,
995 0x73, 0x2e, 0xe4, 0xcf, 0x84, 0x6d, 0x03, 0x8a,
996 0x4c, 0xdd, 0x2d, 0xef, 0xcd, 0x9f, 0x84, 0x76,
997 0x93, 0xe1, 0xee, 0x21, 0x92, 0x8b, 0xf7, 0x7a,
998 0xb1, 0x6a, 0x7f, 0xd6, 0x10, 0x66, 0xdd, 0xa1,
999 0x8b, 0x17, 0x56, 0x99, 0x9a, 0x40, 0xd0, 0x6b,
1000 0x2d, 0xe0, 0x55, 0x40, 0x2f, 0xb8, 0x38, 0xe3,
1001 0x08, 0x46, 0xe2, 0x69, 0xc9, 0xa1, 0x85, 0x9d,
1002 0x7b, 0xec, 0x33, 0x2a, 0x2d, 0x1d, 0x1f, 0x1a,
1003 0x9e, 0xf0, 0x1e, 0xc3, 0x33, 0x64, 0x35, 0x82,
1004 0xbb, 0xb5, 0x7a, 0x91, 0x2e, 0x8d, 0xd5, 0x5b,
1005 0x3a, 0xbe, 0x95, 0x94, 0xba, 0x40, 0x73, 0x4e,
1006 0xa4, 0x15, 0xe4, 0x4a, 0xf9, 0x14, 0x2c, 0x4f,
1007 0x63, 0x2e, 0x23, 0x6e, 0xeb, 0x06, 0xe7, 0x52,
1008 0xe1, 0xc7, 0x91, 0x7f, 0x19, 0xc0, 0x4a, 0xd2,
1009 0xd5, 0x3e, 0x84, 0xa8,
1015 0xde, 0xad, 0xbe, 0xef,
1022 0x45, 0xad, 0xfe, 0x23, 0x78, 0x56, 0x12, 0x00,
1029 .options.udp_encap = 0,
1030 .options.copy_dscp = 0,
1031 .options.copy_flabel = 0,
1032 .options.copy_df = 0,
1033 .options.dec_ttl = 0,
1036 .options.tunnel_hdr_verify = 0,
1037 .options.ip_csum_enable = 0,
1038 .options.l4_csum_enable = 0,
1039 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
1040 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
1041 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
1042 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
1051 .type = RTE_CRYPTO_SYM_XFORM_AEAD,
1053 .op = RTE_CRYPTO_AEAD_OP_ENCRYPT,
1054 .algo = RTE_CRYPTO_AEAD_AES_GCM,
1057 .iv.offset = IV_OFFSET,
1058 .digest_length = 16,
1065 struct ipsec_test_data pkt_null_aes_xcbc = {
1068 0x61, 0x31, 0x62, 0x32, 0x63, 0x33, 0x64, 0x34,
1069 0x65, 0x35, 0x66, 0x36, 0x67, 0x37, 0x68, 0x38,
1075 0x45, 0x00, 0x00, 0x2f, 0x49, 0x37, 0x00, 0x00,
1076 0x40, 0x11, 0x22, 0x84, 0x0d, 0x00, 0x00, 0x02,
1077 0x02, 0x00, 0x00, 0x02, 0x08, 0x00, 0x08, 0x00,
1078 0x00, 0x1b, 0x6d, 0x99, 0x58, 0x58, 0x58, 0x58,
1079 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1080 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1087 0x45, 0x00, 0x00, 0x5c, 0x06, 0x00, 0x00, 0x00,
1088 0x40, 0x32, 0x13, 0x6c, 0x0a, 0x00, 0x6f, 0x02,
1089 0x0a, 0x00, 0xde, 0x02,
1092 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
1095 0x45, 0x00, 0x00, 0x2f, 0x49, 0x37, 0x00, 0x00,
1096 0x40, 0x11, 0x22, 0x84, 0x0d, 0x00, 0x00, 0x02,
1097 0x02, 0x00, 0x00, 0x02, 0x08, 0x00, 0x08, 0x00,
1098 0x00, 0x1b, 0x6d, 0x99, 0x58, 0x58, 0x58, 0x58,
1099 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1100 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58,
1103 0x01, 0x02, 0x03, 0x03, 0x04,
1106 0xf1, 0x52, 0x64, 0xd1, 0x9b, 0x62, 0x24, 0xdd,
1107 0xcc, 0x14, 0xf5, 0xc1,
1114 .options.udp_encap = 0,
1115 .options.copy_dscp = 0,
1116 .options.copy_flabel = 0,
1117 .options.copy_df = 0,
1118 .options.dec_ttl = 0,
1121 .options.tunnel_hdr_verify = 0,
1122 .options.ip_csum_enable = 0,
1123 .options.l4_csum_enable = 0,
1124 .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,
1125 .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,
1126 .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,
1127 .tunnel.type = RTE_SECURITY_IPSEC_TUNNEL_IPV4,
1134 .type = RTE_CRYPTO_SYM_XFORM_CIPHER,
1136 .op = RTE_CRYPTO_CIPHER_OP_ENCRYPT,
1137 .algo = RTE_CRYPTO_CIPHER_NULL,
1144 .type = RTE_CRYPTO_SYM_XFORM_AUTH,
1146 .op = RTE_CRYPTO_AUTH_OP_GENERATE,
1147 .algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
1149 .digest_length = 12,
1155 #endif /* TEST_CRYPTODEV_SECURITY_IPSEC_TEST_VECTORS_H_ */