| 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 SHA384, the test vectors come from: |
| 6 | // SHA384Monte.rsp |
| 7 | import crypto.sha512 |
| 8 | import encoding.hex |
| 9 | |
| 10 | const seed = 'edff07255c71b54a9beae52cdfa083569a08be89949cbba73ddc8acf429359ca5e5be7a673633ca0d9709848f522a9df' |
| 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: 'e81b86c49a38feddfd185f71ca7da6732a053ed4a2640d52d27f53f9f76422650b0e93645301ac99f8295d6f820f1035' |
| 23 | }, |
| 24 | MonteTestCase{ |
| 25 | name: 'checkpoint 1' |
| 26 | count: 1 |
| 27 | digest: '1d6bd21713bffd50946a10c39a7742d740e8f271f0c8f643d4c95375094fd9bf29d89ee61a76053f22e44a4b058a64ed' |
| 28 | }, |
| 29 | MonteTestCase{ |
| 30 | name: 'checkpoint 2' |
| 31 | count: 2 |
| 32 | digest: '425167b66ae965bd7d68515b54ebfa16f33d2bdb2147a4eac515a75224cd19cea564d692017d2a1c41c1a3f68bb5a209' |
| 33 | }, |
| 34 | MonteTestCase{ |
| 35 | name: 'checkpoint 3' |
| 36 | count: 3 |
| 37 | digest: '9e7477ffd4baad1fcca035f4687b35ed47a57832fb27d131eb8018fcb41edf4d5e25874466d2e2d61ae3accdfc7aa364' |
| 38 | }, |
| 39 | MonteTestCase{ |
| 40 | name: 'checkpoint 4' |
| 41 | count: 4 |
| 42 | digest: 'd7b4d4e779ca70c8d065630db1f9128ee43b4bde08a81bce13d48659b6ef47b6cfc802af6d8756f6cd43c709bb445bab' |
| 43 | }, |
| 44 | MonteTestCase{ |
| 45 | name: 'checkpoint 5' |
| 46 | count: 5 |
| 47 | digest: 'a038eaa91772d458a7339612f6a9214e6550f78d5870d91fa7a3dc1c2321e511759c159a371475dda7ad1fd7f51ac82b' |
| 48 | }, |
| 49 | MonteTestCase{ |
| 50 | name: 'checkpoint 6' |
| 51 | count: 6 |
| 52 | digest: '8552b4ea2da9f855fcc7230ac88ecb1c3cb4841cc28e0495bf1ab97d100d4e4c60a1c51949d26723415f560da2951bb0' |
| 53 | }, |
| 54 | MonteTestCase{ |
| 55 | name: 'checkpoint 7' |
| 56 | count: 7 |
| 57 | digest: '668338b2e661d9e25b799d7329e55629b62416ee4d42d2e55245ffe7092e7ae4a3da6903944d532c2a88e4632f9a4b36' |
| 58 | }, |
| 59 | MonteTestCase{ |
| 60 | name: 'checkpoint 8' |
| 61 | count: 8 |
| 62 | digest: 'c40cd19cb770b1fe81135fcb9223ffb9ef50340d13660658ba60656a88f4ea08ee3b572680e2b4abbaf4392486ea589a' |
| 63 | }, |
| 64 | MonteTestCase{ |
| 65 | name: 'checkpoint 9' |
| 66 | count: 9 |
| 67 | digest: '540c154e82b57914abc0452990abf988e46a2f65b40f5e9ef80a38c7431293d5efa31c7c83df5345b079ad4e31b2c8b2' |
| 68 | }, |
| 69 | MonteTestCase{ |
| 70 | name: 'checkpoint 10' |
| 71 | count: 10 |
| 72 | digest: 'e112f9359983e7df9b266f53ec950ed2b951b6d832c8fc1ffed22b4be3eae3d015e0771e96d344672000d4959d2829ab' |
| 73 | }, |
| 74 | MonteTestCase{ |
| 75 | name: 'checkpoint 11' |
| 76 | count: 11 |
| 77 | digest: '186e69c28033e11b152542c86a94f59a25ec4edb7ab5b735faff16bdbacc682b2ae79b5f5a68ece9fee5ea4530b8a8f4' |
| 78 | }, |
| 79 | MonteTestCase{ |
| 80 | name: 'checkpoint 12' |
| 81 | count: 12 |
| 82 | digest: 'a37c790e641f911ef2929bab0ccbb890627c7e38e1a2fbbd71cd4215de919763c2819c35a0e93984b7d85d0e8858573f' |
| 83 | }, |
| 84 | MonteTestCase{ |
| 85 | name: 'checkpoint 13' |
| 86 | count: 13 |
| 87 | digest: 'f1b4bdcfe0cce284ca26e0b7e01f26de21bf4a7a409ee99fee1019cc8d23e775bc134ec7987a6575fa64160b5c7f849e' |
| 88 | }, |
| 89 | MonteTestCase{ |
| 90 | name: 'checkpoint 14' |
| 91 | count: 14 |
| 92 | digest: '45aabfb784a29d6be30104ae9f3c5daa58e48a9c94f61fed94dccd2ec06b527ed564643573d588ce10d3847361a57961' |
| 93 | }, |
| 94 | MonteTestCase{ |
| 95 | name: 'checkpoint 15' |
| 96 | count: 15 |
| 97 | digest: 'be3a49139a48dafba418bb9e0e8e2bd195e0d239eec77c43d1f0cee844b65f65c30cddfc05b644f9a792459695883a2e' |
| 98 | }, |
| 99 | MonteTestCase{ |
| 100 | name: 'checkpoint 16' |
| 101 | count: 16 |
| 102 | digest: '3b263277a0d11de4cb4616591d4623e0821da4f111dae33938329cb8cc47f46742c70c09463edb9ff4a0171c4604b243' |
| 103 | }, |
| 104 | MonteTestCase{ |
| 105 | name: 'checkpoint 17' |
| 106 | count: 17 |
| 107 | digest: '2be323079381bd13a02cca824c2f3cd18cbc89b0c3319afbf33c6f06f2abf2fa3af35ea9752ffe153d1775a95e7accbd' |
| 108 | }, |
| 109 | MonteTestCase{ |
| 110 | name: 'checkpoint 18' |
| 111 | count: 18 |
| 112 | digest: '14c8c3ea3f5aea2e74a2f138863accf1b5f563d96194c0dcf08ca816e1ac9156c3f5d15aa5701d93c188c2c1f7237518' |
| 113 | }, |
| 114 | MonteTestCase{ |
| 115 | name: 'checkpoint 19' |
| 116 | count: 19 |
| 117 | digest: 'b9158943803c47678fefafa91c98966aa3dc1fd96f4e86cfdde7ca879dbf9fa9f54b1988a53376f7005df7fd87b1396b' |
| 118 | }, |
| 119 | MonteTestCase{ |
| 120 | name: 'checkpoint 20' |
| 121 | count: 20 |
| 122 | digest: 'f4395f88c4dc24b6edca5868fcebd24991ced2e3826c04ec00e4630d7e1f70ee56124a90657a795f446f7db94d8b439e' |
| 123 | }, |
| 124 | MonteTestCase{ |
| 125 | name: 'checkpoint 21' |
| 126 | count: 21 |
| 127 | digest: 'bb56b4ed4683fce0d6d412ef84b7985ccc5fe30306679a994c8221c1212ff7f1492512095b7ddd250411008ce9d54020' |
| 128 | }, |
| 129 | MonteTestCase{ |
| 130 | name: 'checkpoint 22' |
| 131 | count: 22 |
| 132 | digest: 'cacaeb081a62a4e384e0082f8b994dcd721f38b3c3e4b5836ddcaaab74bcf2700fdc8b6faf3f4df1ec175a0628728a4c' |
| 133 | }, |
| 134 | MonteTestCase{ |
| 135 | name: 'checkpoint 23' |
| 136 | count: 23 |
| 137 | digest: '231796f44eba3c8c6ad064b0e350093fcae026c3c03d669c28e5f36befa5f35489bf595a0312c38b9b73b7bb4dad5b96' |
| 138 | }, |
| 139 | MonteTestCase{ |
| 140 | name: 'checkpoint 24' |
| 141 | count: 24 |
| 142 | digest: 'd54559e7eb20534025f8f265bdbdab0e7dd9e2459305288d3ca84190b6d2c6e8ae2cd6f3e51ccb54551d94e9e40b31ac' |
| 143 | }, |
| 144 | MonteTestCase{ |
| 145 | name: 'checkpoint 25' |
| 146 | count: 25 |
| 147 | digest: 'd6231b809b70ed19478cdf7e05534e92ea01e74e970fe17e92ec9a67b1b7977c4c485cfa74787224fe326b1b8d1ede87' |
| 148 | }, |
| 149 | MonteTestCase{ |
| 150 | name: 'checkpoint 26' |
| 151 | count: 26 |
| 152 | digest: '8ca1d462cc1b16b734c0e4f1a6b7f7d9d0ba9ce8074addc7755243b05fe269afab6618f07fe73089d9379bcbdce6c728' |
| 153 | }, |
| 154 | MonteTestCase{ |
| 155 | name: 'checkpoint 27' |
| 156 | count: 27 |
| 157 | digest: '60fa725bbf21ee56545ab24e6f26ec5ec749c4971bf761923c23415cbcb0c02e6a474deb50144abad2b0f16ddbe850a9' |
| 158 | }, |
| 159 | MonteTestCase{ |
| 160 | name: 'checkpoint 28' |
| 161 | count: 28 |
| 162 | digest: '8b60fe287f5bc133ff842a246bf161a58b4b8ead5be073c702552d664653e384e28e70d28624aa1da951ed33dcdfc7fd' |
| 163 | }, |
| 164 | MonteTestCase{ |
| 165 | name: 'checkpoint 29' |
| 166 | count: 29 |
| 167 | digest: 'd18a080af3ae7e6318dc69298bd7b13644b7ab00adac18b446c1e9a9366e68dade87687b9129aefae9a98b531309f1c7' |
| 168 | }, |
| 169 | MonteTestCase{ |
| 170 | name: 'checkpoint 30' |
| 171 | count: 30 |
| 172 | digest: 'faad832a7ce865cf3183e51e07f08aad6570795f8d0274fae52fc5cb637ce4b7cdb8f8092e2ac4a7c96beb70cb288b69' |
| 173 | }, |
| 174 | MonteTestCase{ |
| 175 | name: 'checkpoint 31' |
| 176 | count: 31 |
| 177 | digest: 'b7bea61748495351409fcf1bd45a94af34e7dd899933ed06d5759fe728f6933781c21f1986b99906c6910d976a0d9c4b' |
| 178 | }, |
| 179 | MonteTestCase{ |
| 180 | name: 'checkpoint 32' |
| 181 | count: 32 |
| 182 | digest: 'b35027199cf6467302a88e5d0106d01953b41dfa172234b3e11d3ccad33bda9a836e44f43ae94451e2bea28f0dca7989' |
| 183 | }, |
| 184 | MonteTestCase{ |
| 185 | name: 'checkpoint 33' |
| 186 | count: 33 |
| 187 | digest: '8571acd0d5fdd20909e9cd74e125cb9cd65a2e74056eab3f85f6f13e31a5fc1580aa588997d31a0a3ba1a16dea5528d3' |
| 188 | }, |
| 189 | MonteTestCase{ |
| 190 | name: 'checkpoint 34' |
| 191 | count: 34 |
| 192 | digest: '3dcf49cb8d79d4ca3f6e06e8a58bb92a7a42d7915b9e710a29d37ece6c1c32eb89a897e9935354db3cbe384a1149964a' |
| 193 | }, |
| 194 | MonteTestCase{ |
| 195 | name: 'checkpoint 35' |
| 196 | count: 35 |
| 197 | digest: '7b2258c5fbf26780f55054b4aa462a607eecbf7382af941efd75b9b4cadd5b97936a762b9c03e133d7cfb65de501e6df' |
| 198 | }, |
| 199 | MonteTestCase{ |
| 200 | name: 'checkpoint 36' |
| 201 | count: 36 |
| 202 | digest: 'c54cfebd2381621fed5cf6b82b3dea25965ec99365ce415b184ded71b949eb8009d91c85c02b30b7465fdcf18be885ca' |
| 203 | }, |
| 204 | MonteTestCase{ |
| 205 | name: 'checkpoint 37' |
| 206 | count: 37 |
| 207 | digest: '39bed6de0e885dfd51569f3c5dc967f7f551065e87b6e7108d15ef5ea407419f936f5ae2288aeecf98777249f384fdfa' |
| 208 | }, |
| 209 | MonteTestCase{ |
| 210 | name: 'checkpoint 38' |
| 211 | count: 38 |
| 212 | digest: 'b1c341b1428e5df6f4bcec533f1b5ca57e02102f5647b82be0986e523fad24b7f27aa29336a3f333817e8a5336a4a3b4' |
| 213 | }, |
| 214 | MonteTestCase{ |
| 215 | name: 'checkpoint 39' |
| 216 | count: 39 |
| 217 | digest: '2e1e67546b9424a2f0bd8931082f9fb8951b9fe57a2b61683a5e197017ebcd96592dc47a75d2ae4ab8f436edd5e5bb4e' |
| 218 | }, |
| 219 | MonteTestCase{ |
| 220 | name: 'checkpoint 40' |
| 221 | count: 40 |
| 222 | digest: '6c84a39bc94af5960715818bf9b4694548dd1f0af8f6344d56b0dc7f86b181d5249172c82572ec8748ff35b6c0a2abd5' |
| 223 | }, |
| 224 | MonteTestCase{ |
| 225 | name: 'checkpoint 41' |
| 226 | count: 41 |
| 227 | digest: '576705bec035d07e31ebb091f180cd68c3873ea306708c5259f50491463c68d912080ba9f11bcc983a4b849ca19df008' |
| 228 | }, |
| 229 | MonteTestCase{ |
| 230 | name: 'checkpoint 42' |
| 231 | count: 42 |
| 232 | digest: 'd45c7e9080b6223a2185c490363764f9fb0634f3865d57a15bea438fb243e98fccad4176bf24c4cb7247dd2c5728b761' |
| 233 | }, |
| 234 | MonteTestCase{ |
| 235 | name: 'checkpoint 43' |
| 236 | count: 43 |
| 237 | digest: 'b3021cedd2ba38b69348867729cfe2ab172e4f1643eb4971cde2db002413458a566ea884d651a9c010b1a6b869168497' |
| 238 | }, |
| 239 | MonteTestCase{ |
| 240 | name: 'checkpoint 44' |
| 241 | count: 44 |
| 242 | digest: '1cb9c05e35029fe6b114c85a457091b7d9aaf7c95f32447f3f20cd034bc54f87ae85c4013d18fe2a94de8ecf9c6b9f05' |
| 243 | }, |
| 244 | MonteTestCase{ |
| 245 | name: 'checkpoint 45' |
| 246 | count: 45 |
| 247 | digest: '1e8f037fb920b836b8f36a1ed4875cf7d61390f68d4843e420b2c1ca702a104524c1187c8eec7bb4b174a252e1ae1462' |
| 248 | }, |
| 249 | MonteTestCase{ |
| 250 | name: 'checkpoint 46' |
| 251 | count: 46 |
| 252 | digest: '07c790c3d4948347ad5fad9992d8a0f6603a2133d138f1ff5cbbdc04c39277fb67d45b2e2c8e6c51fdaa6c5883e3a69c' |
| 253 | }, |
| 254 | MonteTestCase{ |
| 255 | name: 'checkpoint 47' |
| 256 | count: 47 |
| 257 | digest: '98ef381d9b6b4e26ebf2bc293743e1e07943a3663b17f1be52d12ef8d19621263efb8525506ef6b95f746567a43577c6' |
| 258 | }, |
| 259 | MonteTestCase{ |
| 260 | name: 'checkpoint 48' |
| 261 | count: 48 |
| 262 | digest: '8beefea2f858f8902928dae6060b10cf6d4a3cd1f91cf1ee5ddef0ee5fc25a8269367c114c1c5c5ab5287c48edc59274' |
| 263 | }, |
| 264 | MonteTestCase{ |
| 265 | name: 'checkpoint 49' |
| 266 | count: 49 |
| 267 | digest: '03a6509ad6eb7f009931e596f3dab586de3bd6549afab4f218eba4fe47daf37c6faa360afdd931c5a95544f1a028195b' |
| 268 | }, |
| 269 | MonteTestCase{ |
| 270 | name: 'checkpoint 50' |
| 271 | count: 50 |
| 272 | digest: 'bdf7e8d538e7ef418c808bf2dec1242b716326f83bf0a53db81f4d63aba37a2412f6b2bf00957ad6faf8404e4e2067a8' |
| 273 | }, |
| 274 | MonteTestCase{ |
| 275 | name: 'checkpoint 51' |
| 276 | count: 51 |
| 277 | digest: '71ad43312ed6e403a5e174480fb14b3c2a3a60bba36611e1c99adf8013d243fe945b947b362b6dc51a3dd96235472f5e' |
| 278 | }, |
| 279 | MonteTestCase{ |
| 280 | name: 'checkpoint 52' |
| 281 | count: 52 |
| 282 | digest: 'bec45a229217e5fe28d6d1675dc7440ccb5616c0f02eb5d4c814921fc82fdddb04592ce7af192fee6c61b1a08f6ab6aa' |
| 283 | }, |
| 284 | MonteTestCase{ |
| 285 | name: 'checkpoint 53' |
| 286 | count: 53 |
| 287 | digest: '5d6bc2d2cd0d8f5e41656f73a473bef1eff212fe98b184386cdecade24c5c5e7b92cf76ea16f582b9951634881f85585' |
| 288 | }, |
| 289 | MonteTestCase{ |
| 290 | name: 'checkpoint 54' |
| 291 | count: 54 |
| 292 | digest: '96e3568d30a1f7810404f3be8d2d26e5606da6c3fc064d0ef62298ca327476d587a1e3ef0d6554f4ad529053b7a651fd' |
| 293 | }, |
| 294 | MonteTestCase{ |
| 295 | name: 'checkpoint 55' |
| 296 | count: 55 |
| 297 | digest: 'e4df3b7028f5e68753c1f21a556d8468a5d80fb048f6b92d405e519ea9ce44c6c95fb362119c553f5921dc9616dd3937' |
| 298 | }, |
| 299 | MonteTestCase{ |
| 300 | name: 'checkpoint 56' |
| 301 | count: 56 |
| 302 | digest: '7881e36eef708df4d9c06e37bfa7af5ce7d41d31a2e4332d23922a518de3e2e6fd4b9f27ee64379afae7ca2570d24748' |
| 303 | }, |
| 304 | MonteTestCase{ |
| 305 | name: 'checkpoint 57' |
| 306 | count: 57 |
| 307 | digest: 'aa12548b63d3a58f6914744111292cfc1f1358f717f1b19fab1a4ecac6292f1ff4b4c67b8a260b048f00ddc83b42453a' |
| 308 | }, |
| 309 | MonteTestCase{ |
| 310 | name: 'checkpoint 58' |
| 311 | count: 58 |
| 312 | digest: 'b421b6941b5d7748765a4090c224dbbd98e85dcff9a65a77db0c2a83b92f4cad961b5b8ff76b5513d4a7af45ec4d4550' |
| 313 | }, |
| 314 | MonteTestCase{ |
| 315 | name: 'checkpoint 59' |
| 316 | count: 59 |
| 317 | digest: '14e1b1733b16899c4046a604f8e1e777d55649c5357d7d9e3d7a1c395b6275aecf733a598de1d0bfd7eeaa9ecbd7d1e7' |
| 318 | }, |
| 319 | MonteTestCase{ |
| 320 | name: 'checkpoint 60' |
| 321 | count: 60 |
| 322 | digest: 'bd05a1f9fa5b77371005a8073f0f3bcc4cb4e08fde3335dd3688921cf9cb5e97cf1b3052ff74bed8a359d170d2bea48f' |
| 323 | }, |
| 324 | MonteTestCase{ |
| 325 | name: 'checkpoint 61' |
| 326 | count: 61 |
| 327 | digest: 'a319d9b3eeee6da494940ffb08903bcd588b18733a64ed435eadc5d9add6ab4f0c35fc050958bed81303409f388a065e' |
| 328 | }, |
| 329 | MonteTestCase{ |
| 330 | name: 'checkpoint 62' |
| 331 | count: 62 |
| 332 | digest: '6f19824ec874b55e88fe4b1387433dab85415148870bf4a0612aa9c1cbcd9627925616fcdb66d68760c50fb308f628b0' |
| 333 | }, |
| 334 | MonteTestCase{ |
| 335 | name: 'checkpoint 63' |
| 336 | count: 63 |
| 337 | digest: 'bacb435a1ff538d0ba3e3d0ab04b5e8868bc1f84e964409229d7eada4b846b813c0e30d8e962786aa83aac2dacf02d19' |
| 338 | }, |
| 339 | MonteTestCase{ |
| 340 | name: 'checkpoint 64' |
| 341 | count: 64 |
| 342 | digest: 'e8f013470eafd5af84f63d51d51af2ca884789d03d79f8c3089810254b95a6f54fb86c08202cae94681ad702ea29451a' |
| 343 | }, |
| 344 | MonteTestCase{ |
| 345 | name: 'checkpoint 65' |
| 346 | count: 65 |
| 347 | digest: '374b07621c018cc3935374c2f2f098e661ca0656181f67f55fb80ac36e23da379c4f6c8a3683c2621f874afa1241b918' |
| 348 | }, |
| 349 | MonteTestCase{ |
| 350 | name: 'checkpoint 66' |
| 351 | count: 66 |
| 352 | digest: '5878f1ebcbe60aa62a7b149bd181167e5898d08a3627a08c589436f007bfb82c040b26ea9944c6f0c9c4079b9b0e1ecf' |
| 353 | }, |
| 354 | MonteTestCase{ |
| 355 | name: 'checkpoint 67' |
| 356 | count: 67 |
| 357 | digest: '05961b57507c99d0cb7dc24ae34eddde94ac484129de621edac5b001ac5c0b974d09d24f75504f3be1a3cd635c44bf71' |
| 358 | }, |
| 359 | MonteTestCase{ |
| 360 | name: 'checkpoint 68' |
| 361 | count: 68 |
| 362 | digest: 'd961eb883eecbc083533fa5128695c8d28281fbac23308dd2f504eb079d2d311b973f1a52b45aa6275550e14477a8876' |
| 363 | }, |
| 364 | MonteTestCase{ |
| 365 | name: 'checkpoint 69' |
| 366 | count: 69 |
| 367 | digest: 'a4557f990f4ccce585ba33453090f66af576f0a501d26667031f48f19538b820b84f870579efb554e7550f9f53fea5ea' |
| 368 | }, |
| 369 | MonteTestCase{ |
| 370 | name: 'checkpoint 70' |
| 371 | count: 70 |
| 372 | digest: '82194c49f24084249567f0e8963c5f72a23bc20a8f522a6108f12abf95b7437ad93673860a953264838a09bb3968d0a9' |
| 373 | }, |
| 374 | MonteTestCase{ |
| 375 | name: 'checkpoint 71' |
| 376 | count: 71 |
| 377 | digest: '371dc5573b145f2136eb854591ece253efebf8732d3898bea063fdc3889d07953ee646e533b214f8c2dd66f1355b03cf' |
| 378 | }, |
| 379 | MonteTestCase{ |
| 380 | name: 'checkpoint 72' |
| 381 | count: 72 |
| 382 | digest: 'cfc4dcecc6103027232029dd9a19850a6f79b9004be7d70054d0af11c692affa44c537f7cd749f2b6317cafe1fa52fe4' |
| 383 | }, |
| 384 | MonteTestCase{ |
| 385 | name: 'checkpoint 73' |
| 386 | count: 73 |
| 387 | digest: '9920b835400795bd3ed8ae0bc12417d58be8c5ffd6eed151ed738c3031e624c74fb85488953ac81c75f395cab74f1679' |
| 388 | }, |
| 389 | MonteTestCase{ |
| 390 | name: 'checkpoint 74' |
| 391 | count: 74 |
| 392 | digest: '4a1b040fa38b5cee63f5d308b55502d2a017b349ead5172c288289f42ba9874d0d11c9ac43255580c428a99067495782' |
| 393 | }, |
| 394 | MonteTestCase{ |
| 395 | name: 'checkpoint 75' |
| 396 | count: 75 |
| 397 | digest: '93c1cb94d0689301728165299057edd78ef48a6dc7654931ae2bf7ea5bc733f3b724f4c3081bc93ed61e7d739c38e137' |
| 398 | }, |
| 399 | MonteTestCase{ |
| 400 | name: 'checkpoint 76' |
| 401 | count: 76 |
| 402 | digest: '8f2e6c868b224b3cd5ac80669da0ba1d7e799e85a124c9e81c6865ebab1c0481e4ed4957a8989902ec565169ac53b7b4' |
| 403 | }, |
| 404 | MonteTestCase{ |
| 405 | name: 'checkpoint 77' |
| 406 | count: 77 |
| 407 | digest: 'df045c9302fba73f9f27ceb0fb70e6ca3897f410e81a2b8392489e40aa17f15ac59cf8d6893ab10bacd8b59704eab22b' |
| 408 | }, |
| 409 | MonteTestCase{ |
| 410 | name: 'checkpoint 78' |
| 411 | count: 78 |
| 412 | digest: '8ab095f49aa7ebfcb8b1410f42c38fb1755a0560e3638b8b82c7a852e8bce8f4b780015e051dda0d2cbd6d6cb08e30c0' |
| 413 | }, |
| 414 | MonteTestCase{ |
| 415 | name: 'checkpoint 79' |
| 416 | count: 79 |
| 417 | digest: 'd77fdff2f768188efa63a7e29d73b8ade14c1aeb12e77866a57ea12c81bf0b3e1421d1af57fccf91b2098ba02ffb4118' |
| 418 | }, |
| 419 | MonteTestCase{ |
| 420 | name: 'checkpoint 80' |
| 421 | count: 80 |
| 422 | digest: 'fac5ee7450b3fd1ae2152f5d020680137f553a2c210c57290d058f330d11407593d74c9d3d9ac88bf4af44e023345168' |
| 423 | }, |
| 424 | MonteTestCase{ |
| 425 | name: 'checkpoint 81' |
| 426 | count: 81 |
| 427 | digest: '39d0ee95db114925ed7ff1577a22eb3dedb8658ce31504bd0f9f8a8f11f90825587203f26c432d216918156ca931fc82' |
| 428 | }, |
| 429 | MonteTestCase{ |
| 430 | name: 'checkpoint 82' |
| 431 | count: 82 |
| 432 | digest: '17d22080e8a9f589a80a5ca8291b0479c41351008dffff79ff522779c35ba0b09acc2dedde936b07e260451d35ce86a9' |
| 433 | }, |
| 434 | MonteTestCase{ |
| 435 | name: 'checkpoint 83' |
| 436 | count: 83 |
| 437 | digest: '9d75befac42e6d4d544e70477f7581264b5f8dda988da0dc40ef32f85c31b709284aef5f4f0246d20a855eee9175948e' |
| 438 | }, |
| 439 | MonteTestCase{ |
| 440 | name: 'checkpoint 84' |
| 441 | count: 84 |
| 442 | digest: '3985f0cbca4c25f624850580516184e3d75996d77f138839c7570b4539b90fae8e751d1cea642816abd7f9ebf9d86c8f' |
| 443 | }, |
| 444 | MonteTestCase{ |
| 445 | name: 'checkpoint 85' |
| 446 | count: 85 |
| 447 | digest: '93cfd14ade34e50deeee23aa75a63a017b6974e23051117e7e6b56b4ddb88f917a5d88d3af2af27da8e63fe130502f8e' |
| 448 | }, |
| 449 | MonteTestCase{ |
| 450 | name: 'checkpoint 86' |
| 451 | count: 86 |
| 452 | digest: '7ae513480491a9500fa9afb8f64b8914ffdbeece3b3103048e91f6510b64cdccc8273257e275e5b34ec14c4c4aff4405' |
| 453 | }, |
| 454 | MonteTestCase{ |
| 455 | name: 'checkpoint 87' |
| 456 | count: 87 |
| 457 | digest: '2585bab1cd98d4b51a1475fbfbe3bca43da2a7be842c5667c98d3b62a9f05918108be94198d96c67388f83c2abebe498' |
| 458 | }, |
| 459 | MonteTestCase{ |
| 460 | name: 'checkpoint 88' |
| 461 | count: 88 |
| 462 | digest: '32f67419616e11fea79e3baeee4524c58d09f0cfb42049cea70f9a4a74e0096df841a0cf5177e402dd5803f4b51c602c' |
| 463 | }, |
| 464 | MonteTestCase{ |
| 465 | name: 'checkpoint 89' |
| 466 | count: 89 |
| 467 | digest: '9f4486d93c599e68e7463d07d5cc9d589ab3a7c3d4d3c2b2d1f81f65b5c85068331f4142215f337c3621d096eb36aa91' |
| 468 | }, |
| 469 | MonteTestCase{ |
| 470 | name: 'checkpoint 90' |
| 471 | count: 90 |
| 472 | digest: 'e3399ed2ac93c6a4a6c88c11bd89655aac3e573493483c81631fd67dba3bb237d46f9e8ddab3a9fd78236296d00dfd79' |
| 473 | }, |
| 474 | MonteTestCase{ |
| 475 | name: 'checkpoint 91' |
| 476 | count: 91 |
| 477 | digest: 'bd9d1de114afa5ffacfbeb488d4846d012aa6ef66ce09725ae7b15e680d719fc2447f308eeb8247ae8e91e34b5a21ea2' |
| 478 | }, |
| 479 | MonteTestCase{ |
| 480 | name: 'checkpoint 92' |
| 481 | count: 92 |
| 482 | digest: 'e1c3511ed2ed26f770bf5212c7ec245ab2ba49e1c09edae2abad6a3ee41c9e25445f5e5317cf7c9c3c3f702ecd6778a5' |
| 483 | }, |
| 484 | MonteTestCase{ |
| 485 | name: 'checkpoint 93' |
| 486 | count: 93 |
| 487 | digest: 'c363234d1a6272d081f351cd68ac90abea09d3eae3a4d64fae7fab251a252591cb34dc63fb10abcbc5460129464c868b' |
| 488 | }, |
| 489 | MonteTestCase{ |
| 490 | name: 'checkpoint 94' |
| 491 | count: 94 |
| 492 | digest: '6e5f1531eb282a2911a64b72b043cfe43b527d4d557abb9a31a9a632cdf5b5e055317ecb72a517a025eb4286d6f00433' |
| 493 | }, |
| 494 | MonteTestCase{ |
| 495 | name: 'checkpoint 95' |
| 496 | count: 95 |
| 497 | digest: '19c85253b3c703fee80a70bb2ac2ef836bf8e14464d2a17f35bd5e4f2b0b3a059a27891410950a9ce07197f5b306ae3f' |
| 498 | }, |
| 499 | MonteTestCase{ |
| 500 | name: 'checkpoint 96' |
| 501 | count: 96 |
| 502 | digest: 'eec713a44cb778811795609610f2f9bfc9bba479e415746efe0dc530b6de66d73cb85b8698a8c0c2ef9344a2043b7a31' |
| 503 | }, |
| 504 | MonteTestCase{ |
| 505 | name: 'checkpoint 97' |
| 506 | count: 97 |
| 507 | digest: 'b799577aab5e8898326ed88eb96de38a27e76280ce44c3f16e70a1f96543ee7020bc29913ea0b9a9b9d92ae201143e0b' |
| 508 | }, |
| 509 | MonteTestCase{ |
| 510 | name: 'checkpoint 98' |
| 511 | count: 98 |
| 512 | digest: 'e4dcabf1e22134076a21ea7cf9be6e03b099be40efc2b3080b9ec358cb021623ad27d33129bc68fce3eaec6b25aa2329' |
| 513 | }, |
| 514 | MonteTestCase{ |
| 515 | name: 'checkpoint 99' |
| 516 | count: 99 |
| 517 | digest: 'ccde4359f23e64579c5c0380df837ee950928aa82937a2d2ed33d216e707c46d847efa5ca52dcbda551145e164fbd594' |
| 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.sum384(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 | |