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