| 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, the test vectors come from: |
| 6 | // SHA512Monte.rsp |
| 7 | import crypto.sha512 |
| 8 | import encoding.hex |
| 9 | |
| 10 | const seed = '5c337de5caf35d18ed90b5cddfce001ca1b8ee8602f367e7c24ccca6f893802fb1aca7a3dae32dcd60800a59959bc540d63237876b799229ae71a2526fbc52cd' |
| 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: 'ada69add0071b794463c8806a177326735fa624b68ab7bcab2388b9276c036e4eaaff87333e83c81c0bca0359d4aeebcbcfd314c0630e0c2af68c1fb19cc470e' |
| 23 | }, |
| 24 | MonteTestCase{ |
| 25 | name: 'checkpoint 1' |
| 26 | count: 1 |
| 27 | digest: 'ef219b37c24ae507a2b2b26d1add51b31fb5327eb8c3b19b882fe38049433dbeccd63b3d5b99ba2398920bcefb8aca98cd28a1ee5d2aaf139ce58a15d71b06b4' |
| 28 | }, |
| 29 | MonteTestCase{ |
| 30 | name: 'checkpoint 2' |
| 31 | count: 2 |
| 32 | digest: 'c3d5087a62db0e5c6f5755c417f69037308cbce0e54519ea5be8171496cc6d18023ba15768153cfd74c7e7dc103227e9eed4b0f82233362b2a7b1a2cbcda9daf' |
| 33 | }, |
| 34 | MonteTestCase{ |
| 35 | name: 'checkpoint 3' |
| 36 | count: 3 |
| 37 | digest: 'bb3a58f71148116e377505461d65d6c89906481fedfbcfe481b7aa8ceb977d252b3fe21bfff6e7fbf7575ceecf5936bd635e1cf52698c36ef6908ddbd5b6ae05' |
| 38 | }, |
| 39 | MonteTestCase{ |
| 40 | name: 'checkpoint 4' |
| 41 | count: 4 |
| 42 | digest: 'b68f0cd2d63566b3934a50666dec6d62ca1db98e49d7733084c1f86d91a8a08c756fa7ece815e20930dd7cb66351bad8c087c2f94e8757cb98e7f4b86b21a8a8' |
| 43 | }, |
| 44 | MonteTestCase{ |
| 45 | name: 'checkpoint 5' |
| 46 | count: 5 |
| 47 | digest: '937d7856a82a84c163c79417d0540c47daaf9ffe662c843737dbbcbe5f865bf6f47a9d2bd10129a4f498073094653c324a2519a1c71ac1279b1623ff7d24647a' |
| 48 | }, |
| 49 | MonteTestCase{ |
| 50 | name: 'checkpoint 6' |
| 51 | count: 6 |
| 52 | digest: 'f8fbc058c2b9f84131c9decfa543a35ade41581f670398efd61b3abfced9c1cfcb5324f2370487f9c59a65bc668ea596c8d22ce8a33014dfad28357fa7d05f04' |
| 53 | }, |
| 54 | MonteTestCase{ |
| 55 | name: 'checkpoint 7' |
| 56 | count: 7 |
| 57 | digest: '4ab0c9484ff5c30fa64ae6e81510c5fea566eafb88f175f8bc19109f40fe80014c8b77fff10b8750778429bf3c5497e4cb92d9b30014f4cb975dff2a45244c28' |
| 58 | }, |
| 59 | MonteTestCase{ |
| 60 | name: 'checkpoint 8' |
| 61 | count: 8 |
| 62 | digest: '685179397554d276513d630234a03419808c698abf2600d7490aabb8e455c6ab6ea412c7729dc140a79dff66533c6946cbe90f9da9ed16e2e629db1651bea870' |
| 63 | }, |
| 64 | MonteTestCase{ |
| 65 | name: 'checkpoint 9' |
| 66 | count: 9 |
| 67 | digest: '335e6e941ab7dadfecdb74ea6cb4e8584b6e3408841a33a6cf7fd6a63294b1930a60983240311672acac3840a90e64cc366ce75081b2252627e9c31197ebad03' |
| 68 | }, |
| 69 | MonteTestCase{ |
| 70 | name: 'checkpoint 10' |
| 71 | count: 10 |
| 72 | digest: 'e3217f6af6e279e9445dc3738cbf9ba0e9edba0455844a73648139777afdea2c4d8032e214f541bf92675fb23f24df8e4fe98e0003aadfb6d8f9cc2cd799bbf7' |
| 73 | }, |
| 74 | MonteTestCase{ |
| 75 | name: 'checkpoint 11' |
| 76 | count: 11 |
| 77 | digest: 'ee2fdfb3ae630613b7d890977cf2515deac272a37f27e4a01961ecf103d4ff5b45cc8aef53b635dd75aa51aabf71c0642555ccd3281e0388f8ca09d83258cf30' |
| 78 | }, |
| 79 | MonteTestCase{ |
| 80 | name: 'checkpoint 12' |
| 81 | count: 12 |
| 82 | digest: '6a30d97cc98af6a25b673dce7aeab8d762bf2e55ea0c6dc899179281f84dd02a2896f77e9c106b472f55f7adbef7b1157be567ee1236ebdac2a3c5d8cb133eb5' |
| 83 | }, |
| 84 | MonteTestCase{ |
| 85 | name: 'checkpoint 13' |
| 86 | count: 13 |
| 87 | digest: 'ac1176abdc5f71170183d92ae55856221b0d95590af11d9d72ba605ec026bbec52d6974bc43a1efb125ff2b161fbdc616fda00f04193a0bc26aacdfa052a5741' |
| 88 | }, |
| 89 | MonteTestCase{ |
| 90 | name: 'checkpoint 14' |
| 91 | count: 14 |
| 92 | digest: '59fa909480620ecc08d34531a6da1b55158b74fc93ddf68e1d242615b6f3843a7952e63e798c6445cde1b07e0be09d0d711cb7b42a0e7760a593b08acfceb63d' |
| 93 | }, |
| 94 | MonteTestCase{ |
| 95 | name: 'checkpoint 15' |
| 96 | count: 15 |
| 97 | digest: '9eb253319efa61b864f27bd334d7dd78b38d3265fb544e0c8edee950a547e1d8db921a285774ab94d66beae933298d20f2a5aa87c62fe1e383cc3b18e7af18ac' |
| 98 | }, |
| 99 | MonteTestCase{ |
| 100 | name: 'checkpoint 16' |
| 101 | count: 16 |
| 102 | digest: '81735324005671f7bdad9e685ee8257f5e0622b9fcb5d38dbdfb2df27258c3e1d46d76e24c0c92c744e1b50a2b4b0d31525b3af83cc80a75722d921bdeef59c4' |
| 103 | }, |
| 104 | MonteTestCase{ |
| 105 | name: 'checkpoint 17' |
| 106 | count: 17 |
| 107 | digest: '17498cdff4323bb8021e44eca6559e05d8ff9a0ef2ee9d4ba0ac6e73f83972a0dfbb6d47728fa70311d7c82e154966e1b7678263b0f65133e9116969193d429b' |
| 108 | }, |
| 109 | MonteTestCase{ |
| 110 | name: 'checkpoint 18' |
| 111 | count: 18 |
| 112 | digest: '228c4574d7c45eb9ba9240722133fce74abe00c7328ab30b4bde373dc79afdd6e0569d36268cd5eaa2f27205fc00512577bcbb6699e1d66ed85eafaba7548afb' |
| 113 | }, |
| 114 | MonteTestCase{ |
| 115 | name: 'checkpoint 19' |
| 116 | count: 19 |
| 117 | digest: '3d40ccd9cc445bbecca9227c67fe455d89e0b7c1c858d32f30e2b544ca9a5a606535aea2e59fec6ec4d1ba898cc4338c6eadef9c0884bcf56aca2f481a2d7d3e' |
| 118 | }, |
| 119 | MonteTestCase{ |
| 120 | name: 'checkpoint 20' |
| 121 | count: 20 |
| 122 | digest: 'e1e577aeac92e3a2b7f8a262bf2ac9c037d2274ca6618fbe4cc21db7c699e9946b6671ae45ea433a1e392a5bc9eec96fd641ba8f4a047f022a04a337227004df' |
| 123 | }, |
| 124 | MonteTestCase{ |
| 125 | name: 'checkpoint 21' |
| 126 | count: 21 |
| 127 | digest: '5e4424c0bcb2f0f7a2428821a9d5840a82401f4440ae6bed25c53cd9e71cf9d39904d6a375bd721f4332ab0202529c91feb9c094c3e6d34ca4f66649ee6fa212' |
| 128 | }, |
| 129 | MonteTestCase{ |
| 130 | name: 'checkpoint 22' |
| 131 | count: 22 |
| 132 | digest: '56b199d63ca37189d5ca0d40006ac7bcb9f39cbdc00ef7b8a5697caa7d81d05b645a146995b1151d01958f1589337e14afc6e7dd10a815170e527a398e6ce8c3' |
| 133 | }, |
| 134 | MonteTestCase{ |
| 135 | name: 'checkpoint 23' |
| 136 | count: 23 |
| 137 | digest: 'd2d498ff93fb03013a64f295b5bc68e57d2fb5600da578aa011d43ff432eae3e0c800f9e2a53155e56fdbf5e068fe2b4beb3e42b2585531b8b16c4d8ca3356c6' |
| 138 | }, |
| 139 | MonteTestCase{ |
| 140 | name: 'checkpoint 24' |
| 141 | count: 24 |
| 142 | digest: '3d3875489903710f17cf4247b5842ace6f017b1a3b99e9ee5fbc04fc7898e78b12693879878028ca40c63cd0f6925fb7d0ca0412e4f06619e3ace223690f03b8' |
| 143 | }, |
| 144 | MonteTestCase{ |
| 145 | name: 'checkpoint 25' |
| 146 | count: 25 |
| 147 | digest: 'a013e21cd1234483c95c2ea2757be949bc79401ba39b09c316a1612d594642be65ca106e12695ac3808c57c6f2980e895fd1fe188946562afc238414e1e43649' |
| 148 | }, |
| 149 | MonteTestCase{ |
| 150 | name: 'checkpoint 26' |
| 151 | count: 26 |
| 152 | digest: 'c5f6367d7195489e16242f912fbe0d8002e947de3a7e9c53f77b1e5e90e05bd7ca395e787e34cb5f500c02da59c9d83de35601de7ae80dae74a0d6b4a292d43b' |
| 153 | }, |
| 154 | MonteTestCase{ |
| 155 | name: 'checkpoint 27' |
| 156 | count: 27 |
| 157 | digest: '7c28c44c6aaba83c122f24d68273e28a5afd65b4071d02b7ea3300478d5118971e1356ae57cbc70d2a177ea464a1c2c50d4297b933e789c63b1481797ae8f08c' |
| 158 | }, |
| 159 | MonteTestCase{ |
| 160 | name: 'checkpoint 28' |
| 161 | count: 28 |
| 162 | digest: 'af7cb42b1c70a85ac1ae1c2991b25b657c19f4fcf83af7f7dc0ae1028c1452a6a17dc98929634fe6ed3855b70b96bc2caa93d82037b94ebeddc77e4c1a7cc563' |
| 163 | }, |
| 164 | MonteTestCase{ |
| 165 | name: 'checkpoint 29' |
| 166 | count: 29 |
| 167 | digest: 'bd56ad4c0cbd162706053da929d667253aadcf417affb483fff4f2699bf406d128cfdf5196dfbb05bb89ccbf04c5147bd2ebb3156b0bc1768ca6faa171c91c01' |
| 168 | }, |
| 169 | MonteTestCase{ |
| 170 | name: 'checkpoint 30' |
| 171 | count: 30 |
| 172 | digest: '004d7b0fff9bcddf4b3913ae190a76728705a3d23874d92a8b7ff246c8fcad46623cb04723c8aded0cba4968d1a8cc1375b99005786c1bcb7ae4bf13325c3ae0' |
| 173 | }, |
| 174 | MonteTestCase{ |
| 175 | name: 'checkpoint 31' |
| 176 | count: 31 |
| 177 | digest: '8299a5bf5ed64f525c4eebbeca969fc1b91a81adb58c584bdd2d7676386a31fa546643a3cf505007584f02fb712d708cab645bf078a1b9339f5a76aee985d017' |
| 178 | }, |
| 179 | MonteTestCase{ |
| 180 | name: 'checkpoint 32' |
| 181 | count: 32 |
| 182 | digest: 'ce7100f3455db1a9776a9f40d562ea998afca1f9fee7e0d81c8db34cf68ad23a8bfa6fc04774703e1e56d5196b66966158fcf2a8335a58c6ba7ba1af756ba1dc' |
| 183 | }, |
| 184 | MonteTestCase{ |
| 185 | name: 'checkpoint 33' |
| 186 | count: 33 |
| 187 | digest: '90aaabcb655ee921b8350229efe6064a60051cf0cac858fa3d43afd5b97cc82301bd1b8cc1f874022e5af948185638783a13ca1bbd5049ace7fbf4f6d90c201f' |
| 188 | }, |
| 189 | MonteTestCase{ |
| 190 | name: 'checkpoint 34' |
| 191 | count: 34 |
| 192 | digest: '3cf0a25b33ded3e0806dfe603b9987f1d6f2b3fdcb1ec7f8566828c00e17e8f59e38b3bca302396c7525ca194e6cc8501369059e2e34ae21e3141215876847c4' |
| 193 | }, |
| 194 | MonteTestCase{ |
| 195 | name: 'checkpoint 35' |
| 196 | count: 35 |
| 197 | digest: 'bdc5266aee339a1ff13fcf5229773cd3d14b47101e83076927c160bb71bf7445590525a2012d52af008e118e16df1b6bfcaf8f22b4e45f9e749f3c20625a2bc8' |
| 198 | }, |
| 199 | MonteTestCase{ |
| 200 | name: 'checkpoint 36' |
| 201 | count: 36 |
| 202 | digest: 'ef8d2ba885381ab97756d59dbbbf53a1ea35d152b2d8f82c3518430aa34e708359194ea43950d032e151f576d343a5c3cfe6b71d4ed0ead9d3a107402589bad0' |
| 203 | }, |
| 204 | MonteTestCase{ |
| 205 | name: 'checkpoint 37' |
| 206 | count: 37 |
| 207 | digest: '194ea5324c4179998dd7057755f255fdea04dadf533f7851e3e9718b610948e32fd28323077d9421142ac808978adfa325b668c8599a2e01c757a5a14ed2dd37' |
| 208 | }, |
| 209 | MonteTestCase{ |
| 210 | name: 'checkpoint 38' |
| 211 | count: 38 |
| 212 | digest: '106984d2f0087e621dae760552bc6279072267883c204079481af6034354f1a2b77c17e6c039a1063e479342aa3ccd90330dd3fb5a7d5e976619497e2d3326cd' |
| 213 | }, |
| 214 | MonteTestCase{ |
| 215 | name: 'checkpoint 39' |
| 216 | count: 39 |
| 217 | digest: 'a1347216f1a6db47b90c4ded3c5c75440f54c22c87d538314d1340f86f88acba01378acb933ddad0adc6b75d55bfb7e8efc9c4a531b2a410610b7515b6dac66a' |
| 218 | }, |
| 219 | MonteTestCase{ |
| 220 | name: 'checkpoint 40' |
| 221 | count: 40 |
| 222 | digest: 'b76e4db147e0eaa4f04880654088b9d0fce518c8c377d92c846345604dc6b2b18d377fdb8e30f06d9bcfe6d7dacc07d6adff73d98d49f8f132b80f3084390830' |
| 223 | }, |
| 224 | MonteTestCase{ |
| 225 | name: 'checkpoint 41' |
| 226 | count: 41 |
| 227 | digest: 'acd4e527763dfd4513f0def0b1edf8ea12dc78d336b7b796f3dcc32e1068725443a2f55ab4f666b27d6bf2ab39669c98293f0a9108051fd3144d31a1ed171ddd' |
| 228 | }, |
| 229 | MonteTestCase{ |
| 230 | name: 'checkpoint 42' |
| 231 | count: 42 |
| 232 | digest: '10128c15494bc87a87374f676ef9fe2df20b36ffcca41a80bd40b216637b3de710efd070e277827820a7bba3cceb7b21f8fe7f9775d6c4df4d3da5349434ec49' |
| 233 | }, |
| 234 | MonteTestCase{ |
| 235 | name: 'checkpoint 43' |
| 236 | count: 43 |
| 237 | digest: '2632dd5c188c6ed3a4610405fdda704add752f5424d9de65a51400fe478e26cd0412e5f91ca4b744c34f4954f40a3a4254431d21954623208b527b7b4daa687e' |
| 238 | }, |
| 239 | MonteTestCase{ |
| 240 | name: 'checkpoint 44' |
| 241 | count: 44 |
| 242 | digest: '45707f5b6fc5ccd1f78d77f177d10fb8b462c74cc821518cd5cfa4b5d6b40b418044900693c37abbb82367d340fec67f800d74072935da1706b4d90ae26099c7' |
| 243 | }, |
| 244 | MonteTestCase{ |
| 245 | name: 'checkpoint 45' |
| 246 | count: 45 |
| 247 | digest: '56c37f31220b5b3040373d91b2c5e42fe9e601a12f7f8dc4534459bf28e484b8713db243c5782c031e674003a3c14c42fd152e7188789065e82795e10f87d54b' |
| 248 | }, |
| 249 | MonteTestCase{ |
| 250 | name: 'checkpoint 46' |
| 251 | count: 46 |
| 252 | digest: '5da94c899d48bd8299fee3d81662f8d6c5f8f8bc54d18cb0368b13cebaee7ad71e74ea80f34974ad166f04f9a0602809166fe4085a475a8ca86cade12b6754c4' |
| 253 | }, |
| 254 | MonteTestCase{ |
| 255 | name: 'checkpoint 47' |
| 256 | count: 47 |
| 257 | digest: '0664363f97ba910760b0922e31ca880ca97469506cb007e3108c36c3ce3ce1801fb4197609479339e8820632b6a38bffffee05a9adc11cc544b9aa6f5b95cc6f' |
| 258 | }, |
| 259 | MonteTestCase{ |
| 260 | name: 'checkpoint 48' |
| 261 | count: 48 |
| 262 | digest: '732c41a1edaa727c04f627ff158aaff67c18efd667216132b99ab84d108996a10bb008b5d803b22ed1aa78bb0d10f8a762fd34777d7dccce8e84827ba88d4193' |
| 263 | }, |
| 264 | MonteTestCase{ |
| 265 | name: 'checkpoint 49' |
| 266 | count: 49 |
| 267 | digest: 'fc9c21d67e393a2b05a23a17d8db630cbaebaa3def211181749f1bcad181560627fb60ee20fae2e5980cbf50fce0a19dce807e7fb75c4da0ef008bc75d413a65' |
| 268 | }, |
| 269 | MonteTestCase{ |
| 270 | name: 'checkpoint 50' |
| 271 | count: 50 |
| 272 | digest: '0453b765afc1edffa595efe345177f5805ed3abc1297ceab757ae7161723a6144cb543299f418049276d16b7896662631634fab9549127c10f27505b7dee8665' |
| 273 | }, |
| 274 | MonteTestCase{ |
| 275 | name: 'checkpoint 51' |
| 276 | count: 51 |
| 277 | digest: '3853f3bf024e0668e8d1ea53733a97537f97d9307c5f3a19864ab4eeb1654710693bb961a344dec8a758f5e64b26fcb6dd423419c4a114fa749211a9de06c281' |
| 278 | }, |
| 279 | MonteTestCase{ |
| 280 | name: 'checkpoint 52' |
| 281 | count: 52 |
| 282 | digest: '240137f0dd57beb3f7fc283bb3ead423c67883fd46f4e27471d7be57ad469a49bad03a3658418bd55614678f3a463bceff85291314b90ef43ccbcb028f0a7a07' |
| 283 | }, |
| 284 | MonteTestCase{ |
| 285 | name: 'checkpoint 53' |
| 286 | count: 53 |
| 287 | digest: 'f9050a5271edbe4cfdb9520ec05bbdc3cbcb9bce36fd212338d3e7028a39b9ab30793e561d75a2e424193264c7f0775e65599ef0c94e0ad24dbfe18252364267' |
| 288 | }, |
| 289 | MonteTestCase{ |
| 290 | name: 'checkpoint 54' |
| 291 | count: 54 |
| 292 | digest: '47caa7a5862fad837aaa409a4a9df2575e645528c35159115911b7c4e2f08ae49d68de97249b31b83ce2c163f649cad4559dc6e6a7191f2922d79a5fd6af167b' |
| 293 | }, |
| 294 | MonteTestCase{ |
| 295 | name: 'checkpoint 55' |
| 296 | count: 55 |
| 297 | digest: '13f5825c41fa49edf6104e3e35c9c224eba93e37374f730004c39c54e7391e4a847fd61865235a3fe32224c96fbe86f7e14c3d5df496e83ec989a71b4f293a44' |
| 298 | }, |
| 299 | MonteTestCase{ |
| 300 | name: 'checkpoint 56' |
| 301 | count: 56 |
| 302 | digest: 'e5b55e05efe1ca6b9a96a57e3a1523d610d70f837e93b31fa98c2736d3e114d238d46ec6b6e3d19e774b253f6b0c7a2ebe69b7e60fc0874444806b2a2278df45' |
| 303 | }, |
| 304 | MonteTestCase{ |
| 305 | name: 'checkpoint 57' |
| 306 | count: 57 |
| 307 | digest: 'f14a586ac30f0af255f597a9aef9abba5e99c04d17b01f24427c4ee2c196b52acb1ceefc9b15cb822b3ecffdc2f7c49e11d3fc0769acee33361537d379c62e0c' |
| 308 | }, |
| 309 | MonteTestCase{ |
| 310 | name: 'checkpoint 58' |
| 311 | count: 58 |
| 312 | digest: '7e2d3398807195c48e6ec52d20710bbf8b21ea8de4d1abc197897ccc58aeff40259edc67270cdae0edcc686c0d0dccc5760c1495ab1cf48482dc2000ae2d42ad' |
| 313 | }, |
| 314 | MonteTestCase{ |
| 315 | name: 'checkpoint 59' |
| 316 | count: 59 |
| 317 | digest: '2f3d5c5f990bf615d5e8b396ccbd0337da39fad09b059f955a431db76a9dc720dffc4e02c0be397c7e0463799cd75fd6ab7c52bec66c8df5ef0d47e14a4c5927' |
| 318 | }, |
| 319 | MonteTestCase{ |
| 320 | name: 'checkpoint 60' |
| 321 | count: 60 |
| 322 | digest: '483a1764d308cc494a2b543d29ba616483aefdf91c7769fd084eedaac1add1891df95d317a47430b2bf73e4081f86597020e28afe2d34a22b77ea62b6112d09a' |
| 323 | }, |
| 324 | MonteTestCase{ |
| 325 | name: 'checkpoint 61' |
| 326 | count: 61 |
| 327 | digest: 'bfa88691ec951511651c6f14af100eeb26d87729e18ac3ef49a80d73ffeaeea53e97c4a7277a7ee9f2fba070b1c9720d6cdba407dd82267019e3f0f5662b2f2b' |
| 328 | }, |
| 329 | MonteTestCase{ |
| 330 | name: 'checkpoint 62' |
| 331 | count: 62 |
| 332 | digest: '4c17c8e2e7132dbf82afebc40efc77926d16f4d2c082d846dac28733aa767e2840ebf04f2563df75933466a36e11968d342e4157827605d04d9627ce9b5216c8' |
| 333 | }, |
| 334 | MonteTestCase{ |
| 335 | name: 'checkpoint 63' |
| 336 | count: 63 |
| 337 | digest: '70bbfc29a2a765220af84e7bb10d759a3152ad4b5643ef6b89966950ec7ef9503d57bc0a28c4ee789a60bf9dcac59139e15241d73b990410cf92eff213da9eca' |
| 338 | }, |
| 339 | MonteTestCase{ |
| 340 | name: 'checkpoint 64' |
| 341 | count: 64 |
| 342 | digest: '8d1d56f37fc19b84984a6fa33aa9c2dbdbf79a29c04ad0b4cf20333e6bec943447be2416242f8cd2f9732e79bb925cc5a61a80c5fc9c079961243fd1c1f5900e' |
| 343 | }, |
| 344 | MonteTestCase{ |
| 345 | name: 'checkpoint 65' |
| 346 | count: 65 |
| 347 | digest: '492fd0171f4dcd5d20ea6c0d34b5576c8894664ae5955e6737f5e3b711c2804d99ccca065b7ec18c82da98b18a3029b765c51ebc7c433b36492e0ed6b8511bb6' |
| 348 | }, |
| 349 | MonteTestCase{ |
| 350 | name: 'checkpoint 66' |
| 351 | count: 66 |
| 352 | digest: '7f49e8e54db7e5b4323cae2db71f3e8b8eba172dcad3602e9b7b058007a5589358732d5afffa56072a46e89b1ea27ef8d556deb86b569c635d394f15d99d8a15' |
| 353 | }, |
| 354 | MonteTestCase{ |
| 355 | name: 'checkpoint 67' |
| 356 | count: 67 |
| 357 | digest: '56884a6a9210d5f371e25823efb2511a9c410c26a441e07c1bdffe8605084267d49c315baf6a692d7d97844b2714b4930877a5d7f52cf6fa151700fcb6980546' |
| 358 | }, |
| 359 | MonteTestCase{ |
| 360 | name: 'checkpoint 68' |
| 361 | count: 68 |
| 362 | digest: '6aaef8284eef221ecb17ea3c9596f075b5155fe7b925d737ed3c6543c761c28c7cd9d9d4b5e2a37b2f183a2a367bbd34b633497bc7a1737d61c8c1f3ef295062' |
| 363 | }, |
| 364 | MonteTestCase{ |
| 365 | name: 'checkpoint 69' |
| 366 | count: 69 |
| 367 | digest: '38ef178f5688e59d47c375252db7b39f40c0c84169878ee7ba5086e4b25fea81076b9c37847e9e6bf24ae0b343689c265ec5ca7469e619acd61b0276721efb1b' |
| 368 | }, |
| 369 | MonteTestCase{ |
| 370 | name: 'checkpoint 70' |
| 371 | count: 70 |
| 372 | digest: 'e3fe1aabad120777cf24eaae289b486632ca46ceb89afae73dbae5fa87c767879369355a9cc5c21ca604ed91d0f2f58c466573f3e6d88e52c62c0d3cb188e141' |
| 373 | }, |
| 374 | MonteTestCase{ |
| 375 | name: 'checkpoint 71' |
| 376 | count: 71 |
| 377 | digest: '82f5bd920457bb2763a0da031a7fed47b236951b1ea420c20fd2b6de1dbfbb9c4600ea7092788493e2d4be6ee24b6dba04e57af3e8f2f14d9837295420ac7631' |
| 378 | }, |
| 379 | MonteTestCase{ |
| 380 | name: 'checkpoint 72' |
| 381 | count: 72 |
| 382 | digest: '6d0b26208ba9b1615067bb3ff97b292fe67e4c02d240d649c32370e0a4cd22d03bdf864be4d24a3f5f51aeccfd1afd5191e590edeb5f7bec323b0506c3104b89' |
| 383 | }, |
| 384 | MonteTestCase{ |
| 385 | name: 'checkpoint 73' |
| 386 | count: 73 |
| 387 | digest: 'd081083158054d08371ec84f4d3aa5aa761734ac6091a30330a861fda056f835c750bf4f7981af1693ff28545366bd05cec47bccd77a7d237befb0135c534138' |
| 388 | }, |
| 389 | MonteTestCase{ |
| 390 | name: 'checkpoint 74' |
| 391 | count: 74 |
| 392 | digest: '6ba8b52780b8a07a2a2015dd8f0c5e7437b8e024c4ee428f7ba91dfea118cb72a939872550983317132b841b7cbc29a22b8f1cfea0c55203cafc69b55ed6244a' |
| 393 | }, |
| 394 | MonteTestCase{ |
| 395 | name: 'checkpoint 75' |
| 396 | count: 75 |
| 397 | digest: '312692b0a51f002b7f06d05b39d15a5637dbddd2f4f1a73e6c88a4c841cdba5cd8e69c0939ab39bb1a9c54fa35402143c97edb9704a0e9e1a98701710f6a5dad' |
| 398 | }, |
| 399 | MonteTestCase{ |
| 400 | name: 'checkpoint 76' |
| 401 | count: 76 |
| 402 | digest: 'aaee960de201a8dcccff95b834fccf0dafc03fe6cffc0429162bf4aff01165ab07a0c9435e9cb412121b7ba010657ccc3152118602b665072136317d92fd4262' |
| 403 | }, |
| 404 | MonteTestCase{ |
| 405 | name: 'checkpoint 77' |
| 406 | count: 77 |
| 407 | digest: '21fdff552e08c86c07f080cefacaaaf31846eb893bfe2e4f88c3c3cd8cbf592a84500942695a5e5ae971ab343ce2695dd1baeb1f94dd4b53d678e14265e421ae' |
| 408 | }, |
| 409 | MonteTestCase{ |
| 410 | name: 'checkpoint 78' |
| 411 | count: 78 |
| 412 | digest: 'ca8f1a5b2172f6adb474da53b35e3f73ffd88263d3eecde72e48b16e1a0658015b555ee319005a1d82802e91431ee777610f9b1028d819921e1044ad426b0270' |
| 413 | }, |
| 414 | MonteTestCase{ |
| 415 | name: 'checkpoint 79' |
| 416 | count: 79 |
| 417 | digest: 'ce5ab25eff9c1ddc569a1eaaa66b689109ee269db7066e0b02d39b3564fd14ca6249987b7791e203d3d7c2ebf18558d2f23f94c03dd1d03aa63849e4d2889a76' |
| 418 | }, |
| 419 | MonteTestCase{ |
| 420 | name: 'checkpoint 80' |
| 421 | count: 80 |
| 422 | digest: 'a6f8b0561000dd4ae8b828c5f676e8c1a6474c4a042a645f1815bd52e9ff53c97dc36d5d8997f8ce332185feead76267f5b2e63f597fb3345ca0046e58fc0f24' |
| 423 | }, |
| 424 | MonteTestCase{ |
| 425 | name: 'checkpoint 81' |
| 426 | count: 81 |
| 427 | digest: 'fec86794bad4106c5ad1c1a2d9a1b7aae480396ec231eb5cac21c4077d17a0b652da0037363399a5a1dababa4a40e4c54b9124167580dee9108c4dbb24c57512' |
| 428 | }, |
| 429 | MonteTestCase{ |
| 430 | name: 'checkpoint 82' |
| 431 | count: 82 |
| 432 | digest: '594f5dd3f4c87bdc0d81309386e9163a9718e34c7b0dcb4613f8487aa786f9d211cfb61bb247fa9f5ecef042e710f192850f5571807294bfd8a54397850e5773' |
| 433 | }, |
| 434 | MonteTestCase{ |
| 435 | name: 'checkpoint 83' |
| 436 | count: 83 |
| 437 | digest: 'd81ad866f25ef6a0a6431d267114da564513e5ebdcf48db7e95db8cf32a89f0ab107874d796035db97420ffcf1db5f04dc1a52ddbbb960fc63b7f3f835cc8be6' |
| 438 | }, |
| 439 | MonteTestCase{ |
| 440 | name: 'checkpoint 84' |
| 441 | count: 84 |
| 442 | digest: '431d537e098e9949f6a68108d55d20952e3bfcdeb7273bac3917e37790a84fa5db04c33a79c113a06cf333e831d7702a00853a93fd0aa5146d934f4f71242a6a' |
| 443 | }, |
| 444 | MonteTestCase{ |
| 445 | name: 'checkpoint 85' |
| 446 | count: 85 |
| 447 | digest: '4ed95636c6885ae4e63d042e82f4da830c702dbf3b9746d64770a64dd666b33208315f3a947c4dff790771ef283788a9c74da83e22b97f750286a820ee46698c' |
| 448 | }, |
| 449 | MonteTestCase{ |
| 450 | name: 'checkpoint 86' |
| 451 | count: 86 |
| 452 | digest: 'a9bcb60b4d7724cdddddbc232b4ac70b94d0d7e9f0724b1222d918930cbb9bdbb04b3ad43e3c8caf3bf8b004ee4aec6bd527ff8eb6189b44827f7ba7057f6a90' |
| 453 | }, |
| 454 | MonteTestCase{ |
| 455 | name: 'checkpoint 87' |
| 456 | count: 87 |
| 457 | digest: 'd6d5e44d5bb07fc4144ab6ab309f048968f73f7992beb326047e9e2cd7af6240bc8abf46703c32fdb58fb2a8672594a660ef855be74f24cec09d4fb00219de82' |
| 458 | }, |
| 459 | MonteTestCase{ |
| 460 | name: 'checkpoint 88' |
| 461 | count: 88 |
| 462 | digest: 'dfda9ac0c7147530da97715ccf47814182255f2f2cf40287db97a4c63b43fcd39e6d41e560921492badb253a7dea0aba863c7c33b912bb59d1ff4de03a4f03bb' |
| 463 | }, |
| 464 | MonteTestCase{ |
| 465 | name: 'checkpoint 89' |
| 466 | count: 89 |
| 467 | digest: '0395faaaf2e907f27779d6f1cc9c9db68ec390a38fbb0702c6475b46f7a399498d46fd8014f834b131e1e83abba0359b1f16d8fc0a393580615def2ad0caba73' |
| 468 | }, |
| 469 | MonteTestCase{ |
| 470 | name: 'checkpoint 90' |
| 471 | count: 90 |
| 472 | digest: '41cb98f09029abe85d24a0f131f116c7f69f54f7e91c250642606512bf3da4ca89ba70a4714a5f66d9ae81ff09317dadaff12a02057074c970f0f02a52bfafd2' |
| 473 | }, |
| 474 | MonteTestCase{ |
| 475 | name: 'checkpoint 91' |
| 476 | count: 91 |
| 477 | digest: '8e8f161d48e306c5533ed614b8ef3a1979df6db7e13d0780a73c4a3980ddf0a95f93941d412c93683e39915a660c3fbec0dbb1bb6beea2e2099cd968011535c0' |
| 478 | }, |
| 479 | MonteTestCase{ |
| 480 | name: 'checkpoint 92' |
| 481 | count: 92 |
| 482 | digest: '789593f0b8fb83ef9b3ec50ab8f6e1e47344f763d4f7ceab5600989e7b6fd5fef6ee5e487975f64474af6cd71ae4d9ecce8f009edea0227c7ebe73080b8f961b' |
| 483 | }, |
| 484 | MonteTestCase{ |
| 485 | name: 'checkpoint 93' |
| 486 | count: 93 |
| 487 | digest: 'f37e1449e0b313d9537a6177f7a31158d353e5b79c781facf02526ec94e0c6cfda37105bac67098b194ea82efb307c2929a9ab8aca0e76c53e829e3f901cd245' |
| 488 | }, |
| 489 | MonteTestCase{ |
| 490 | name: 'checkpoint 94' |
| 491 | count: 94 |
| 492 | digest: '2e74e745caaf2d449ab3b031dd214b48616853a512cf2e95c40cb8e7594fe5e4879ac8a26d02eb35b3b96a5c9e7dcae3e15fd050a0bcc1fb3b9cb9c4df0fad3e' |
| 493 | }, |
| 494 | MonteTestCase{ |
| 495 | name: 'checkpoint 95' |
| 496 | count: 95 |
| 497 | digest: '6eac7069c26082e52574ca6a58abb9b1b9faf452e8cca9f1c7023679ce192ca554892f30e38104d39088a24df35612444a0fc90084af7535fd9344fa51dded84' |
| 498 | }, |
| 499 | MonteTestCase{ |
| 500 | name: 'checkpoint 96' |
| 501 | count: 96 |
| 502 | digest: 'ada6caf30c4f6e3644d952366e01519af6771b406e2c447552f0c597b8dd10e9e9b4e699c9a835de03f422be8980538d9786172dfd2fe511db272a1543d5aa35' |
| 503 | }, |
| 504 | MonteTestCase{ |
| 505 | name: 'checkpoint 97' |
| 506 | count: 97 |
| 507 | digest: '4d4b0086b2cb05d713f2805caa7e6605c8f7dbbb2e0f92aa159aebdcd63060305f47b748f1bca6e0b6e11cf8f9697fcccb6584b878c4b54a699290728a40aa1b' |
| 508 | }, |
| 509 | MonteTestCase{ |
| 510 | name: 'checkpoint 98' |
| 511 | count: 98 |
| 512 | digest: '97420b8a0ad102aeb92139da2c052d2748dd7d2dbb93a9ea79dc15b520d0ca7cab8cb7a00f5b5aebcb49d7e7f52a27180935ce617aeecdecba04064c668edd37' |
| 513 | }, |
| 514 | MonteTestCase{ |
| 515 | name: 'checkpoint 99' |
| 516 | count: 99 |
| 517 | digest: '4aa7dad74eb51d09a6ae7735c4b795b078f51c314f14f42a0d63071e13bdc5fd9f51612e77b36d44567502a3b5eb66c609ec017e51d8df93e58d1a44f3c1e375' |
| 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(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 | |