v

Зеркало из https://github.com/vlang/v
Форк
0
/
sha384_shavs_monte_test.v 
551 строка · 17.5 Кб
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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.