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