1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2016-2017 Intel Corporation 3 */ 4 5 #ifndef TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_ 6 #define TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_ 7 8 struct kasumi_hash_test_data { 9 struct { 10 uint8_t data[16]; 11 unsigned len; 12 } key; 13 14 /* 15 * Includes COUNT (4 bytes), FRESH (4 bytes), message 16 * and DIRECTION (1 bit), plus 1 0*, with enough 0s, 17 * so total length is multiple of 8 or 64 bits 18 */ 19 struct { 20 uint8_t data[2056]; 21 unsigned len; /* length must be in Bits */ 22 } plaintext; 23 24 struct { 25 uint8_t data[64]; 26 unsigned len; 27 } digest; 28 }; 29 30 struct kasumi_hash_test_data kasumi_hash_test_case_1 = { 31 .key = { 32 .data = { 33 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00, 34 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48 35 }, 36 .len = 16 37 }, 38 .plaintext = { 39 .data = { 40 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49, 41 0x6B, 0x22, 0x77, 0x37, 0x29, 0x6F, 0x39, 0x3C, 42 0x80, 0x79, 0x35, 0x3E, 0xDC, 0x87, 0xE2, 0xE8, 43 0x05, 0xD2, 0xEC, 0x49, 0xA4, 0xF2, 0xD8, 0xE2 44 }, 45 .len = 256 46 }, 47 .digest = { 48 .data = {0xF6, 0x3B, 0xD7, 0x2C}, 49 .len = 4 50 } 51 }; 52 53 struct kasumi_hash_test_data kasumi_hash_test_case_2 = { 54 .key = { 55 .data = { 56 0xD4, 0x2F, 0x68, 0x24, 0x28, 0x20, 0x1C, 0xAF, 57 0xCD, 0x9F, 0x97, 0x94, 0x5E, 0x6D, 0xE7, 0xB7 58 }, 59 .len = 16 60 }, 61 .plaintext = { 62 .data = { 63 0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2, 64 0xB5, 0x92, 0x43, 0x84, 0x32, 0x8A, 0x4A, 0xE0, 65 0x0B, 0x73, 0x71, 0x09, 0xF8, 0xB6, 0xC8, 0xDD, 66 0x2B, 0x4D, 0xB6, 0x3D, 0xD5, 0x33, 0x98, 0x1C, 67 0xEB, 0x19, 0xAA, 0xD5, 0x2A, 0x5B, 0x2B, 0xC3 68 }, 69 .len = 320 70 }, 71 .digest = { 72 .data = {0xA9, 0xDA, 0xF1, 0xFF}, 73 .len = 4 74 } 75 }; 76 77 struct kasumi_hash_test_data kasumi_hash_test_case_3 = { 78 .key = { 79 .data = { 80 0xFD, 0xB9, 0xCF, 0xDF, 0x28, 0x93, 0x6C, 0xC4, 81 0x83, 0xA3, 0x18, 0x69, 0xD8, 0x1B, 0x8F, 0xAB 82 }, 83 .len = 16 84 }, 85 .plaintext = { 86 .data = { 87 0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A, 88 0x59, 0x32, 0xBC, 0x0A, 0xCE, 0x2B, 0x0A, 0xBA, 89 0x33, 0xD8, 0xAC, 0x18, 0x8A, 0xC5, 0x4F, 0x34, 90 0x6F, 0xAD, 0x10, 0xBF, 0x9D, 0xEE, 0x29, 0x20, 91 0xB4, 0x3B, 0xD0, 0xC5, 0x3A, 0x91, 0x5C, 0xB7, 92 0xDF, 0x6C, 0xAA, 0x72, 0x05, 0x3A, 0xBF, 0xF3, 93 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 94 }, 95 .len = 448 96 }, 97 .digest = { 98 .data = {0x15, 0x37, 0xD3, 0x16}, 99 .len = 4 100 } 101 }; 102 103 struct kasumi_hash_test_data kasumi_hash_test_case_4 = { 104 .key = { 105 .data = { 106 0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9, 107 0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E 108 }, 109 .len = 16 110 }, 111 .plaintext = { 112 .data = { 113 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD, 114 0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2, 115 0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1, 116 0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29, 117 0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0, 118 0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20, 119 0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09, 120 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 121 }, 122 .len = 512 123 }, 124 .digest = { 125 .data = {0xDD, 0x7D, 0xFA, 0xDD }, 126 .len = 4 127 } 128 }; 129 130 struct kasumi_hash_test_data kasumi_hash_test_case_5 = { 131 .key = { 132 .data = { 133 0xF4, 0xEB, 0xEC, 0x69, 0xE7, 0x3E, 0xAF, 0x2E, 134 0xB2, 0xCF, 0x6A, 0xF4, 0xB3, 0x12, 0x0F, 0xFD 135 }, 136 .len = 16 137 }, 138 .plaintext = { 139 .data = { 140 0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37, 141 0x10, 0xBF, 0xFF, 0x83, 0x9E, 0x0C, 0x71, 0x65, 142 0x8D, 0xBB, 0x2D, 0x17, 0x07, 0xE1, 0x45, 0x72, 143 0x4F, 0x41, 0xC1, 0x6F, 0x48, 0xBF, 0x40, 0x3C, 144 0x3B, 0x18, 0xE3, 0x8F, 0xD5, 0xD1, 0x66, 0x3B, 145 0x6F, 0x6D, 0x90, 0x01, 0x93, 0xE3, 0xCE, 0xA8, 146 0xBB, 0x4F, 0x1B, 0x4F, 0x5B, 0xE8, 0x22, 0x03, 147 0x22, 0x32, 0xA7, 0x8D, 0x7D, 0x75, 0x23, 0x8D, 148 0x5E, 0x6D, 0xAE, 0xCD, 0x3B, 0x43, 0x22, 0xCF, 149 0x59, 0xBC, 0x7E, 0xA8, 0x4A, 0xB1, 0x88, 0x11, 150 0xB5, 0xBF, 0xB7, 0xBC, 0x55, 0x3F, 0x4F, 0xE4, 151 0x44, 0x78, 0xCE, 0x28, 0x7A, 0x14, 0x87, 0x99, 152 0x90, 0xD1, 0x8D, 0x12, 0xCA, 0x79, 0xD2, 0xC8, 153 0x55, 0x14, 0x90, 0x21, 0xCD, 0x5C, 0xE8, 0xCA, 154 0x03, 0x71, 0xCA, 0x04, 0xFC, 0xCE, 0x14, 0x3E, 155 0x3D, 0x7C, 0xFE, 0xE9, 0x45, 0x85, 0xB5, 0x88, 156 0x5C, 0xAC, 0x46, 0x06, 0x8B, 0xC0, 0x00, 0x00 157 }, 158 .len = 1088 159 }, 160 .digest = { 161 .data = {0xC3, 0x83, 0x83, 0x9D}, 162 .len = 4 163 } 164 }; 165 166 struct kasumi_hash_test_data kasumi_hash_test_case_6 = { 167 .key = { 168 .data = { 169 0x83, 0xFD, 0x23, 0xA2, 0x44, 0xA7, 0x4C, 0xF3, 170 0x58, 0xDA, 0x30, 0x19, 0xF1, 0x72, 0x26, 0x35 171 }, 172 .len = 16 173 }, 174 .plaintext = { 175 .data = { 176 0x36, 0xAF, 0x61, 0x44, 0x4F, 0x30, 0x2A, 0xD2, 177 0x35, 0xC6, 0x87, 0x16, 0x63, 0x3C, 0x66, 0xFB, 178 0x75, 0x0C, 0x26, 0x68, 0x65, 0xD5, 0x3C, 0x11, 179 0xEA, 0x05, 0xB1, 0xE9, 0xFA, 0x49, 0xC8, 0x39, 180 0x8D, 0x48, 0xE1, 0xEF, 0xA5, 0x90, 0x9D, 0x39, 181 0x47, 0x90, 0x28, 0x37, 0xF5, 0xAE, 0x96, 0xD5, 182 0xA0, 0x5B, 0xC8, 0xD6, 0x1C, 0xA8, 0xDB, 0xEF, 183 0x1B, 0x13, 0xA4, 0xB4, 0xAB, 0xFE, 0x4F, 0xB1, 184 0x00, 0x60, 0x45, 0xB6, 0x74, 0xBB, 0x54, 0x72, 185 0x93, 0x04, 0xC3, 0x82, 0xBE, 0x53, 0xA5, 0xAF, 186 0x05, 0x55, 0x61, 0x76, 0xF6, 0xEA, 0xA2, 0xEF, 187 0x1D, 0x05, 0xE4, 0xB0, 0x83, 0x18, 0x1E, 0xE6, 188 0x74, 0xCD, 0xA5, 0xA4, 0x85, 0xF7, 0x4D, 0x7A, 189 0xC0 190 }, 191 .len = 840 192 }, 193 .digest = { 194 .data = {0x95, 0xAE, 0x41, 0xBA}, 195 .len = 4 196 } 197 }; 198 199 struct kasumi_hash_test_data kasumi_hash_test_case_7 = { 200 .key = { 201 .data = { 202 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20, 203 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52 204 }, 205 .len = 16 206 }, 207 .plaintext = { 208 .data = { 209 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49, 210 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4, 211 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0 212 }, 213 .len = 192 214 }, 215 .digest = { 216 .data = {0x87, 0x5F, 0xE4, 0x89}, 217 .len = 4 218 } 219 }; 220 #endif /* TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_ */ 221