1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2016-2019 Intel Corporation 3 */ 4 5 #ifndef TEST_CRYPTODEV_AES_TEST_VECTORS_H_ 6 #define TEST_CRYPTODEV_AES_TEST_VECTORS_H_ 7 8 /* test vectors */ 9 static const uint8_t plaintext_aes128ctr[] = { 10 0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96, 11 0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A, 12 0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C, 13 0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51, 14 0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11, 15 0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF, 16 0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17, 17 0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10 18 }; 19 20 static const uint8_t ciphertext64_aes128ctr[] = { 21 0x87, 0x4D, 0x61, 0x91, 0xB6, 0x20, 0xE3, 0x26, 22 0x1B, 0xEF, 0x68, 0x64, 0x99, 0x0D, 0xB6, 0xCE, 23 0x98, 0x06, 0xF6, 0x6B, 0x79, 0x70, 0xFD, 0xFF, 24 0x86, 0x17, 0x18, 0x7B, 0xB9, 0xFF, 0xFD, 0xFF, 25 0x5A, 0xE4, 0xDF, 0x3E, 0xDB, 0xD5, 0xD3, 0x5E, 26 0x5B, 0x4F, 0x09, 0x02, 0x0D, 0xB0, 0x3E, 0xAB, 27 0x1E, 0x03, 0x1D, 0xDA, 0x2F, 0xBE, 0x03, 0xD1, 28 0x79, 0x21, 0x70, 0xA0, 0xF3, 0x00, 0x9C, 0xEE 29 }; 30 31 static const uint8_t ciphertext64_aes128ctr_IV_12bytes[] = { 32 0x28, 0x80, 0x28, 0xC7, 0x15, 0x99, 0xC5, 0xA8, 33 0xDD, 0x53, 0xC2, 0x67, 0x1B, 0x86, 0xB8, 0x13, 34 0xAB, 0x25, 0x39, 0x7A, 0xD2, 0x1F, 0x8B, 0x4B, 35 0x94, 0x89, 0x2B, 0x65, 0xCF, 0x89, 0x1E, 0xDD, 36 0xD4, 0x7C, 0xFD, 0x8D, 0x0E, 0xCD, 0x23, 0xA4, 37 0xEB, 0x8C, 0x05, 0x58, 0x45, 0x4A, 0x63, 0x44, 38 0x11, 0x42, 0x07, 0x17, 0xB4, 0xD2, 0xCC, 0x75, 39 0xB7, 0x23, 0x99, 0xA9, 0xC5, 0x89, 0x7F, 0x66 40 }; 41 42 static const uint8_t plaintext_aes_docsis_bpi_cfb[] = { 43 0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E 44 }; 45 46 static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = { 47 0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC 48 }; 49 50 static const uint8_t ciphertext_aes256_docsis_bpi_cfb[] = { 51 0xE3, 0x75, 0xF2, 0x30, 0x1F, 0x75, 0x9A 52 }; 53 54 static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = { 55 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 56 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91, 57 0xD2, 0xD1, 0x9F 58 }; 59 60 static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = { 61 0x9D, 0xD1, 0x67, 0x4B, 0xBA, 0x61, 0x10, 0x1B, 62 0x56, 0x75, 0x64, 0x74, 0x36, 0x4F, 0x10, 0x1D, 63 0x44, 0xD4, 0x73 64 }; 65 66 static const uint8_t ciphertext_aes256_docsis_bpi_cbc_cfb[] = { 67 0xD1, 0x28, 0x73, 0x1F, 0xB5, 0x28, 0xB5, 0x18, 68 0xAB, 0x51, 0xAB, 0xC8, 0x98, 0x3D, 0xD1, 0xEE, 69 0xE4, 0x43, 0x59 70 }; 71 72 static const uint8_t plaintext_aes192ctr[] = { 73 0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8, 74 0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B, 75 0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55, 76 0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC, 77 0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86, 78 0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B, 79 0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29, 80 0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96, 81 }; 82 83 static const uint8_t ciphertext64_aes192ctr[] = { 84 0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84, 85 0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2, 86 0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37, 87 0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E, 88 0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34, 89 0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29, 90 0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1, 91 0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0 92 }; 93 94 static const uint8_t ciphertext64_aes192ctr_IV_12bytes[] = { 95 0x67, 0x65, 0xa9, 0xee, 0xfd, 0x31, 0x62, 0xfc, 96 0xad, 0xfd, 0xc7, 0x25, 0xb7, 0x25, 0x16, 0xbe, 97 0x25, 0xce, 0xc0, 0x1d, 0xda, 0xa9, 0xd3, 0xda, 98 0x1b, 0x7d, 0x68, 0x6a, 0x6f, 0x06, 0xea, 0x47, 99 0xa0, 0xe0, 0x15, 0xf4, 0xbd, 0x1b, 0x70, 0x34, 100 0xd4, 0x6d, 0x1c, 0x84, 0x17, 0x91, 0x46, 0x0c, 101 0xe8, 0xbc, 0x7a, 0xfb, 0x9f, 0x2a, 0x8f, 0xb4, 102 0xd4, 0xf3, 0x6e, 0x5b, 0x75, 0xa0, 0xce, 0x32 103 }; 104 105 static const uint8_t plaintext_aes256ctr[] = { 106 0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96, 107 0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A, 108 0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C, 109 0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51, 110 0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11, 111 0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF, 112 0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17, 113 0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10 114 }; 115 116 static const uint8_t ciphertext64_aes256ctr[] = { 117 0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5, 118 0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28, 119 0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A, 120 0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5, 121 0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C, 122 0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D, 123 0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6, 124 0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6 125 }; 126 127 static const uint8_t ciphertext64_aes256ctr_IV_12bytes[] = { 128 0x7B, 0x7A, 0x7D, 0x83, 0x85, 0xF8, 0x81, 0xF3, 129 0x32, 0x33, 0xD9, 0xFB, 0x04, 0x73, 0xD4, 0x2F, 130 0x70, 0xDE, 0x90, 0x3E, 0xD0, 0xA9, 0x93, 0x8A, 131 0x91, 0xF3, 0xB5, 0x29, 0x4D, 0x2A, 0x74, 0xD0, 132 0xDC, 0x4E, 0x5C, 0x9B, 0x97, 0x24, 0xD8, 0x02, 133 0xFE, 0xAB, 0x38, 0xE8, 0x73, 0x51, 0x29, 0x7E, 134 0xF1, 0xF9, 0x40, 0x78, 0xB1, 0x04, 0x7A, 0x78, 135 0x61, 0x07, 0x47, 0xE6, 0x8C, 0x0F, 0xA8, 0x76 136 }; 137 138 static const uint8_t plaintext_aes_common[] = { 139 "What a lousy earth! He wondered how many people " 140 "were destitute that same night even in his own " 141 "prosperous country, how many homes were " 142 "shanties, how many husbands were drunk and " 143 "wives socked, and how many children were " 144 "bullied, abused, or abandoned. How many " 145 "families hungered for food they could not " 146 "afford to buy? How many hearts were broken? How " 147 "many suicides would take place that same night, " 148 "how many people would go insane? How many " 149 "cockroaches and landlords would triumph? How " 150 "many winners were losers, successes failures, " 151 "and rich men poor men? How many wise guys were " 152 "stupid? How many happy endings were unhappy " 153 "endings? How many honest men were liars, brave " 154 "men cowards, loyal men traitors, how many " 155 "sainted men were corrupt, how many people in " 156 "positions of trust had sold their souls to " 157 "bodyguards, how many had never had souls? How " 158 "many straight-and-narrow paths were crooked " 159 "paths? How many best families were worst " 160 "families and how many good people were bad " 161 "people? When you added them all up and then " 162 "subtracted, you might be left with only the " 163 "children, and perhaps with Albert Einstein and " 164 "an old violinist or sculptor somewhere." 165 }; 166 167 static const uint8_t ciphertext512_aes128cbc[] = { 168 0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31, 169 0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76, 170 0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E, 171 0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A, 172 0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E, 173 0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08, 174 0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0, 175 0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01, 176 0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57, 177 0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE, 178 0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9, 179 0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9, 180 0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D, 181 0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3, 182 0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46, 183 0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3, 184 0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80, 185 0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92, 186 0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5, 187 0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5, 188 0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2, 189 0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5, 190 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 191 0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76, 192 0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4, 193 0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62, 194 0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4, 195 0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4, 196 0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54, 197 0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61, 198 0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91, 199 0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A, 200 0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF, 201 0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F, 202 0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28, 203 0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E, 204 0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7, 205 0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76, 206 0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6, 207 0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03, 208 0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C, 209 0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2, 210 0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6, 211 0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96, 212 0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6, 213 0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA, 214 0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87, 215 0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55, 216 0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B, 217 0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98, 218 0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53, 219 0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A, 220 0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26, 221 0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36, 222 0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36, 223 0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D, 224 0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E, 225 0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E, 226 0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A, 227 0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6, 228 0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4, 229 0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7, 230 0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1, 231 0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C 232 }; 233 234 /* NULL cipher NULL auth 8-byte multiple test vector */ 235 static const struct blockcipher_test_data null_test_data_chain_x8_multiple = { 236 .crypto_algo = RTE_CRYPTO_CIPHER_NULL, 237 .cipher_key = { /* arbitrary data - shouldn't be used */ 238 .data = { 239 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 240 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C 241 }, 242 .len = 16 243 }, 244 .iv = { /* arbitrary data - shouldn't be used */ 245 .data = { 246 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 247 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 248 }, 249 .len = 16 250 }, 251 .plaintext = { 252 .data = plaintext_aes_common, 253 .len = 512 254 }, 255 .ciphertext = { 256 .data = plaintext_aes_common, 257 .len = 512 258 }, 259 .auth_algo = RTE_CRYPTO_AUTH_NULL, 260 .auth_key = { /* arbitrary data - shouldn't be used */ 261 .data = { 262 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 263 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 264 0xDE, 0xF4, 0xDE, 0xAD 265 }, 266 .len = 20 267 }, 268 .digest = { 269 .data = { 270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 271 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 272 0x00, 0x00, 0x00, 0x00 273 }, 274 .len = 20, 275 .truncated_len = 12 276 } 277 }; 278 279 /* NULL cipher NULL auth 4-byte multiple test vector */ 280 static const struct blockcipher_test_data null_test_data_chain_x4_multiple = { 281 .crypto_algo = RTE_CRYPTO_CIPHER_NULL, 282 .cipher_key = { /* arbitrary data - shouldn't be used */ 283 .data = { 284 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 285 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C 286 }, 287 .len = 16 288 }, 289 .iv = { /* arbitrary data - shouldn't be used */ 290 .data = { 291 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 292 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 293 }, 294 .len = 16 295 }, 296 .plaintext = { 297 .data = plaintext_aes128ctr, 298 .len = 20 299 }, 300 .ciphertext = { 301 .data = plaintext_aes128ctr, 302 .len = 20 303 }, 304 .auth_algo = RTE_CRYPTO_AUTH_NULL, 305 .auth_key = { /* arbitrary data - shouldn't be used */ 306 .data = { 307 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 308 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 309 0xDE, 0xF4, 0xDE, 0xAD 310 }, 311 .len = 20 312 }, 313 .digest = { 314 .data = { 315 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 316 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 317 0x00, 0x00, 0x00, 0x00 318 }, 319 .len = 20, 320 .truncated_len = 12 321 } 322 }; 323 324 /* NULL cipher NULL auth 1-byte multiple test vector */ 325 static const struct blockcipher_test_data null_test_data_chain_x1_multiple = { 326 .crypto_algo = RTE_CRYPTO_CIPHER_NULL, 327 .cipher_key = { /* arbitrary data - shouldn't be used */ 328 .data = { 329 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 330 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C 331 }, 332 .len = 16 333 }, 334 .iv = { /* arbitrary data - shouldn't be used */ 335 .data = { 336 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 337 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 338 }, 339 .len = 16 340 }, 341 .plaintext = { 342 .data = plaintext_aes128ctr, 343 .len = 21 344 }, 345 .ciphertext = { 346 .data = plaintext_aes128ctr, 347 .len = 21 348 }, 349 .auth_algo = RTE_CRYPTO_AUTH_NULL, 350 .auth_key = { /* arbitrary data - shouldn't be used */ 351 .data = { 352 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 353 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 354 0xDE, 0xF4, 0xDE, 0xAD 355 }, 356 .len = 20 357 }, 358 .digest = { 359 .data = { 360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 361 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 362 0x00, 0x00, 0x00, 0x00 363 }, 364 .len = 20, 365 .truncated_len = 12 366 } 367 }; 368 369 static const uint8_t ciphertext512_aes128cbc_aad[] = { 370 0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C, 371 0x1D, 0x7C, 0x76, 0xED, 0xC2, 0x10, 0x3C, 0xB5, 372 0x14, 0x07, 0x3C, 0x33, 0x7B, 0xBE, 0x9E, 0xA9, 373 0x01, 0xC5, 0xAA, 0xA6, 0xB6, 0x7A, 0xE1, 0xDB, 374 0x39, 0xAA, 0xAA, 0xF4, 0xEE, 0xA7, 0x71, 0x71, 375 0x78, 0x0D, 0x5A, 0xD4, 0xF9, 0xCD, 0x75, 0xD1, 376 0x9C, 0x7F, 0xC8, 0x58, 0x46, 0x7A, 0xD1, 0x81, 377 0xEA, 0xCC, 0x08, 0xDC, 0x82, 0x73, 0x22, 0x08, 378 0x11, 0x73, 0x7C, 0xB1, 0x84, 0x6A, 0x8E, 0x67, 379 0x3F, 0x5D, 0xDB, 0x0E, 0xE2, 0xC2, 0xCB, 0x6D, 380 0x88, 0xEC, 0x3F, 0x50, 0x44, 0xD3, 0x47, 0x6E, 381 0xDD, 0x42, 0xDC, 0x2A, 0x5E, 0x5C, 0x50, 0x24, 382 0x57, 0x8A, 0xE7, 0xC5, 0x53, 0x6D, 0x89, 0x33, 383 0x21, 0x65, 0x82, 0xD6, 0xE9, 0xE7, 0x77, 0x10, 384 0xC2, 0x09, 0x91, 0xC1, 0x42, 0x62, 0x36, 0xF4, 385 0x43, 0x37, 0x95, 0xB3, 0x7E, 0x21, 0xC5, 0x3E, 386 0x65, 0xCB, 0xB6, 0xAA, 0xEC, 0xA5, 0xC6, 0x5C, 387 0x4D, 0xBE, 0x14, 0xF1, 0x98, 0xBF, 0x6C, 0x8A, 388 0x9E, 0x9F, 0xD4, 0xB4, 0xF2, 0x22, 0x96, 0x99, 389 0x37, 0x32, 0xB6, 0xC1, 0x04, 0x66, 0x52, 0x37, 390 0x5D, 0x5F, 0x58, 0x92, 0xC9, 0x97, 0xEA, 0x60, 391 0x60, 0x27, 0x57, 0xF9, 0x47, 0x4F, 0xBC, 0xDF, 392 0x05, 0xBD, 0x37, 0x87, 0xBB, 0x09, 0xA5, 0xBE, 393 0xC1, 0xFC, 0x32, 0x86, 0x6A, 0xB7, 0x8B, 0x1E, 394 0x6B, 0xCE, 0x8D, 0x81, 0x63, 0x4C, 0xF2, 0x7F, 395 0xD1, 0x45, 0x82, 0xE8, 0x0D, 0x1C, 0x4D, 0xA8, 396 0xBF, 0x2D, 0x2B, 0x52, 0xE5, 0xDB, 0xAB, 0xFD, 397 0x04, 0xA2, 0xA1, 0x1E, 0x21, 0x1D, 0x06, 0x9A, 398 0xC2, 0x7D, 0x99, 0xFC, 0xB4, 0x72, 0x89, 0x41, 399 0x55, 0x69, 0xFA, 0x1F, 0x78, 0x2F, 0x35, 0x59, 400 0xD7, 0x59, 0x6D, 0xA6, 0x45, 0xC9, 0x2B, 0x06, 401 0x6C, 0xEC, 0x83, 0x34, 0xA5, 0x08, 0xDB, 0x6F, 402 0xDE, 0x75, 0x21, 0x9B, 0xB0, 0xCB, 0x0A, 0xAE, 403 0x22, 0x99, 0x74, 0x1C, 0x9D, 0x37, 0x0E, 0xC6, 404 0x3A, 0x45, 0x49, 0xE5, 0xE3, 0x21, 0x11, 0xEA, 405 0x34, 0x25, 0xD5, 0x76, 0xB0, 0x30, 0x19, 0x87, 406 0x14, 0x3A, 0x10, 0x6F, 0x6D, 0xDD, 0xE9, 0x60, 407 0x6A, 0x00, 0x6A, 0x4C, 0x5B, 0x85, 0x3E, 0x1A, 408 0x41, 0xFA, 0xDE, 0x2D, 0x2F, 0x2E, 0x5B, 0x79, 409 0x09, 0x66, 0x65, 0xD0, 0xDB, 0x32, 0x05, 0xB5, 410 0xEA, 0xFB, 0x6A, 0xD5, 0x43, 0xF8, 0xBD, 0x98, 411 0x7B, 0x8E, 0x3B, 0x85, 0x89, 0x5D, 0xC5, 0x59, 412 0x54, 0x22, 0x75, 0xA8, 0x60, 0xDC, 0x0A, 0x37, 413 0x8C, 0xD8, 0x05, 0xEA, 0x62, 0x62, 0x71, 0x98, 414 0x0C, 0xCB, 0xCE, 0x0A, 0xD9, 0xE6, 0xE8, 0xA7, 415 0xB3, 0x2D, 0x89, 0xA7, 0x60, 0xF0, 0x42, 0xA7, 416 0x3D, 0x80, 0x44, 0xE7, 0xC1, 0xA6, 0x88, 0xB1, 417 0x4F, 0xC0, 0xB1, 0xAF, 0x40, 0xF3, 0x54, 0x72, 418 0x8F, 0xAF, 0x47, 0x96, 0x19, 0xEB, 0xA5, 0x5C, 419 0x00, 0x3B, 0x36, 0xC8, 0x3F, 0x1E, 0x63, 0x54, 420 0xF3, 0x3D, 0x85, 0x44, 0x9B, 0x9B, 0x20, 0xE3, 421 0x9D, 0xEF, 0x62, 0x21, 0xA1, 0x0B, 0x78, 0xF4, 422 0x2B, 0x89, 0x66, 0x5E, 0x97, 0xC6, 0xC4, 0x55, 423 0x35, 0x32, 0xD7, 0x44, 0x95, 0x9A, 0xE7, 0xF2, 424 0x57, 0x52, 0x5B, 0x92, 0x86, 0x8F, 0x8B, 0xCF, 425 0x41, 0x89, 0xF6, 0x2A, 0xD3, 0x42, 0x87, 0x43, 426 0x56, 0x1F, 0x0E, 0x49, 0xF1, 0x32, 0x6D, 0xA8, 427 0x62, 0xDF, 0x47, 0xBB, 0xB6, 0x53, 0xF8, 0x5C, 428 0x36, 0xDA, 0x34, 0x34, 0x2D, 0x2E, 0x1D, 0x33, 429 0xAF, 0x6A, 0x1E, 0xF1, 0xC9, 0x72, 0xB5, 0x3C, 430 0x64, 0x4C, 0x96, 0x12, 0x78, 0x67, 0x6A, 0xE5, 431 0x8B, 0x05, 0x80, 0xAE, 0x7D, 0xE5, 0x9B, 0x24, 432 0xDB, 0xFF, 0x1E, 0xB8, 0x36, 0x6D, 0x3D, 0x5D, 433 0x73, 0x65, 0x72, 0x73, 0x2C, 0x20, 0x73, 0x75 434 }; 435 436 /* AES128-CTR-SHA1 test vector */ 437 static const struct blockcipher_test_data aes_test_data_1 = { 438 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR, 439 .cipher_key = { 440 .data = { 441 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 442 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C 443 }, 444 .len = 16 445 }, 446 .iv = { 447 .data = { 448 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 449 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 450 }, 451 .len = 16 452 }, 453 .plaintext = { 454 .data = plaintext_aes128ctr, 455 .len = 64 456 }, 457 .ciphertext = { 458 .data = ciphertext64_aes128ctr, 459 .len = 64 460 }, 461 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 462 .auth_key = { 463 .data = { 464 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 465 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 466 0xDE, 0xF4, 0xDE, 0xAD 467 }, 468 .len = 20 469 }, 470 .digest = { 471 .data = { 472 0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0, 473 0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2, 474 0x56, 0x20, 0xFB, 0xFE 475 }, 476 .len = 20, 477 .truncated_len = 12 478 } 479 }; 480 481 /** AES-192-CTR XCBC test vector */ 482 static const struct blockcipher_test_data aes_test_data_2 = { 483 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR, 484 .cipher_key = { 485 .data = { 486 0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C, 487 0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F, 488 0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4 489 }, 490 .len = 24 491 }, 492 .iv = { 493 .data = { 494 0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40, 495 0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57 496 }, 497 .len = 16 498 }, 499 .plaintext = { 500 .data = plaintext_aes192ctr, 501 .len = 64 502 }, 503 .ciphertext = { 504 .data = ciphertext64_aes192ctr, 505 .len = 64 506 }, 507 .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC, 508 .auth_key = { 509 .data = { 510 0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51, 511 0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59 512 }, 513 .len = 16 514 }, 515 .digest = { 516 .data = { 517 0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55, 518 0x36, 0x6B, 0x45, 0x46 519 }, 520 .len = 12, 521 .truncated_len = 12 522 } 523 }; 524 525 /** AES-256-CTR SHA1 test vector */ 526 static const struct blockcipher_test_data aes_test_data_3 = { 527 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR, 528 .cipher_key = { 529 .data = { 530 0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE, 531 0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81, 532 0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7, 533 0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4 534 }, 535 .len = 32 536 }, 537 .iv = { 538 .data = { 539 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 540 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 541 }, 542 .len = 16 543 }, 544 .plaintext = { 545 .data = plaintext_aes256ctr, 546 .len = 64 547 }, 548 .ciphertext = { 549 .data = ciphertext64_aes256ctr, 550 .len = 64 551 }, 552 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 553 .auth_key = { 554 .data = { 555 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 556 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 557 0xDE, 0xF4, 0xDE, 0xAD 558 }, 559 .len = 20 560 }, 561 .digest = { 562 .data = { 563 0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64, 564 0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16, 565 0xE7, 0x87, 0xA3, 0xEF 566 }, 567 .len = 20, 568 .truncated_len = 12 569 } 570 }; 571 572 /* AES128-CTR-SHA1 test vector (12-byte IV) */ 573 static const struct blockcipher_test_data aes_test_data_1_IV_12_bytes = { 574 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR, 575 .cipher_key = { 576 .data = { 577 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 578 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C 579 }, 580 .len = 16 581 }, 582 .iv = { 583 .data = { 584 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 585 0xF8, 0xF9, 0xFA, 0xFB 586 }, 587 .len = 12 588 }, 589 .plaintext = { 590 .data = plaintext_aes128ctr, 591 .len = 64 592 }, 593 .ciphertext = { 594 .data = ciphertext64_aes128ctr_IV_12bytes, 595 .len = 64 596 }, 597 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 598 .auth_key = { 599 .data = { 600 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 601 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 602 0xDE, 0xF4, 0xDE, 0xAD 603 }, 604 .len = 20 605 }, 606 .digest = { 607 .data = { 608 0x5C, 0x34, 0x6B, 0xE4, 0x9A, 0x7F, 0x4A, 0xC3, 609 0x82, 0xBE, 0xA0, 0x12, 0xD1, 0xF0, 0x15, 0xFA, 610 0xCF, 0xC8, 0x7F, 0x60 611 }, 612 .len = 20, 613 .truncated_len = 12 614 } 615 }; 616 617 /** AES-192-CTR XCBC test vector (12-byte IV) */ 618 static const struct blockcipher_test_data aes_test_data_2_IV_12_bytes = { 619 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR, 620 .cipher_key = { 621 .data = { 622 0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C, 623 0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F, 624 0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4 625 }, 626 .len = 24 627 }, 628 .iv = { 629 .data = { 630 0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40, 631 0xB8, 0x7A, 0x4B, 0xED 632 }, 633 .len = 12 634 }, 635 .plaintext = { 636 .data = plaintext_aes192ctr, 637 .len = 64 638 }, 639 .ciphertext = { 640 .data = ciphertext64_aes192ctr_IV_12bytes, 641 .len = 64 642 }, 643 .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC, 644 .auth_key = { 645 .data = { 646 0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51, 647 0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59 648 }, 649 .len = 16 650 }, 651 .digest = { 652 .data = { 653 0x0C, 0xA1, 0xA5, 0xAF, 0x3E, 0x41, 0xD2, 0xF4, 654 0x4C, 0x4C, 0xAB, 0x13 655 }, 656 .len = 12, 657 .truncated_len = 12 658 } 659 }; 660 661 /** AES-256-CTR SHA1 test vector (12-byte IV) */ 662 static const struct blockcipher_test_data aes_test_data_3_IV_12_bytes = { 663 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR, 664 .cipher_key = { 665 .data = { 666 0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE, 667 0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81, 668 0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7, 669 0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4 670 }, 671 .len = 32 672 }, 673 .iv = { 674 .data = { 675 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 676 0xF8, 0xF9, 0xFA, 0xFB 677 }, 678 .len = 12 679 }, 680 .plaintext = { 681 .data = plaintext_aes256ctr, 682 .len = 64 683 }, 684 .ciphertext = { 685 .data = ciphertext64_aes256ctr_IV_12bytes, 686 .len = 64 687 }, 688 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 689 .auth_key = { 690 .data = { 691 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 692 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 693 0xDE, 0xF4, 0xDE, 0xAD 694 }, 695 .len = 20 696 }, 697 .digest = { 698 .data = { 699 0x57, 0x9A, 0x52, 0x6E, 0x31, 0x17, 0x57, 0x49, 700 0xE7, 0xA1, 0x88, 0x6C, 0x2E, 0x36, 0x67, 0x63, 701 0x3F, 0x2D, 0xA3, 0xEF 702 }, 703 .len = 20, 704 .truncated_len = 12 705 } 706 }; 707 /** AES-128-CBC SHA1 test vector */ 708 static const struct blockcipher_test_data aes_test_data_4 = { 709 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 710 .cipher_key = { 711 .data = { 712 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 713 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 714 }, 715 .len = 16 716 }, 717 .iv = { 718 .data = { 719 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 720 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 721 }, 722 .len = 16 723 }, 724 .plaintext = { 725 .data = plaintext_aes_common, 726 .len = 512 727 }, 728 .ciphertext = { 729 .data = ciphertext512_aes128cbc, 730 .len = 512 731 }, 732 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 733 .auth_key = { 734 .data = { 735 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 736 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 737 0xDE, 0xF4, 0xDE, 0xAD 738 }, 739 .len = 20 740 }, 741 .digest = { 742 .data = { 743 0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60, 744 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 745 0x18, 0x8C, 0x1D, 0x32 746 }, 747 .len = 20, 748 .truncated_len = 12 749 } 750 }; 751 752 /** AES-128-CBC SHA256 test vector */ 753 static const struct blockcipher_test_data aes_test_data_5 = { 754 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 755 .cipher_key = { 756 .data = { 757 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 758 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 759 }, 760 .len = 16 761 }, 762 .iv = { 763 .data = { 764 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 765 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 766 }, 767 .len = 16 768 }, 769 .plaintext = { 770 .data = plaintext_aes_common, 771 .len = 512 772 }, 773 .ciphertext = { 774 .data = ciphertext512_aes128cbc, 775 .len = 512 776 }, 777 .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC, 778 .auth_key = { 779 .data = { 780 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 781 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 782 0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76, 783 0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60 784 }, 785 .len = 32 786 }, 787 .digest = { 788 .data = { 789 0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55, 790 0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A, 791 0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4, 792 0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15 793 }, 794 .len = 32, 795 .truncated_len = 16 796 } 797 }; 798 799 /** AES-128-CBC SHA512 test vector */ 800 static const struct blockcipher_test_data aes_test_data_6 = { 801 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 802 .cipher_key = { 803 .data = { 804 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 805 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 806 }, 807 .len = 16 808 }, 809 .iv = { 810 .data = { 811 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 812 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 813 }, 814 .len = 16 815 }, 816 .plaintext = { 817 .data = plaintext_aes_common, 818 .len = 512 819 }, 820 .ciphertext = { 821 .data = ciphertext512_aes128cbc, 822 .len = 512 823 }, 824 .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC, 825 .auth_key = { 826 .data = { 827 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 828 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 829 0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76, 830 0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60, 831 0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1, 832 0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0, 833 0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76, 834 0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60 835 }, 836 .len = 64 837 }, 838 .digest = { 839 .data = { 840 0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8, 841 0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48, 842 0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8, 843 0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70, 844 0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8, 845 0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E, 846 0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D, 847 0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A 848 }, 849 .len = 64, 850 .truncated_len = 32 851 } 852 }; 853 854 /** AES-128-CBC XCBC test vector */ 855 static const struct blockcipher_test_data aes_test_data_7 = { 856 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 857 .cipher_key = { 858 .data = { 859 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 860 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 861 }, 862 .len = 16 863 }, 864 .iv = { 865 .data = { 866 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 867 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 868 }, 869 .len = 16 870 }, 871 .plaintext = { 872 .data = plaintext_aes_common, 873 .len = 512 874 }, 875 .ciphertext = { 876 .data = ciphertext512_aes128cbc, 877 .len = 512 878 }, 879 .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC, 880 .auth_key = { 881 .data = { 882 0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51, 883 0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59 884 }, 885 .len = 16 886 }, 887 .digest = { 888 .data = { 889 0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89, 890 0x77, 0x1D, 0x8B, 0x75 891 }, 892 .len = 12, 893 .truncated_len = 12 894 } 895 }; 896 897 /** AES-128-CBC SHA224 test vector */ 898 static const struct blockcipher_test_data aes_test_data_8 = { 899 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 900 .cipher_key = { 901 .data = { 902 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 903 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 904 }, 905 .len = 16 906 }, 907 .iv = { 908 .data = { 909 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 910 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 911 }, 912 .len = 16 913 }, 914 .plaintext = { 915 .data = plaintext_aes_common, 916 .len = 512 917 }, 918 .ciphertext = { 919 .data = ciphertext512_aes128cbc, 920 .len = 512 921 }, 922 .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC, 923 .auth_key = { 924 .data = { 925 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 926 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 927 0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76, 928 0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60, 929 0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1, 930 0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0, 931 0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76, 932 0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60 933 }, 934 .len = 64 935 }, 936 .digest = { 937 .data = { 938 0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98, 939 0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34, 940 0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F, 941 0x63, 0x7C, 0xDD, 0xB7 942 }, 943 .len = 28, 944 .truncated_len = 14 945 } 946 }; 947 948 /** AES-128-CBC SHA384 test vector */ 949 static const struct blockcipher_test_data aes_test_data_9 = { 950 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 951 .cipher_key = { 952 .data = { 953 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 954 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 955 }, 956 .len = 16 957 }, 958 .iv = { 959 .data = { 960 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 961 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 962 }, 963 .len = 16 964 }, 965 .plaintext = { 966 .data = plaintext_aes_common, 967 .len = 512 968 }, 969 .ciphertext = { 970 .data = ciphertext512_aes128cbc, 971 .len = 512 972 }, 973 .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC, 974 .auth_key = { 975 .data = { 976 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 977 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 978 0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76, 979 0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60, 980 0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1, 981 0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0, 982 0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76, 983 0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60, 984 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 985 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 986 0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76, 987 0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60, 988 0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1, 989 0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0, 990 0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76, 991 0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60 992 }, 993 .len = 128 994 }, 995 .digest = { 996 .data = { 997 0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72, 998 0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C, 999 0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D, 1000 0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D, 1001 0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F, 1002 0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B 1003 }, 1004 .len = 48, 1005 .truncated_len = 24 1006 } 1007 }; 1008 1009 static const uint8_t ciphertext512_aes192cbc[] = { 1010 0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C, 1011 0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B, 1012 0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8, 1013 0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C, 1014 0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03, 1015 0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57, 1016 0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89, 1017 0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F, 1018 0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64, 1019 0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24, 1020 0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E, 1021 0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B, 1022 0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3, 1023 0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF, 1024 0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C, 1025 0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B, 1026 0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3, 1027 0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA, 1028 0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B, 1029 0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7, 1030 0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB, 1031 0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88, 1032 0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86, 1033 0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25, 1034 0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7, 1035 0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91, 1036 0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14, 1037 0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B, 1038 0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B, 1039 0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30, 1040 0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4, 1041 0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96, 1042 0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD, 1043 0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13, 1044 0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6, 1045 0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2, 1046 0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F, 1047 0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07, 1048 0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC, 1049 0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D, 1050 0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C, 1051 0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45, 1052 0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA, 1053 0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0, 1054 0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97, 1055 0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7, 1056 0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D, 1057 0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58, 1058 0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4, 1059 0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21, 1060 0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6, 1061 0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36, 1062 0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64, 1063 0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3, 1064 0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87, 1065 0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB, 1066 0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47, 1067 0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E, 1068 0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29, 1069 0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37, 1070 0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43, 1071 0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2, 1072 0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43, 1073 0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC 1074 }; 1075 1076 /** AES-192-CBC test vector */ 1077 static const struct blockcipher_test_data aes_test_data_10 = { 1078 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 1079 .cipher_key = { 1080 .data = { 1081 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1082 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A, 1083 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0 1084 }, 1085 .len = 24 1086 }, 1087 .iv = { 1088 .data = { 1089 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1090 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1091 }, 1092 .len = 16 1093 }, 1094 .plaintext = { 1095 .data = plaintext_aes_common, 1096 .len = 512 1097 }, 1098 .ciphertext = { 1099 .data = ciphertext512_aes192cbc, 1100 .len = 512 1101 } 1102 }; 1103 1104 static const uint8_t ciphertext512_aes256cbc[] = { 1105 0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04, 1106 0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7, 1107 0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06, 1108 0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98, 1109 0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C, 1110 0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F, 1111 0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15, 1112 0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E, 1113 0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11, 1114 0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E, 1115 0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA, 1116 0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54, 1117 0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95, 1118 0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9, 1119 0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08, 1120 0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26, 1121 0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7, 1122 0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91, 1123 0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F, 1124 0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02, 1125 0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00, 1126 0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B, 1127 0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84, 1128 0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42, 1129 0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E, 1130 0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1, 1131 0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F, 1132 0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62, 1133 0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7, 1134 0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55, 1135 0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC, 1136 0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83, 1137 0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17, 1138 0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5, 1139 0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69, 1140 0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1, 1141 0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40, 1142 0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5, 1143 0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8, 1144 0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40, 1145 0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE, 1146 0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D, 1147 0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C, 1148 0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1, 1149 0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9, 1150 0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE, 1151 0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B, 1152 0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C, 1153 0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E, 1154 0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE, 1155 0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66, 1156 0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE, 1157 0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3, 1158 0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4, 1159 0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23, 1160 0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3, 1161 0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76, 1162 0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05, 1163 0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A, 1164 0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE, 1165 0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58, 1166 0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95, 1167 0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3, 1168 0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C 1169 }; 1170 1171 /** AES-256-CBC test vector */ 1172 static const struct blockcipher_test_data aes_test_data_11 = { 1173 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 1174 .cipher_key = { 1175 .data = { 1176 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1177 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A, 1178 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0, 1179 0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D 1180 }, 1181 .len = 32 1182 }, 1183 .iv = { 1184 .data = { 1185 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1186 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1187 }, 1188 .len = 16 1189 }, 1190 .plaintext = { 1191 .data = plaintext_aes_common, 1192 .len = 512 1193 }, 1194 .ciphertext = { 1195 .data = ciphertext512_aes256cbc, 1196 .len = 512 1197 } 1198 }; 1199 1200 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */ 1201 static const struct blockcipher_test_data aes_test_data_12 = { 1202 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 1203 .cipher_key = { 1204 .data = { 1205 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1206 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 1207 }, 1208 .len = 16 1209 }, 1210 .iv = { 1211 .data = { 1212 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1213 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1214 }, 1215 .len = 16 1216 }, 1217 .plaintext = { 1218 .data = plaintext_aes_common, 1219 .len = 160 1220 }, 1221 .ciphertext = { 1222 .data = ciphertext512_aes128cbc, 1223 .len = 160 1224 }, 1225 .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC, 1226 .auth_key = { 1227 .data = { 1228 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1, 1229 0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA, 1230 0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76, 1231 0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60 1232 }, 1233 .len = 32 1234 }, 1235 .digest = { 1236 .data = { 1237 0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5, 1238 0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04, 1239 0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62, 1240 0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B 1241 }, 1242 .len = 32, 1243 .truncated_len = 16 1244 } 1245 }; 1246 1247 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */ 1248 static const struct blockcipher_test_data aes_test_data_13 = { 1249 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 1250 .cipher_key = { 1251 .data = { 1252 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1253 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 1254 }, 1255 .len = 16 1256 }, 1257 .iv = { 1258 .data = { 1259 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1260 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1261 }, 1262 .len = 16 1263 }, 1264 .plaintext = { 1265 .data = plaintext_aes_common, 1266 .len = 160 1267 }, 1268 .ciphertext = { 1269 .data = ciphertext512_aes128cbc, 1270 .len = 160 1271 }, 1272 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 1273 .auth_key = { 1274 .data = { 1275 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 1276 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 1277 0xDE, 0xF4, 0xDE, 0xAD 1278 }, 1279 .len = 20 1280 }, 1281 .digest = { 1282 .data = { 1283 0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0, 1284 0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48, 1285 0x22, 0x43, 0x30, 0xA7 1286 }, 1287 .len = 20, 1288 .truncated_len = 12 1289 } 1290 }; 1291 1292 /** XTS-AES-128 test vector (2 keys * 128 bit) */ 1293 static const uint8_t plaintext_aes128xts_16bytes[] = { 1294 0xEB, 0xAB, 0xCE, 0x95, 0xB1, 0x4D, 0x3C, 0x8D, 1295 0x6F, 0xB3, 0x50, 0x39, 0x07, 0x90, 0x31, 0x1C 1296 }; 1297 static const uint8_t ciphertext_aes128xts_16bytes[] = { 1298 0x77, 0x8A, 0xE8, 0xB4, 0x3C, 0xB9, 0x8D, 0x5A, 1299 0x82, 0x50, 0x81, 0xD5, 0xBE, 0x47, 0x1C, 0x63 1300 }; 1301 static const struct 1302 blockcipher_test_data aes_test_data_xts_key_32_pt_16 = { 1303 .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS, 1304 .cipher_key = { 1305 .data = { 1306 0xA1, 0xB9, 0x0C, 0xBA, 0x3F, 0x06, 0xAC, 0x35, 1307 0x3B, 0x2C, 0x34, 0x38, 0x76, 0x08, 0x17, 0x62, 1308 0x09, 0x09, 0x23, 0x02, 0x6E, 0x91, 0x77, 0x18, 1309 0x15, 0xF2, 0x9D, 0xAB, 0x01, 0x93, 0x2F, 0x2F 1310 }, 1311 .len = 32 1312 }, 1313 .iv = { 1314 .data = { 1315 0x4F, 0xAE, 0xF7, 0x11, 0x7C, 0xDA, 0x59, 0xC6, 1316 0x6E, 0x4B, 0x92, 0x01, 0x3E, 0x76, 0x8A, 0xD5 1317 }, 1318 .len = 16 1319 }, 1320 .plaintext = { 1321 .data = plaintext_aes128xts_16bytes, 1322 .len = 16 1323 }, 1324 .ciphertext = { 1325 .data = ciphertext_aes128xts_16bytes, 1326 .len = 16 1327 } 1328 }; 1329 static const uint8_t plaintext_aes128xts_32bytes[] = { 1330 0xB0, 0x4D, 0x84, 0xDA, 0x85, 0x6B, 0x9A, 0x59, 1331 0xCE, 0x2D, 0x62, 0x67, 0x46, 0xF6, 0x89, 0xA8, 1332 0x05, 0x1D, 0xAC, 0xD6, 0xBC, 0xE3, 0xB9, 0x90, 1333 0xAA, 0x90, 0x1E, 0x40, 0x30, 0x64, 0x88, 0x79 1334 }; 1335 static const uint8_t ciphertext_aes128xts_32bytes[] = { 1336 0xF9, 0x41, 0x03, 0x9E, 0xBA, 0xB8, 0xCA, 0xC3, 1337 0x9D, 0x59, 0x24, 0x7C, 0xBB, 0xCB, 0x4D, 0x81, 1338 0x6C, 0x72, 0x6D, 0xAE, 0xD1, 0x15, 0x77, 0x69, 1339 0x2C, 0x55, 0xE4, 0xAC, 0x6D, 0x3E, 0x68, 0x20 1340 }; 1341 static const struct 1342 blockcipher_test_data aes_test_data_xts_key_32_pt_32 = { 1343 .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS, 1344 .cipher_key = { 1345 .data = { 1346 0x78, 0x3A, 0x83, 0xEC, 0x52, 0xA2, 0x74, 0x05, 1347 0xDF, 0xF9, 0xDE, 0x4C, 0x57, 0xF9, 0xC9, 0x79, 1348 0xB3, 0x60, 0xB6, 0xA5, 0xDF, 0x88, 0xD6, 0x7E, 1349 0xC1, 0xA0, 0x52, 0xE6, 0xF5, 0x82, 0xA7, 0x17 1350 }, 1351 .len = 32 1352 }, 1353 .iv = { 1354 .data = { 1355 0x88, 0x6E, 0x97, 0x5B, 0x29, 0xBD, 0xF6, 0xF0, 1356 0xC0, 0x1B, 0xB4, 0x7F, 0x61, 0xF6, 0xF0, 0xF5 1357 }, 1358 .len = 16 1359 }, 1360 .plaintext = { 1361 .data = plaintext_aes128xts_32bytes, 1362 .len = 32 1363 }, 1364 .ciphertext = { 1365 .data = ciphertext_aes128xts_32bytes, 1366 .len = 32 1367 } 1368 }; 1369 1370 /** XTS-AES-256 test vector (2 keys * 256 bit) */ 1371 /* Encryption */ 1372 static const uint8_t plaintext_aes256xts_32bytes[] = { 1373 0x2E, 0xED, 0xEA, 0x52, 0xCD, 0x82, 0x15, 0xE1, 1374 0xAC, 0xC6, 0x47, 0xE8, 0x10, 0xBB, 0xC3, 0x64, 1375 0x2E, 0x87, 0x28, 0x7F, 0x8D, 0x2E, 0x57, 0xE3, 1376 0x6C, 0x0A, 0x24, 0xFB, 0xC1, 0x2A, 0x20, 0x2E 1377 }; 1378 static const uint8_t ciphertext_aes256xts_32bytes[] = { 1379 0xCB, 0xAA, 0xD0, 0xE2, 0xF6, 0xCE, 0xA3, 0xF5, 1380 0x0B, 0x37, 0xF9, 0x34, 0xD4, 0x6A, 0x9B, 0x13, 1381 0x0B, 0x9D, 0x54, 0xF0, 0x7E, 0x34, 0xF3, 0x6A, 1382 0xF7, 0x93, 0xE8, 0x6F, 0x73, 0xC6, 0xD7, 0xDB 1383 }; 1384 static const struct 1385 blockcipher_test_data aes_test_data_xts_key_64_pt_32 = { 1386 .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS, 1387 .cipher_key = { 1388 .data = { 1389 0x1E, 0xA6, 0x61, 0xC5, 0x8D, 0x94, 0x3A, 0x0E, 1390 0x48, 0x01, 0xE4, 0x2F, 0x4B, 0x09, 0x47, 0x14, 1391 0x9E, 0x7F, 0x9F, 0x8E, 0x3E, 0x68, 0xD0, 0xC7, 1392 0x50, 0x52, 0x10, 0xBD, 0x31, 0x1A, 0x0E, 0x7C, 1393 0xD6, 0xE1, 0x3F, 0xFD, 0xF2, 0x41, 0x8D, 0x8D, 1394 0x19, 0x11, 0xC0, 0x04, 0xCD, 0xA5, 0x8D, 0xA3, 1395 0xD6, 0x19, 0xB7, 0xE2, 0xB9, 0x14, 0x1E, 0x58, 1396 0x31, 0x8E, 0xEA, 0x39, 0x2C, 0xF4, 0x1B, 0x08 1397 }, 1398 .len = 64 1399 }, 1400 .iv = { 1401 .data = { 1402 0xAD, 0xF8, 0xD9, 0x26, 0x27, 0x46, 0x4A, 0xD2, 1403 0xF0, 0x42, 0x8E, 0x84, 0xA9, 0xF8, 0x75, 0x64 1404 }, 1405 .len = 16 1406 }, 1407 .plaintext = { 1408 .data = plaintext_aes256xts_32bytes, 1409 .len = 32 1410 }, 1411 .ciphertext = { 1412 .data = ciphertext_aes256xts_32bytes, 1413 .len = 32 1414 } 1415 }; 1416 static const uint8_t plaintext_aes256xts_48bytes[] = { 1417 0xBB, 0xB2, 0x34, 0xDB, 0x01, 0xBE, 0x79, 0xD3, 1418 0xDC, 0x7D, 0xCF, 0x49, 0xBC, 0x53, 0xB8, 0xEF, 1419 0xC6, 0x2F, 0xE7, 0x17, 0x94, 0x39, 0x06, 0x1D, 1420 0x73, 0xA6, 0xB2, 0x0E, 0xDB, 0x9B, 0x7D, 0xA0, 1421 0x45, 0x0B, 0x19, 0xF0, 0x20, 0x82, 0x02, 0x09, 1422 0xAF, 0xE0, 0x81, 0x12, 0xAE, 0x4A, 0xFD, 0xD3 1423 }; 1424 static const uint8_t ciphertext_aes256xts_48bytes[] = { 1425 0xCB, 0xF6, 0x88, 0x48, 0xC4, 0x20, 0x49, 0xEF, 1426 0xB1, 0x46, 0xE2, 0xD1, 0xE4, 0x11, 0x5F, 0x62, 1427 0xE4, 0xFA, 0xA4, 0xEF, 0xFF, 0x19, 0x8F, 0x1A, 1428 0x0A, 0xA0, 0xC9, 0x8B, 0xA0, 0x2C, 0xC4, 0x4D, 1429 0xA3, 0x76, 0xD7, 0x62, 0xD6, 0x15, 0x1F, 0x23, 1430 0x45, 0x87, 0xBF, 0x12, 0x8B, 0x6A, 0x7F, 0xFA 1431 }; 1432 static const struct 1433 blockcipher_test_data aes_test_data_xts_key_64_pt_48 = { 1434 .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS, 1435 .cipher_key = { 1436 .data = { 1437 0x7F, 0xB0, 0x92, 0x2F, 0xCE, 0x09, 0xED, 0xDD, 1438 0x36, 0x65, 0xA1, 0x1F, 0x52, 0x35, 0xD5, 0x1E, 1439 0xF7, 0x72, 0x06, 0xA7, 0xDE, 0x45, 0x47, 0x75, 1440 0xB6, 0x9D, 0xCC, 0x54, 0x59, 0xAC, 0xDB, 0x24, 1441 0xCC, 0xF0, 0x5C, 0x41, 0x5A, 0xF5, 0xAB, 0x8A, 1442 0x06, 0x62, 0x3D, 0x19, 0x8D, 0x5B, 0x91, 0x85, 1443 0x95, 0xA9, 0xDC, 0xAA, 0xF5, 0x39, 0x2E, 0xE7, 1444 0x17, 0xC1, 0x04, 0x7F, 0x2F, 0x08, 0xF6, 0x2B 1445 }, 1446 .len = 64 1447 }, 1448 .iv = { 1449 .data = { 1450 0x8E, 0xA3, 0x63, 0x8B, 0x9D, 0x40, 0x62, 0xF1, 1451 0x69, 0x19, 0x6F, 0xF4, 0x55, 0x5A, 0xD0, 0xAF 1452 }, 1453 .len = 16 1454 }, 1455 .plaintext = { 1456 .data = plaintext_aes256xts_48bytes, 1457 .len = 48 1458 }, 1459 .ciphertext = { 1460 .data = ciphertext_aes256xts_48bytes, 1461 .len = 48 1462 } 1463 }; 1464 1465 /* AES-DOCSIS-BPI test vectors */ 1466 1467 /* Multiple of AES block size */ 1468 static const struct blockcipher_test_data aes_test_data_docsis_1 = { 1469 .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, 1470 .cipher_key = { 1471 .data = { 1472 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1473 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 1474 }, 1475 .len = 16 1476 }, 1477 .iv = { 1478 .data = { 1479 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1480 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1481 }, 1482 .len = 16 1483 }, 1484 .plaintext = { 1485 .data = plaintext_aes_common, 1486 .len = 512 1487 }, 1488 .ciphertext = { 1489 .data = ciphertext512_aes128cbc, 1490 .len = 512 1491 } 1492 }; 1493 1494 /* Less than AES block size */ 1495 static const struct blockcipher_test_data aes_test_data_docsis_2 = { 1496 .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, 1497 .cipher_key = { 1498 .data = { 1499 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1500 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB 1501 }, 1502 .len = 16 1503 }, 1504 .iv = { 1505 .data = { 1506 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, 1507 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A 1508 }, 1509 .len = 16 1510 }, 1511 .plaintext = { 1512 .data = plaintext_aes_docsis_bpi_cfb, 1513 .len = 7 1514 }, 1515 .ciphertext = { 1516 .data = ciphertext_aes_docsis_bpi_cfb, 1517 .len = 7 1518 } 1519 }; 1520 1521 /* Not multiple of AES block size */ 1522 static const struct blockcipher_test_data aes_test_data_docsis_3 = { 1523 .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, 1524 .cipher_key = { 1525 .data = { 1526 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1527 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB 1528 }, 1529 .len = 16 1530 }, 1531 .iv = { 1532 .data = { 1533 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, 1534 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A 1535 }, 1536 .len = 16 1537 }, 1538 .plaintext = { 1539 .data = plaintext_aes_docsis_bpi_cbc_cfb, 1540 .len = 19 1541 }, 1542 .ciphertext = { 1543 .data = ciphertext_aes_docsis_bpi_cbc_cfb, 1544 .len = 19 1545 } 1546 }; 1547 1548 /* Multiple of AES 256 block size */ 1549 static const struct blockcipher_test_data aes_test_data_docsis_4 = { 1550 .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, 1551 .cipher_key = { 1552 .data = { 1553 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1554 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A, 1555 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0, 1556 0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D 1557 }, 1558 .len = 32 1559 }, 1560 .iv = { 1561 .data = { 1562 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1563 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1564 }, 1565 .len = 16 1566 }, 1567 .plaintext = { 1568 .data = plaintext_aes_common, 1569 .len = 512 1570 }, 1571 .ciphertext = { 1572 .data = ciphertext512_aes256cbc, 1573 .len = 512 1574 } 1575 }; 1576 1577 /* Less than AES 256 block size */ 1578 static const struct blockcipher_test_data aes_test_data_docsis_5 = { 1579 .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, 1580 .cipher_key = { 1581 .data = { 1582 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1583 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1584 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1585 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB 1586 }, 1587 .len = 32 1588 }, 1589 .iv = { 1590 .data = { 1591 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, 1592 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A 1593 }, 1594 .len = 16 1595 }, 1596 .plaintext = { 1597 .data = plaintext_aes_docsis_bpi_cfb, 1598 .len = 7 1599 }, 1600 .ciphertext = { 1601 .data = ciphertext_aes256_docsis_bpi_cfb, 1602 .len = 7 1603 } 1604 }; 1605 1606 /* Not multiple of AES 256 block size */ 1607 static const struct blockcipher_test_data aes_test_data_docsis_6 = { 1608 .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI, 1609 .cipher_key = { 1610 .data = { 1611 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1612 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1613 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB, 1614 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB 1615 }, 1616 .len = 32 1617 }, 1618 .iv = { 1619 .data = { 1620 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A, 1621 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A 1622 }, 1623 .len = 16 1624 }, 1625 .plaintext = { 1626 .data = plaintext_aes_docsis_bpi_cbc_cfb, 1627 .len = 19 1628 }, 1629 .ciphertext = { 1630 .data = ciphertext_aes256_docsis_bpi_cbc_cfb, 1631 .len = 19 1632 } 1633 }; 1634 1635 static const uint8_t 1636 cipher_aescbc_offset_16[] = { 1637 0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C, 1638 0x6F, 0x75, 0x73, 0x79, 0x20, 0x65, 0x61, 0x72, 1639 0x68, 0x2A, 0x6A, 0x82, 0xE0, 0x73, 0xC7, 0x51, 1640 0x81, 0xF4, 0x47, 0x27, 0x1A, 0xEF, 0x76, 0x15, 1641 0x1C, 0xE1, 0x38, 0x5F, 0xE1, 0x81, 0x77, 0xC7, 1642 0x8B, 0xF0, 0x69, 0xC3, 0x3C, 0x45, 0x1C, 0x0A, 1643 0xA3, 0x93, 0xBF, 0x60, 0x57, 0x88, 0xD2, 0xFF, 1644 0xE1, 0x8F, 0xC0, 0x64, 0x2C, 0x42, 0xC5, 0x22, 1645 0xE3, 0x5F, 0x71, 0x1F, 0xF7, 0x62, 0xA2, 0x7E, 1646 0x0D, 0x42, 0xD9, 0xE7, 0xF3, 0x10, 0xB0, 0xEE, 1647 }; 1648 1649 /** AES-128-CBC SHA1 OOP test vector for swapping src/dst */ 1650 static const struct blockcipher_test_data aes_test_data_14 = { 1651 .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC, 1652 .cipher_key = { 1653 .data = { 1654 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2, 1655 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A 1656 }, 1657 .len = 16 1658 }, 1659 .iv = { 1660 .data = { 1661 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 1662 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F 1663 }, 1664 .len = 16 1665 }, 1666 .plaintext = { 1667 .data = plaintext_aes_common, 1668 .len = 80 1669 }, 1670 .cipher_offset = 16, 1671 .auth_offset = 0, 1672 .ciphertext = { 1673 .data = cipher_aescbc_offset_16, 1674 .len = 80 1675 }, 1676 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 1677 .auth_key = { 1678 .data = { 1679 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA, 1680 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD, 1681 0xDE, 0xF4, 0xDE, 0xAD 1682 }, 1683 .len = 20 1684 }, 1685 .digest = { 1686 .data = { 1687 0xCC, 0x15, 0x83, 0xF7, 0x23, 0x87, 0x96, 0xA7, 1688 0x29, 0x34, 0x32, 0xE4, 0x4C, 0x06, 0xE8, 0xEB, 1689 0x70, 0x72, 0x4B, 0xAD 1690 }, 1691 .len = 20, 1692 .truncated_len = 12 1693 } 1694 }; 1695 1696 static const struct blockcipher_test_case aes_chain_test_cases[] = { 1697 { 1698 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest " 1699 "Verify OOP Offset", 1700 .test_data = &aes_test_data_14, 1701 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1702 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1703 }, 1704 { 1705 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest", 1706 .test_data = &aes_test_data_1, 1707 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1708 }, 1709 { 1710 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest " 1711 "Verify", 1712 .test_data = &aes_test_data_1, 1713 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1714 }, 1715 { 1716 .test_descr = "AES-192-CTR XCBC Encryption Digest", 1717 .test_data = &aes_test_data_2, 1718 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1719 }, 1720 { 1721 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify", 1722 .test_data = &aes_test_data_2, 1723 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1724 }, 1725 { 1726 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify " 1727 "Scatter Gather", 1728 .test_data = &aes_test_data_2, 1729 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1730 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG | 1731 BLOCKCIPHER_TEST_FEATURE_OOP, 1732 }, 1733 { 1734 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest", 1735 .test_data = &aes_test_data_3, 1736 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1737 }, 1738 { 1739 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest " 1740 "Verify", 1741 .test_data = &aes_test_data_3, 1742 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1743 }, 1744 { 1745 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest", 1746 .test_data = &aes_test_data_4, 1747 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1748 }, 1749 { 1750 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest " 1751 "(short buffers)", 1752 .test_data = &aes_test_data_13, 1753 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1754 }, 1755 { 1756 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest " 1757 "Scatter Gather", 1758 .test_data = &aes_test_data_4, 1759 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1760 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG | 1761 BLOCKCIPHER_TEST_FEATURE_OOP, 1762 }, 1763 { 1764 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest " 1765 "Verify", 1766 .test_data = &aes_test_data_4, 1767 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1768 }, 1769 { 1770 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest " 1771 "Verify Scatter Gather", 1772 .test_data = &aes_test_data_4, 1773 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1774 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG, 1775 }, 1776 { 1777 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest " 1778 "Verify (short buffers)", 1779 .test_data = &aes_test_data_13, 1780 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1781 }, 1782 { 1783 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest", 1784 .test_data = &aes_test_data_5, 1785 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1786 }, 1787 { 1788 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest " 1789 "(short buffers)", 1790 .test_data = &aes_test_data_12, 1791 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1792 }, 1793 { 1794 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest " 1795 "Verify", 1796 .test_data = &aes_test_data_5, 1797 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1798 }, 1799 { 1800 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest " 1801 "Verify (short buffers)", 1802 .test_data = &aes_test_data_12, 1803 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1804 }, 1805 { 1806 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest", 1807 .test_data = &aes_test_data_6, 1808 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1809 }, 1810 { 1811 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest " 1812 "Sessionless", 1813 .test_data = &aes_test_data_6, 1814 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1815 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS, 1816 }, 1817 { 1818 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest " 1819 "Scatter Gather Sessionless", 1820 .test_data = &aes_test_data_6, 1821 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1822 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS | 1823 BLOCKCIPHER_TEST_FEATURE_SG | 1824 BLOCKCIPHER_TEST_FEATURE_OOP, 1825 }, 1826 { 1827 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest " 1828 "Verify", 1829 .test_data = &aes_test_data_6, 1830 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1831 }, 1832 { 1833 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest " 1834 "Verify Scatter Gather", 1835 .test_data = &aes_test_data_6, 1836 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1837 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG | 1838 BLOCKCIPHER_TEST_FEATURE_OOP, 1839 }, 1840 { 1841 .test_descr = "AES-128-CBC XCBC Encryption Digest", 1842 .test_data = &aes_test_data_7, 1843 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1844 }, 1845 { 1846 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify", 1847 .test_data = &aes_test_data_7, 1848 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1849 }, 1850 { 1851 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest " 1852 "OOP", 1853 .test_data = &aes_test_data_4, 1854 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1855 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1856 }, 1857 { 1858 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest " 1859 "OOP Offset", 1860 .test_data = &aes_test_data_14, 1861 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1862 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1863 }, 1864 { 1865 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest " 1866 "Verify OOP", 1867 .test_data = &aes_test_data_4, 1868 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1869 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1870 }, 1871 { 1872 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest", 1873 .test_data = &aes_test_data_8, 1874 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1875 }, 1876 { 1877 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest " 1878 "Verify", 1879 .test_data = &aes_test_data_8, 1880 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1881 }, 1882 { 1883 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest", 1884 .test_data = &aes_test_data_9, 1885 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1886 }, 1887 { 1888 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest " 1889 "Verify", 1890 .test_data = &aes_test_data_9, 1891 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1892 }, 1893 { 1894 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest " 1895 "Sessionless", 1896 .test_data = &aes_test_data_4, 1897 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1898 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS, 1899 }, 1900 { 1901 .test_descr = 1902 "AES-128-CBC HMAC-SHA1 Decryption Digest " 1903 "Verify Sessionless", 1904 .test_data = &aes_test_data_4, 1905 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1906 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS, 1907 }, 1908 { 1909 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x8byte", 1910 .test_data = &null_test_data_chain_x8_multiple, 1911 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1912 }, 1913 { 1914 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x8byte", 1915 .test_data = &null_test_data_chain_x8_multiple, 1916 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1917 }, 1918 { 1919 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x8byte - OOP", 1920 .test_data = &null_test_data_chain_x8_multiple, 1921 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1922 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1923 }, 1924 { 1925 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x8byte - OOP", 1926 .test_data = &null_test_data_chain_x8_multiple, 1927 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1928 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1929 }, 1930 { 1931 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x4byte", 1932 .test_data = &null_test_data_chain_x4_multiple, 1933 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1934 }, 1935 { 1936 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x4byte", 1937 .test_data = &null_test_data_chain_x4_multiple, 1938 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1939 }, 1940 { 1941 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x4byte - OOP", 1942 .test_data = &null_test_data_chain_x4_multiple, 1943 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1944 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1945 }, 1946 { 1947 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x4byte - OOP", 1948 .test_data = &null_test_data_chain_x4_multiple, 1949 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1950 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1951 }, 1952 { 1953 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x1byte", 1954 .test_data = &null_test_data_chain_x1_multiple, 1955 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1956 }, 1957 { 1958 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x1byte", 1959 .test_data = &null_test_data_chain_x1_multiple, 1960 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1961 }, 1962 { 1963 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x1byte - OOP", 1964 .test_data = &null_test_data_chain_x1_multiple, 1965 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN, 1966 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1967 }, 1968 { 1969 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x1byte - OOP", 1970 .test_data = &null_test_data_chain_x1_multiple, 1971 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC, 1972 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 1973 }, 1974 }; 1975 1976 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = { 1977 { 1978 .test_descr = "AES-128-CBC Encryption", 1979 .test_data = &aes_test_data_4, 1980 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 1981 }, 1982 { 1983 .test_descr = "AES-128-CBC Decryption", 1984 .test_data = &aes_test_data_4, 1985 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 1986 }, 1987 { 1988 .test_descr = "AES-192-CBC Encryption", 1989 .test_data = &aes_test_data_10, 1990 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 1991 }, 1992 { 1993 .test_descr = "AES-192-CBC Encryption Scater gather", 1994 .test_data = &aes_test_data_10, 1995 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 1996 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG | 1997 BLOCKCIPHER_TEST_FEATURE_OOP, 1998 }, 1999 { 2000 .test_descr = "AES-192-CBC Decryption", 2001 .test_data = &aes_test_data_10, 2002 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2003 }, 2004 { 2005 .test_descr = "AES-192-CBC Decryption Scatter Gather", 2006 .test_data = &aes_test_data_10, 2007 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2008 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG, 2009 }, 2010 { 2011 .test_descr = "AES-256-CBC Encryption", 2012 .test_data = &aes_test_data_11, 2013 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2014 }, 2015 { 2016 .test_descr = "AES-256-CBC Decryption", 2017 .test_data = &aes_test_data_11, 2018 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2019 }, 2020 { 2021 .test_descr = "AES-256-CBC OOP Encryption", 2022 .test_data = &aes_test_data_11, 2023 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2024 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2025 }, 2026 { 2027 .test_descr = "AES-256-CBC OOP Decryption", 2028 .test_data = &aes_test_data_11, 2029 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2030 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2031 }, 2032 { 2033 .test_descr = "AES-128-CTR Encryption", 2034 .test_data = &aes_test_data_1, 2035 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2036 }, 2037 { 2038 .test_descr = "AES-128-CTR Decryption", 2039 .test_data = &aes_test_data_1, 2040 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2041 }, 2042 { 2043 .test_descr = "AES-192-CTR Encryption", 2044 .test_data = &aes_test_data_2, 2045 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2046 }, 2047 { 2048 .test_descr = "AES-192-CTR Decryption", 2049 .test_data = &aes_test_data_2, 2050 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2051 }, 2052 { 2053 .test_descr = "AES-256-CTR Encryption", 2054 .test_data = &aes_test_data_3, 2055 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2056 }, 2057 { 2058 .test_descr = "AES-256-CTR Decryption", 2059 .test_data = &aes_test_data_3, 2060 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2061 }, 2062 { 2063 .test_descr = "AES-128-CTR Encryption (12-byte IV)", 2064 .test_data = &aes_test_data_1_IV_12_bytes, 2065 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2066 }, 2067 { 2068 .test_descr = "AES-192-CTR Encryption (12-byte IV)", 2069 .test_data = &aes_test_data_2_IV_12_bytes, 2070 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2071 }, 2072 { 2073 .test_descr = "AES-256-CTR Encryption (12-byte IV)", 2074 .test_data = &aes_test_data_3_IV_12_bytes, 2075 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2076 }, 2077 { 2078 .test_descr = "AES-128-XTS Encryption (16-byte plaintext)", 2079 .test_data = &aes_test_data_xts_key_32_pt_16, 2080 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2081 }, 2082 { 2083 .test_descr = "AES-128-XTS Decryption (16-byte plaintext)", 2084 .test_data = &aes_test_data_xts_key_32_pt_16, 2085 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2086 }, 2087 { 2088 .test_descr = "AES-128-XTS Encryption (32-byte plaintext)", 2089 .test_data = &aes_test_data_xts_key_32_pt_32, 2090 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2091 }, 2092 { 2093 .test_descr = "AES-128-XTS Decryption (32-byte plaintext)", 2094 .test_data = &aes_test_data_xts_key_32_pt_32, 2095 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2096 }, 2097 { 2098 .test_descr = "AES-256-XTS Encryption (32-byte plaintext)", 2099 .test_data = &aes_test_data_xts_key_64_pt_32, 2100 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2101 }, 2102 { 2103 .test_descr = "AES-256-XTS Decryption (32-byte plaintext)", 2104 .test_data = &aes_test_data_xts_key_64_pt_32, 2105 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2106 }, 2107 { 2108 .test_descr = "AES-256-XTS Encryption (48-byte plaintext)", 2109 .test_data = &aes_test_data_xts_key_64_pt_48, 2110 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2111 }, 2112 { 2113 .test_descr = "AES-256-XTS Decryption (48-byte plaintext)", 2114 .test_data = &aes_test_data_xts_key_64_pt_48, 2115 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2116 }, 2117 { 2118 .test_descr = "cipher-only - NULL algo - x8 - encryption", 2119 .test_data = &null_test_data_chain_x8_multiple, 2120 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2121 }, 2122 { 2123 .test_descr = "cipher-only - NULL algo - x8 - decryption", 2124 .test_data = &null_test_data_chain_x8_multiple, 2125 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2126 }, 2127 { 2128 .test_descr = "cipher-only - NULL algo - x4 - encryption", 2129 .test_data = &null_test_data_chain_x4_multiple, 2130 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2131 }, 2132 { 2133 .test_descr = "cipher-only - NULL algo - x4 - decryption", 2134 .test_data = &null_test_data_chain_x4_multiple, 2135 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2136 }, 2137 { 2138 .test_descr = "cipher-only - NULL algo - x4 - encryption - OOP", 2139 .test_data = &null_test_data_chain_x4_multiple, 2140 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2141 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2142 }, 2143 { 2144 .test_descr = "cipher-only - NULL algo - x4 - decryption - OOP", 2145 .test_data = &null_test_data_chain_x4_multiple, 2146 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2147 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2148 }, 2149 { 2150 .test_descr = "cipher-only - NULL algo - x1 - encryption", 2151 .test_data = &null_test_data_chain_x1_multiple, 2152 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2153 }, 2154 { 2155 .test_descr = "cipher-only - NULL algo - x1 - decryption", 2156 .test_data = &null_test_data_chain_x1_multiple, 2157 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2158 }, 2159 }; 2160 2161 static const struct blockcipher_test_case aes_docsis_test_cases[] = { 2162 2163 { 2164 .test_descr = "AES-DOCSIS-BPI Full Block Encryption", 2165 .test_data = &aes_test_data_docsis_1, 2166 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2167 }, 2168 { 2169 .test_descr = "AES-DOCSIS-BPI Runt Block Encryption", 2170 .test_data = &aes_test_data_docsis_2, 2171 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2172 }, 2173 { 2174 .test_descr = "AES-DOCSIS-BPI Uneven Encryption", 2175 .test_data = &aes_test_data_docsis_3, 2176 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2177 }, 2178 { 2179 .test_descr = "AES-DOCSIS-BPI Full Block Decryption", 2180 .test_data = &aes_test_data_docsis_1, 2181 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2182 }, 2183 { 2184 .test_descr = "AES-DOCSIS-BPI Runt Block Decryption", 2185 .test_data = &aes_test_data_docsis_2, 2186 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2187 }, 2188 { 2189 .test_descr = "AES-DOCSIS-BPI Uneven Decryption", 2190 .test_data = &aes_test_data_docsis_3, 2191 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2192 }, 2193 { 2194 .test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption", 2195 .test_data = &aes_test_data_docsis_1, 2196 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2197 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2198 }, 2199 { 2200 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption", 2201 .test_data = &aes_test_data_docsis_2, 2202 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2203 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2204 }, 2205 2206 { 2207 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption", 2208 .test_data = &aes_test_data_docsis_3, 2209 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2210 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2211 }, 2212 { 2213 .test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption", 2214 .test_data = &aes_test_data_docsis_1, 2215 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2216 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2217 }, 2218 { 2219 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption", 2220 .test_data = &aes_test_data_docsis_2, 2221 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2222 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2223 }, 2224 { 2225 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption", 2226 .test_data = &aes_test_data_docsis_3, 2227 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2228 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2229 }, 2230 /* AES 256 */ 2231 { 2232 .test_descr = "AES-256-DOCSIS-BPI Full Block Encryption", 2233 .test_data = &aes_test_data_docsis_4, 2234 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2235 }, 2236 { 2237 .test_descr = "AES-256-DOCSIS-BPI Runt Block Encryption", 2238 .test_data = &aes_test_data_docsis_5, 2239 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2240 }, 2241 { 2242 .test_descr = "AES-256-DOCSIS-BPI Uneven Encryption", 2243 .test_data = &aes_test_data_docsis_6, 2244 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2245 }, 2246 { 2247 .test_descr = "AES-256-DOCSIS-BPI Full Block Decryption", 2248 .test_data = &aes_test_data_docsis_4, 2249 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2250 }, 2251 { 2252 .test_descr = "AES-256-DOCSIS-BPI Runt Block Decryption", 2253 .test_data = &aes_test_data_docsis_5, 2254 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2255 }, 2256 { 2257 .test_descr = "AES-256-DOCSIS-BPI Uneven Decryption", 2258 .test_data = &aes_test_data_docsis_6, 2259 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2260 }, 2261 { 2262 .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Encryption", 2263 .test_data = &aes_test_data_docsis_4, 2264 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2265 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2266 }, 2267 { 2268 .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Encryption", 2269 .test_data = &aes_test_data_docsis_5, 2270 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2271 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2272 }, 2273 { 2274 .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Encryption", 2275 .test_data = &aes_test_data_docsis_6, 2276 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT, 2277 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2278 }, 2279 { 2280 .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Decryption", 2281 .test_data = &aes_test_data_docsis_4, 2282 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2283 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2284 }, 2285 { 2286 .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Decryption", 2287 .test_data = &aes_test_data_docsis_5, 2288 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2289 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2290 }, 2291 { 2292 .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Decryption", 2293 .test_data = &aes_test_data_docsis_6, 2294 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT, 2295 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 2296 }, 2297 }; 2298 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */ 2299