| 1 | // These tests are derived from the Secure Hash Algorithm Validation System |
| 2 | // test vectors contained in: |
| 3 | // https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip |
| 4 | // |
| 5 | // For SHA512_256, the test vectors come from: |
| 6 | // SHA512_256Monte.rsp |
| 7 | import crypto.sha512 |
| 8 | import encoding.hex |
| 9 | |
| 10 | const seed = 'f41ece2613e4573915696b5adcd51ca328be3bf566a9ca99c9ceb0279c1cb0a7' |
| 11 | |
| 12 | struct MonteTestCase { |
| 13 | name string |
| 14 | count int |
| 15 | digest string |
| 16 | } |
| 17 | |
| 18 | const monte_cases = [ |
| 19 | MonteTestCase{ |
| 20 | name: 'checkpoint 0' |
| 21 | count: 0 |
| 22 | digest: 'b1d97a6536896aa01098fb2b9e15d8692621c84077051fc1f70a8a48baa6dfaf' |
| 23 | }, |
| 24 | MonteTestCase{ |
| 25 | name: 'checkpoint 1' |
| 26 | count: 1 |
| 27 | digest: 'a008d2c5adce31a95b30397ac691d8606c6769a47b801441ba3afb7f727c8a9c' |
| 28 | }, |
| 29 | MonteTestCase{ |
| 30 | name: 'checkpoint 2' |
| 31 | count: 2 |
| 32 | digest: '8eb896cb2b309db019121eb72564b89c1a59f74d4e2f2f6773c87b98c1997d77' |
| 33 | }, |
| 34 | MonteTestCase{ |
| 35 | name: 'checkpoint 3' |
| 36 | count: 3 |
| 37 | digest: 'ac71b694438cc300dde0f6f9f548d2304e2bdb6ea45e2b305af5fb3e4ec27761' |
| 38 | }, |
| 39 | MonteTestCase{ |
| 40 | name: 'checkpoint 4' |
| 41 | count: 4 |
| 42 | digest: 'd47cca4ae027778fc285bc78fb2a9c1cc7cde498267c35157e86b05fc58e698d' |
| 43 | }, |
| 44 | MonteTestCase{ |
| 45 | name: 'checkpoint 5' |
| 46 | count: 5 |
| 47 | digest: '8bc1516ecea32fa3cd4f9f12ac13a2af6763090226e7c1484b2d85757fc9e82a' |
| 48 | }, |
| 49 | MonteTestCase{ |
| 50 | name: 'checkpoint 6' |
| 51 | count: 6 |
| 52 | digest: '1abe44379539744d7806f5d3ef7c2202d0b08f575d1899b7a3df737b18e2a2a6' |
| 53 | }, |
| 54 | MonteTestCase{ |
| 55 | name: 'checkpoint 7' |
| 56 | count: 7 |
| 57 | digest: '324a7606ee9fc9cb26abd881581e70a06fedf33456f385b370973fcee8d01b7a' |
| 58 | }, |
| 59 | MonteTestCase{ |
| 60 | name: 'checkpoint 8' |
| 61 | count: 8 |
| 62 | digest: '06d1ccb978ca4b455ed380bea2e8c3afe24d0b935f5740677927f6f1a96fa111' |
| 63 | }, |
| 64 | MonteTestCase{ |
| 65 | name: 'checkpoint 9' |
| 66 | count: 9 |
| 67 | digest: 'cc78adb572c8cff2cc84020dfb61c521657baf3bcd8aea9593437cd2cdb94266' |
| 68 | }, |
| 69 | MonteTestCase{ |
| 70 | name: 'checkpoint 10' |
| 71 | count: 10 |
| 72 | digest: '935a43189f019f06a630f7601e1d40d51fc2c2ea602fea2c0da8404730c5a475' |
| 73 | }, |
| 74 | MonteTestCase{ |
| 75 | name: 'checkpoint 11' |
| 76 | count: 11 |
| 77 | digest: 'a99225bcdbbac4a87d8ed9e8e06889e823fc993a9661cedf1af02c6d38505989' |
| 78 | }, |
| 79 | MonteTestCase{ |
| 80 | name: 'checkpoint 12' |
| 81 | count: 12 |
| 82 | digest: 'e5e769874da74a143cd49f0a2f7a6cd3ad4c28f55d8719c85063dfdf0e1efbbf' |
| 83 | }, |
| 84 | MonteTestCase{ |
| 85 | name: 'checkpoint 13' |
| 86 | count: 13 |
| 87 | digest: '43f7ff7effc58dead5f13a47f8ea7e19f83dbcb409b10b3f985c78346817448f' |
| 88 | }, |
| 89 | MonteTestCase{ |
| 90 | name: 'checkpoint 14' |
| 91 | count: 14 |
| 92 | digest: 'c1acce072812dfc53682f0c4794b1cc4ae21fca882f4046e6d2c945f6d29dc24' |
| 93 | }, |
| 94 | MonteTestCase{ |
| 95 | name: 'checkpoint 15' |
| 96 | count: 15 |
| 97 | digest: 'a78313758117cf3319d90decbe3b46bf7ba20c079879f485b3290fbead662ac9' |
| 98 | }, |
| 99 | MonteTestCase{ |
| 100 | name: 'checkpoint 16' |
| 101 | count: 16 |
| 102 | digest: '8eca6994ac6093c1f7701bec60770293d754e9eb95372f9ab10ca58fe8864bd0' |
| 103 | }, |
| 104 | MonteTestCase{ |
| 105 | name: 'checkpoint 17' |
| 106 | count: 17 |
| 107 | digest: '05457ef20a508c205225b9a836f11964febd60d9dd31943c49b91578741dd7fc' |
| 108 | }, |
| 109 | MonteTestCase{ |
| 110 | name: 'checkpoint 18' |
| 111 | count: 18 |
| 112 | digest: '8ee3ca17f5ad34649a41b3cb6f4c60d24229d3c39b9afdce11725779296ce412' |
| 113 | }, |
| 114 | MonteTestCase{ |
| 115 | name: 'checkpoint 19' |
| 116 | count: 19 |
| 117 | digest: 'c9873b3341592ea56d0321a6653c350ebab65beb5e37f0a1554e9c07d93924a4' |
| 118 | }, |
| 119 | MonteTestCase{ |
| 120 | name: 'checkpoint 20' |
| 121 | count: 20 |
| 122 | digest: 'eba87758a57c5f9e3caa8da51b1acdbb2e69be17379f81715a134f5f09c4662f' |
| 123 | }, |
| 124 | MonteTestCase{ |
| 125 | name: 'checkpoint 21' |
| 126 | count: 21 |
| 127 | digest: '8f70a95573734147b50866372b11673d97a8cd0754013f7f6fb35f96b2911353' |
| 128 | }, |
| 129 | MonteTestCase{ |
| 130 | name: 'checkpoint 22' |
| 131 | count: 22 |
| 132 | digest: '19ec8b72cf00b934d5bde820566eadc516e0038cb54bfc59349c68b36d079a62' |
| 133 | }, |
| 134 | MonteTestCase{ |
| 135 | name: 'checkpoint 23' |
| 136 | count: 23 |
| 137 | digest: '22f7a748d30425980a9f83298b0b053ff8ac156f304c87aa5d10a01e2e05c397' |
| 138 | }, |
| 139 | MonteTestCase{ |
| 140 | name: 'checkpoint 24' |
| 141 | count: 24 |
| 142 | digest: '3429d8880a8862eb6973b245c7d62f2f8078b7defe8eb117e8c787b30df520bf' |
| 143 | }, |
| 144 | MonteTestCase{ |
| 145 | name: 'checkpoint 25' |
| 146 | count: 25 |
| 147 | digest: '373806e57129e849aa91a208a1f855f9bedfcd9f85b259a70fe481a35f0266ad' |
| 148 | }, |
| 149 | MonteTestCase{ |
| 150 | name: 'checkpoint 26' |
| 151 | count: 26 |
| 152 | digest: '6fa0be65b46bfc853be64470cc9cfe46e2001d1345b3eb4ce3e2f881a2c7a56d' |
| 153 | }, |
| 154 | MonteTestCase{ |
| 155 | name: 'checkpoint 27' |
| 156 | count: 27 |
| 157 | digest: 'b32b578b078f6e3c8c48ca07de123fc7db6b6abe8ec09f6b91263e0353d2c584' |
| 158 | }, |
| 159 | MonteTestCase{ |
| 160 | name: 'checkpoint 28' |
| 161 | count: 28 |
| 162 | digest: '8cb0edd50a485250433188a66758fc8167e07d665aeb1553f53e08169d1842b5' |
| 163 | }, |
| 164 | MonteTestCase{ |
| 165 | name: 'checkpoint 29' |
| 166 | count: 29 |
| 167 | digest: '92150694ff1674bf073856b6df9a6cd015087e9bd366e7387e8c19084e0cc598' |
| 168 | }, |
| 169 | MonteTestCase{ |
| 170 | name: 'checkpoint 30' |
| 171 | count: 30 |
| 172 | digest: '3ec487fd88c8e1321e9279f8d5a82026efee762d686968cd2d801ab7f6b3d912' |
| 173 | }, |
| 174 | MonteTestCase{ |
| 175 | name: 'checkpoint 31' |
| 176 | count: 31 |
| 177 | digest: '894c78e468398414affcf1e9ab8fb14426e1fae964379615a212b744e61b12e9' |
| 178 | }, |
| 179 | MonteTestCase{ |
| 180 | name: 'checkpoint 32' |
| 181 | count: 32 |
| 182 | digest: '7f6a9d2c8d476ad79c845f786da4bd4a8de9a4af05ad0cb12af1375077714cb4' |
| 183 | }, |
| 184 | MonteTestCase{ |
| 185 | name: 'checkpoint 33' |
| 186 | count: 33 |
| 187 | digest: '092ae9d7a22cff2d6f28cb2ed47c082ef279fc20e2246b638c6c0c941238a075' |
| 188 | }, |
| 189 | MonteTestCase{ |
| 190 | name: 'checkpoint 34' |
| 191 | count: 34 |
| 192 | digest: '553d007076a97c6c6566600693cff33fcba2d021c1fb690427823d65076e4249' |
| 193 | }, |
| 194 | MonteTestCase{ |
| 195 | name: 'checkpoint 35' |
| 196 | count: 35 |
| 197 | digest: '17a8b074390ff2aca2b9cb7bfa17310a293f522b6bfe9b6b6f1429d709f8be7b' |
| 198 | }, |
| 199 | MonteTestCase{ |
| 200 | name: 'checkpoint 36' |
| 201 | count: 36 |
| 202 | digest: '6d903e776f8edadc19c680fab311dfec6aebf7333dd924dadc21fd0b624ea856' |
| 203 | }, |
| 204 | MonteTestCase{ |
| 205 | name: 'checkpoint 37' |
| 206 | count: 37 |
| 207 | digest: '1a340486e0703cfddf87dbedb73c93b499ed6018ed8a50ae148ec9cb0be1a608' |
| 208 | }, |
| 209 | MonteTestCase{ |
| 210 | name: 'checkpoint 38' |
| 211 | count: 38 |
| 212 | digest: 'd694d39fadf623aaf0144abd69d5cb580d050fc4efe49f98f0d910cba5ca3531' |
| 213 | }, |
| 214 | MonteTestCase{ |
| 215 | name: 'checkpoint 39' |
| 216 | count: 39 |
| 217 | digest: '128d31156899fec03b0251cd739f2ee6b5041e9323a5aa31389f67ddf0c5a981' |
| 218 | }, |
| 219 | MonteTestCase{ |
| 220 | name: 'checkpoint 40' |
| 221 | count: 40 |
| 222 | digest: '1b3df866d64c5db4f55a4137e1d88da5b6e8a107a6fbe0022cde5e5c293a6a35' |
| 223 | }, |
| 224 | MonteTestCase{ |
| 225 | name: 'checkpoint 41' |
| 226 | count: 41 |
| 227 | digest: '31feabe0b78b6a9ab56929570e48afc949e8150e5e1dd11ad7a8c6b43f1db943' |
| 228 | }, |
| 229 | MonteTestCase{ |
| 230 | name: 'checkpoint 42' |
| 231 | count: 42 |
| 232 | digest: 'c7c08d91944704e9de672577acc1a0cc832cc109e26742a2812822c55dd432ff' |
| 233 | }, |
| 234 | MonteTestCase{ |
| 235 | name: 'checkpoint 43' |
| 236 | count: 43 |
| 237 | digest: '76b41e08876b881dcf0007746a1a1e275e512b38c0f949cadd0521cc4bb43a2a' |
| 238 | }, |
| 239 | MonteTestCase{ |
| 240 | name: 'checkpoint 44' |
| 241 | count: 44 |
| 242 | digest: 'eb015a3eee8b130cba1f120e41b83eb032124d366f8a40eedb0569124b013c34' |
| 243 | }, |
| 244 | MonteTestCase{ |
| 245 | name: 'checkpoint 45' |
| 246 | count: 45 |
| 247 | digest: '537d4b84f4c9ce3c30723db6ea2dfc3a8df1d2a4fb090c651dee04ebc019145a' |
| 248 | }, |
| 249 | MonteTestCase{ |
| 250 | name: 'checkpoint 46' |
| 251 | count: 46 |
| 252 | digest: '9000799092b166e5042f996f9dc4273daee4c96b80716e321ea17f50e3e74e18' |
| 253 | }, |
| 254 | MonteTestCase{ |
| 255 | name: 'checkpoint 47' |
| 256 | count: 47 |
| 257 | digest: '20c9c91bf7bfd79ed144cfbf5ea7226f5513ceed5944834c53326dad1a6a77a4' |
| 258 | }, |
| 259 | MonteTestCase{ |
| 260 | name: 'checkpoint 48' |
| 261 | count: 48 |
| 262 | digest: '5d3b9b8125e1c55ee5dd70548d38ebf9bc706536b6db98f85c48b3072d27cb2d' |
| 263 | }, |
| 264 | MonteTestCase{ |
| 265 | name: 'checkpoint 49' |
| 266 | count: 49 |
| 267 | digest: '53e469865c36cddde9a53b29a3ed6b8bcc5e38f2c0f6dd3b356f1354be481a62' |
| 268 | }, |
| 269 | MonteTestCase{ |
| 270 | name: 'checkpoint 50' |
| 271 | count: 50 |
| 272 | digest: '4df8eb71a1f46ab35861dfcaccb723d372dfe58af9c036e5079f70661a419c85' |
| 273 | }, |
| 274 | MonteTestCase{ |
| 275 | name: 'checkpoint 51' |
| 276 | count: 51 |
| 277 | digest: '503fd9149292f8e65f5a59db63dc8305e527f7e70e9cdc282b9d5075f23f92c9' |
| 278 | }, |
| 279 | MonteTestCase{ |
| 280 | name: 'checkpoint 52' |
| 281 | count: 52 |
| 282 | digest: '904c87a50b6383843b48cf9ce2a17c945b45c516fb0efa9eed88015fd10bb0dc' |
| 283 | }, |
| 284 | MonteTestCase{ |
| 285 | name: 'checkpoint 53' |
| 286 | count: 53 |
| 287 | digest: '888062fa782842258cadec93b1bd624bfe392500f5e6d6ef9e71b2963b73bb3a' |
| 288 | }, |
| 289 | MonteTestCase{ |
| 290 | name: 'checkpoint 54' |
| 291 | count: 54 |
| 292 | digest: '90c2a13524c81890be3f184cddb2feb44053de85335fb7933c6af8e3ee5d4ac4' |
| 293 | }, |
| 294 | MonteTestCase{ |
| 295 | name: 'checkpoint 55' |
| 296 | count: 55 |
| 297 | digest: '1efd7a3e6331c66b21c40416ce4f27d6aba8099359ad950b752e5491a156d9c8' |
| 298 | }, |
| 299 | MonteTestCase{ |
| 300 | name: 'checkpoint 56' |
| 301 | count: 56 |
| 302 | digest: '3f2a1f7bdda96ae3abe859e7767a0831ee69971b15d09d9385fac858643b0207' |
| 303 | }, |
| 304 | MonteTestCase{ |
| 305 | name: 'checkpoint 57' |
| 306 | count: 57 |
| 307 | digest: 'e021e5b9b812248cf5ea9563b84d753f5230cb1b442b04895871e3d8a7c6733e' |
| 308 | }, |
| 309 | MonteTestCase{ |
| 310 | name: 'checkpoint 58' |
| 311 | count: 58 |
| 312 | digest: 'a54312fe62b278b87bf440ff26703e280a13046071cfed2e23922e23ed7f8b17' |
| 313 | }, |
| 314 | MonteTestCase{ |
| 315 | name: 'checkpoint 59' |
| 316 | count: 59 |
| 317 | digest: '2b9906372367f7704556d4345602337c581917c3d91711466f4d27c8597c1628' |
| 318 | }, |
| 319 | MonteTestCase{ |
| 320 | name: 'checkpoint 60' |
| 321 | count: 60 |
| 322 | digest: 'd13e8e889226f72a1cfbb6d77a8cba9238900d148b4d0395e17415efc026a45f' |
| 323 | }, |
| 324 | MonteTestCase{ |
| 325 | name: 'checkpoint 61' |
| 326 | count: 61 |
| 327 | digest: '0977ad675ee02c46cc7523a4d617e5c8e69894efe0ad2d159b616eac65fdb68d' |
| 328 | }, |
| 329 | MonteTestCase{ |
| 330 | name: 'checkpoint 62' |
| 331 | count: 62 |
| 332 | digest: 'd34cd5081453b756bba9a455e0cabe97281fab2c6b5952a69171f8ed60bfb8d6' |
| 333 | }, |
| 334 | MonteTestCase{ |
| 335 | name: 'checkpoint 63' |
| 336 | count: 63 |
| 337 | digest: '720dc85f63580df35589802b1ee71cfa0522e92022382d875fd862bca3e64a19' |
| 338 | }, |
| 339 | MonteTestCase{ |
| 340 | name: 'checkpoint 64' |
| 341 | count: 64 |
| 342 | digest: '933991fa66485b36788447d2f0c8fd0f4d3d815f95a64fb197a1f66e7655ec3e' |
| 343 | }, |
| 344 | MonteTestCase{ |
| 345 | name: 'checkpoint 65' |
| 346 | count: 65 |
| 347 | digest: 'f80e89277c950a465d4b8a857efb1200dd7acf6b2dc4842bd6d3edeb1be232bd' |
| 348 | }, |
| 349 | MonteTestCase{ |
| 350 | name: 'checkpoint 66' |
| 351 | count: 66 |
| 352 | digest: 'c180da36f5e94ebc6a41747500728394cf2fbb06c003a14c9c977e20a6d98deb' |
| 353 | }, |
| 354 | MonteTestCase{ |
| 355 | name: 'checkpoint 67' |
| 356 | count: 67 |
| 357 | digest: '2d3e75cc7f37a6dee320001adc7e0d8811b87f532e126cbd99f13874cd149a80' |
| 358 | }, |
| 359 | MonteTestCase{ |
| 360 | name: 'checkpoint 68' |
| 361 | count: 68 |
| 362 | digest: '3edd7afe868f3876cfce54aeb22fb55475aa4df87015c1defed2fb41f13ee786' |
| 363 | }, |
| 364 | MonteTestCase{ |
| 365 | name: 'checkpoint 69' |
| 366 | count: 69 |
| 367 | digest: '7548c1cc9b96a65a918b37b4817825f32841bbc575ea8e6d12fd9d0c66ce8cd6' |
| 368 | }, |
| 369 | MonteTestCase{ |
| 370 | name: 'checkpoint 70' |
| 371 | count: 70 |
| 372 | digest: 'a0ea397e82b8c7639d3594199c517b8f42f5c3dc40d104b51a42b46eb891d1ac' |
| 373 | }, |
| 374 | MonteTestCase{ |
| 375 | name: 'checkpoint 71' |
| 376 | count: 71 |
| 377 | digest: '7fce4436abbf5da053cad07e8cf721c24442f926d4cc20cb8ac0a68b9d63b8b7' |
| 378 | }, |
| 379 | MonteTestCase{ |
| 380 | name: 'checkpoint 72' |
| 381 | count: 72 |
| 382 | digest: '48f93612a3689b8123fa234251e59a9784dc865dda43186e02a3fa10eac57732' |
| 383 | }, |
| 384 | MonteTestCase{ |
| 385 | name: 'checkpoint 73' |
| 386 | count: 73 |
| 387 | digest: 'f0c29f8e390435a2e233afa958ae208eb5d8eeb38e448df53a6d2e7a8e3a8266' |
| 388 | }, |
| 389 | MonteTestCase{ |
| 390 | name: 'checkpoint 74' |
| 391 | count: 74 |
| 392 | digest: 'fa43fb8ffa7d953a4da11627e11c51ba4f1cf0a62464b0e9d34cb9f1ca4a2339' |
| 393 | }, |
| 394 | MonteTestCase{ |
| 395 | name: 'checkpoint 75' |
| 396 | count: 75 |
| 397 | digest: '18a1c86b7c266b55b253f509e6457df10b48e6705bc0c78b638f9ee4eb937633' |
| 398 | }, |
| 399 | MonteTestCase{ |
| 400 | name: 'checkpoint 76' |
| 401 | count: 76 |
| 402 | digest: 'f5cd2b6b4a6bd0070942f81d012bdc85cf55c095075578a0404f2273908c20d2' |
| 403 | }, |
| 404 | MonteTestCase{ |
| 405 | name: 'checkpoint 77' |
| 406 | count: 77 |
| 407 | digest: 'b7825bba2320209852668a29f8b0eca4a3a0ad77e0e33cd2a7185761da5061b1' |
| 408 | }, |
| 409 | MonteTestCase{ |
| 410 | name: 'checkpoint 78' |
| 411 | count: 78 |
| 412 | digest: 'e7688883bbc0dbc767dd8d46ce58a0463f29d0781dfe1bde55a83ba9ca54b1b5' |
| 413 | }, |
| 414 | MonteTestCase{ |
| 415 | name: 'checkpoint 79' |
| 416 | count: 79 |
| 417 | digest: '54ba60a63f82f501435dd8a51d772404e5cfbddf226bcbc47836cf717fadb4e8' |
| 418 | }, |
| 419 | MonteTestCase{ |
| 420 | name: 'checkpoint 80' |
| 421 | count: 80 |
| 422 | digest: 'c533fff054d8dabfd37c4e860761d215954c7bf8f37ab6d6ef7ff9ec4713ea65' |
| 423 | }, |
| 424 | MonteTestCase{ |
| 425 | name: 'checkpoint 81' |
| 426 | count: 81 |
| 427 | digest: '71f36f26cb92c129f7450d76849a7f2f4bb0554e9ade0a9d5182f435541ca1fd' |
| 428 | }, |
| 429 | MonteTestCase{ |
| 430 | name: 'checkpoint 82' |
| 431 | count: 82 |
| 432 | digest: 'c39f5bfe6c241d0f64c13b05e5fb6725ffda3789ef9946c8af1dfcb424ba3d75' |
| 433 | }, |
| 434 | MonteTestCase{ |
| 435 | name: 'checkpoint 83' |
| 436 | count: 83 |
| 437 | digest: '27401de7cc0d86a8f07e276a9fbf4fe5cdf7b3d73802a5c7edd27b686f6f7039' |
| 438 | }, |
| 439 | MonteTestCase{ |
| 440 | name: 'checkpoint 84' |
| 441 | count: 84 |
| 442 | digest: 'bc56733b8682bab456b8c0819e1c9d6d3bb864b2427ec2a2003a871c44dc0246' |
| 443 | }, |
| 444 | MonteTestCase{ |
| 445 | name: 'checkpoint 85' |
| 446 | count: 85 |
| 447 | digest: 'e3843383a52a8c3d6315d255d1708467f5de61a5372308978b295460220d99aa' |
| 448 | }, |
| 449 | MonteTestCase{ |
| 450 | name: 'checkpoint 86' |
| 451 | count: 86 |
| 452 | digest: 'e03de5004325a1dc96eb709c849bb6ecadc5db9c6152aba480ca10c8fe2573e1' |
| 453 | }, |
| 454 | MonteTestCase{ |
| 455 | name: 'checkpoint 87' |
| 456 | count: 87 |
| 457 | digest: 'df09f2a9bceab29b5c149ec7db23b1c8b1cc849ff2612c4ad9d66e98cc1f1faa' |
| 458 | }, |
| 459 | MonteTestCase{ |
| 460 | name: 'checkpoint 88' |
| 461 | count: 88 |
| 462 | digest: '123426906e20a02fd517c4cee4e5f5273f894c56ae456ca466c7a0a2d1b0676c' |
| 463 | }, |
| 464 | MonteTestCase{ |
| 465 | name: 'checkpoint 89' |
| 466 | count: 89 |
| 467 | digest: '14a9e07e6280a8c7cf824cd1896ad974c310859eb1bb4bef59b715b25cfaaa30' |
| 468 | }, |
| 469 | MonteTestCase{ |
| 470 | name: 'checkpoint 90' |
| 471 | count: 90 |
| 472 | digest: 'ae7febea114679a52c9f7351aa0a207dc40ba8c8394585cc5a0b9bfc7f67d76a' |
| 473 | }, |
| 474 | MonteTestCase{ |
| 475 | name: 'checkpoint 91' |
| 476 | count: 91 |
| 477 | digest: '4966b9ba04ef0590cf0f335798c9b3e15ad32d5ebd2719a0c914c8faeed65326' |
| 478 | }, |
| 479 | MonteTestCase{ |
| 480 | name: 'checkpoint 92' |
| 481 | count: 92 |
| 482 | digest: '8ea5a43cdaf50149c3aef14cb2ff2db42279ca36267355a0e023f3ec2ea13375' |
| 483 | }, |
| 484 | MonteTestCase{ |
| 485 | name: 'checkpoint 93' |
| 486 | count: 93 |
| 487 | digest: '14ca6c157502aa86c4900086c373c5d2b8789e5cc9863a384938e498fdaa52e0' |
| 488 | }, |
| 489 | MonteTestCase{ |
| 490 | name: 'checkpoint 94' |
| 491 | count: 94 |
| 492 | digest: '8471a7d5a2cdc61a8bc885c1b0b79491a54d6610ab19a3cffbe0c83479628cb3' |
| 493 | }, |
| 494 | MonteTestCase{ |
| 495 | name: 'checkpoint 95' |
| 496 | count: 95 |
| 497 | digest: '51749feaa3f2ea9c89b38d77814ea2796a3265e4f6ee7a2c08a1804c6fbfe042' |
| 498 | }, |
| 499 | MonteTestCase{ |
| 500 | name: 'checkpoint 96' |
| 501 | count: 96 |
| 502 | digest: '8163861f1ca72bbc19cb8ce59bcee8a3d6d28c8ce17e33cea67f04277a68360a' |
| 503 | }, |
| 504 | MonteTestCase{ |
| 505 | name: 'checkpoint 97' |
| 506 | count: 97 |
| 507 | digest: '6c00f3fae370e7d14504c48cd7199064b3b4828163905af7b7a0593d2b5d06fd' |
| 508 | }, |
| 509 | MonteTestCase{ |
| 510 | name: 'checkpoint 98' |
| 511 | count: 98 |
| 512 | digest: '5fe007f269a854e2394874f1a95ef7ef3844cf06248deda3af561cfacaed1e35' |
| 513 | }, |
| 514 | MonteTestCase{ |
| 515 | name: 'checkpoint 99' |
| 516 | count: 99 |
| 517 | digest: '1822ede971ca1407fbcb1dff487ea9d93d71d756cdf32945703de673f4b3d816' |
| 518 | }, |
| 519 | ] |
| 520 | |
| 521 | fn test_monte_messages() { |
| 522 | mut msg_seed := hex.decode(seed)! |
| 523 | |
| 524 | for c in monte_cases { |
| 525 | mut md0 := msg_seed.clone() |
| 526 | mut md1 := msg_seed.clone() |
| 527 | mut md2 := msg_seed.clone() |
| 528 | mut md3 := msg_seed.clone() |
| 529 | |
| 530 | mut mi := []u8{len: 0, cap: 64} |
| 531 | |
| 532 | for _ in 0 .. 1000 { |
| 533 | mi.clear() |
| 534 | mi << md0 |
| 535 | mi << md1 |
| 536 | mi << md2 |
| 537 | |
| 538 | md3 = sha512.sum512_256(mi) |
| 539 | |
| 540 | md0 = md1.clone() |
| 541 | md1 = md2.clone() |
| 542 | md2 = md3.clone() |
| 543 | } |
| 544 | |
| 545 | msg_seed = md3.clone() |
| 546 | |
| 547 | expected_result := hex.decode(c.digest)! |
| 548 | |
| 549 | assert md3 == expected_result, 'failed ${c.name}' |
| 550 | } |
| 551 | } |
| 552 | |