| 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 2 | /* Data for Kerberos library self-testing |
| 3 | * |
| 4 | * Copyright (C) 2025 Red Hat, Inc. All Rights Reserved. |
| 5 | * Written by David Howells (dhowells@redhat.com) |
| 6 | */ |
| 7 | |
| 8 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
| 9 | |
| 10 | #include "internal.h" |
| 11 | |
| 12 | /* |
| 13 | * Pseudo-random function tests. |
| 14 | */ |
| 15 | const struct krb5_prf_test krb5_prf_tests[] = { |
| 16 | /* rfc8009 Appendix A */ |
| 17 | { |
| 18 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 19 | .name = "prf" , |
| 20 | .key = "3705D96080C17728A0E800EAB6E0D23C" , |
| 21 | .octet = "74657374" , |
| 22 | .prf = "9D188616F63852FE86915BB840B4A886FF3E6BB0F819B49B893393D393854295" , |
| 23 | }, { |
| 24 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 25 | .name = "prf" , |
| 26 | .key = "6D404D37FAF79F9DF0D33568D320669800EB4836472EA8A026D16B7182460C52" , |
| 27 | .octet = "74657374" , |
| 28 | .prf = |
| 29 | "9801F69A368C2BF675E59521E177D9A07F67EFE1CFDE8D3C8D6F6A0256E3B17D" |
| 30 | "B3C1B62AD1B8553360D17367EB1514D2" , |
| 31 | }, |
| 32 | {/* END */} |
| 33 | }; |
| 34 | |
| 35 | /* |
| 36 | * Key derivation tests. |
| 37 | */ |
| 38 | const struct krb5_key_test krb5_key_tests[] = { |
| 39 | /* rfc8009 Appendix A */ |
| 40 | { |
| 41 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 42 | .name = "key" , |
| 43 | .key = "3705D96080C17728A0E800EAB6E0D23C" , |
| 44 | .Kc.use = 0x00000002, |
| 45 | .Kc.key = "B31A018A48F54776F403E9A396325DC3" , |
| 46 | .Ke.use = 0x00000002, |
| 47 | .Ke.key = "9B197DD1E8C5609D6E67C3E37C62C72E" , |
| 48 | .Ki.use = 0x00000002, |
| 49 | .Ki.key = "9FDA0E56AB2D85E1569A688696C26A6C" , |
| 50 | }, { |
| 51 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 52 | .name = "key" , |
| 53 | .key = "6D404D37FAF79F9DF0D33568D320669800EB4836472EA8A026D16B7182460C52" , |
| 54 | .Kc.use = 0x00000002, |
| 55 | .Kc.key = "EF5718BE86CC84963D8BBB5031E9F5C4BA41F28FAF69E73D" , |
| 56 | .Ke.use = 0x00000002, |
| 57 | .Ke.key = "56AB22BEE63D82D7BC5227F6773F8EA7A5EB1C825160C38312980C442E5C7E49" , |
| 58 | .Ki.use = 0x00000002, |
| 59 | .Ki.key = "69B16514E3CD8E56B82010D5C73012B622C4D00FFC23ED1F" , |
| 60 | }, |
| 61 | /* rfc6803 sec 10 */ |
| 62 | { |
| 63 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 64 | .name = "key" , |
| 65 | .key = "57D0297298FFD9D35DE5A47FB4BDE24B" , |
| 66 | .Kc.use = 0x00000002, |
| 67 | .Kc.key = "D155775A209D05F02B38D42A389E5A56" , |
| 68 | .Ke.use = 0x00000002, |
| 69 | .Ke.key = "64DF83F85A532F17577D8C37035796AB" , |
| 70 | .Ki.use = 0x00000002, |
| 71 | .Ki.key = "3E4FBDF30FB8259C425CB6C96F1F4635" , |
| 72 | }, |
| 73 | { |
| 74 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 75 | .name = "key" , |
| 76 | .key = "B9D6828B2056B7BE656D88A123B1FAC68214AC2B727ECF5F69AFE0C4DF2A6D2C" , |
| 77 | .Kc.use = 0x00000002, |
| 78 | .Kc.key = "E467F9A9552BC7D3155A6220AF9C19220EEED4FF78B0D1E6A1544991461A9E50" , |
| 79 | .Ke.use = 0x00000002, |
| 80 | .Ke.key = "412AEFC362A7285FC3966C6A5181E7605AE675235B6D549FBFC9AB6630A4C604" , |
| 81 | .Ki.use = 0x00000002, |
| 82 | .Ki.key = "FA624FA0E523993FA388AEFDC67E67EBCD8C08E8A0246B1D73B0D1DD9FC582B0" , |
| 83 | }, |
| 84 | {/* END */} |
| 85 | }; |
| 86 | |
| 87 | /* |
| 88 | * Encryption tests. |
| 89 | */ |
| 90 | const struct krb5_enc_test krb5_enc_tests[] = { |
| 91 | /* rfc8009 Appendix A */ |
| 92 | { |
| 93 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 94 | .name = "enc no plain" , |
| 95 | .plain = "" , |
| 96 | .conf = "7E5895EAF2672435BAD817F545A37148" , |
| 97 | .Ke = "9B197DD1E8C5609D6E67C3E37C62C72E" , |
| 98 | .Ki = "9FDA0E56AB2D85E1569A688696C26A6C" , |
| 99 | .ct = "EF85FB890BB8472F4DAB20394DCA781DAD877EDA39D50C870C0D5A0A8E48C718" , |
| 100 | }, { |
| 101 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 102 | .name = "enc plain<block" , |
| 103 | .plain = "000102030405" , |
| 104 | .conf = "7BCA285E2FD4130FB55B1A5C83BC5B24" , |
| 105 | .Ke = "9B197DD1E8C5609D6E67C3E37C62C72E" , |
| 106 | .Ki = "9FDA0E56AB2D85E1569A688696C26A6C" , |
| 107 | .ct = "84D7F30754ED987BAB0BF3506BEB09CFB55402CEF7E6877CE99E247E52D16ED4421DFDF8976C" , |
| 108 | }, { |
| 109 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 110 | .name = "enc plain==block" , |
| 111 | .plain = "000102030405060708090A0B0C0D0E0F" , |
| 112 | .conf = "56AB21713FF62C0A1457200F6FA9948F" , |
| 113 | .Ke = "9B197DD1E8C5609D6E67C3E37C62C72E" , |
| 114 | .Ki = "9FDA0E56AB2D85E1569A688696C26A6C" , |
| 115 | .ct = "3517D640F50DDC8AD3628722B3569D2AE07493FA8263254080EA65C1008E8FC295FB4852E7D83E1E7C48C37EEBE6B0D3" , |
| 116 | }, { |
| 117 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 118 | .name = "enc plain>block" , |
| 119 | .plain = "000102030405060708090A0B0C0D0E0F1011121314" , |
| 120 | .conf = "A7A4E29A4728CE10664FB64E49AD3FAC" , |
| 121 | .Ke = "9B197DD1E8C5609D6E67C3E37C62C72E" , |
| 122 | .Ki = "9FDA0E56AB2D85E1569A688696C26A6C" , |
| 123 | .ct = "720F73B18D9859CD6CCB4346115CD336C70F58EDC0C4437C5573544C31C813BCE1E6D072C186B39A413C2F92CA9B8334A287FFCBFC" , |
| 124 | }, { |
| 125 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 126 | .name = "enc no plain" , |
| 127 | .plain = "" , |
| 128 | .conf = "F764E9FA15C276478B2C7D0C4E5F58E4" , |
| 129 | .Ke = "56AB22BEE63D82D7BC5227F6773F8EA7A5EB1C825160C38312980C442E5C7E49" , |
| 130 | .Ki = "69B16514E3CD8E56B82010D5C73012B622C4D00FFC23ED1F" , |
| 131 | .ct = "41F53FA5BFE7026D91FAF9BE959195A058707273A96A40F0A01960621AC612748B9BBFBE7EB4CE3C" , |
| 132 | }, { |
| 133 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 134 | .name = "enc plain<block" , |
| 135 | .plain = "000102030405" , |
| 136 | .conf = "B80D3251C1F6471494256FFE712D0B9A" , |
| 137 | .Ke = "56AB22BEE63D82D7BC5227F6773F8EA7A5EB1C825160C38312980C442E5C7E49" , |
| 138 | .Ki = "69B16514E3CD8E56B82010D5C73012B622C4D00FFC23ED1F" , |
| 139 | .ct = "4ED7B37C2BCAC8F74F23C1CF07E62BC7B75FB3F637B9F559C7F664F69EAB7B6092237526EA0D1F61CB20D69D10F2" , |
| 140 | }, { |
| 141 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 142 | .name = "enc plain==block" , |
| 143 | .plain = "000102030405060708090A0B0C0D0E0F" , |
| 144 | .conf = "53BF8A0D105265D4E276428624CE5E63" , |
| 145 | .Ke = "56AB22BEE63D82D7BC5227F6773F8EA7A5EB1C825160C38312980C442E5C7E49" , |
| 146 | .Ki = "69B16514E3CD8E56B82010D5C73012B622C4D00FFC23ED1F" , |
| 147 | .ct = "BC47FFEC7998EB91E8115CF8D19DAC4BBBE2E163E87DD37F49BECA92027764F68CF51F14D798C2273F35DF574D1F932E40C4FF255B36A266" , |
| 148 | }, { |
| 149 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 150 | .name = "enc plain>block" , |
| 151 | .plain = "000102030405060708090A0B0C0D0E0F1011121314" , |
| 152 | .conf = "763E65367E864F02F55153C7E3B58AF1" , |
| 153 | .Ke = "56AB22BEE63D82D7BC5227F6773F8EA7A5EB1C825160C38312980C442E5C7E49" , |
| 154 | .Ki = "69B16514E3CD8E56B82010D5C73012B622C4D00FFC23ED1F" , |
| 155 | .ct = "40013E2DF58E8751957D2878BCD2D6FE101CCFD556CB1EAE79DB3C3EE86429F2B2A602AC86FEF6ECB647D6295FAE077A1FEB517508D2C16B4192E01F62" , |
| 156 | }, |
| 157 | /* rfc6803 sec 10 */ |
| 158 | { |
| 159 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 160 | .name = "enc no plain" , |
| 161 | .plain = "" , |
| 162 | .conf = "B69822A19A6B09C0EBC8557D1F1B6C0A" , |
| 163 | .K0 = "1DC46A8D763F4F93742BCBA3387576C3" , |
| 164 | .usage = 0, |
| 165 | .ct = "C466F1871069921EDB7C6FDE244A52DB0BA10EDC197BDB8006658CA3CCCE6EB8" , |
| 166 | }, { |
| 167 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 168 | .name = "enc 1 plain" , |
| 169 | .plain = "'1" , |
| 170 | .conf = "6F2FC3C2A166FD8898967A83DE9596D9" , |
| 171 | .K0 = "5027BC231D0F3A9D23333F1CA6FDBE7C" , |
| 172 | .usage = 1, |
| 173 | .ct = "842D21FD950311C0DD464A3F4BE8D6DA88A56D559C9B47D3F9A85067AF661559B8" , |
| 174 | }, { |
| 175 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 176 | .name = "enc 9 plain" , |
| 177 | .plain = "'9 bytesss" , |
| 178 | .conf = "A5B4A71E077AEEF93C8763C18FDB1F10" , |
| 179 | .K0 = "A1BB61E805F9BA6DDE8FDBDDC05CDEA0" , |
| 180 | .usage = 2, |
| 181 | .ct = "619FF072E36286FF0A28DEB3A352EC0D0EDF5C5160D663C901758CCF9D1ED33D71DB8F23AABF8348A0" , |
| 182 | }, { |
| 183 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 184 | .name = "enc 13 plain" , |
| 185 | .plain = "'13 bytes byte" , |
| 186 | .conf = "19FEE40D810C524B5B22F01874C693DA" , |
| 187 | .K0 = "2CA27A5FAF5532244506434E1CEF6676" , |
| 188 | .usage = 3, |
| 189 | .ct = "B8ECA3167AE6315512E59F98A7C500205E5F63FF3BB389AF1C41A21D640D8615C9ED3FBEB05AB6ACB67689B5EA" , |
| 190 | }, { |
| 191 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 192 | .name = "enc 30 plain" , |
| 193 | .plain = "'30 bytes bytes bytes bytes byt" , |
| 194 | .conf = "CA7A7AB4BE192DABD603506DB19C39E2" , |
| 195 | .K0 = "7824F8C16F83FF354C6BF7515B973F43" , |
| 196 | .usage = 4, |
| 197 | .ct = "A26A3905A4FFD5816B7B1E27380D08090C8EC1F304496E1ABDCD2BDCD1DFFC660989E117A713DDBB57A4146C1587CBA4356665591D2240282F5842B105A5" , |
| 198 | }, { |
| 199 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 200 | .name = "enc no plain" , |
| 201 | .plain = "" , |
| 202 | .conf = "3CBBD2B45917941067F96599BB98926C" , |
| 203 | .K0 = "B61C86CC4E5D2757545AD423399FB7031ECAB913CBB900BD7A3C6DD8BF92015B" , |
| 204 | .usage = 0, |
| 205 | .ct = "03886D03310B47A6D8F06D7B94D1DD837ECCE315EF652AFF620859D94A259266" , |
| 206 | }, { |
| 207 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 208 | .name = "enc 1 plain" , |
| 209 | .plain = "'1" , |
| 210 | .conf = "DEF487FCEBE6DE6346D4DA4521BBA2D2" , |
| 211 | .K0 = "1B97FE0A190E2021EB30753E1B6E1E77B0754B1D684610355864104963463833" , |
| 212 | .usage = 1, |
| 213 | .ct = "2C9C1570133C99BF6A34BC1B0212002FD194338749DB4135497A347CFCD9D18A12" , |
| 214 | }, { |
| 215 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 216 | .name = "enc 9 plain" , |
| 217 | .plain = "'9 bytesss" , |
| 218 | .conf = "AD4FF904D34E555384B14100FC465F88" , |
| 219 | .K0 = "32164C5B434D1D1538E4CFD9BE8040FE8C4AC7ACC4B93D3314D2133668147A05" , |
| 220 | .usage = 2, |
| 221 | .ct = "9C6DE75F812DE7ED0D28B2963557A115640998275B0AF5152709913FF52A2A9C8E63B872F92E64C839" , |
| 222 | }, { |
| 223 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 224 | .name = "enc 13 plain" , |
| 225 | .plain = "'13 bytes byte" , |
| 226 | .conf = "CF9BCA6DF1144E0C0AF9B8F34C90D514" , |
| 227 | .K0 = "B038B132CD8E06612267FAB7170066D88AECCBA0B744BFC60DC89BCA182D0715" , |
| 228 | .usage = 3, |
| 229 | .ct = "EEEC85A9813CDC536772AB9B42DEFC5706F726E975DDE05A87EB5406EA324CA185C9986B42AABE794B84821BEE" , |
| 230 | }, { |
| 231 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 232 | .name = "enc 30 plain" , |
| 233 | .plain = "'30 bytes bytes bytes bytes byt" , |
| 234 | .conf = "644DEF38DA35007275878D216855E228" , |
| 235 | .K0 = "CCFCD349BF4C6677E86E4B02B8EAB924A546AC731CF9BF6989B996E7D6BFBBA7" , |
| 236 | .usage = 4, |
| 237 | .ct = "0E44680985855F2D1F1812529CA83BFD8E349DE6FD9ADA0BAAA048D68E265FEBF34AD1255A344999AD37146887A6C6845731AC7F46376A0504CD06571474" , |
| 238 | }, |
| 239 | {/* END */} |
| 240 | }; |
| 241 | |
| 242 | /* |
| 243 | * Checksum generation tests. |
| 244 | */ |
| 245 | const struct krb5_mic_test krb5_mic_tests[] = { |
| 246 | /* rfc8009 Appendix A */ |
| 247 | { |
| 248 | .etype = KRB5_ENCTYPE_AES128_CTS_HMAC_SHA256_128, |
| 249 | .name = "mic" , |
| 250 | .plain = "000102030405060708090A0B0C0D0E0F1011121314" , |
| 251 | .Kc = "B31A018A48F54776F403E9A396325DC3" , |
| 252 | .mic = "D78367186643D67B411CBA9139FC1DEE" , |
| 253 | }, { |
| 254 | .etype = KRB5_ENCTYPE_AES256_CTS_HMAC_SHA384_192, |
| 255 | .name = "mic" , |
| 256 | .plain = "000102030405060708090A0B0C0D0E0F1011121314" , |
| 257 | .Kc = "EF5718BE86CC84963D8BBB5031E9F5C4BA41F28FAF69E73D" , |
| 258 | .mic = "45EE791567EEFCA37F4AC1E0222DE80D43C3BFA06699672A" , |
| 259 | }, |
| 260 | /* rfc6803 sec 10 */ |
| 261 | { |
| 262 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 263 | .name = "mic abc" , |
| 264 | .plain = "'abcdefghijk" , |
| 265 | .K0 = "1DC46A8D763F4F93742BCBA3387576C3" , |
| 266 | .usage = 7, |
| 267 | .mic = "1178E6C5C47A8C1AE0C4B9C7D4EB7B6B" , |
| 268 | }, { |
| 269 | .etype = KRB5_ENCTYPE_CAMELLIA128_CTS_CMAC, |
| 270 | .name = "mic ABC" , |
| 271 | .plain = "'ABCDEFGHIJKLMNOPQRSTUVWXYZ" , |
| 272 | .K0 = "5027BC231D0F3A9D23333F1CA6FDBE7C" , |
| 273 | .usage = 8, |
| 274 | .mic = "D1B34F7004A731F23A0C00BF6C3F753A" , |
| 275 | }, { |
| 276 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 277 | .name = "mic 123" , |
| 278 | .plain = "'123456789" , |
| 279 | .K0 = "B61C86CC4E5D2757545AD423399FB7031ECAB913CBB900BD7A3C6DD8BF92015B" , |
| 280 | .usage = 9, |
| 281 | .mic = "87A12CFD2B96214810F01C826E7744B1" , |
| 282 | }, { |
| 283 | .etype = KRB5_ENCTYPE_CAMELLIA256_CTS_CMAC, |
| 284 | .name = "mic !@#" , |
| 285 | .plain = "'!@#$%^&*()!@#$%^&*()!@#$%^&*()" , |
| 286 | .K0 = "32164C5B434D1D1538E4CFD9BE8040FE8C4AC7ACC4B93D3314D2133668147A05" , |
| 287 | .usage = 10, |
| 288 | .mic = "3FA0B42355E52B189187294AA252AB64" , |
| 289 | }, |
| 290 | {/* END */} |
| 291 | }; |
| 292 | |