Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,551 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA384, the test vectors come from:
|
||||
// SHA384Monte.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
const seed = 'edff07255c71b54a9beae52cdfa083569a08be89949cbba73ddc8acf429359ca5e5be7a673633ca0d9709848f522a9df'
|
||||
|
||||
struct MonteTestCase {
|
||||
name string
|
||||
count int
|
||||
digest string
|
||||
}
|
||||
|
||||
const monte_cases = [
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 0'
|
||||
count: 0
|
||||
digest: 'e81b86c49a38feddfd185f71ca7da6732a053ed4a2640d52d27f53f9f76422650b0e93645301ac99f8295d6f820f1035'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 1'
|
||||
count: 1
|
||||
digest: '1d6bd21713bffd50946a10c39a7742d740e8f271f0c8f643d4c95375094fd9bf29d89ee61a76053f22e44a4b058a64ed'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 2'
|
||||
count: 2
|
||||
digest: '425167b66ae965bd7d68515b54ebfa16f33d2bdb2147a4eac515a75224cd19cea564d692017d2a1c41c1a3f68bb5a209'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 3'
|
||||
count: 3
|
||||
digest: '9e7477ffd4baad1fcca035f4687b35ed47a57832fb27d131eb8018fcb41edf4d5e25874466d2e2d61ae3accdfc7aa364'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 4'
|
||||
count: 4
|
||||
digest: 'd7b4d4e779ca70c8d065630db1f9128ee43b4bde08a81bce13d48659b6ef47b6cfc802af6d8756f6cd43c709bb445bab'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 5'
|
||||
count: 5
|
||||
digest: 'a038eaa91772d458a7339612f6a9214e6550f78d5870d91fa7a3dc1c2321e511759c159a371475dda7ad1fd7f51ac82b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 6'
|
||||
count: 6
|
||||
digest: '8552b4ea2da9f855fcc7230ac88ecb1c3cb4841cc28e0495bf1ab97d100d4e4c60a1c51949d26723415f560da2951bb0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 7'
|
||||
count: 7
|
||||
digest: '668338b2e661d9e25b799d7329e55629b62416ee4d42d2e55245ffe7092e7ae4a3da6903944d532c2a88e4632f9a4b36'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 8'
|
||||
count: 8
|
||||
digest: 'c40cd19cb770b1fe81135fcb9223ffb9ef50340d13660658ba60656a88f4ea08ee3b572680e2b4abbaf4392486ea589a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 9'
|
||||
count: 9
|
||||
digest: '540c154e82b57914abc0452990abf988e46a2f65b40f5e9ef80a38c7431293d5efa31c7c83df5345b079ad4e31b2c8b2'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 10'
|
||||
count: 10
|
||||
digest: 'e112f9359983e7df9b266f53ec950ed2b951b6d832c8fc1ffed22b4be3eae3d015e0771e96d344672000d4959d2829ab'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 11'
|
||||
count: 11
|
||||
digest: '186e69c28033e11b152542c86a94f59a25ec4edb7ab5b735faff16bdbacc682b2ae79b5f5a68ece9fee5ea4530b8a8f4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 12'
|
||||
count: 12
|
||||
digest: 'a37c790e641f911ef2929bab0ccbb890627c7e38e1a2fbbd71cd4215de919763c2819c35a0e93984b7d85d0e8858573f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 13'
|
||||
count: 13
|
||||
digest: 'f1b4bdcfe0cce284ca26e0b7e01f26de21bf4a7a409ee99fee1019cc8d23e775bc134ec7987a6575fa64160b5c7f849e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 14'
|
||||
count: 14
|
||||
digest: '45aabfb784a29d6be30104ae9f3c5daa58e48a9c94f61fed94dccd2ec06b527ed564643573d588ce10d3847361a57961'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 15'
|
||||
count: 15
|
||||
digest: 'be3a49139a48dafba418bb9e0e8e2bd195e0d239eec77c43d1f0cee844b65f65c30cddfc05b644f9a792459695883a2e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 16'
|
||||
count: 16
|
||||
digest: '3b263277a0d11de4cb4616591d4623e0821da4f111dae33938329cb8cc47f46742c70c09463edb9ff4a0171c4604b243'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 17'
|
||||
count: 17
|
||||
digest: '2be323079381bd13a02cca824c2f3cd18cbc89b0c3319afbf33c6f06f2abf2fa3af35ea9752ffe153d1775a95e7accbd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 18'
|
||||
count: 18
|
||||
digest: '14c8c3ea3f5aea2e74a2f138863accf1b5f563d96194c0dcf08ca816e1ac9156c3f5d15aa5701d93c188c2c1f7237518'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 19'
|
||||
count: 19
|
||||
digest: 'b9158943803c47678fefafa91c98966aa3dc1fd96f4e86cfdde7ca879dbf9fa9f54b1988a53376f7005df7fd87b1396b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 20'
|
||||
count: 20
|
||||
digest: 'f4395f88c4dc24b6edca5868fcebd24991ced2e3826c04ec00e4630d7e1f70ee56124a90657a795f446f7db94d8b439e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 21'
|
||||
count: 21
|
||||
digest: 'bb56b4ed4683fce0d6d412ef84b7985ccc5fe30306679a994c8221c1212ff7f1492512095b7ddd250411008ce9d54020'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 22'
|
||||
count: 22
|
||||
digest: 'cacaeb081a62a4e384e0082f8b994dcd721f38b3c3e4b5836ddcaaab74bcf2700fdc8b6faf3f4df1ec175a0628728a4c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 23'
|
||||
count: 23
|
||||
digest: '231796f44eba3c8c6ad064b0e350093fcae026c3c03d669c28e5f36befa5f35489bf595a0312c38b9b73b7bb4dad5b96'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 24'
|
||||
count: 24
|
||||
digest: 'd54559e7eb20534025f8f265bdbdab0e7dd9e2459305288d3ca84190b6d2c6e8ae2cd6f3e51ccb54551d94e9e40b31ac'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 25'
|
||||
count: 25
|
||||
digest: 'd6231b809b70ed19478cdf7e05534e92ea01e74e970fe17e92ec9a67b1b7977c4c485cfa74787224fe326b1b8d1ede87'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 26'
|
||||
count: 26
|
||||
digest: '8ca1d462cc1b16b734c0e4f1a6b7f7d9d0ba9ce8074addc7755243b05fe269afab6618f07fe73089d9379bcbdce6c728'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 27'
|
||||
count: 27
|
||||
digest: '60fa725bbf21ee56545ab24e6f26ec5ec749c4971bf761923c23415cbcb0c02e6a474deb50144abad2b0f16ddbe850a9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 28'
|
||||
count: 28
|
||||
digest: '8b60fe287f5bc133ff842a246bf161a58b4b8ead5be073c702552d664653e384e28e70d28624aa1da951ed33dcdfc7fd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 29'
|
||||
count: 29
|
||||
digest: 'd18a080af3ae7e6318dc69298bd7b13644b7ab00adac18b446c1e9a9366e68dade87687b9129aefae9a98b531309f1c7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 30'
|
||||
count: 30
|
||||
digest: 'faad832a7ce865cf3183e51e07f08aad6570795f8d0274fae52fc5cb637ce4b7cdb8f8092e2ac4a7c96beb70cb288b69'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 31'
|
||||
count: 31
|
||||
digest: 'b7bea61748495351409fcf1bd45a94af34e7dd899933ed06d5759fe728f6933781c21f1986b99906c6910d976a0d9c4b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 32'
|
||||
count: 32
|
||||
digest: 'b35027199cf6467302a88e5d0106d01953b41dfa172234b3e11d3ccad33bda9a836e44f43ae94451e2bea28f0dca7989'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 33'
|
||||
count: 33
|
||||
digest: '8571acd0d5fdd20909e9cd74e125cb9cd65a2e74056eab3f85f6f13e31a5fc1580aa588997d31a0a3ba1a16dea5528d3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 34'
|
||||
count: 34
|
||||
digest: '3dcf49cb8d79d4ca3f6e06e8a58bb92a7a42d7915b9e710a29d37ece6c1c32eb89a897e9935354db3cbe384a1149964a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 35'
|
||||
count: 35
|
||||
digest: '7b2258c5fbf26780f55054b4aa462a607eecbf7382af941efd75b9b4cadd5b97936a762b9c03e133d7cfb65de501e6df'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 36'
|
||||
count: 36
|
||||
digest: 'c54cfebd2381621fed5cf6b82b3dea25965ec99365ce415b184ded71b949eb8009d91c85c02b30b7465fdcf18be885ca'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 37'
|
||||
count: 37
|
||||
digest: '39bed6de0e885dfd51569f3c5dc967f7f551065e87b6e7108d15ef5ea407419f936f5ae2288aeecf98777249f384fdfa'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 38'
|
||||
count: 38
|
||||
digest: 'b1c341b1428e5df6f4bcec533f1b5ca57e02102f5647b82be0986e523fad24b7f27aa29336a3f333817e8a5336a4a3b4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 39'
|
||||
count: 39
|
||||
digest: '2e1e67546b9424a2f0bd8931082f9fb8951b9fe57a2b61683a5e197017ebcd96592dc47a75d2ae4ab8f436edd5e5bb4e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 40'
|
||||
count: 40
|
||||
digest: '6c84a39bc94af5960715818bf9b4694548dd1f0af8f6344d56b0dc7f86b181d5249172c82572ec8748ff35b6c0a2abd5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 41'
|
||||
count: 41
|
||||
digest: '576705bec035d07e31ebb091f180cd68c3873ea306708c5259f50491463c68d912080ba9f11bcc983a4b849ca19df008'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 42'
|
||||
count: 42
|
||||
digest: 'd45c7e9080b6223a2185c490363764f9fb0634f3865d57a15bea438fb243e98fccad4176bf24c4cb7247dd2c5728b761'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 43'
|
||||
count: 43
|
||||
digest: 'b3021cedd2ba38b69348867729cfe2ab172e4f1643eb4971cde2db002413458a566ea884d651a9c010b1a6b869168497'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 44'
|
||||
count: 44
|
||||
digest: '1cb9c05e35029fe6b114c85a457091b7d9aaf7c95f32447f3f20cd034bc54f87ae85c4013d18fe2a94de8ecf9c6b9f05'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 45'
|
||||
count: 45
|
||||
digest: '1e8f037fb920b836b8f36a1ed4875cf7d61390f68d4843e420b2c1ca702a104524c1187c8eec7bb4b174a252e1ae1462'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 46'
|
||||
count: 46
|
||||
digest: '07c790c3d4948347ad5fad9992d8a0f6603a2133d138f1ff5cbbdc04c39277fb67d45b2e2c8e6c51fdaa6c5883e3a69c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 47'
|
||||
count: 47
|
||||
digest: '98ef381d9b6b4e26ebf2bc293743e1e07943a3663b17f1be52d12ef8d19621263efb8525506ef6b95f746567a43577c6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 48'
|
||||
count: 48
|
||||
digest: '8beefea2f858f8902928dae6060b10cf6d4a3cd1f91cf1ee5ddef0ee5fc25a8269367c114c1c5c5ab5287c48edc59274'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 49'
|
||||
count: 49
|
||||
digest: '03a6509ad6eb7f009931e596f3dab586de3bd6549afab4f218eba4fe47daf37c6faa360afdd931c5a95544f1a028195b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 50'
|
||||
count: 50
|
||||
digest: 'bdf7e8d538e7ef418c808bf2dec1242b716326f83bf0a53db81f4d63aba37a2412f6b2bf00957ad6faf8404e4e2067a8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 51'
|
||||
count: 51
|
||||
digest: '71ad43312ed6e403a5e174480fb14b3c2a3a60bba36611e1c99adf8013d243fe945b947b362b6dc51a3dd96235472f5e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 52'
|
||||
count: 52
|
||||
digest: 'bec45a229217e5fe28d6d1675dc7440ccb5616c0f02eb5d4c814921fc82fdddb04592ce7af192fee6c61b1a08f6ab6aa'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 53'
|
||||
count: 53
|
||||
digest: '5d6bc2d2cd0d8f5e41656f73a473bef1eff212fe98b184386cdecade24c5c5e7b92cf76ea16f582b9951634881f85585'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 54'
|
||||
count: 54
|
||||
digest: '96e3568d30a1f7810404f3be8d2d26e5606da6c3fc064d0ef62298ca327476d587a1e3ef0d6554f4ad529053b7a651fd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 55'
|
||||
count: 55
|
||||
digest: 'e4df3b7028f5e68753c1f21a556d8468a5d80fb048f6b92d405e519ea9ce44c6c95fb362119c553f5921dc9616dd3937'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 56'
|
||||
count: 56
|
||||
digest: '7881e36eef708df4d9c06e37bfa7af5ce7d41d31a2e4332d23922a518de3e2e6fd4b9f27ee64379afae7ca2570d24748'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 57'
|
||||
count: 57
|
||||
digest: 'aa12548b63d3a58f6914744111292cfc1f1358f717f1b19fab1a4ecac6292f1ff4b4c67b8a260b048f00ddc83b42453a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 58'
|
||||
count: 58
|
||||
digest: 'b421b6941b5d7748765a4090c224dbbd98e85dcff9a65a77db0c2a83b92f4cad961b5b8ff76b5513d4a7af45ec4d4550'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 59'
|
||||
count: 59
|
||||
digest: '14e1b1733b16899c4046a604f8e1e777d55649c5357d7d9e3d7a1c395b6275aecf733a598de1d0bfd7eeaa9ecbd7d1e7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 60'
|
||||
count: 60
|
||||
digest: 'bd05a1f9fa5b77371005a8073f0f3bcc4cb4e08fde3335dd3688921cf9cb5e97cf1b3052ff74bed8a359d170d2bea48f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 61'
|
||||
count: 61
|
||||
digest: 'a319d9b3eeee6da494940ffb08903bcd588b18733a64ed435eadc5d9add6ab4f0c35fc050958bed81303409f388a065e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 62'
|
||||
count: 62
|
||||
digest: '6f19824ec874b55e88fe4b1387433dab85415148870bf4a0612aa9c1cbcd9627925616fcdb66d68760c50fb308f628b0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 63'
|
||||
count: 63
|
||||
digest: 'bacb435a1ff538d0ba3e3d0ab04b5e8868bc1f84e964409229d7eada4b846b813c0e30d8e962786aa83aac2dacf02d19'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 64'
|
||||
count: 64
|
||||
digest: 'e8f013470eafd5af84f63d51d51af2ca884789d03d79f8c3089810254b95a6f54fb86c08202cae94681ad702ea29451a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 65'
|
||||
count: 65
|
||||
digest: '374b07621c018cc3935374c2f2f098e661ca0656181f67f55fb80ac36e23da379c4f6c8a3683c2621f874afa1241b918'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 66'
|
||||
count: 66
|
||||
digest: '5878f1ebcbe60aa62a7b149bd181167e5898d08a3627a08c589436f007bfb82c040b26ea9944c6f0c9c4079b9b0e1ecf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 67'
|
||||
count: 67
|
||||
digest: '05961b57507c99d0cb7dc24ae34eddde94ac484129de621edac5b001ac5c0b974d09d24f75504f3be1a3cd635c44bf71'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 68'
|
||||
count: 68
|
||||
digest: 'd961eb883eecbc083533fa5128695c8d28281fbac23308dd2f504eb079d2d311b973f1a52b45aa6275550e14477a8876'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 69'
|
||||
count: 69
|
||||
digest: 'a4557f990f4ccce585ba33453090f66af576f0a501d26667031f48f19538b820b84f870579efb554e7550f9f53fea5ea'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 70'
|
||||
count: 70
|
||||
digest: '82194c49f24084249567f0e8963c5f72a23bc20a8f522a6108f12abf95b7437ad93673860a953264838a09bb3968d0a9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 71'
|
||||
count: 71
|
||||
digest: '371dc5573b145f2136eb854591ece253efebf8732d3898bea063fdc3889d07953ee646e533b214f8c2dd66f1355b03cf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 72'
|
||||
count: 72
|
||||
digest: 'cfc4dcecc6103027232029dd9a19850a6f79b9004be7d70054d0af11c692affa44c537f7cd749f2b6317cafe1fa52fe4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 73'
|
||||
count: 73
|
||||
digest: '9920b835400795bd3ed8ae0bc12417d58be8c5ffd6eed151ed738c3031e624c74fb85488953ac81c75f395cab74f1679'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 74'
|
||||
count: 74
|
||||
digest: '4a1b040fa38b5cee63f5d308b55502d2a017b349ead5172c288289f42ba9874d0d11c9ac43255580c428a99067495782'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 75'
|
||||
count: 75
|
||||
digest: '93c1cb94d0689301728165299057edd78ef48a6dc7654931ae2bf7ea5bc733f3b724f4c3081bc93ed61e7d739c38e137'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 76'
|
||||
count: 76
|
||||
digest: '8f2e6c868b224b3cd5ac80669da0ba1d7e799e85a124c9e81c6865ebab1c0481e4ed4957a8989902ec565169ac53b7b4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 77'
|
||||
count: 77
|
||||
digest: 'df045c9302fba73f9f27ceb0fb70e6ca3897f410e81a2b8392489e40aa17f15ac59cf8d6893ab10bacd8b59704eab22b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 78'
|
||||
count: 78
|
||||
digest: '8ab095f49aa7ebfcb8b1410f42c38fb1755a0560e3638b8b82c7a852e8bce8f4b780015e051dda0d2cbd6d6cb08e30c0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 79'
|
||||
count: 79
|
||||
digest: 'd77fdff2f768188efa63a7e29d73b8ade14c1aeb12e77866a57ea12c81bf0b3e1421d1af57fccf91b2098ba02ffb4118'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 80'
|
||||
count: 80
|
||||
digest: 'fac5ee7450b3fd1ae2152f5d020680137f553a2c210c57290d058f330d11407593d74c9d3d9ac88bf4af44e023345168'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 81'
|
||||
count: 81
|
||||
digest: '39d0ee95db114925ed7ff1577a22eb3dedb8658ce31504bd0f9f8a8f11f90825587203f26c432d216918156ca931fc82'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 82'
|
||||
count: 82
|
||||
digest: '17d22080e8a9f589a80a5ca8291b0479c41351008dffff79ff522779c35ba0b09acc2dedde936b07e260451d35ce86a9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 83'
|
||||
count: 83
|
||||
digest: '9d75befac42e6d4d544e70477f7581264b5f8dda988da0dc40ef32f85c31b709284aef5f4f0246d20a855eee9175948e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 84'
|
||||
count: 84
|
||||
digest: '3985f0cbca4c25f624850580516184e3d75996d77f138839c7570b4539b90fae8e751d1cea642816abd7f9ebf9d86c8f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 85'
|
||||
count: 85
|
||||
digest: '93cfd14ade34e50deeee23aa75a63a017b6974e23051117e7e6b56b4ddb88f917a5d88d3af2af27da8e63fe130502f8e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 86'
|
||||
count: 86
|
||||
digest: '7ae513480491a9500fa9afb8f64b8914ffdbeece3b3103048e91f6510b64cdccc8273257e275e5b34ec14c4c4aff4405'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 87'
|
||||
count: 87
|
||||
digest: '2585bab1cd98d4b51a1475fbfbe3bca43da2a7be842c5667c98d3b62a9f05918108be94198d96c67388f83c2abebe498'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 88'
|
||||
count: 88
|
||||
digest: '32f67419616e11fea79e3baeee4524c58d09f0cfb42049cea70f9a4a74e0096df841a0cf5177e402dd5803f4b51c602c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 89'
|
||||
count: 89
|
||||
digest: '9f4486d93c599e68e7463d07d5cc9d589ab3a7c3d4d3c2b2d1f81f65b5c85068331f4142215f337c3621d096eb36aa91'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 90'
|
||||
count: 90
|
||||
digest: 'e3399ed2ac93c6a4a6c88c11bd89655aac3e573493483c81631fd67dba3bb237d46f9e8ddab3a9fd78236296d00dfd79'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 91'
|
||||
count: 91
|
||||
digest: 'bd9d1de114afa5ffacfbeb488d4846d012aa6ef66ce09725ae7b15e680d719fc2447f308eeb8247ae8e91e34b5a21ea2'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 92'
|
||||
count: 92
|
||||
digest: 'e1c3511ed2ed26f770bf5212c7ec245ab2ba49e1c09edae2abad6a3ee41c9e25445f5e5317cf7c9c3c3f702ecd6778a5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 93'
|
||||
count: 93
|
||||
digest: 'c363234d1a6272d081f351cd68ac90abea09d3eae3a4d64fae7fab251a252591cb34dc63fb10abcbc5460129464c868b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 94'
|
||||
count: 94
|
||||
digest: '6e5f1531eb282a2911a64b72b043cfe43b527d4d557abb9a31a9a632cdf5b5e055317ecb72a517a025eb4286d6f00433'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 95'
|
||||
count: 95
|
||||
digest: '19c85253b3c703fee80a70bb2ac2ef836bf8e14464d2a17f35bd5e4f2b0b3a059a27891410950a9ce07197f5b306ae3f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 96'
|
||||
count: 96
|
||||
digest: 'eec713a44cb778811795609610f2f9bfc9bba479e415746efe0dc530b6de66d73cb85b8698a8c0c2ef9344a2043b7a31'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 97'
|
||||
count: 97
|
||||
digest: 'b799577aab5e8898326ed88eb96de38a27e76280ce44c3f16e70a1f96543ee7020bc29913ea0b9a9b9d92ae201143e0b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 98'
|
||||
count: 98
|
||||
digest: 'e4dcabf1e22134076a21ea7cf9be6e03b099be40efc2b3080b9ec358cb021623ad27d33129bc68fce3eaec6b25aa2329'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 99'
|
||||
count: 99
|
||||
digest: 'ccde4359f23e64579c5c0380df837ee950928aa82937a2d2ed33d216e707c46d847efa5ca52dcbda551145e164fbd594'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_monte_messages() {
|
||||
mut msg_seed := hex.decode(seed)!
|
||||
|
||||
for c in monte_cases {
|
||||
mut md0 := msg_seed.clone()
|
||||
mut md1 := msg_seed.clone()
|
||||
mut md2 := msg_seed.clone()
|
||||
mut md3 := msg_seed.clone()
|
||||
|
||||
mut mi := []u8{len: 0, cap: 64}
|
||||
|
||||
for _ in 0 .. 1000 {
|
||||
mi.clear()
|
||||
mi << md0
|
||||
mi << md1
|
||||
mi << md2
|
||||
|
||||
md3 = sha512.sum384(mi)
|
||||
|
||||
md0 = md1.clone()
|
||||
md1 = md2.clone()
|
||||
md2 = md3.clone()
|
||||
}
|
||||
|
||||
msg_seed = md3.clone()
|
||||
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
assert md3 == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,675 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA384, the test vectors come from:
|
||||
// SHA384ShortMsg.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
// This structure deals with short message tests
|
||||
struct SHA384TestCase {
|
||||
name string
|
||||
message string
|
||||
digest string
|
||||
}
|
||||
|
||||
// short message test cases
|
||||
const short_cases = [
|
||||
SHA384TestCase{
|
||||
name: 'test case 0'
|
||||
message: ''
|
||||
digest: '38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 1'
|
||||
message: 'c5'
|
||||
digest: 'b52b72da75d0666379e20f9b4a79c33a329a01f06a2fb7865c9062a28c1de860ba432edfd86b4cb1cb8a75b46076e3b1'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 2'
|
||||
message: '6ece'
|
||||
digest: '53d4773da50d8be4145d8f3a7098ff3691a554a29ae6f652cc7121eb8bc96fd2210e06ae2fa2a36c4b3b3497341e70f0'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 3'
|
||||
message: '1fa4d5'
|
||||
digest: 'e4ca4663dff189541cd026dcc056626419028774666f5b379b99f4887c7237bdbd3bea46d5388be0efc2d4b7989ab2c4'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 4'
|
||||
message: '50e3853d'
|
||||
digest: '936a3c3991716ba4c413bc03de20f5ce1c63703b3a5bdb6ab558c9ff70d537e46eb4a15d9f2c85e68d8678de5682695e'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 5'
|
||||
message: '4b5fab61e0'
|
||||
digest: 'fb390aa5b70b068a54d6d5127df6a6227becc4d6f891fd3f6068b917a883c9b66f318fddb6384d10be8c7af0d3132f03'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 6'
|
||||
message: 'dad95a4b4d37'
|
||||
digest: '3a2b40f453925bc3ce17d640757ee0e899390b4a8d984d0297c1bae6b60b9f2603bf71c323fd171011372335e5702e40'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 7'
|
||||
message: '121835fe3700b7'
|
||||
digest: '7bd06a94acba7beb3c5a9b9e8769c3da6691c482d78b1e5c7619b36630eba4e596d11c410a4c87006f4716b6f17bb9a0'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 8'
|
||||
message: 'de60275bdafce4b1'
|
||||
digest: 'a3d861d866c1362423eb21c6bec8e44b74ce993c55baa2b6640567560ebecdaeda07183dbbbd95e0f522caee5ddbdaf0'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 9'
|
||||
message: '8d45a55d5ce1f928e6'
|
||||
digest: 'de76683575a050e2eb5ef95ee201f82416478a1d14bf3d96d1fd4efd52b1a28fed8dfee1830070001dc102a21f761d20'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 10'
|
||||
message: '5c7dde9b3894d73cefe1'
|
||||
digest: 'f31b22115fa7178e78223e06aae870547ab93c6eb3c3910b0ee16e6106db55935d6c0eb820132a2078ece1067efc81c3'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 11'
|
||||
message: '967fa34c07e4945a77051a'
|
||||
digest: 'f8f24d81c4f8f23ecb42d76ed5d2b34c9cbc1f0a97234d1114804b5999759f3131c741d5768cc928163503c5f55f594b'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 12'
|
||||
message: '2209112ee779bf6d95711105'
|
||||
digest: '09c54bf533a26c7447caa5783db2ec7ef5e55752da7f2a2c4e360982a94ec1ca2cb6a157d34eed28de978b4145e17ebc'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 13'
|
||||
message: '20442e1c3f3c88919c39978b78'
|
||||
digest: '50bc95b036e0f54d833032a80d45c2ac38b3d29e9c7f72a2eb14781e9241d2a4b8e8dba6ee6f4c9e46a758d5712dbd39'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 14'
|
||||
message: '4d43702be4f0530319555d7f1a33'
|
||||
digest: '83c8f0bb762801eb26cc5115abebb657c18ff811de500b32b7a568a220a287e900b6c75224fe7429169fbd534cb588e1'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 15'
|
||||
message: '5e2a79a544af85f150f7a9d209fd44'
|
||||
digest: '8051ebc9cabb052cabe07e4023e2140808b77d25b07b96d2e3c22393f71b116c1a1e41bf62e57f73ff67871da7c93cf9'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 16'
|
||||
message: 'e1bb967b5d379a4aa39050274d09bd93'
|
||||
digest: '3b04f96965ad2fbabd4df25d5d8c95589d069c312ee48539090b2d7b495d2446c31eb2b8f8ffb3012bdce065323d9f48'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 17'
|
||||
message: 'bb84a014cd17cc232c98ae8b0709917e9d'
|
||||
digest: '85227ae057f2082adf178cae996449100b6a3119e4c415a99e25be6ef20ba8c0eae818d60f71c5c83ff2d4c59aa75263'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 18'
|
||||
message: 'c3411a0592f1f4fa698815238997db356418'
|
||||
digest: '233ac44170d9f452a1a0231622030b15c104ff8ecaa3fccdb9e9e5031fd5b4220186a8edd032849c8b93dc183a5c8627'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 19'
|
||||
message: 'e831b739e8eb9f787f63c0bb071ddcc9f44cab'
|
||||
digest: '91722d4b7aecc211bb8a5480c6855f3b71be4647e1dde0380c23afaa03f45c642606a24506e0317bf51506a483de28ac'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 20'
|
||||
message: 'b8a7bbccde46e85f1223237d9353b78c3b19727b'
|
||||
digest: '28ba69dc05e6e29de91924114d6c9fc7612f6d2a68b07fa001df059bcf98f7aa85389caeb966eaa299c79fe1fd1e40e3'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 21'
|
||||
message: 'cf391b8aabec6f81288c8b7b92843be23d2e847574'
|
||||
digest: '121e5ef697df491a53d7bae121416aa653d759a37db9d0b993031b18a0ef160ed98842a291e1ba2cea8b998bc5eee0b1'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 22'
|
||||
message: '9d65d88bffed764c286f34894f991600d1a67d622382'
|
||||
digest: '84b6e0d6a45329daf47a793418ed5dbde01336b4b9468bb69e5da61c42b691e6794e6ed0e8fb1b8e7d4cd3cbaadc520a'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 23'
|
||||
message: 'bab6ea46fb717f73f0628132a2b96be383774f1e5d8b6d'
|
||||
digest: 'e969aca1b50e928cad29a0d756457f6de8d7a4e589fd41e53a1e758c3b20f9b81b36bf098a49102fbf869651ca9a98b5'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 24'
|
||||
message: '8853b00e869764adb527a07b073c85a24e6c208ba47eef4e'
|
||||
digest: '09ad44e85ac190e2d1c3ceb4efbea10ded34d0de961fe4ee268132c48e38660e6cf585bfffb8f7b00b0fad1514312b63'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 25'
|
||||
message: '71fe1ba5d299495d2a56039c64032ec6263d437f55e3f5bedb'
|
||||
digest: 'b41a5d3b4af6d4b9c349e0788538e9a0311086894df7b72cf5aaf4091a7e039e4e89cc77a123474e6d1bac438e5e9f88'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 26'
|
||||
message: '4ebe07d03c93e849b4bbfe9f2d2294bf6ccab457f76d3f99cb64'
|
||||
digest: 'beba464d7065185587fad89bfcea9635bf0ab775c3eb8c147b5b2bd8601db6dba0590b50dd1068733f20dc68e004a090'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 27'
|
||||
message: '918ac0a97ec1632908489e5242ba284bc811aa7197242cf7226fcd'
|
||||
digest: 'c4baf6397a4c6e26492b63a4aab7dffdd0051d8f51938ac24cfd8dae2f7afed1a4aa2430d7aeb0be2a72b21a6c50198c'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 28'
|
||||
message: '97477f7272d8a89e38e796c533e9f8a8ae4c92ccaa5d907ed26a1a15'
|
||||
digest: 'd1ad524ebe908d7c5aff50e6cb780fd3a70e87c914a36b93c4e35f5b2cb03850b122b480ef8587d4a44f22467f4c480c'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 29'
|
||||
message: '718e0cfe1386cb1421b4799b15788b862bf03a8072bb30d02303888032'
|
||||
digest: '6d8b8a5bc7ea365ea07f11d3b12e95872a9633684752495cc431636caf1b273a35321044af31c974d8575d38711f56c6'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 30'
|
||||
message: 'd3b07f0fd5d4cd3188aead8dc8338de42056e2e8487eca51ec37ef2daf27'
|
||||
digest: 'adcc2e954c91db3db2d71d0dee1f030e723bee1a23816fe003ac5dc862a0872ef51ff386c18be6ebcaa493f32d1195b9'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 31'
|
||||
message: '695b9efe1809abd5d44eae957ddf9c2cd3c75fae2f522855712a07c639c0b9'
|
||||
digest: '3bb95d164d94595a1187f77fc26c280ffbb08e74ec7947aa3e5b38bec7c6f8115c4d880788c2402dbb3e5b94afd130ee'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 32'
|
||||
message: 'be01e520e69f04174ccf95455b1c81445298264d9adc4958574a52843d95b8ba'
|
||||
digest: 'c5cf54b8e3105b1c7bf7a43754d915b0947f28b6dc94a019182929b5c848e11441c9e4e90c7449f4c3cd12954f0f5d99'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 33'
|
||||
message: '98ef7301f957d73d4e821d5873e8a9b5970fbd219d5cf74ec2291b8381181391b4'
|
||||
digest: 'b2564bbb159c3aeadbae0e4a4437f7c5111020e9ad0f4eb508147a961ac22a01e1a26df046b14ee5e8a49d9ed22b8cd1'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 34'
|
||||
message: '873ba7f8b71517ec50297b21cf94cdb7a58abbb8829206f0d3f328ff8a6939ac1d1d'
|
||||
digest: '7405fdd557d2b5d4f65e9e85f508d3791495f1820d37cabfc8dbb74d7b41df8613d995c612d378dd88337e00951d0280'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 35'
|
||||
message: 'e3bd4bc3a60cddd26c20aa86364bd44f4a07f3302825ad0ac127881de4eafbccf988cb'
|
||||
digest: '199d5423a0e26438f4cea0081a89e0b6c84ca93f7c3120c8104b51c6edc04e0f6a203bb77d59973a7411a0efbe93a09d'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 36'
|
||||
message: '8716e4b86deff9da2a8ed55baa43582a7586ec9cd38ac3a933156158cd8e5b7887585e91'
|
||||
digest: '0d2306d9c0a8ce57bc7869b439376c07ce352a41d86ab6cf4a5654cccd5c724fe1b62b2c1101c986222f5264ab3fdd66'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 37'
|
||||
message: 'f8a503aaa25ef2cea25e31930c3a90db468cd3a862f4a93aab5de2777e82dc905cb03ee23c'
|
||||
digest: '773ee958fe93dfd1b73af24d27ddce33144a9249d5a671682a56df30d0bbf92b9327130022075185d396de752959304f'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 38'
|
||||
message: '669025175ea917cdd7a71ff4ec0c45bf1246d2a6f031c00b71de701e17939bfe92128b21911e'
|
||||
digest: '9ff6be3f02c7c5d0206f4b944c0843cb68bea8f9b7c8cc0b729503db5005c7cd5cb14e3457d8f5eabf733fca9084f16b'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 39'
|
||||
message: 'b35fb2262edfa14938a0fba03eb2a25d377974b11f556491a781d0ba2b3c0ff3e42749925fef8b'
|
||||
digest: '835b05a4bf00c2594c3c8c13da6c273a0d9efdea0da72b71b19d326bf5ce968c2e577a7d99fc0f985afd23b46423129d'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 40'
|
||||
message: '9d86b45df8d7dae0cf6b0bc208666ee1163a39e6116d6d240c9dc1c3a3c1db1dd3b1c6680fe9a196'
|
||||
digest: 'a84c469c24696f81d7df4ee8cd76aa584f8c9960eaa9908d3e3ebc5eea7d0b50afdded39deb94fd59323a21a6539e93f'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 41'
|
||||
message: '414f5619f6dfd45853bbabd224cc305d77350ad253358910a74f3a4381a9b86680b3c4068c089849c4'
|
||||
digest: '848d481e3bbf5dd726f625cf6a444d995b36262c9f80d583b77accf1707e3f49bb3dc480a560694d769aa1ce65d69428'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 42'
|
||||
message: 'e2658324821ae7b0faa0cdd63ee9efb9fcbe82092d04696feb3da92c82521dfdc98f6b41b3ef365d219a'
|
||||
digest: '3ea5d0799f1a4dcab9149a40ab74bec9c8d76d8e392c1e63e080ddec2ec535f80be9f00927be281ec97ac0c882bb0bbf'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 43'
|
||||
message: '7e80271bb5f2cc7ddae4158658e4e8d06e04a39385da0ecac1cb8e91d68a9bd21ddb7320e79d10e3110758'
|
||||
digest: 'fa00bc0359a642dcb3559656094eb2fd4f63bc57f0d34abff26df5c54cc63dbeb4eac75905296e7fb69f871e134083f6'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 44'
|
||||
message: '43d2828e86f7856b78c66cfa3d602387c290975afd021a8b76af0918069cac35dec45de3cc52edc4ba14432e'
|
||||
digest: '6c9e367e066032ce47ba2575565932002cc786f533c5551656abfe7391e7dcb5f9d9e047adace23d32f8acedfd0cafc5'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 45'
|
||||
message: '3f49bb645cced7530b8b82e6cf07fbf670f7ef0ba0583d16debafc639bdfbfc99b8417249f7f5a05410aa3a71f'
|
||||
digest: '2b301a14647a67429cc3e7da02c4093a739640f7b47a305251d2855e75e09e60e262b279a073077d1fb6d0f04788f2b8'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 46'
|
||||
message: '31aac06a59b74bf478617c1637fa6c5593df168b8d58b1e923bf3e3d80e55d7170b16454160ab29ee1f7412ebc05'
|
||||
digest: 'ddd245c9b29ceac60506fb6bd6e8037889cb73d6ecc669fd129060a8a8f58971ac572d3ec9b44404f81381d0fd35a649'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 47'
|
||||
message: 'c10b2852054d8034e07906c7fce3ce99402321a648bb881f13fb276afc224c6aecc64800cd767ed2429db94b95a9c3'
|
||||
digest: 'a44640fb4ce6dfd4a10290a0aecdb453054a9b54f2583e97bb7dc2b005e5fa2b4fda17b1f75902f51c18c0caad35833c'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 48'
|
||||
message: 'b1eeef324b499f19eba322215fe3ce19c9f000b698d2b2dab7145015046cc86d049ee15ad59dcd1564f30112e06444cb'
|
||||
digest: '38742d18bfa6e918b888d68d1034e61f65dec0759172c2dbf08cf1e132b217eaf4ec29e15db7f4b07e08a70cc5662012'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 49'
|
||||
message: '790dbba09965c9774dd60a32e010c50d6d518968a220141dc33e7410f2da6c08ad0419bd9864d5327d2c5c44914b2e83f9'
|
||||
digest: '9174958bc8f4ed4731eced999bea2f63032f52bc8c46bcd903232f3fbc5046f0d6c203d43a078b822fc05101404f2635'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 50'
|
||||
message: 'f7b577f1396b23c27eb637e53d3d92460270b001cc612fd3b4d68bcdd09c2d50571ea4350636324cc2428a087e7bd8785f82'
|
||||
digest: '80afe111e44ad9aff9e39c4cf9e6b4c520072b4550e62b1740160a04f8d530612dc098917a556b44977d0e73df518bee'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 51'
|
||||
message: '7370d9b453936955b9c9d336f4b283237986232de007bf412fb426ff5b4093c80c428c19a12e0b187484dc6d5f4746537fb1ed'
|
||||
digest: '6cd29159820d34e5706dd867e6363758d312660d4daca8d2abf677f234746e97a0a6224eb054066a0b74e18c70965368'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 52'
|
||||
message: 'e8620170f0f39328bdf8888148cfd17730f314ea68d8fea02d16d98a3cca61484139d3ee92b748091dc841dda08483f1184025ce'
|
||||
digest: '29c408a6a5045f397b56dfb5292c7c16028c63f068e699b86a891ff8501208ec9398dbaf463c00f39af7b2cbe45bac15'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 53'
|
||||
message: '75d4216bad77943bfe82be216157843b0da0fd16eeee847153a00b43e707b2ffe2c898168081f0bdb3af58f214cf67b920c385aca1'
|
||||
digest: '0170357385a20865a8d30c2df39406903ff88c7f70fa1a7a5aaa86711d64046c432a1b139668ae5abed637d1dc4107b7'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 54'
|
||||
message: '2fa90c2210e3096caed122b74eb9559977120e5d9a97eeb3f99bcba6c19cf8cf791ac6c8a0a94ae49246611dace7f24eb05673a36b3e'
|
||||
digest: '6c2ced3fae94dbd92f4170b63f1ff6fcd8194f60937b22b4f3c95fc9e104b77148f9bc6c16a890de86d9ef1554c96fa0'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 55'
|
||||
message: 'a8de55170c6dc0d80de32f508bf49b7046aeea4b975a511b5ea3dc853bfa4b1e0138202d6785f6b3017914a86f824288d586dc0e8bc924'
|
||||
digest: '2bc3b10c148200f7919b57afe1d7db773ffd235e04fec6897dd94f13ad9c437ef50900a40937f82a39daf2aa2b3dfd68'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 56'
|
||||
message: 'accd9d05fb7ef3043470836137554af117440b3ccca7a280285494f90dfaea60dcbf40b230271932cd3875b1d3dca60d38865ff874180efa'
|
||||
digest: 'b9e02df93e9254180d6a15288d77088b5a5ce517644109b4e2532be315f08dee43491608a1127dcdf69397406e23d231'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 57'
|
||||
message: '32b835c180cc4006c11a61c65b03c099510e1d4f0a94b63d54bd6bd5a8ab207ab0f4639206564edc3fa6af03280a67744f68106dc51ee35723'
|
||||
digest: 'df97a1c5dda6f9dde749f213e429db84f0dcd481d43bf58e6142968d629ecf05b262830a7dac87f67f4383975f3e821d'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 58'
|
||||
message: '9409f9efadbf190b253367629f8f368c9d5ac262e94ab86f3559f9a1fe1a9b44b64e313121b34d43001c430bedc62fc586ea398acd8f17c7cfa2'
|
||||
digest: 'e1a69388ee6b6d234108ec29402cd0afd74957d990c7bdb544cf11e8eb2ccd170b6b5a74431be70364d7a31b926ff53c'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 59'
|
||||
message: '289586baf8daced50db14c936529a0a6438eb5da8d3d469172b6a06f4ff3a956d4f9219563ac285cb8e70074cfcc152c02593a97733c36f4a9e97f'
|
||||
digest: '509e996c1e11611c243021b8b78f2ad90c5a9263bbf35910db7c8ec102aa7c518066fff8ce88562fec2cd6dfe04056ae'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 60'
|
||||
message: '156530cd6ed3baf1fd7232c7ff204f3c7d4d106016afa3bdff3786e84843ec556115626fdc84b2e874f1074e4f7d53e08079ee9fd01f80a8be7f20c0'
|
||||
digest: '7b8a598029ca0ed475a72c0644ac81c63d72fd51305dada07b0ab4a29e47422f59e12643179269ca3d7d10446b372b2c'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 61'
|
||||
message: '30655a6b5a5965db992e7248d24141055e988d726abb8e729dc5c21ffcbaedbc0b1b5fea35b8751f6ec6625517312fff2234014176269b60959723787c'
|
||||
digest: 'cfaf443e95deeb3cc1910771a2c0692a54b18b3633dc5414e71ae08877f0804818f67f7196c52e26b762dd12bb7a86ca'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 62'
|
||||
message: '345c3c022e20144e135604078762ef5c8a8f038cf1b1d6a91709b59dd068396a9e971ab628f74886e765384a23607c1a1e6e973f8fbb0ff55104c46f5db3'
|
||||
digest: 'bfb1d5ee3a0b629058ecc521c706c2f9241c48cda3dcfdba660a2601d832a7a872a2bb840f3b98d21c37e28f9041a5b2'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 63'
|
||||
message: '0b94a0f43a92408963a59ded01a9338283a6ff1bfbacd9051a0104445c7f041e8037afde3b5a87d22d5a4796144cbc944091d6cc47b5ffd1f997ab1496ca31'
|
||||
digest: '07a045c9590e9901d0598e604c4649554a823de996fa438cc81a634344eeb98e5f3c0c234ba30e2285a4d7ab568f2610'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 64'
|
||||
message: '93035d3a13ae1b06dd033e764aca0124961da79c366c6c756bc4bcc11850a3a8d120854f34290fff7c8d6d83531dbdd1e81cc4ed4246e00bd4113ef451334daa'
|
||||
digest: '8d46cc84b6c2deb206aa5c861798798751a26ee74b1daf3a557c41aebd65adc027559f7cd92b255b374c83bd55568b45'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 65'
|
||||
message: 'bfb94dfbe0d9a509b78d164a722050054dad91c9a8e260545d037eb450321aac48ed4459fdd8a41572bd6c9c84d18b6ec339247482cc3ee52a1bbd6bd4ae918216'
|
||||
digest: '13af0be02986ea3176e8c65534ec9f32c23b53c93a73b15c26b9ecbd8a1181ae184a372e9f5e0596cd6606849aeae8e0'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 66'
|
||||
message: '1c8924a16fa7c602aff5ee961798bd44fe53798bf44c3d6b0d13ef837de07377651c1e94ed236eb79349f86ac31ba151a7e711c5407e65beb63824f6ec39754b58f3'
|
||||
digest: '5be6482851ddafde582f2804071a702ae39bacb688741b7c37bbae99821ce4d3f47d5b097fd8eefa0ef9248a34f5d3ce'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 67'
|
||||
message: '184215145da49db417e8bdd573d6282de073e674c3dea86b6c78591d4947f5655a9d9eb0e5f4ed046b1d8642da9aefa80448a299504160a1b000c9b4d3c62ab69b3d96'
|
||||
digest: '8995cd7fc0956e124075440686beece17a6256b282e7988a0c998f790e3995c974383179893477bcc32d1f114129b496'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 68'
|
||||
message: 'ca7a63adf41f4da33142910c967706b5c8a093350eb3e6d3aabe69a46a2872f47a39bbe77cdc1160daa450225b0e8e36f506978ce3ac9ae5f75721ef30da46b28f07242c'
|
||||
digest: 'b89cc12b11e3afa58908580c47b25407abbf584f8e8d4b5631e9f450464c7e53cfd7e9f9d3cf35e587a6f02957ce4c28'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 69'
|
||||
message: '1da41a0af202b079521deb6109e312c2ade48544d2b498c07e91a102dd4650ce354f3f201b3ecab8e85e21d667959b43d08f4e90fa18dca2ccca8f6ff5e9a902dc8bf5c5da'
|
||||
digest: '5c297e20c307aab7f325939fd4e2883b034fd547f1dd17fb6b97ade8b148e06ebbf3ff60cbf469e4933d5f48f0166cb7'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 70'
|
||||
message: 'dece42c8849be40c78b8de6da96c2a8d7e940545b9f3f39aa1ca03ec60a85471aa84d8e29f095874f331b90a4c157da9eb048d2c8fd235399672707366c766f10bb833f02183'
|
||||
digest: 'bb509e33e9ffcc4c01233146226ee9364cdac5658132460a76edf617a035b197c86434ee889438581458102618769382'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 71'
|
||||
message: '952008ebdedd480449bb96a025576c5f617bbb8307958a010767e0d736ffe5a196ea4467d8a5d3ba1f5476ff07b6410ae659dcef520a2c14e3902f8b399a289f41f5fdadb502dd'
|
||||
digest: '9b63d9145bc714a8253dcdb8341b2f5714eb58b9d4b22ce45aae07f51297a3dc9c5b691a8a3cd438dc5bd18be400af21'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 72'
|
||||
message: '100132c315bfc9c4fb93023f5d3500d7208a68acb4d2c63096232c361a161c4c67c0a74bc3e4d72c11664b1d970321d405401924b3a0f6ce2b1a2899e7caa9a55ce725fc37f55d6a'
|
||||
digest: 'b6ca04467ed3e623dba36f2e0248cefbe134cf555fdc14731175eaaf08e244ab0b15fca2f173a0ec98feaf359fb84a11'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 73'
|
||||
message: '99cba4019f5478789e674e08fe5d6ceadd698b0757ca39c605457c22c3d3b8ffb797d2be8f12960f099a5606b908d47207b2636a779948282de3661bb08b1b37ee576590800a492730'
|
||||
digest: 'e5378c7c251ae96f0359a30b3134fd77d61d0db68c42a1a2aac293195a596df42f677e6cb98abec90d6722baac63fc86'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 74'
|
||||
message: 'bb327a0bcb2574df47080e8c0d8a45ee1c0424ae0414dc0a9b8717d9f27d8ac987c7c9ecbc946073884d1fb96dbdb583aa758186b16fa429dbf15b8d5bb48cca71469e7ce0ad8e7fa14d'
|
||||
digest: '0f75e65ff8494ae28d9a0a2e65959653275fc34b2fa27b9e10faafff07c45addef3b8f25953d5a2e54e31ebe6d429d26'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 75'
|
||||
message: '7fd9eeb5ff368040d299fd17a943b21d65deb2eccf6128d18a33eb174693538935374c32c333a867821dba08636f20022c2ce01826c7b7e41640ad186f90ed0ac647d47086744867e5c54b'
|
||||
digest: '007251a2a577add048b1edc79d96c7df8fd5b5fa0d7264f122e4cb54c50bc316a8bc5f4f9dfd4469e29e9b030f563a6d'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 76'
|
||||
message: '7ca9e369e82186984d5fc729e111a7e5d8ec19c5d74e13b5ab22e4993b05c88ebba6ba72237389a6e0722e12c96c5d6a54515ab00ad80efb38665a76e831abab0fa5cf020807078441585de5'
|
||||
digest: '3ee8c4184de9ceaecd0d3aea16271835f3d45c873358c93a515539c38e819414ea63b08d0a109346793d5e0f703125eb'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 77'
|
||||
message: '5b4d945d55dea22e37821ec396476a4bfb617d2f392ad93afe67bcfda9cd9b725bc4ccdf516a83fd71dbff5a22b005fc61c58e471240bd2193ce13539730e63232f70f80308be48dab7266a1dd'
|
||||
digest: 'df82d242e4cdc2eb40bf3db6a56e1aa0a66e553f1914bedc65c8cc6ad9564b6e85df59f4c443cbe4e0aee05986f7d690'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 78'
|
||||
message: 'e865f4a42bbbd0b73fe275b8ab90d3a9fb74ec5070192d38f60efef9564498b9adb716f31d50cf77c20ae4b2e85515307bb8d95fbeb9ad964001ac550dbc60cf213fd8a522edfaf54e5b1b93b2b2'
|
||||
digest: '091fa9ae2184e2268ef9ef23c7c809efad244536e00aa9e8b3a6c228d90e31da051b40f268a13bd6f62e69c91ae8cd2d'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 79'
|
||||
message: '1d408c7b68e168f41bb46f9b2e9c8b04f968e4080252546814cc1cb2917dd5690886a9600a09c2673aec0329a4daf655508b06fc1646ef3bb3a472191d964db214a96a96fa89576ce4c4f6dbf1d176'
|
||||
digest: '7e23472c03431925f3b4559d886e8d5d837b3d39b8efe1b7a91e61a13810c4dbc2439634d7c6ababfc66e9b18e6541db'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 80'
|
||||
message: '54ae030a4e27a05c1ea4a12e69c67544af9b4044cf157dc8cebbe8b2d49f9bc0779077603c90c5c55b891d3ac33b87b65e79e1b19695813718191b3bd8b7e42d5583f7cf1e60f84495b8f869f3719969'
|
||||
digest: 'cb65f823585773cb8802b6339182f13752a82864c898b445be5a11a969657ac2dc4a3bbeb87ac0abb232a2b124171096'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 81'
|
||||
message: 'f73cd386f73d0c6ade05771b33117117c602e52693f05b47e90032eacc39295f9793258fe6512eeab291baa0be222e143295a28e8697e42fa27ec02b44217f32a1edae2f4f35213562ca37b6d6cc5ef72d'
|
||||
digest: 'f665c4d17a83d65a7ff16bfce279b58558250d76af68b8eb943753e411a57ceb31c1a131e54bcb7672584416e3d5719e'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 82'
|
||||
message: '1d259612e6867e7d788c71d03c5136864ad6d84f24eaf913a34e69333116f812395288d4dcee6665e6d7dabd005ffc6327e3ca305cab78569d1107a115e619fc90110436317925066726774d1da3639c31a6'
|
||||
digest: '5dcf512e2b93d6ecdf7c3304534554ea79d22392e59bbe90df21e978c9fa3b34ff82e6dcfe8fe2236aa4af4e662e2a9d'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 83'
|
||||
message: 'da8734414c45fc1d5a75a3cbacadb1bfb523d6fc391f882d0db0eef21f9ffd78b6a1e14cfad09e71b65cf7b05d7e8f2f4bae4e454e16068d65465639c729cfa92738563d37edc9676b7be604ffbc68ec3b6b72'
|
||||
digest: '8b328a31adf67dc7aeb864a359628410d5814a2f0cc683303f61432ce32177e1f538feead7e5000343916c7042f8b3cd'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 84'
|
||||
message: 'b228c75903d80fbc6d1cf629ff1d14a92ec4bf0e121fd97bd306ed265efe7a5d5c5d8fc764af98ed6f5978f88d7cd8bcd71cbef6a58261d201de3cb15b3161287e6a104cc2cf882d839f1da0d3f68b426cf08ab9'
|
||||
digest: 'fc92ba4eac9a1bf120a7b6c2cc30335b9615b1a98e55d14854ff872966e71040737401c6bc08db5842ceace14cb7e7ea'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 85'
|
||||
message: 'c90d473a6fd30be9a98bf442a9ad65a697d4629c33cd517dbbed02710fa8ee991360bc8e557b0a0bf0b869e6b0c3a9457607580edec3859f2060c9c0340289d53a5d755918ca54876599045a86a9bcb8163795ea8c'
|
||||
digest: '807582b2520e990cfb74367343268b9148b2519b9e7cd9182edb3db9ae7afebedfe8ca118130e2ef9d31af9081da8222'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 86'
|
||||
message: '6df8c5c28d1728975a0b766cd7de63bbe7f48c3db3e6fd5a4b8df6e3905cef0351f3d973b4f2a7eed80b0de5b85c877353fb9e930ad2679149ad4cbe69910e68d5500b096c5abdbf27d684fcfcf1a57f02769283d5a0'
|
||||
digest: '7bda57d21a4434aada6758e282e612a4c0f41b242f9c790804d5bee25b81a821dc6f2a0ba56f1b3704802c9a6e153d85'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 87'
|
||||
message: '2cfc76f88cb6fb90927b69526ad5f03d6bd335f4f75b52b6a3c21e8f989ab0d03acb1ebe07e68a87c1b5607acf17d976e10ac4a3d30a8561d49a5e7ec720edace9f5f632b4bd63e104f4894a79caad2e1c31c736453485'
|
||||
digest: 'e16670ea837c259e418d3c0e1eaad4948c3457e15b1573056e24da25bff5c66b7e95d24c6bc1b8d6c2b812f64adc9553'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 88'
|
||||
message: '3f05108c2f33d39b3aa9e73efbad4b011b4e9e9fba409b7611e7e03956b2f3e5e0aa86f68c4bfada5f9223a66d574b08f9dd797cdda8f3c32d8e01921711f4870dec676027ecc56fc2010b496e95cfbf071c820f21edf25b'
|
||||
digest: 'b272bab680f3ab27de72d94df384323f8555f1d17facd2588ac8648def2451f82f9b99c05ead8316fd181a2cfb97483a'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 89'
|
||||
message: '1ffbe1aff0a1e7fa3e68be31a74612a1519b59397e7007ef61fc015f316d55b57be528cebcc2f09a2f22e3c5e4a6ae9612776b17ae87cd763c1a9eabe6846c5bcb347ffc99f10e3b5e64b29a9bd71a5e9b3c01a802715de2a9'
|
||||
digest: 'f08bda9d6762607519d53fecb0bffbfd3ff2924854833a759d631e910c42ca86741fc2e290af42e94b94898609b91390'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 90'
|
||||
message: 'f755d6b5642378f2847893901d9aa91c54a4b7abb97c5c7184063e8f1e97aa2de4ad7ac927dd3cce770c906921e2d298f67cf9844e61bf104db803b265b86b821c5f4d901067d07b38764e3f6c95fd4f28e3cfe48d8a9694a8f3'
|
||||
digest: 'f85e98ea054455242280854e97c4ed399b85ee7bc5c5fc3d62910a76f3a9600c3d904c832b70b58d7d998db8dc978135'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 91'
|
||||
message: '773577f3a642c4f13b1cb1f4103e9f6b2da86268a52f449cbb174c8349e3c0dc636ce85c373115a337eee26f7b70ba1060a79a1c76fd186399e6a5255db80f83b0be4a34ba876f7908840553ead380f3195507729d067ac2ee8eb4'
|
||||
digest: 'cc27869cd7e63695d19082446b068b77dde4e8604f8c0e9ce20a1b71aa9eff1460f32d5a54476275bdee8e7621491f46'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 92'
|
||||
message: '651589927e17e1aef780690f3100a377f0179b18b31fd5b4418c84038573fc559b496a782beec3dcf6e9faf5aef676e10bbec34b1be5888fda49b91e02890d2524c5b369f8a54175f29dedf8156fff690cf186ec77104a798315033b'
|
||||
digest: 'da846042fb908eee5f5defd1055ff3e57103708278d379a8681f58bedc6ef89670b9f957c4e0edcaa42dfd8cd49df6ea'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 93'
|
||||
message: '678652600eee42580f73623412e9c011cc02dec4d4cc1b79b27b6f9939695bf2185b2012ab0630f317d2e2de95dd69890e430783e99d7ed121c7c8da9ae70780b5aabf9022d1435cf5ed6da6fc6692c050c2b5f22b24fb1cf9135f9cb2'
|
||||
digest: '8a6ae41c9bccc16eac4860bd5fa91205a86fbfd09692578f7f36b3c135d96f9e9001c192dbeda975f7375bd43a23ba68'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 94'
|
||||
message: '416d3fb7b401fa5e78cd96d479d8860df147eef03adf13fce1c61131fb89cc2ebc63289745bd7db9bef14571a55318496572dbe52b9b349ef59f406cecd68909f364325380bb75f3aa62503c84f47a55aa6b9c9b199ebe414409ff3964cd'
|
||||
digest: 'c5f20542e0c0ac1eb433de6229fe5baccfd4502e2c2275439385efda6374a1d0fc50cd9bba4233d470ad91a3356ea315'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 95'
|
||||
message: '6f09e876c0b83c9934ffb777f006338c5142a31375e9b21cfea9a7de12998c4ea6708ff1fdf5a8ee6bb67c675ffd8209a10064e2d758a8734eb48f07f7cf3d43b09f1bfdc5d07a52b77079f23cec28bf863bed97c859276df7f7129fce71eb'
|
||||
digest: 'b3c968f3025f87dbd5cd3d364bf673e62827c35889532431becd87cfbe2cc75b7ef45696d19cd3452d0e7c2b69d09544'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 96'
|
||||
message: '0dc2b226b3431c69a76addc018fcbda22bd72c8ff01ed6549596798bd950f361c489a09c95cee2dcfd6401208ae6368d6630026b417cc4718ccb8b42e8872937de66895fd09142c42f066bf0ef3ab2b03803a8185fb65fc7148c376ddd4bf58a'
|
||||
digest: 'aa645a4f8f602411260ace24d381f3f5dff0000c246343eb528e3dd027cd743815737906ac5c74ea83c2755e56b99509'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 97'
|
||||
message: '8dc71c84c8772753c86ab6afd80e8d1df9b0d7e8d69ebe67fa883a82412c26738c3399cab95573b4d3c4367c85c81852d5a6564c0fc7caaafe16c05e62aa06cc9fa542ceb35c88fb6ab82c29d5dcd530f807d3f1c3bcb3974421101d1aa6ac112d'
|
||||
digest: '12239813097124e6248e7dbec985a6a25f622b1d07295cfcfbaff33b847df7fd94265e439fa535f3becbdb576922ac41'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 98'
|
||||
message: '3df3edd9fc93be9960b5a632e2847b30b10187c8f83de5b45fcb2e3ed475569a8b2ed0784348f9dacce7b323c6b65071abd8b32d1022b1e12787bd4989d3c5ac329d576ccd7608dd336716532e9b4c7f825826fb2e343623ef85c6270619bf5e3b27'
|
||||
digest: 'f36590f5211a9cf84eeb0a3b2e5dc1164e813191cda7cb883f3f4a074605ce6780cf2f1a105658706fbd2829db8a2a58'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 99'
|
||||
message: 'ced0ec6500cb891e6433d104ba5b1c1ebca397f3a5eeeaa0f0561729621ea50d4ae7ff1d0827178dccd84e4ca06d9891a90adbb7a9f4994ac947cf6296e71d2f49b826d64b123a7bf86f339fa4679caddbdf19cfed7d0206aa5f527a6b0cc00f52aa2b'
|
||||
digest: 'c2c2d7d65d0b9108648e3233d15fc4e4cb62ed8fee9cdd18ab44b8486e2100fbe45ddcf74f46c15eb77fb1c893c12202'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 100'
|
||||
message: 'afa4a2c4fbaffe838dd149c78ea7851ea9396304b41806a093a90aae59c0c5bdb170cc9a7d22b90cbce52cc1b105108942df20c29ef3a913223b915e7ebc98ef135adefaa0f0a6441ea05920e868ce9d1ff6c8fe4dbec06a4849e5e55ad0627f9e09dfcb'
|
||||
digest: 'cf6ef91d8567414f5c7f0b1f4ad09a976afc7c8327a382fca90f5a136b19be33100a664390a377f8d8a3015fb882125b'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 101'
|
||||
message: '00f65a485bfd381113d6e79bf9e0d5e518c891988c073ba198ac3a20f25c2c81619723e88a3c0ed3075075fbbafb6a7b61d3bc336a5e6d6f08d166c4861e6a3bdc2e49b2806b567e7e821a55cb674a6cd699f7dc61a7054a8ff3dec73eb667f59644346be2'
|
||||
digest: '809c6b5d41da7cd10df90b02b193ac7d40cf2e46c139e9dbd208a988da2b25002cdbad1db2ecc1322da20b7d054e5fe6'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 102'
|
||||
message: 'b9ce382e1e82a873cc444248a3008c2cf64d18759057abe8f91c9d87f5dc83aa4eca0c51d30829b9a1d2712da1fac31f52942d77c9f20c2bf6d3751028d7d4f0d336d3dc92b27ec368caa4444b3180c1e37e98b58f25e647a9a6361f0b04cf78d17955766168'
|
||||
digest: '18cd10b3ea907b3770e8eb91c974666e2da2525afe7020b872b3ec6689e5e1cd0059dd4fd49ce44d75dc4c8430c322d6'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 103'
|
||||
message: '6778d82f3a98eecdfac55ddeebc52476a070094fbd65831801fdd60f837d80d23b90d472c5f4e5ca6273a50f40154ea8fb94013f6310ad18800433a1d379c84bdf799a99e8c7b676fbcd29cc2ed66552297de7a6e565179bb42b70d48299e0925a1d72ca2c792a'
|
||||
digest: '71f08d9333df5cb885fd23d6cbb1db84f9b55908d069df50fa4795cc713a18439bcab8daca078356f5c75a619f2f8782'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 104'
|
||||
message: 'ba3a54a77d7c2b8ccec6d53136cd48827c87acdd1cd86ad1f56e862642ea2e1dcb4093f85d60f7bd77160738462e6c3fd3dd9d3a7c5cf7e2a1d60f489f84471902179f21f656ce0fff089278ea14441e04e7af71891622565f44c428044728fcc686212a32a5d809'
|
||||
digest: '3cc154f0542d8e3cacf9d79f231416816178a7ef2275fb257a48a2f763ffa2e15a33c27b970a416a057925aa0412d268'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 105'
|
||||
message: '7eec4f4f491b4eeaeb1cdbdb95e9511c2872372bf64a1f61cda1cd8032729c8beafd1edabf78036d80023c814ad8606106cb4e7f33f214c3e69c0f230e885474fd594f7f2444aa581e0c70ebf13073d89063eb81a43c5f608b2fc99fa1bcf5e2bfe62a6802e70c52ce'
|
||||
digest: '2f8c5682a07438043e55f0b7759fe7eea5d9bdfc8b0f89800ebcf777bc05a941ea7f3cac45d4659de0f505d814590b6b'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 106'
|
||||
message: 'f3715b9e3ddd7862e15ee87aa23f1aaa0580591e55cff3fee9b49b42aa0c0cc8cfb8efa3eb96ffb72ab06b83d7b47b3d22a5772421cfc51214005150edf532af10138ad45758add459908601eccc3703e810002a2e4c6202e98d84281475d55d3de9f3d98809cce1f665'
|
||||
digest: '04e7d55b0eb4bc3d3a21cfd2941dbb4dc44706588967186b40da54902aeea97b262c97f75e37ebe3cd60a804e7b9feca'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 107'
|
||||
message: 'dfd7d792e162bf7a889109550a0fc4c415232af0c0d72dcbc2595299e1a1c2aeae549f7970e994c15e0ab02f113d740d38c32a4d8ec079cd099d37d954ab7ef2800902cdf7c7a19fb14b3c98aaf4c6ad93fe9a9bc7a61229828e55ad4d6270d1bdbca9975d450f9be91e56'
|
||||
digest: '08e5ef57d0c2aa23edfc75cfae39e6bc1a43b5db08b2e27bc9823114edf760367db9cf3cd9c3779755f6d39e219b7079'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 108'
|
||||
message: 'ffbc7c47f52e69f5c667f4ed578b46ff4592048f789081f3fb39321d0aa4627a6d4f261905649410a53a301c231fa787ae55c04f615a8f84196cecf2844d23007b44edd892649fc8ed10a2e855bf23fe8afd0b9edbb33296f5a7cf89f94634d9d1a2b8cac3b7f4e546f2329b'
|
||||
digest: 'be10c7baf94608408a0accfbc8ce95e159d08d8ca75dd6c273f935947a7ec3463e10a58d3ceaa0b2198b0887a3a24a29'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 109'
|
||||
message: 'a39f202d866e8e96765fbb53b6772537dec043322f4a7475247036d7495c987850cef2a46218d3fab36e3bcd595c0aca5e98b9db14fa484ca8c9772dfa3839f7ac3066727a50b0d5c933d82f82f1220720e8063f08bc283f199c8a4f85c70043df4fe55e751d0d71df36fa43d8'
|
||||
digest: '3b2664ccb555a1b1f3ec996860146ea75ef7f3bd62028a19c26f63339399f4275a07f3c064d34766ebe8e4dd532f6629'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 110'
|
||||
message: 'b2c8261853e2218dfa135cb5387810352b8962e94e9fdc8695b41e7dba6ad122d14fdd0d2360dcc039ccce8b37fa0ead6ccc85bc26261d47cbaa78b925c6e380fef1856fed31dc616fe16b2039b1ac85cdee4ce04c0497998b41321868db08e35f358606585e0bb8c3da9a3be7a6'
|
||||
digest: '45b286f49fd05c45c921b7bfdbe2cb024441c372e07394dcccae0de834cd541f13a79dbb3e5078896e88438542bd2f12'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 111'
|
||||
message: 'a04f390a9cc2effad05db80d9076a8d4b6cc8bba97b27b423670b290b8e69c2b187230011c1481ac88d090f39154659494db5e410851c6e8b2b8a93717cae76037e0881978124fe7e1a0929d8891491f4e99646cc94062dc82411fa66130eda46560e75b98048236439465125e737b'
|
||||
digest: 'e7089d72945cef851e689b4409cfb63d135f0b5cdfb0dac6c3a292dd70371ab4b79da1997d7992906ac7213502662920'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 112'
|
||||
message: 'f419494c3c6d0727b3395a483a2167182a7252f4fd099c2d4b71b053f94bb8b3adf3b51e8460cfec084ce9415c95798fbae4975c208c544645b54c44d2b97f2ecfce5c805be61f5ba1d35dcc07afdd51a87baa990506668cf710e18be9b0ebf943f366fa29c69f7a6616de72a3353b66'
|
||||
digest: 'aead8688c58c6ba4e9cadb4756b465dce0fb06f1cfaa478197f2ea89414e47e9572034adfed160703c79b82b3fd7ab78'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 113'
|
||||
message: 'aaf7584d53006cbf2d2040e51b7feebd2bbf1e9f6d817cd8062a6a9680e7f10464eefeb50b07cb46b14b9b3fcb2caa3b9ab664490115d5919456613bf172b58c5388fd52646a5783535b88212717ef605314b70b8a085024d4ab1fcbe2be74609e4cbdec0730fabd3cd77151d647a3767b'
|
||||
digest: 'e6e79d8c61d0ea9fc70dd4dec1fa432849c3396e717b170badbd87a4c7974efc590ab8c1183a6232beff14534f004b02'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 114'
|
||||
message: 'a467f77369730201f2812204fd63ad0d2757be580d937dfeb221a06b21ed3213531d936152a0c1f09f0ad5fed19fd11e80ad982c61203e86b2508279d91d99fa483e2e97a3d6a6ad2548a8da404dddb58344f4bdc1c9ea907088885e4f532d9c4c73cdfda43c3a9e4ce5a2809096593cfac1'
|
||||
digest: '5a7508c2cc096bf65a4d4d337aea22008edb9a3bae869f94e09fb526a52c3368e9b28576fb950f078b7e43b5562120e6'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 115'
|
||||
message: '01abc90e9180fc9bb8ea67a405073ed6848bf33048076566476c55836bcb19d3e55e9400c5cc657bc7a95f1d703c390f5a8687e7cd7fe9138ea3837bfcadad6258a3eb8d65121fa8319bfde532aec0e694961bddd2b673f284124be5781100f40381b6ff99db92ea9cc82a4372e53924dac398'
|
||||
digest: '96b209d7cb2c2033b38350744767fa5c253e1bfdb99fe8418bff83804df02248140fe3b77b0bfd4a79b51f70405a434b'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 116'
|
||||
message: 'b555d99056362bfc2bac2a1bbb71ba112d644e50b82b015e5a1ce3d9cd5e90b8b74b08d32119baa62abae251fc0015e400051ada4ecafce3681e5de727c20d47f5cadc663d46ac682022ca396a4b7ed1c413e0b72bd7eec4a0dfdc2a2185abb5d99afd50940528ca75ad89daeb9a1b61e15747f0'
|
||||
digest: 'abd39f79d72c6cd2e8e130f3603032fe3cef4177c3563930096df1f10b87e79cd4e2059cf1b9f8252184bb26f659a5da'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 117'
|
||||
message: '14fb01ae9d6015ecb3e56d6ecdfa4bc0533186adf8457f5e4a5c57c687895f3db395d06ae7ffbd67ec41452009550dfc1878eec0df2eeab09e8665f7e59f9148a86b2bc695b36521a55b2302f2e869aac83f14d6feafc9e587322c3c44f052ea1c0578884f84f56307bc6dde31ba48118a0f62b6fd'
|
||||
digest: 'fc9b9a95a8ce1c157720cb63101a7594df24f4cc74baf735b0ccf6abb925478ad507cd048d30cde1c788806f43ed3a81'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 118'
|
||||
message: '11ae0cbfee7bb3df90ce585f09b9cf8ff5bea69a68eeb6c22553f8ed118c9a61e7b752cc2c94f38766e63e1b891dfa05b23347b617d42fde3ec17eea6e76d3cb640bf8fa46586fb9dd5c4d9bfee04c4649571b781709f848ad7081afb6e2c746f071a551251050fd5df72ee65248ecdc24f2cbe74ed5'
|
||||
digest: '3214b5feec925059149fa852e3ae285a6eb377df926504e2f824572a3aebd2050a20144e7bede7e7fe238ee83e69f72c'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 119'
|
||||
message: 'a5c4a47a04f4714269d5d922ba4694060aa2df49193720c819fac93bb8787ec55a107ac9a6602f0045fd2cc8e66744bf863ced91eeabe60e7d2c1d80276ecf3bbe91f1757096cf589214f3569c2c48bd74be7f8befddb28395814780a47c180a58b0d0276a7e9873d682f473e27de7275c925ede23b6cc'
|
||||
digest: '6bd9e1303579d815f58e8c6c9855850133251778a632f7b312c4b3163b29b5ef6cb9511a08a31a237d9a7604afbfa056'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 120'
|
||||
message: '75264774af69ec7ee3125e205bd6d1cb8fdb22f7ea6dbe72d1f2c0f7e2205902796d75e379c79b11498615c21c9f52b8761a885eecc69d132b2b48c63bc074c3055ee5cc13f51d6c987e8188b030b837e8f754d40122b451f15b28cd2bdd576920e1de5806593a36d8e1e89b9ef3caefee5acd80b3e9c9d1'
|
||||
digest: 'ffa9e4e856d06227c1ccb959be558309cc10633173f4b66ceb382923b52b9150acfb08a7393500477a6ee4425a827e76'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 121'
|
||||
message: '791a36d748695e62db5003a8ad367df1f051c1ac6a21d711823e8e069b546e3fa06ceeaae06de70a1de249e1dffd0d940edc6acac00c4c15504c02d4b0933658005423455f00023b01cdc5b681b6083379c24595518a47c654f5e1a10947df10c05a3d716b2a973faf98e1ee3b675816598bb8d4c2a3b06eb7'
|
||||
digest: 'f8d33369680524ed6c6a716d4c502de3eac891f340f40e82e37501be1a90fb61d26e5daafe92bc6ef5ec0ae431168842'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 122'
|
||||
message: '74cd86bbed14d895301d8a54b2956b1c5cd1451eebab620b978d4ecef2cbdf7a14367381f5ee79281a773337740fb9f5853f4253c4b19f684341081d8f561b2ad773224151099588da90e04dddd565f67596c536d64c5b87e9480ad43601397507ad1b61ca0e349fb88f19feb48f770676fd562ee8259f50d0c9'
|
||||
digest: '73ee8d29c30821dcdfa4441639f037fb6ba3a9ca596dc43428043785756608f6207d80b7f78e573174fb9dfd42f0b8cd'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 123'
|
||||
message: '46612e1a4d016c41700a3b5ccb38323353bd8da5b9942c9c9212df40b4bee06be362a15dad62c8b2924d789168b2d325fe35bd5100e1e29f1ac0fa7a60a94c9eee5a70cccbc75ac214b1946a5679cb523b378d5c690751b7a7a3b80d413712feae7024ce71d6295a3d5d16515c3622a052eb862ebdab81ca7fe3a0'
|
||||
digest: 'cac13a3784225be03d526f9abc1eb50a762e72c0e01172a15d578801089e5c9f26e53cc00ff755909453e2964d7df838'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 124'
|
||||
message: '1a857c1f105d068ceab0b1e12494890ec196362a48b0200a0d75d712b18fb14bec6bb5b68a33b7e0b4fdc5b77142c29c6d9151b9f884f59551f476e5256986a653d4a468f28141ed954721f2cd02054df0438738194545ed70234173ac4988b7d62812de4f2feada14f68e3b41bc9948d4139f4fb4da5939f26c0261'
|
||||
digest: 'b75d92b5cd3772846f7b68064a3567ae43e5010099f2b649f35087e7592aeec176646fc8c2629288944261cd35b5fcba'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 125'
|
||||
message: '9d36818d0c5a008be7904d1917aa3eccb5ef4f38cecb8c4e63c4b2e9b4b091a3bf25b4ed0332445f894c2a4c258b749afa17fad03cdd41713a869f899ba9a085e73fa9474a58db7a950d3a2386b60f79495d8bf73e72acaffdbf65e1989ff9cc206ba8c46a368d8512bac7c7c191d713aca949d45df297b1b6594a1a33'
|
||||
digest: 'a88da844579f3e3725d00daa8e1e287da4bfbb2d931ebe8d3b16021154be503341d6371d382ada744f86f5bbb56cdcfa'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 126'
|
||||
message: '4ae50ed626ee60dc5ea556e3ce0d3c18b9e6225b5620814e8b9621acf8f939dd370ad9c7620d85e6d67a229f37f517d1b580acae8df0b5c9d29d756f6d5ebd3b63b554e556469b5b4f8e7113bad1559fb254ca827fcd00425d18b0be7f2b48c2544c48d90982ec624f490be65e893fa93ac9467f35a0a8e1b56d9a403748'
|
||||
digest: 'f8cd943f429333c7c8d30a8576827f92c92ae18e0dbcae770601b79687bccf8c23e9e589dfeb45c3b9bcafdd545e45e7'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 127'
|
||||
message: 'dbed7612448d46cbe0a384d1c93233f02ffd1c984ba765299518656d3723b766c1658d4b1e7047cdc729459e366ef9349efc40cbd990f2a9a24db7a5045e1dea12dce8f9d9f2aaed933f93031e7b8959ac5e7bf6bbbdf30b48f7eb783f8fe292371a2f245c5c94b4acae160767a20ce7c0ea7723d97691d8eedda9efd1fe2d'
|
||||
digest: 'fb531a1ed181c732311e56f4b56ed91dcacc0dd6bf1eb4a44be6f87dd7cb1ef9dfb0310f4a79eaaa3f32bf3914d8624e'
|
||||
},
|
||||
SHA384TestCase{
|
||||
name: 'test case 128'
|
||||
message: '3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769011575f15881198f227876e8fe685a6939bc8b89fd48a34ec5e71e131462b2886794dffa68ccc6d564733e67ffef25e627c6f4b5460796e3bce67bf58ca6e8e555bc916a8531697ac948b90dc8616f25101db90b50c3d3dbc9e21e42ff387187'
|
||||
digest: '12b6cb35eda92ee37356ddee77781a17b3d90e563824a984faffc6fdd1693bd7626039635563cfc3b9a2b00f9c65eefd'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_short_messages() {
|
||||
for c in short_cases {
|
||||
message := hex.decode(c.message)!
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
actual_result := sha512.sum384(message)
|
||||
|
||||
assert actual_result == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,350 @@
|
||||
// Copyright (c) 2019-2024 Alexander Medvednikov. All rights reserved.
|
||||
// Use of this source code is governed by an MIT license
|
||||
// that can be found in the LICENSE file.
|
||||
// Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256
|
||||
// hash algorithms as defined in FIPS 180-4.
|
||||
// Based off: https://github.com/golang/go/tree/master/src/crypto/sha512
|
||||
// Last commit: https://github.com/golang/go/commit/3ce865d7a0b88714cc433454ae2370a105210c01
|
||||
module sha512
|
||||
|
||||
import crypto
|
||||
import encoding.binary
|
||||
|
||||
// size is the size, in bytes, of a SHA-512 checksum.
|
||||
pub const size = 64
|
||||
// size224 is the size, in bytes, of a SHA-512/224 checksum.
|
||||
pub const size224 = 28
|
||||
// size256 is the size, in bytes, of a SHA-512/256 checksum.
|
||||
pub const size256 = 32
|
||||
// size384 is the size, in bytes, of a SHA-384 checksum.
|
||||
pub const size384 = 48
|
||||
// block_size is the block size, in bytes, of the SHA-512/224,
|
||||
// SHA-512/256, SHA-384 and SHA-512 hash functions.
|
||||
pub const block_size = 128
|
||||
|
||||
const chunk = 128
|
||||
const init0 = u64(0x6a09e667f3bcc908)
|
||||
const init1 = u64(0xbb67ae8584caa73b)
|
||||
const init2 = u64(0x3c6ef372fe94f82b)
|
||||
const init3 = u64(0xa54ff53a5f1d36f1)
|
||||
const init4 = u64(0x510e527fade682d1)
|
||||
const init5 = u64(0x9b05688c2b3e6c1f)
|
||||
const init6 = u64(0x1f83d9abfb41bd6b)
|
||||
const init7 = u64(0x5be0cd19137e2179)
|
||||
const init0_224 = u64(0x8c3d37c819544da2)
|
||||
const init1_224 = u64(0x73e1996689dcd4d6)
|
||||
const init2_224 = u64(0x1dfab7ae32ff9c82)
|
||||
const init3_224 = u64(0x679dd514582f9fcf)
|
||||
const init4_224 = u64(0x0f6d2b697bd44da8)
|
||||
const init5_224 = u64(0x77e36f7304c48942)
|
||||
const init6_224 = u64(0x3f9d85a86a1d36c8)
|
||||
const init7_224 = u64(0x1112e6ad91d692a1)
|
||||
const init0_256 = u64(0x22312194fc2bf72c)
|
||||
const init1_256 = u64(0x9f555fa3c84c64c2)
|
||||
const init2_256 = u64(0x2393b86b6f53b151)
|
||||
const init3_256 = u64(0x963877195940eabd)
|
||||
const init4_256 = u64(0x96283ee2a88effe3)
|
||||
const init5_256 = u64(0xbe5e1e2553863992)
|
||||
const init6_256 = u64(0x2b0199fc2c85b8aa)
|
||||
const init7_256 = u64(0x0eb72ddc81c52ca2)
|
||||
const init0_384 = u64(0xcbbb9d5dc1059ed8)
|
||||
const init1_384 = u64(0x629a292a367cd507)
|
||||
const init2_384 = u64(0x9159015a3070dd17)
|
||||
const init3_384 = u64(0x152fecd8f70e5939)
|
||||
const init4_384 = u64(0x67332667ffc00b31)
|
||||
const init5_384 = u64(0x8eb44a8768581511)
|
||||
const init6_384 = u64(0xdb0c2e0d64f98fa7)
|
||||
const init7_384 = u64(0x47b5481dbefa4fa4)
|
||||
|
||||
// Digest represents the partial evaluation of a checksum.
|
||||
struct Digest {
|
||||
mut:
|
||||
h []u64
|
||||
x []u8
|
||||
nx int
|
||||
len u64
|
||||
function crypto.Hash
|
||||
}
|
||||
|
||||
// free the resources taken by the Digest `d`
|
||||
@[unsafe]
|
||||
pub fn (mut d Digest) free() {
|
||||
$if prealloc {
|
||||
return
|
||||
}
|
||||
unsafe {
|
||||
d.x.free()
|
||||
d.h.free()
|
||||
}
|
||||
}
|
||||
|
||||
fn (mut d Digest) init() {
|
||||
d.h = []u64{len: (8)}
|
||||
d.x = []u8{len: chunk}
|
||||
d.reset()
|
||||
}
|
||||
|
||||
// reset the state of the Digest `d`
|
||||
pub fn (mut d Digest) reset() {
|
||||
match d.function {
|
||||
.sha384 {
|
||||
d.h[0] = init0_384
|
||||
d.h[1] = init1_384
|
||||
d.h[2] = init2_384
|
||||
d.h[3] = init3_384
|
||||
d.h[4] = init4_384
|
||||
d.h[5] = init5_384
|
||||
d.h[6] = init6_384
|
||||
d.h[7] = init7_384
|
||||
}
|
||||
.sha512_224 {
|
||||
d.h[0] = init0_224
|
||||
d.h[1] = init1_224
|
||||
d.h[2] = init2_224
|
||||
d.h[3] = init3_224
|
||||
d.h[4] = init4_224
|
||||
d.h[5] = init5_224
|
||||
d.h[6] = init6_224
|
||||
d.h[7] = init7_224
|
||||
}
|
||||
.sha512_256 {
|
||||
d.h[0] = init0_256
|
||||
d.h[1] = init1_256
|
||||
d.h[2] = init2_256
|
||||
d.h[3] = init3_256
|
||||
d.h[4] = init4_256
|
||||
d.h[5] = init5_256
|
||||
d.h[6] = init6_256
|
||||
d.h[7] = init7_256
|
||||
}
|
||||
else {
|
||||
d.h[0] = init0
|
||||
d.h[1] = init1
|
||||
d.h[2] = init2
|
||||
d.h[3] = init3
|
||||
d.h[4] = init4
|
||||
d.h[5] = init5
|
||||
d.h[6] = init6
|
||||
d.h[7] = init7
|
||||
}
|
||||
}
|
||||
|
||||
d.nx = 0
|
||||
d.len = 0
|
||||
}
|
||||
|
||||
fn (d &Digest) clone() &Digest {
|
||||
return &Digest{
|
||||
...d
|
||||
h: d.h.clone()
|
||||
x: d.x.clone()
|
||||
}
|
||||
}
|
||||
|
||||
// internal
|
||||
fn new_digest(hash crypto.Hash) &Digest {
|
||||
mut d := &Digest{
|
||||
function: hash
|
||||
}
|
||||
d.init()
|
||||
return d
|
||||
}
|
||||
|
||||
// new returns a new Digest (implementing hash.Hash) computing the SHA-512 checksum.
|
||||
pub fn new() &Digest {
|
||||
return new_digest(.sha512)
|
||||
}
|
||||
|
||||
// new512_224 returns a new Digest (implementing hash.Hash) computing the SHA-512/224 checksum.
|
||||
pub fn new512_224() &Digest {
|
||||
return new_digest(.sha512_224)
|
||||
}
|
||||
|
||||
// new512_256 returns a new Digest (implementing hash.Hash) computing the SHA-512/256 checksum.
|
||||
pub fn new512_256() &Digest {
|
||||
return new_digest(.sha512_256)
|
||||
}
|
||||
|
||||
// new384 returns a new Digest (implementing hash.Hash) computing the SHA-384 checksum.
|
||||
pub fn new384() &Digest {
|
||||
return new_digest(.sha384)
|
||||
}
|
||||
|
||||
// write writes the contents of `p_` to the internal hash representation.
|
||||
pub fn (mut d Digest) write(p_ []u8) !int {
|
||||
unsafe {
|
||||
mut p := p_
|
||||
nn := p.len
|
||||
d.len += u64(nn)
|
||||
if d.nx > 0 {
|
||||
n := copy(mut d.x[d.nx..], p)
|
||||
d.nx += n
|
||||
if d.nx == chunk {
|
||||
block(mut d, d.x)
|
||||
d.nx = 0
|
||||
}
|
||||
if n >= p.len {
|
||||
p = []
|
||||
} else {
|
||||
p = p[n..]
|
||||
}
|
||||
}
|
||||
if p.len >= chunk {
|
||||
n := p.len & ~(chunk - 1)
|
||||
block(mut d, p[..n])
|
||||
if n >= p.len {
|
||||
p = []
|
||||
} else {
|
||||
p = p[n..]
|
||||
}
|
||||
}
|
||||
if p.len > 0 {
|
||||
d.nx = copy(mut d.x, p)
|
||||
}
|
||||
return nn
|
||||
}
|
||||
}
|
||||
|
||||
// sum returns the SHA512 or SHA384 checksum of digest with the data bytes in `b_in`
|
||||
pub fn (d &Digest) sum(b_in []u8) []u8 {
|
||||
// Make a copy of d so that caller can keep writing and summing.
|
||||
mut d0 := d.clone()
|
||||
hash := d0.checksum()
|
||||
mut b_out := b_in.clone()
|
||||
match d0.function {
|
||||
.sha384 {
|
||||
for b in hash[..size384] {
|
||||
b_out << b
|
||||
}
|
||||
}
|
||||
.sha512_224 {
|
||||
for b in hash[..size224] {
|
||||
b_out << b
|
||||
}
|
||||
}
|
||||
.sha512_256 {
|
||||
for b in hash[..size256] {
|
||||
b_out << b
|
||||
}
|
||||
}
|
||||
else {
|
||||
for b in hash {
|
||||
b_out << b
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return b_out
|
||||
}
|
||||
|
||||
// checksum returns the current byte checksum of the Digest,
|
||||
// it is an internal method and is not recommended because its results are not idempotent.
|
||||
fn (mut d Digest) checksum() []u8 {
|
||||
// Padding. Add a 1 bit and 0 bits until 112 bytes mod 128.
|
||||
mut len := d.len
|
||||
mut tmp := []u8{len: (128)}
|
||||
tmp[0] = 0x80
|
||||
if int(len) % 128 < 112 {
|
||||
d.write(tmp[..112 - int(len) % 128]) or { panic(err) }
|
||||
} else {
|
||||
d.write(tmp[..128 + 112 - int(len) % 128]) or { panic(err) }
|
||||
}
|
||||
// Length in bits.
|
||||
len <<= u64(3)
|
||||
binary.big_endian_put_u64(mut tmp, u64(0)) // upper 64 bits are always zero, because len variable has type u64
|
||||
binary.big_endian_put_u64(mut tmp[8..], len)
|
||||
d.write(tmp[..16]) or { panic(err) }
|
||||
if d.nx != 0 {
|
||||
panic('d.nx != 0')
|
||||
}
|
||||
mut digest := []u8{len: size}
|
||||
binary.big_endian_put_u64(mut digest, d.h[0])
|
||||
binary.big_endian_put_u64(mut digest[8..], d.h[1])
|
||||
binary.big_endian_put_u64(mut digest[16..], d.h[2])
|
||||
binary.big_endian_put_u64(mut digest[24..], d.h[3])
|
||||
binary.big_endian_put_u64(mut digest[32..], d.h[4])
|
||||
binary.big_endian_put_u64(mut digest[40..], d.h[5])
|
||||
if d.function != .sha384 {
|
||||
binary.big_endian_put_u64(mut digest[48..], d.h[6])
|
||||
binary.big_endian_put_u64(mut digest[56..], d.h[7])
|
||||
}
|
||||
return digest
|
||||
}
|
||||
|
||||
// sum512 returns the SHA512 checksum of the data.
|
||||
pub fn sum512(data []u8) []u8 {
|
||||
mut d := new_digest(.sha512)
|
||||
d.write(data) or { panic(err) }
|
||||
return d.checksum()
|
||||
}
|
||||
|
||||
// sum384 returns the SHA384 checksum of the data.
|
||||
pub fn sum384(data []u8) []u8 {
|
||||
mut d := new_digest(.sha384)
|
||||
d.write(data) or { panic(err) }
|
||||
sum := d.checksum()
|
||||
mut digest := []u8{len: size384}
|
||||
copy(mut digest, sum[..size384])
|
||||
return digest
|
||||
}
|
||||
|
||||
// sum512_224 returns the Sum512/224 checksum of the data.
|
||||
pub fn sum512_224(data []u8) []u8 {
|
||||
mut d := new_digest(.sha512_224)
|
||||
d.write(data) or { panic(err) }
|
||||
sum := d.checksum()
|
||||
mut sum224 := []u8{len: size224}
|
||||
copy(mut sum224, sum[..size224])
|
||||
return sum224
|
||||
}
|
||||
|
||||
// sum512_256 returns the Sum512/256 checksum of the data.
|
||||
pub fn sum512_256(data []u8) []u8 {
|
||||
mut d := new_digest(.sha512_256)
|
||||
d.write(data) or { panic(err) }
|
||||
sum := d.checksum()
|
||||
mut sum256 := []u8{len: size256}
|
||||
copy(mut sum256, sum[..size256])
|
||||
return sum256
|
||||
}
|
||||
|
||||
fn block(mut dig Digest, p []u8) {
|
||||
// For now just use block_generic until we have specific
|
||||
// architecture optimized versions
|
||||
block_generic(mut dig, p)
|
||||
}
|
||||
|
||||
// size returns the size of the checksum in bytes.
|
||||
pub fn (d &Digest) size() int {
|
||||
match d.function {
|
||||
.sha512_224 { return size224 }
|
||||
.sha512_256 { return size256 }
|
||||
.sha384 { return size384 }
|
||||
else { return size }
|
||||
}
|
||||
}
|
||||
|
||||
// block_size returns the block size of the checksum in bytes.
|
||||
pub fn (d &Digest) block_size() int {
|
||||
return block_size
|
||||
}
|
||||
|
||||
// hexhash returns a hexadecimal SHA512 hash sum `string` of `s`.
|
||||
pub fn hexhash(s string) string {
|
||||
return sum512(s.bytes()).hex()
|
||||
}
|
||||
|
||||
// hexhash_384 returns a hexadecimal SHA384 hash sum `string` of `s`.
|
||||
pub fn hexhash_384(s string) string {
|
||||
return sum384(s.bytes()).hex()
|
||||
}
|
||||
|
||||
// hexhash_512_224 returns a hexadecimal SHA512/224 hash sum `string` of `s`.
|
||||
pub fn hexhash_512_224(s string) string {
|
||||
return sum512_224(s.bytes()).hex()
|
||||
}
|
||||
|
||||
// hexhash_512_256 returns a hexadecimal 512/256 hash sum `string` of `s`.
|
||||
pub fn hexhash_512_256(s string) string {
|
||||
return sum512_256(s.bytes()).hex()
|
||||
}
|
||||
@@ -0,0 +1,551 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA512_224, the test vectors come from:
|
||||
// SHA512_224Monte.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
const seed = '2e325bf8c98c0be54493d04c329e706343aebe4968fdd33b37da9c0a'
|
||||
|
||||
struct MonteTestCase {
|
||||
name string
|
||||
count int
|
||||
digest string
|
||||
}
|
||||
|
||||
const monte_cases = [
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 0'
|
||||
count: 0
|
||||
digest: '9ee006873962aa0842d636c759646a4ef4b65bcbebcc35430b20f7f4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 1'
|
||||
count: 1
|
||||
digest: '87726eda4570734b396f4c253146ecb9770b8591739240f02a4f2a02'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 2'
|
||||
count: 2
|
||||
digest: '7be0871653db5fa514b4ec1a0363df004657155575b0383bc9fdec35'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 3'
|
||||
count: 3
|
||||
digest: '7a794a3a1ae255e67ffbf688a05b6aba7f231cebec64b4fc75092d49'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 4'
|
||||
count: 4
|
||||
digest: 'aaf5d4ecaf9426149821b15821b41c49e3900c0fc91664fb294216ea'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 5'
|
||||
count: 5
|
||||
digest: '60f6ff2fbffc9151f67c7e9325e27706f9904d1d55311bb587c183c7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 6'
|
||||
count: 6
|
||||
digest: 'c6e46e63fd0b37a7fd460f724315796a6be5dcfd047907acc0512278'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 7'
|
||||
count: 7
|
||||
digest: '1c9dd92b35f00ea3cd13bcdef3c99e73fd604fe167d4a23ba1aec8eb'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 8'
|
||||
count: 8
|
||||
digest: '3ebec6bbf913b0eee0cc8aec7f9611648432674551fc3f1e01520dd8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 9'
|
||||
count: 9
|
||||
digest: 'b09556d256b3de7b122096a7a2a8c1d2ffcb23a9bfc38bb1d919739a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 10'
|
||||
count: 10
|
||||
digest: '756dd96518eff331dc48e2af06c6f2a92831d49bef28af687d0c3912'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 11'
|
||||
count: 11
|
||||
digest: '08ef4f1cfe5b707ff57218240f5c02e75cc875e6585fc17fd60d3af7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 12'
|
||||
count: 12
|
||||
digest: '6f956e415d7c29d8073d6e5f89d9288215988db029b86183af622de5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 13'
|
||||
count: 13
|
||||
digest: 'a39947509d4a45d39837f785b2205a2fb4ab184fc40c88ec8dd7fe7b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 14'
|
||||
count: 14
|
||||
digest: 'c7b53227a32fc6e03f300ec56bc4505f03bad3d66a39940e1670b62f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 15'
|
||||
count: 15
|
||||
digest: 'b61a60ea4173d714cbcccff0dfef932f9d719175d5747ebca2b55b09'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 16'
|
||||
count: 16
|
||||
digest: 'ee2c5fc1649e4033884ddbf3c2d93fe3ec9e8e8171df0cd94b438613'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 17'
|
||||
count: 17
|
||||
digest: 'a333fbe4ea8dc682f8dc5e96cc2365ec2510b96d8e6bffdec1324b41'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 18'
|
||||
count: 18
|
||||
digest: '5ae36caae04f3426a6b8da72d16b261b79ddef7e94a5ac2c601a40cd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 19'
|
||||
count: 19
|
||||
digest: '0d13a738747e8a15dc02e26338ad47a556afb4af033874de50e31a39'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 20'
|
||||
count: 20
|
||||
digest: '4fd90174f249e11b99e7eb63ebca5e06f8f1f78efee855b71545ef5d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 21'
|
||||
count: 21
|
||||
digest: '02a47cd22538f44db8e2b0f769cf8fe2c0528dac2f47e53740fa7384'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 22'
|
||||
count: 22
|
||||
digest: '75ceb64019f21eecef34741b96e2dd57eb261b24d65fcd1a409210ce'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 23'
|
||||
count: 23
|
||||
digest: '4ffe012bc77387dd23c521ece6686e67c8584f308f5f62adc46715c8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 24'
|
||||
count: 24
|
||||
digest: 'c1b12961b27395bd2d309b5e6a20451411bd3986d992bb83b30b92d5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 25'
|
||||
count: 25
|
||||
digest: '0547c463bf3aeac722005c48d45e008f09c33551f1cfdd85b8d67dec'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 26'
|
||||
count: 26
|
||||
digest: '8704119b4a6f7fd8ac25bc1ad72c1d573106a0af5dad3c8b7563c742'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 27'
|
||||
count: 27
|
||||
digest: '877f5024aa6fa131e4660a8c7dd19bc80ce77c784b01ad79a5528fbb'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 28'
|
||||
count: 28
|
||||
digest: '15750a559a4aed2925d280671b75d34e3a5b080259143f7b671e0e5e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 29'
|
||||
count: 29
|
||||
digest: 'deb48a5c402f539d0a0a62d81928debf78519cbeaebce1a29f203b06'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 30'
|
||||
count: 30
|
||||
digest: '19af4d392fecc6a03f443f8aeb8e59a5496ca3b75481771b3efe45f9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 31'
|
||||
count: 31
|
||||
digest: 'd7e0d727fea61dae8f2c92fe884f2cd939ab2737f6bbf4545aa27e67'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 32'
|
||||
count: 32
|
||||
digest: 'c8b6e303d2c654a5f330209502ac89adf9840a6c832a356095c98b70'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 33'
|
||||
count: 33
|
||||
digest: 'bbc6d0112d60da2975d2028cf3c6b9509aed404f378540235199456c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 34'
|
||||
count: 34
|
||||
digest: 'b8bec3ad04591295081ef9484df499d4659ee1cfbd74b11033fa3d27'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 35'
|
||||
count: 35
|
||||
digest: 'e6f5a285cdc65b24496c1b5040fd354b7abbc930128e6c750fe72ef8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 36'
|
||||
count: 36
|
||||
digest: 'af77e2ccd33403b22954796a071da760f7c27fd998e9aaa38126172a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 37'
|
||||
count: 37
|
||||
digest: 'de0e347e717e3331a73fc27c4d0a6f4adae82de2c70c701a6d5ab2b3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 38'
|
||||
count: 38
|
||||
digest: '00397993b6b0ab272be84263167167270c45df00483b01fe9b1ea365'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 39'
|
||||
count: 39
|
||||
digest: '9a95e0f3e52e822552ff16c701d3541674de4cf183b6f30c43154bcd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 40'
|
||||
count: 40
|
||||
digest: '6a9d0c77cc592b625be5896b41e5dfc10a28ebbfdf688c84b525e0ca'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 41'
|
||||
count: 41
|
||||
digest: '39b8102119ff29ab458d92c691bad39cad3e3a9bd08a6d051b9e8603'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 42'
|
||||
count: 42
|
||||
digest: '49aad2c03b7c4d3dcf8356325fe6c43705731341697290c824f9eacf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 43'
|
||||
count: 43
|
||||
digest: 'fe4e83590811ce54caa352e52829268532a20b1a38d069ad99fa9a41'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 44'
|
||||
count: 44
|
||||
digest: 'eeba13d3177da1b2b6877cdbb8ba32e0886b94bae893a9a062af4d4d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 45'
|
||||
count: 45
|
||||
digest: 'edd2d2365300c6a904526ad7106ee74d75bcbb9634c97f3fec57fc48'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 46'
|
||||
count: 46
|
||||
digest: '46bd3b5289ff2278b2d1d652c9294f31415dda38694fce83fdd25f15'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 47'
|
||||
count: 47
|
||||
digest: '1e1059e7089fa33e23fc1572b08131c7600ac8a1bbe583b6a4c6e09e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 48'
|
||||
count: 48
|
||||
digest: 'cd70a5e3d6ba8281c5ecc468dd7e96bb3d7723754d2cdc19e8a6063d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 49'
|
||||
count: 49
|
||||
digest: 'cb46f0380d1db1b1bec9b70d51c29d1300c5c814a4b360a0db548363'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 50'
|
||||
count: 50
|
||||
digest: '76b467577856973eab224e2ecd0689601446c7915f6805e93276a4bc'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 51'
|
||||
count: 51
|
||||
digest: '3f4d4db5e47d20c7458a87c5029eb340c4b639ebd3b6f1fca9c20427'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 52'
|
||||
count: 52
|
||||
digest: 'f8fff1c83b456dd8ce96aa977a7a1b968c1a5bd4f2cb6e0ff80aa923'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 53'
|
||||
count: 53
|
||||
digest: 'f88800640deb5328d0a6985474a041be43c7248609fa97ea0b9236cb'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 54'
|
||||
count: 54
|
||||
digest: 'a071d9e4da86be8c17bbbbcf47a863ceea303bf02bb872565f829bdf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 55'
|
||||
count: 55
|
||||
digest: '19e399fc939c03fd3d016f69f77345580c1f8869b42c8231aea37027'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 56'
|
||||
count: 56
|
||||
digest: '87f1884b3f78b9c962beef4e024e235fc9ca25c8667426fdcf18ee34'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 57'
|
||||
count: 57
|
||||
digest: '6172fb88775686115c5d62e7b32affb353b40a41fe1ebfc603917274'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 58'
|
||||
count: 58
|
||||
digest: 'df9e73edd801f9f457192f7d3aae4261dd89515200b028b27684d554'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 59'
|
||||
count: 59
|
||||
digest: '3c5c668e1b085b7efb28c5413657b921c7db8cec6eb91177bc5fdb25'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 60'
|
||||
count: 60
|
||||
digest: '2273fe0a482b701a54dc397ea93bbf73f7a8ce0fd891cf4bd7d0b9e0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 61'
|
||||
count: 61
|
||||
digest: 'bdfd8d50df97a02af4ba997e237f99d17503321f67cc5af8c3aadf2f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 62'
|
||||
count: 62
|
||||
digest: '24f6e6a0d54767dc5b33a46ca073d368cb3ec1b36fecc2672838a194'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 63'
|
||||
count: 63
|
||||
digest: 'ea7672b36987befb16352c13231fb7668c75673a932bf880181765e4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 64'
|
||||
count: 64
|
||||
digest: 'e45da9a4f5c0dc38a2f7d2a30b0c8fe153584a56d80ce69e929a2784'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 65'
|
||||
count: 65
|
||||
digest: '86983ba278254438244b1bf5ea59492ec36504a078530b6a7812f832'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 66'
|
||||
count: 66
|
||||
digest: 'ad9c1161761135fff88c17963e86cdbc74ff1b1cfc4433fbc8d9efc1'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 67'
|
||||
count: 67
|
||||
digest: '9af064cf4fa078b50835f283cee8ecb6ada36012ece1a8426a62342c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 68'
|
||||
count: 68
|
||||
digest: '046810fe8fb6826cc5b6b15eaa5e52f6b3679359ccdd773d6d3b638c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 69'
|
||||
count: 69
|
||||
digest: 'a5ecb35e74f484c8dfbf759ab4c0ab432aa2a9d7d75fdce80e556fb0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 70'
|
||||
count: 70
|
||||
digest: '5e1de1624a8111e59cb1955a4c2c4a2b54aa4df035679c0bdbaafc2d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 71'
|
||||
count: 71
|
||||
digest: '9b449c13d9633869261dfa842c63c82ee9ac71b392b1ab268d536917'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 72'
|
||||
count: 72
|
||||
digest: '502270faa8397007684f76f331365a793e7a6cc8298dd9798229a515'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 73'
|
||||
count: 73
|
||||
digest: '7e1fb43c7ffd08d08ca9a0cc5d5414f8e2b20cc3458a63ac00ab388d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 74'
|
||||
count: 74
|
||||
digest: 'b8694aa799471f785e33c6f8d5729f6c0db59f46d652cbacc923dd70'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 75'
|
||||
count: 75
|
||||
digest: '6b431252c1f23628d7ec11656d52e8d6724100a6204e136bfc7ccd92'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 76'
|
||||
count: 76
|
||||
digest: '357f7779dc289dd46231a46bdeabaf899b167984864d232410736505'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 77'
|
||||
count: 77
|
||||
digest: '28cd0f7181f891e138c3cc43f14b7e826eff9dea465cdfe948d31d88'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 78'
|
||||
count: 78
|
||||
digest: 'd3eefb1a85d7ade8278706aec0c0c2b889004ca386278fe466605d2d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 79'
|
||||
count: 79
|
||||
digest: 'bbcf4c4b31af3a6ea82d23907fe71bdaf5ae4db1446fe28fabf01145'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 80'
|
||||
count: 80
|
||||
digest: '1f8354c43cb18715125c504ea1bff73e4e95c64fbc19e850468924a3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 81'
|
||||
count: 81
|
||||
digest: 'd3a57114d5572427096478d26162d7cebbbe6b99cb06234327b21ef9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 82'
|
||||
count: 82
|
||||
digest: '45b964bcdbde997f8b8de4a7617152a2f80b0333aeac6aa3e53901fd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 83'
|
||||
count: 83
|
||||
digest: '2fad09cb0e93263548120115972110979eec7ef94e303c462223005d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 84'
|
||||
count: 84
|
||||
digest: '6680932f0332b4c0ccb708d4bf351af23bb05b6fb8c36b458efa46f3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 85'
|
||||
count: 85
|
||||
digest: '1076a4637cc36c9f5c2fff3700362a9d62cda3596be7b5e7f244fff1'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 86'
|
||||
count: 86
|
||||
digest: '0a819369c413d8d20195fa16660b320988357d63c1a94602eb117377'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 87'
|
||||
count: 87
|
||||
digest: '397fcc30577bc5327a8cf9284cc64a02700f1b2f2d1ca8a1506b9916'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 88'
|
||||
count: 88
|
||||
digest: '217be1548b8d99bb1080ea0f3995be3c6494c91235fbf3a6d854a08e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 89'
|
||||
count: 89
|
||||
digest: 'ddcc841fd03e9d942f886657b0feb522682979e836307f68f4f19843'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 90'
|
||||
count: 90
|
||||
digest: '4a33efa590ee444c75b6a4530a0fedd9987661199ccded49e40bc8b0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 91'
|
||||
count: 91
|
||||
digest: '970a4a3334796b06cb0ba8014eca67bbc471dbcea0efbcb22c666b2e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 92'
|
||||
count: 92
|
||||
digest: 'a7630df9688bbc66ceac6ae4a3a549513e427f5dc0f55ad2696b021a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 93'
|
||||
count: 93
|
||||
digest: 'd63c202d5feab56898d8eb793115a8ac216ea1b163a967eb119367fc'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 94'
|
||||
count: 94
|
||||
digest: '0dec4d35fa7737c2d93d901a0556ce3cb357224d3caa25dec8095a05'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 95'
|
||||
count: 95
|
||||
digest: 'c40b609646eef457dea98eb32f45ee1f0af31658d742680bdb784f53'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 96'
|
||||
count: 96
|
||||
digest: '1b2a12a3bc4403a1bebfc1358cb2844c56215ae413ed6df10fe2f8d3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 97'
|
||||
count: 97
|
||||
digest: '8342cbc0b0e8c270134a7907448037e07201150f0891b20dcf20867c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 98'
|
||||
count: 98
|
||||
digest: 'a09ed66100b982070edecb5af45ac354759778134098ca3c0bf67b05'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 99'
|
||||
count: 99
|
||||
digest: '5d8fc89761e82efe7188596a52eb43efd9492038bbc47bc0df5e9843'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_monte_messages() {
|
||||
mut msg_seed := hex.decode(seed)!
|
||||
|
||||
for c in monte_cases {
|
||||
mut md0 := msg_seed.clone()
|
||||
mut md1 := msg_seed.clone()
|
||||
mut md2 := msg_seed.clone()
|
||||
mut md3 := msg_seed.clone()
|
||||
|
||||
mut mi := []u8{len: 0, cap: 64}
|
||||
|
||||
for _ in 0 .. 1000 {
|
||||
mi.clear()
|
||||
mi << md0
|
||||
mi << md1
|
||||
mi << md2
|
||||
|
||||
md3 = sha512.sum512_224(mi)
|
||||
|
||||
md0 = md1.clone()
|
||||
md1 = md2.clone()
|
||||
md2 = md3.clone()
|
||||
}
|
||||
|
||||
msg_seed = md3.clone()
|
||||
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
assert md3 == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,675 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA512_224, the test vectors come from:
|
||||
// SHA512_224ShortMsg.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
// This structure deals with short message tests
|
||||
struct SHA512_224TestCase {
|
||||
name string
|
||||
message string
|
||||
digest string
|
||||
}
|
||||
|
||||
// short message test cases
|
||||
const short_cases = [
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 0'
|
||||
message: ''
|
||||
digest: '6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 1'
|
||||
message: 'cf'
|
||||
digest: '4199239e87d47b6feda016802bf367fb6e8b5655eff6225cb2668f4a'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 2'
|
||||
message: 'ca2d'
|
||||
digest: '392b99b593b85e147f031986c2a9edfdb4ffd9f24c77c452d339c9fc'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 3'
|
||||
message: '497604'
|
||||
digest: 'a9c345d58a959af20a42c84e28523ba47e3bf8fad8e8c3f32b7a72ae'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 4'
|
||||
message: 'c2eb0c88'
|
||||
digest: 'c5b97f1e46d91c3940be8cfef1e49baa77b475db943e49f00cddbe72'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 5'
|
||||
message: 'd28bc2aa3f'
|
||||
digest: 'e79de552120a87585e7313e24ecd74139a3be9ba2812936c4b33ca23'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 6'
|
||||
message: 'b4142ca79f6d'
|
||||
digest: '2a0ed8eb0e18bc189f5c836dc6a5825baa6f7286fa5b9689b641bb3b'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 7'
|
||||
message: '8daedf3c420c8c'
|
||||
digest: '4edac91a8eba35a1431ef4d49705db12da382a786d15636774cbd708'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 8'
|
||||
message: '6963446913771410'
|
||||
digest: '21f6c373637e6a5e89d6e88811110c5c3fa12e497144912914c546e1'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 9'
|
||||
message: '6f316ab2b40f096819'
|
||||
digest: '5899542e9a78d1403929c4346993e213b83c32f91274bddbc63e4192'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 10'
|
||||
message: '5819a77fa1a8f9c35d17'
|
||||
digest: '2e944a5c534b80922f6c21e97277b4a01a4a0fa652d6d40b37fb0fc9'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 11'
|
||||
message: '3c7e038401fa74c6c06e41'
|
||||
digest: 'a74af68819afe81bcdaceba64201c0d41f843e4b08e4002a375be761'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 12'
|
||||
message: 'e243b9f901855447fa2af302'
|
||||
digest: '330c77ed20dc93cabf0df3442c620c9df5c7a02d7c79fc1d2ff7ff94'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 13'
|
||||
message: 'c5f942edc46407c6019cd926a0'
|
||||
digest: 'e180a0d83683cb7e79d812ab5d4288399c78895c6a918e99a2839155'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 14'
|
||||
message: 'e57d4c478ad6a64b8bf3352e75b6'
|
||||
digest: '18b3e8f5a1fb603c67060c12a736e57c5ccc0b89fc62c90b02dd926b'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 15'
|
||||
message: '32d049928a583b5b954785805d8b26'
|
||||
digest: '18f87e8e6b54ec4336442f76eda0b32dcb64d463c0be69e348f86c34'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 16'
|
||||
message: '3b2542cb3fa560dd0d796d59ee151fee'
|
||||
digest: 'dc4ab34db241b3fc2055c54f70a8fd304523d8c4202852f5f077644f'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 17'
|
||||
message: 'ecbe367959a91b15eb08048b33752ef76d'
|
||||
digest: 'b76eaa7dde45ed50c07b5bafafbfdcc0959c1a64eca7adc391aba245'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 18'
|
||||
message: '40bd7d47b636c2a749a247fdda75807c238b'
|
||||
digest: '087ed68f1db90ffb2fb4ff7dc4b17fe08100b64383850378ef543339'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 19'
|
||||
message: '331c8939ef685ae0efcd4030378a8b0ab720c7'
|
||||
digest: '97874d56296a28f8df280448f76a9e806605da257a6083598f232e4d'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 20'
|
||||
message: '26634d1eb3cc2793830c97f49674bda74743eb8f'
|
||||
digest: '8294b112588dfb9c553ac88fbd8441722cec6a1d435311fe72e0110c'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 21'
|
||||
message: '62ed23ab88c30fe1350f702f3b6d45253a0fc6aec1'
|
||||
digest: '309db70638771e2eec309abfda219e5f13bac5fa9d5e84e727764bca'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 22'
|
||||
message: '827dbbe36fb2663c95eaf81c7ce441dca66405050ad8'
|
||||
digest: '39e786a93dc90e96471e466950a5a0f7f142ca69c1251b932e8bbf45'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 23'
|
||||
message: 'a2ada61a95cf8fb6f93cbd0aa67b70e286dc853afa51f8'
|
||||
digest: 'e821247c7bc7ac8ef07fb31ac25fb48a3fbc50fde399a3cb5889545f'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 24'
|
||||
message: '5633ee7b8870002c01a3c6f68f7812f13adfe0bf6fa794bf'
|
||||
digest: 'c34b467858b65202fd8c73ffac67cd8ee55118d12beb2b110b63ae43'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 25'
|
||||
message: 'da1dd1ebea3cc9474cf255dc23e35695026e86d6093abab251'
|
||||
digest: 'e650802f29ad20b900148cf3e9361399e6207d455257fbae3efee50c'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 26'
|
||||
message: '8f71c9344ce6a535d104803d22119f57b5f9477e253817a52afa'
|
||||
digest: '6b3a288bd84137cd7600ccf2d2ab9b797d0e87a18ccb468183396235'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 27'
|
||||
message: 'd668a21780594024db025dcb373ef3639bcd5743145527e24da67d'
|
||||
digest: '2b93446d3aa2f1f9ea858e47806cc472f40e33085b7c7a6522cf6548'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 28'
|
||||
message: '03f8cf98035eac158ff18fd93b44cdb621597255d7c3d97a9e087989'
|
||||
digest: 'e1fc5f508deed8bf74883b6fdef8c3e0c86306e7f1d6300cce4d36dc'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 29'
|
||||
message: '2a1f57998360e9216f5040e8f75f5bffba4368eeedede54aa0bb058a43'
|
||||
digest: 'bdc91e679fc2f4e40af13f03eca3f61a7ba33ac2c613d948ed7fc0bc'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 30'
|
||||
message: 'cd5fee5fde5e9aa2884b4f4882cfa7d5571f8fd572c5f9bf77a3d21fda35'
|
||||
digest: '72b43417b071f4811833027731b0ca28549c0357530fe258ca00533e'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 31'
|
||||
message: 'a9a73038a28e40feb374819df3a26db846fda284de7e88db01e2348c0ca38c'
|
||||
digest: 'a5baddceed5b58614c95b8a621d58cd4b12559bd34795ef5be9cd603'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 32'
|
||||
message: 'be4850f5be6cb68cdba5948e3b94dbbce82989aa75b97073e55139aac849a894'
|
||||
digest: 'c11eedaadc5249cefafc5a9fadf39e812db700bd2767b8de1cdd6099'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 33'
|
||||
message: 'ced78bf0734a527f5c07ef6c8adf80ae252b8cff100d393ec1f8c01150721fcecd'
|
||||
digest: 'd4237aa1956d37a6dcab7b07269f18228f7e3156c3555cf4d3d68c1a'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 34'
|
||||
message: 'e400bc8994cff23eae189df3b1e7e440a6b5b1786197128105b5dfe2c6fe9d1ef31a'
|
||||
digest: '45351adffefcfb5e39085461f8bff5f5652a5aa5a0401f04d4f56452'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 35'
|
||||
message: 'f15284a11c61e129ea0606bd6531f2f1213776e01e253d1def530bed1c3c42b3c68caa'
|
||||
digest: 'fa425bc732d6033566c073560b2c5fe322aa4fa22aaa3ec51154ffd8'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 36'
|
||||
message: 'd858eed942fe926b52bada623fb8d0f18458e4163332e1c18c581f38cedafbba4d908462'
|
||||
digest: 'b2b308db948d7169c8eebb4d7a19be96d5c4b5849593ec587d3865e6'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 37'
|
||||
message: '78b8ad2372632398cf56717df3b141a4f38d5d83029bc1f02d07f52949a39917294141d414'
|
||||
digest: '71be05862b44e9f57ad9be17f1de185471eabd111c1725e835e09625'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 38'
|
||||
message: 'faff894c4a2ed70c4c9d6703b6bc3a3d2b2cba8f04769de350fc0cd01930056eea03fe688da1'
|
||||
digest: '59f5a8c843b982989a08e6852e34f0c03397c99a87864dfb1bbafe1c'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 39'
|
||||
message: 'e6065e1eb7cf901c3b08dba4aeca7d4673c3fdbe60391c1b5d4d09202d7dd4ea8b6d25d379e72e'
|
||||
digest: 'ea8564c988cb67e302bd40df21a5f796a0a116846493c86c3a1d080e'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 40'
|
||||
message: '029d14c5a4a57a649a86c5f2e022e6ee098f29c9d4606548ff2775296038ec0931af0585acb4d9a0'
|
||||
digest: '716668cba7b1c0ddc1c4b3e6fe3f8917eada62506b6855e5af2b54e5'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 41'
|
||||
message: 'e3089c05ce1549c47a97785d82474c73cb096a27c5205de8ed9e3a8c971f7fa0eab741fd2c29879c40'
|
||||
digest: '75a0fa978c45d268124d8cd9ef0a08ecabbbed53412cfc7cb1c00398'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 42'
|
||||
message: '901db0f70f2d10626a8af408c5d15196693d49382178ad0de3b1c1d8b3ef3ff8c5a59e9ae286932d0c9a'
|
||||
digest: '1470a4199fe4c7bc330760c1197e79457b1644764e28a62d386a78b4'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 43'
|
||||
message: '0431a7bfbbec1bb8116a62e1db7e1346862d31ad5110ff1bb9fa169a35dbb43a24e4575604ec8b18e41300'
|
||||
digest: '1e7590e408c038b794e9820b25d011c262062b96d111dccc46dc6783'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 44'
|
||||
message: 'd141753cef2e1b442eb01708f46719cd8653b22e1d9709073d7ccf9242b875d03cf19c2bfc7dcd596f6c6a83'
|
||||
digest: '0f357b8ca676a86ca63620b2239327accbd4252814a6b8c56895ea58'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 45'
|
||||
message: 'ce94e0126b020d68115a5ea41083b4717a13d9c57a5b6d0ae7a3237c19b62dd2fca2f42062b90dfc9edb68e04e'
|
||||
digest: '935d391d626a135772319ec93fd652bd9fd5680107c987872ae67212'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 46'
|
||||
message: 'efc2d81b30043bb26c8d2c7a7d5bfe8ee579e463122d56a0e172b63060a83495d88bef7f0b625c9dba78ecb36ad0'
|
||||
digest: 'd9214789b7b736a7b28cebff8829a3999ff0c7496095b130c1e2e829'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 47'
|
||||
message: '5b27d6fe9981d136b52157b839bb5b78d7844df5a397efbe80986435d89889939139892c3c13acf58f56704315b0db'
|
||||
digest: '4c792bb6b1e33a3a042dd4a69ada802e3ec0bd839daa88635b225efb'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 48'
|
||||
message: '4dbe1290524bd73d9db5f21f9d035e183dc285b85ba755057c769777be227c470e3679ea9a7355d889bb8191ea2ea7e2'
|
||||
digest: '33a5a8d6119bb6dd7b2e72ece8e4d5d02aa99048c0459169ee9e6d04'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 49'
|
||||
message: 'bdfa173995a5b99fba74d8e255b711771731a8e1851d7dd693733b9d7567d3bab23229cd7a160cb8399c6c006c21c776b4'
|
||||
digest: '33c934b5102063213e7b53675c47b19c397fc3a51fb37ab46e179b10'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 50'
|
||||
message: '9463c563aa1fda894757398e11b04a4b4cee0dce9dab01ad134f449a673cfb388349f42e42728a7977cec90630c1d3803c72'
|
||||
digest: '4cae18a39a5ca4512b959da06bc9d63d07168084e35aaf03c8ba5d8d'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 51'
|
||||
message: '2ee6e813ec84c2aded5800fc1cae94c09054e25d6bf0c4d10296d1e83e9adfb342a3c6364d016761e241ed4227fe53788cfa27'
|
||||
digest: '89c6929b3c19a1472a4524e1427823768e46451e48faa7a7db7c8604'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 52'
|
||||
message: '864833cb2912fa44929287bd0db7984968e5920d49f9725dc48707222d655f7f2b6e7fb40e80564263c7f450c53ef84df67247d7'
|
||||
digest: '2c102a8349c4e362abd6a258217763229898e27c2e721c73bc880752'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 53'
|
||||
message: 'e4dfe69723d430834bdcda7fa138f1fd26f22674be71169d914acfe2b2599014ff11d15c48108374b3f699165e78c7b547b08a6c69'
|
||||
digest: '52310bacf78ddd40d7e93eb321da4de541a7296f98f0ad9745915887'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 54'
|
||||
message: '6a3000176d0b029992d921e102eeee94dfb9b029d4019e4af06f517db44d78036a8dce00b90d49dd771994ebbe32c049420d3707e1df'
|
||||
digest: '07de1ed3f8ea774a8e5e080669206c8572edbc3f165870913ab1e4f6'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 55'
|
||||
message: '55cab876556079eff98bf7b90e318f8ff583c2be55de882c0defe6996d1bc225a51ef7127df2a5cc47f2ca26123f17e72163fc859c3406'
|
||||
digest: '811fd907f3f74b9f214193048d70eda44f3a7465cdb882173bf79a0a'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 56'
|
||||
message: '5dab016d4feb42ea606123c0ac4c3259cc7177af9cc955a64177b29f6bfc584ad8ae9abb1a673ac1997a8a73dbebd20b03dff2f89851482e'
|
||||
digest: '340b5a71ed65407a686706b068edb92d0ad2a079c1c88bf78ad8a3a0'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 57'
|
||||
message: '0921afb403afd31e8b0839dcc15ba2c0fc32bcc90fa78ff8ccd51960c78e357d5d4cc2c6f469008583923de75679b24f0bcaa8f0e161df9b32'
|
||||
digest: 'dd30882cda2144b31ab179e8f905460168b8758d8be8d8078dd610ab'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 58'
|
||||
message: 'c0facb87b9283d87fdd02760e4fa437b896b13de28786ba0cb192f9f263e5e75bf664fa7526d3b2073a5fcde752914ec8b6ef1902d1b70c5bd1b'
|
||||
digest: '1e7adf0737572d1aaa5d4c917c94d05dc092d6e59059df659490f1c7'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 59'
|
||||
message: 'e0eafe1aed719fd7122a3edc9df7c4bedfbc1b0c3b1be6317c826f9c6b68e01ea2d3b7939b1e74c40cf9948c77b1c33afcb24e37734ad7e9b7af4c'
|
||||
digest: 'c260130197dc7774313c75843dd820d589a68df59e1aef7cf347f565'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 60'
|
||||
message: 'c32ad1f821fbd8b5b7153ea8aa11055ea8fbde548660ecae28a8cb2ba2a6d1599c6e9305fb67abf6bea1b9db2568a88119193349c834a7da90b3ea13'
|
||||
digest: 'c91ee4c740a5663b3b19ed778a0516c01a3c0cbd3dfd6c09ef1afdb9'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 61'
|
||||
message: '2657c625f5ea51f66b1375f479123d863ba0514d208430574c61ba963ad2f191a6b8005aaad37dc02790ebc566228353ffd4342afa9ee81d35f6097e05'
|
||||
digest: '92f1334f253260e513d5e6f0d1a6af6ed2fbbcdb7fac85c39d6d4040'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 62'
|
||||
message: '5655c3671fbd8288ea14944af925eaec653408f56233650fc4391018c22f9977facd2facb6c5062b6e3dfc6b8e837b3a78fca153cd5e9e32e91f5e27ac2e'
|
||||
digest: '58d6e83ba02833ba0e23fe3472d28e8f986398620f7464ff18e9f6ea'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 63'
|
||||
message: '350bd6018cbbed86e050b3e7e60683e1f619b73b4c2e764b74eecdbb00f4018d7ce9245da4ede7e6d439afc8bf03eb8964a2a4d93ef3551abbfbfe1ff0ce74'
|
||||
digest: 'c8ec854e632b2c132d505affe1bc00ddbe99452e5b59ba76a02dd838'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 64'
|
||||
message: '4cd27324c28364873c6ddbc3e3a7e2cda9e8a72ad2f72201b262f874b8739f30ab60c34334c2e92f9d48533cd8ad2312c3e7c386aaa283b50dec844fa432d636'
|
||||
digest: 'ced6081761ff5259f132aa831b7a1b432d093fc857da0eeeb82be71f'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 65'
|
||||
message: 'a4f2063fe6ec17550d7aa831091952dc4dc041a283c488187ef9b75e701ab0a25d6ab6e5cf9cc702ccf02cec05a04e37507acbda58cec933938a8b4b75a4425ce4'
|
||||
digest: 'af6b7fafcbe9cb25003c5702995fd656365a20e113c8e5b10312cdf0'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 66'
|
||||
message: 'c1d30f33ab4b410d0f8a809eb5cb681ec9153bde26693b20d440572cce350aa009fe8108b3a0fcaeb8e376b48b04885f23ab8bb6441cfd4cffb1255a7c88fa10f779'
|
||||
digest: '408f4fae70d0fd745ae44ed66740bdf1fec0dd4e23db06920c6f8ec5'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 67'
|
||||
message: '61b34b8aaae2e19e2d61924642351ade2baa6925f7a3a735a72e76b9905b775a004f0f7a24946b2529b3c144a205d9142ac6cdd74a6b0dca9d35a5563107c38a317573'
|
||||
digest: '19658b285db6cb9dbb4ceabfe671434cf1b85455a8b4da385ead830c'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 68'
|
||||
message: '3413b09d3d12a333680f798c0e488776579d3f6a65f20412ced53c085060a6e1c061ed6a44b97e31c20297479875a1458e0ac08d08e0a8d281e0b2db349e2f831c7ffc05'
|
||||
digest: '008a3c6ca57853adb1af5d44595e62016b7af47226492b9f3c1a9713'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 69'
|
||||
message: 'b6e690d17d9d7f07185502bf6d275c84e3ac4f5f77c3d4b30d8e106603be84410c11849a3c18ea305f3e0b568f06ea540694ac0a306f4cd6048590b895703cb4e4f78578f9'
|
||||
digest: 'f51dd594c7dfeccef95e3d4024bb00f931a9e9516958c32d2259f5ca'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 70'
|
||||
message: '13e6b1b4f021d610c81c97f0f952daba2766034d815b5dda4603bcf788ba60ee31541d5b4353b9f6645d96ad99ee90f6524b2963a7b7e476e1e8eeb83cbc0305eb29902a5d72'
|
||||
digest: '09900c5ae3074fe73e6c4eef51f785e57947bafbe1d8dea38868e3d1'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 71'
|
||||
message: '3a300f9c2dc3531917222034791824b49436be4dda760f67a21e54211fe77394935fd35cc08c71559fd231a2551672f46324e4081d4e9e725d566b9a788f6504713ec6d46d46fa'
|
||||
digest: 'd71c18afd448113a45d06ba616a1945a567e26f336cb94a45c2519d7'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 72'
|
||||
message: '81c64d2313dce3126ba16d3216c0f334910f063b00720be322fdd68285587baef66860ff3c2b971506e46bdd21793911ee1982fe14213d8a7241727558db04dff6abcf0b14adf262'
|
||||
digest: 'c85acd75ec4ddef1f179f98fdcf8e006a1d80afc14749310aa97599d'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 73'
|
||||
message: '09645b920bf81735d6b5caa43bb76dfda7497003a6595c2ca62ab7f5fe4928792ec2db426893275f50616eb6016a459c50bbd5a354a381b32667ca5de5376f6bfd61d8bca9c5b44fb7'
|
||||
digest: '650e31a81dcc7f3498900d205d611b101e89d7243e1dd77551b6c422'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 74'
|
||||
message: '3fd1d8fb9e7faf18a49a1bdc77fba093cbe09af00d461999e19aeee7cf9106e63955f7a491e1d9a8c9ae57c00a8f0500a8d9f50756c88584961e7af9740d53bf7457d74bc9b4f1afc774'
|
||||
digest: 'fb2589e942890fed8f99ecfe02d3a51683a5da582be9dadd25305d33'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 75'
|
||||
message: '5af0eb316e793fa9ea9d5141fa26cdc3cfcf9852976163a8ac1d81a10b5af5fd096fd06141d3baa0d183ce39c6a4ab21d46ac7c24b38074346098d0a250ed27f3e98f413d0395182382654'
|
||||
digest: '8f4c6a61321c6e500cf0dc2b7d7d97da9301f71420fac604feae19f2'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 76'
|
||||
message: 'b26d3233b551029077beea92859889691ac3853a9f972b2a6e8e55b8db40914f75927f1b892a7b1de8267c7aea0d3c19b3059a6cb5473c8e76d1788f945a750c068b8d02a46cf6e3ea1da2ea'
|
||||
digest: '4d8360f3692defa11eda027f94099b3054b841f809d2aeefc885d2b8'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 77'
|
||||
message: '6fb0f3856dcc9addbd155916f0227630959f01c764acab99bc80dc435052ff4b1d7921639fd2baec4462caba213c2817e3a5170a09771bd951c30bcc70ba663406ceeaacd114639f21edc20a8c'
|
||||
digest: '71f8e09f911dc8ac67999c10c059c203af4af5e436eed8f8a97a6f2d'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 78'
|
||||
message: '8471e939d4531486c14c259aeec6f3c00dfdd6c050a8baa820db71cc122c4e0c1715ef55f3995a6bf02a4ce5d3cbcd790f72087939b05a9ebc93a905ceccf777a20d36eddfb55e5352afbe8ddf97'
|
||||
digest: '065cb93bb2406003776440d9a02af1e4170e777c7d2c13a113262ce0'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 79'
|
||||
message: 'c87a7448b7189a11e532a4320874186407fb32470d18904cdd512fd265a9968f95225132717fa146654e725ad9268d5f062e0f5108de1a1a340acab3ab1c6b8c2fa1e92e3607871f3da4d4055ffbdc'
|
||||
digest: 'a39c7c5eacdb22669587a1846c2975b41f9b74833d9979de2d7f11c2'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 80'
|
||||
message: '26465ea06dbb61b4193a982c984a0358085fd6f14ca027ff60ede9fae9211d301194476691e51fc20ff68ae9ab37c864d528ef4861199816dd34d8e022be72ad299a4a1f200f1d53bdcb7009d327c605'
|
||||
digest: '21afd5f923bc7bae234f14ffd662f174b4d179c7241ddb57576fe502'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 81'
|
||||
message: '5dbf5c2711e26fba3423ecbff0d56eb8c934cb6f78ee8e96f6e2a8aad727621dd95096b3bdee1f2d55578e25dfa61e399103eb6b75255ec87714ec48bd3400f6367f35507612c9f1c1eb4f6d65f1a37d4d'
|
||||
digest: 'ec5a139936f2c42a1f4110e2c52bf7c3cd3bae49955c608fadfa163d'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 82'
|
||||
message: '25be46e3df2595aaaa9be9d21017aa2d64306720488c79b4719ce3eaaf867d4f276352d1e3ab46d18eedfc7978c4f650e106fe0b733ec5a7105dcbb4ceac7ef44005a624f843001a49f72910525dbe40378e'
|
||||
digest: '276a0dbb542fb69ed409a91994625f8469b051be25b5968b3a6fb0e3'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 83'
|
||||
message: '2bf69b4b50312f07fcd68d466e329cea515af2bc9b78df5eb664ae82de74275aca94594f8e9996f6c0d2be40d9e0c1f1dfc85f534147322b0366efec1a4de92b1a5cd6530e78d69aa7a3b1339ad060c543f5d0'
|
||||
digest: '45a66110f93ad7873923b97336c23e87642e79c7897d9011ddecf03a'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 84'
|
||||
message: 'a81a32139d69fbd64000f8d4a6ee10290ccc83e8c9e77b6081a2e59e9c157e33f6fa3137d8caa08d28230169dc6d2b10b4bdf0df29f9ae8fa13e21b7e47e7b92d36eb703589f2ad699ea5b49711214cb20a5b903'
|
||||
digest: '4143fa448de5ebc14aa204d934ee3971051c4e3074d4caaf0cc62af1'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 85'
|
||||
message: '471e434b7ef39a0551b2ed9250006353ecd915c82b77649ea1768fe99b3585ae9d7ff7a40f6bb23b33802cde5a1d5c755818cf2f35a6f97e257bc963ba3280eb59eec2faeb42ed47d44eaba8292bc3901d8a35d5bd'
|
||||
digest: 'a12a51a59f116f87f757f2fde30e11980d7d96ebc959774a734ede74'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 86'
|
||||
message: '3e346c6aaf8f977620c3ac68fb608aef432d6cab296d1a93da6261949c10c07a19436414fad35793b827f434aff89e1f7557b18e69f2b9318f93e2d29be9b0354b8bf042fa3aef657366e93603f4c455d23ffe98725d'
|
||||
digest: '307467396d59103a897e6a5b16dbaa2a0dc365e22395465a035fd293'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 87'
|
||||
message: '1ce1f01b46b4c9e04ce4b5e22fbbed4b025427c55848b03df98bbbe7d990f9834ab469de70d9729bf5512f33ffff0a3b5fb88ce60cef73cacf9205e73f2fa5e5f05ba49de85459db52e57462778a8f31e9d50605011009'
|
||||
digest: '5ba94e26394485eb0a9e3f3d3d9a6083b35daed5f0c889bc78924c35'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 88'
|
||||
message: 'd624f63f53be3d6c0a20c12263e4436e462407d72e3d854280d361131c169d9531430e9c556d0c69d57d6ecd4978b6926c0088162b1e6139fc3e8579717b395c0d1d330f56604f4c2b78838058d1152e689b0b8ebb86e47b'
|
||||
digest: '37cdd523d922362ad463216f340f254e76aaaa0b45f6dffca30d55d0'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 89'
|
||||
message: '7f601132a3833a3e2a33a0f1a058d6a2db06f11e39afec8829974b64ed89ffee9ec98ab070496353371f9cb62a37c23de745056cb8fe98b415885b8c6a2fb8c41a59ca16c3bcc5ffc4ce92cdfc7db9f8d52184b581af62c984'
|
||||
digest: '10871c0e562e11aa59406eb4bcc832efe4942260ef08cfcf99e7db58'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 90'
|
||||
message: '12bf3a3337d3b6d553bb8cea92c369b930048ed2902c81f088820324ff244330bb9351317472d5822d8b01dcc413c4c2c72f411c89b77f227539627ba341daa6a9d75a9ab44a8ca9d72c43aaa29eb157f7cedaf419bd48320646'
|
||||
digest: '6f763886f273aa5f943ececf7b765d83ed1a78b43abef25907226b52'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 91'
|
||||
message: '424f1d07b708e60cc4d00396cb0e90597f3977aea7904be61f0b74de1f918dd3bf6b0a78bbf91e4674a3dc1438139ce7c3a1a00b060ff7632777a2fdc881f6e98cd9414cd7e1b0b0d6a3709ec009146f5b50375fc1ba62e3648330'
|
||||
digest: '7742c1511fc5a0297634fb3d928a058626518b7fb88db428e2a282ae'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 92'
|
||||
message: '87e1b9edc7c6576998ca27a41ecf90410327adb96db5e8a12d4eca2c3a6511f05de803ed2d6503cb3e716263964a778160bbf2e8e5406d97b76b444b2f86a7451a7aed4db0f02bf7c6b506254463c5cdd83eabfdec5c831cd6097c72'
|
||||
digest: '4331fbe48d8a7fd2e69ab0279509131d44eb132427311724e2dc19cc'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 93'
|
||||
message: '8fd0705684ca323c8ace2e7791d407697d05d522357dd23bf64f5501eec905d706fa46d5ff72f8b5c04961f0ee636724bef103b9073bf2c49c9eae2bd8d09c0b7a6c8756b3aa4dc17e6dd8dd3084508350298f76a8ced6449c1abe6dbb'
|
||||
digest: '43ee3b234ea91228c05358fa56bb5072031fa413be371413a257a0da'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 94'
|
||||
message: 'bdccba55407761a6b90ae88ecea8b95ce13ae66a34066d505184bb58a96c6e327b145fe9f7f9e016a49b4254ff8f9bf365cfc5f13254aa252be7bfbe1934cfecb720faddce5cfdeb9f3ab41481c0ddaacbfc1e4bf4964a14f9ace012ffd9'
|
||||
digest: '21fa866d8695008099e400210d04a2013701887d7afa98e8324e96de'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 95'
|
||||
message: 'a8aa236cde557d8d365e6ed356636ee9117f7ae9e6bfb772c9da59fb271cc36724a4efd927cf11c998f47758e852b4e0d246fdd0e1c2d3b733fae39e7c602a9b4dd35ca3971387a06b79f3c303e54e1c06f705680882f52a503d43fddfbc88'
|
||||
digest: '102fb3632c675224b30ffaa5a322aef3354e1ff0183cdbfd06e5a17f'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 96'
|
||||
message: '44c6c75e377f21fc9cd7c164ca5c4cb82c5538a58dfb323992e6bcf588c61b246053706bf88725a09d0a8adfcdeec0db419cd7732b0e3386bc3f3407e9e016546f4d15c314bfd57e30c302926deb3342cbc315a1e706c5607c127de42a9a739b'
|
||||
digest: 'b9b62986eebdb35c88b12e0257537a05394ef5a16fad01c2fec57d6f'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 97'
|
||||
message: 'd3c4a0b17f46cc5653bbd8300dfb0df6d0af3fb7c7639a830bdc9f68c7ab69a09a0235083cc721d465e73481eaed9f0c29d34262a8177217f912fa5ae1865f29b97669c1133ade59a1d2910f537b9b23c080e963c753f7e676dcdafd2a118467f8'
|
||||
digest: '49e4553a6c26e7a82cf70b15528037cdd658ae33653bf4ce8e86799b'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 98'
|
||||
message: 'f6e3df95a4526aaf671b1ab9342db3ba0a6043da82b355c4a8d7664e09f29d5c0d9db601872e40e88b3d08f38061d521753b55b5b9b65895a58c3cf0bd0da823f81c7ede5b7a0a82cc4780ce26c5a5bb8960cca4f4eb04aa152d90575f9c97825e68'
|
||||
digest: '4854cb2a3a9c9e3ec91b4e7d79a753f6e2240f4b6e2050590d6f1647'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 99'
|
||||
message: 'c472244bd3325a84d37220e7ca6ecd40e3f20e52677a811ce8987f5bc0963950ba5c06c30e95fb48930ebdc1305e932493ccbf7f266d0f393f8daf9a9850418dfe992fa54d2b405f9b0f6aa7b435e89dc75e8c985e38556b93cb44e881156ca3faf149'
|
||||
digest: 'd459400905f4c1eeff90decd9cc994b394b21430379d6328c03af436'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 100'
|
||||
message: '8ff0520805a336aa768a1a75f2bec3ea876ac2246f2d496087bf3ebc03d88e3f604dc41a9b7cda2da1eb4ecd062c79c5f9041d9a78cc3d14c01631f90894f91c6e36d29632930754228a0ad25529c3251ccd283f368b0e6f43cf3e277b43cc02a0f3a405'
|
||||
digest: '616fa8495f55e77a308c223afe470b42c0e1a014574aa36d01f484bb'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 101'
|
||||
message: '6a4cef9b8dca0ad7767515c8a61ac32c730b2894b60a106bc5699534a170f11370ff908f2d746a969ecf8fc1861503da1df2cd9cbda14bb9de11c8224440508277ebc30b746a2976a2d64545076c6d4cbc36996f9ee8b9ad47084c5e3d512eb8685ab198ca'
|
||||
digest: 'd20490eb9633a321a69eb27d42dd619aceee533e850075fd16589bef'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 102'
|
||||
message: '9a4fd44a08d9f5e7731603ac92b18e3d880ff2d5b9d7cee6dbb2b7ff504f2df3b3abcd38b18fc98d1a5a96df3700e46e5f53d32cc581646594de2da53ee452d71078b0aa0b6f5b39ef514bea985d52968dcd51ebd75bac0f0f03fb86bb0b0356db41e469be84'
|
||||
digest: 'bf3a90e1e0e8b1a20b08331da3c1996c8395a1e3b835799f879cc7df'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 103'
|
||||
message: 'afce173b057b48406e163584c8d8c1a93b15804612c2278dca34412b692a2470120e24b0d57806e9cbf4b8a563053f22f76af0b1a39fe35c56a7a5cb29092d69f01911c20f78fa2f90de56b672174c2c434cf59cf184c9eddd6a57be31513a95747548395b840c'
|
||||
digest: '373d08139139af96f22810c8e8443a781c88344b73b9b717a97f4a04'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 104'
|
||||
message: '5421cbce307d2c89a27a7b0a1d515e6927002bb65d3f0990b8b452f3106a3c52de80b9e6461e9b4555adfc368748ddc48c6d0d914bf94d6d2853b12782e749a380d6012d0eebc60d22d2ea5c4484ca164d06ae706f53f06b759761a94c9de87fc38b6c4d8fcdf40a'
|
||||
digest: '5bc1dcf59342499195a61a0661af7a8e96097660a9f7e576572f3d0b'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 105'
|
||||
message: '5add9071d1d5d1799c0f9223109b761b7b9ee1c30aa20025ea300a2baea1c512f1314b1c3c550e852a4f1ab9c9ff9ac444fc9e0abfe31b3883ef337a5bcab7ef3da3eb5a2d81891a5fd7085c9c581d8fe60c83185fa4f847670b888a053d0de1885cf7926e01491e84'
|
||||
digest: '0c370410dc8e22ee61c49d7a3bd3d7e80cc4f3f51acb26ae4ec5a3a1'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 106'
|
||||
message: 'e965ba8d1236a10b362cd75cacd0175cad0af65e13d9c57a6047b729029d470fd6d3d417ea4a8ec587be96c86f7661cf63bd5e9ee896d8614bac1d40e388e0339606dc189e0aba038d6f35d58f407c10f02bd7e9de328e9f6fa4070ce64c2e7a32e819b7b7dded6c5128'
|
||||
digest: '175c4a7fa491e7dbe3a2c8604b07bab0e2a2e34b270e16b4392e9716'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 107'
|
||||
message: '314158336fbf7845251e1a620613ad8c1a5996e512ae25cdd91ec84b6b837faeea4d9074ef7f7c6a1efa3115fdfe815106eed338fa531945792402b9d045703e124d2ccb6a8cd9c7af4d26713958487ff3bba805b2cad899c565ccb5ce79475dd0c9930188ef75a4019d60'
|
||||
digest: 'd6cd1901bbeaf4b69a7c211c50546fce3538a8388460ec29ff8166df'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 108'
|
||||
message: '2c2d86197b39c194c65a93bdadc72a9e590fa75fa8ae6b758adf9116abb2bbf0525e121a89d8884b7ea5614a29ecf1a52fcfa7a606fb4a835a7e83d5b0da9c4b4a5787a04a9d22ca1a81b9750a20ccaf3b2a13e5bd81c00ef403042640a3d4dedcbfed9207ae167b6298a526'
|
||||
digest: '49dae21e7733ce09e392dd980ec3a0c2c54269376e231c19dcf5a774'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 109'
|
||||
message: 'bc106b071b53c4d855e1a3dda41db1a7a4460586b448a3fd9fd842747cbf532dd2763e7900f4ef2cdcc4914e9b5a9913f1a7070d78ebe8a156cb20b81ba366b6e81d90b0d60311da9551c03e548fdbb4e15d4b0e1250299363fc82afe05257e8462de814652733c9c8b1b71698'
|
||||
digest: '3baff8bc1f4351fc62ca40904a002198b5ef6924afba1d1fc61d8ae1'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 110'
|
||||
message: 'f627848c4afecd8df33da19c606aff119a3762c61c0539c3e6a8961bcd6a2a111552717f41a62a792aae0a2d4fbbb10d6c68dd314e20def6e5e04aec9b3ef1efe4ab139316f5d1c67c10e2b0a51587de028bc1a0b1e6c1af934da013a4a050448cbad39071f3aabc10e991ee0c81'
|
||||
digest: '2e0b5455cce69262066fdbf9390ad0dc56138b221b75d51298bb5b2e'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 111'
|
||||
message: '15cb777ef3e451b928dbf288e46a3627044ff5de42add884a9af6b424d6e7399381581a6a743c7a577b02bb5da149ada4e449f48d09e34df4ca8d8f259f4e14c23471475a8f97331289f564ad6e8bd8fd4c5e51d5ecd19dd46dfcb4ea009e385bea857725fd1fc6423f09ccf42af48'
|
||||
digest: '9fa12561f1df9a2d793292e0f4df5327af529336b5b2118952f5c24e'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 112'
|
||||
message: 'd24df75a00cf92677bb41a620fae519723937ebfe1f7b430970056505d76db4ff91acf16ff391a7a3d8085b655127a18acd80bfa831837f4644a6850c0273fbed6029449d65bb98a47b2ff1ca6997c50500d0b21a206936a5e4d8d56508ec01832ae4fddce5ef6ff62f1917c486adea6'
|
||||
digest: '5cae12ea9652269ea2aafc656cb83424746ea1d5d491f9a159594b2a'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 113'
|
||||
message: '730963b1a462d234e8705db9278cc58dcb817bec6c9e62bcad0ad57c6158ec77f35bfb3d043c5c5355c96f2ae810de4e622d26e0b4605346fa630a21a3facd7fd3cb7b5305701622f5cbc9febd992ab83e4abc52c111b8b3de370d9e9eb4a5e5dc00eadaf1278907901c751fee4f303426'
|
||||
digest: '46c7046aa633fb5bc4d6952f853e39c53e771009183b66961593a3cf'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 114'
|
||||
message: 'c1460b2e1e385c0b5756e210bffaa8f1cb12ebc3c60e7105c5fd1ce0def2beae95ad2fba97779d46ab4e24d3e5429e9c1c1fbd649f4c577124f300d90162defc9fb2b9522ba652678ed5f623a00c524f98ee8955c8dd8447871e8a236e371056c79cd27e428b2274ea35808a581e6c1126c6'
|
||||
digest: 'd8402ee634e18c967d110bd7053a302da650ccb38f259cbee5a24715'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 115'
|
||||
message: '48a84e3c4850a29e433c8a243bf4beb05b8a5bff38cc418158bfb968f1495cfff22e303e473e139b59cc5d22d561c1c8afb274fd66d09180899fbd777a8907bf72731181c5f0750668b562ccb04e86d95c0f314fd64cb741b6cd16c5887cd84acf613b2c4ad0908675e1e1485321d6896b87d9'
|
||||
digest: '3748808c1a4d1dc1b82ebab4cffc9d8cf5c251d045dc8affd756dae3'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 116'
|
||||
message: '41b2b071ee6a8e0bc62e9e03a8705f6da218e69b111c234c0a516520f981204f88bdef9bc3f4d58379c5c8bae59270d78dd62c4e6bb8569f4be0c8cd74899e128ad73ed1b36b96ccf936a597f08a3d4d987707818454c7773c9ce194e1fc1d140fa9a7fb07f75a4e0e283d8210814e3589a47f1c'
|
||||
digest: '8776f08070e38582d4604170a9e658fc17034cbde9e03a002e728131'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 117'
|
||||
message: '54bf375944c002ccac87f55ff3eb58c45844f62d917ddd03b26b5fdb515d5ca6e8f5c4277a3657ab7addaff4e8f58176bda620c6894e424f5bd30747e13737e1d06ccbc4866ab0bdef80c7b0a5e730d55b9dc8207b70f0010e59914edd0c5d7ed5cd5717b0859569d215447d71eaee49f9d2f825af'
|
||||
digest: '0cd690736dd1f390694f65c3b89e0cc2269f3b8208c806929a8f8cb9'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 118'
|
||||
message: 'd924b16dfe2f612d923b25669b45d9117d30a3531d5d30ad477c41734da2677ff19b0a268581b06b518d7c73352ef53990580a83601f5215aa8498241c8f960df19e014715fcc69689b594820aa99a08ede0928f4e1dfe1e69b6b1cb48a292779fd49db8f4c72a17025b727c60df4fe65e6f435f3080'
|
||||
digest: '304e38689250380e322505b4e23fff35b341e2d94cc62cfb44b51db5'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 119'
|
||||
message: '7d2d12b351a70306230e7dcc7664ca3883928093395ba8d5828f1f76c8813d82b8bab5ec45efbc24f0316eeb47646d67acf2cb7258c12a38a0622101768be24b32c71a1c936c199600cd33cc14b266d45a053d1e55cef303c462dca123d601e775ba0aec41046285db4b9516e436fda814339d3c376c4d'
|
||||
digest: '40a7947aad6c1e73436d78672038fb99a4ed7cb145445e276643cf38'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 120'
|
||||
message: '5fee687802a5aac1332917cc5d0a9439ad95c764219bce45e2743094d34413306a7db0c1bfa5059ce25ac9e87293a5ff6b28a1174095dd222afb81f3bf67f6a1c65757304a7a226eedb8341c7f72f44ecf0bce15c1a7e35aa132fe0db7a5ca801c84430dccab6bfffb4b3eb0ad30e7ee814534a3cd5948b5'
|
||||
digest: 'd6657f115db759444744a125e40ade361d8a40fd88c91187dc5a50b3'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 121'
|
||||
message: '696730b7eca27066d541c4150a22e6a6b062c951f2177df6fd4254b14fff43b032ff8a418338972fb8db284f2287b1566ebcfded7292170827ab6b73f16629ad2755eafacff296b4a98d85e27089e40c5cc85b4deb64eca9e1a01fa18d1e5c054f52980a5736349caf3f21f57c90496f816f2a96e4f5c48235'
|
||||
digest: '391d6c2b645d1eaa7a7dd68140fbb7c23dd4ac0347887a782e4c3442'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 122'
|
||||
message: 'c8995ce09a8d80b790789915b77e53cb2ba0b3974327f0a509468555edfb843fba362d75c83dbf07744f8ecdcd8756609004cf6a574781200ddcda0ca53d7e100bf3dea85bfe0c6f5277cee50274f16fc92cdf9f835c74b6ffe90e67b0c6e3dea5189801bb980ff6123980e5bd0ccbffbe600cbf312d706fc7b3'
|
||||
digest: '3a6ad16c5957b54ee6691d227b2d2ecf9348b68435a50647a2cd55c9'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 123'
|
||||
message: '247f8754b008acea234d3b5cab5c613a695af8febdbcf3e4c5bbfdfb20015d7cf8a91d5b3f666b1d38023fe93a0b3ee1b1c9dfb36572cc6affa18b8bc9055d5db5566688a18e0fe1d955a985ddbd5325652f1da0a3a66dd7c81aa2bdc940f8ad6370ab015de660e00d2ec0571dda66ab8f76fbeeffbe9fd1280e8b'
|
||||
digest: 'fe66026c1c2410927fa442cc122d5aed90308273401d429fd1ac8f61'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 124'
|
||||
message: '93dbada71b890e80d9b88a338a7df020a7bf9ffd9898536225fd3e8a2da25b589a18ff989438b188f5c53b96fd4d016c4850922afca57df2471866aa095858fdcd115da3fe554ce35840e3569cdc15ed8842a5350602f4daa4c5186b44312d5c140df051c1a68a9ae871a9f9cef1d5ac50db02a71d796122224c7c53'
|
||||
digest: 'f73154e76b5998e0792fb0ab1d721ee730b64a1b3a543061fc76cd17'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 125'
|
||||
message: '6178736ea6aff4b99e7da97dee000adf72b37069df8ad5bba63fdb7e1be6109ad6c871a9596e2dabf4fcabfbe6c1cd82c50b772a20404b95622ab710f99332c2b812c2297a24c2c8097ee2193ea26fc969b1d524f28062cf41ed4cb5dc74f643cffd6fd851f83b77a4ac57c03dcc771e254c92419f72a0cf0b30a3560a'
|
||||
digest: '33a7425316d2f6be1bdbb870d953132d55e29fdf8530463977940908'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 126'
|
||||
message: '1c21b5842312111a9e2782fe97917e946b8d65987c43c91b27ed0cc8f63b316c16f6ecb60be5fb3ba2edb9bc277bf1acd927f0ed9b91dedbec8f4e8b198b1354b126558f3a21e59c227ece26f9e22da7dd3e422e35aec660a2a27fbc323b1324d7f81a99189176470723e7c1738eda8d5e1b82e3b1632ab22f6ccae4a814'
|
||||
digest: 'db43ca3dd7bca3d899648692e4ed8f03119628df313e1573723c58e9'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 127'
|
||||
message: '4b9895235cb4956aefffe815415252e7d6b21921bd7f675315eff071d0bbd429b718c774aee96f6c3a330d5d40d1601e1069c7a2a19ea5ca1e87097da2608ffb4180816e478b42c3c4e9edb748773935eb7ca0df90dec0eb6b960130c1617880efb80b39ae03d617950ace4ce0aca4d36fd3ed0112a77f5d03021eb1b42458'
|
||||
digest: '9a9176e97aec99ab07f468f6a226876710d6d877021d27061d4d0132'
|
||||
},
|
||||
SHA512_224TestCase{
|
||||
name: 'test case 128'
|
||||
message: '9e127870be2431bcb4f4eb4efd5c2a6c5870c55e7a5e3b7503994a4cb136be4ed396887801450f600b22cb772fc00f8b8f0d2690e231a29f69b9f13f24f531e4479e45b5e8bc2992fac782567e0d7a59f853ca3a20bf18dbdbf684ac69817e2de075daaed9532659692d3b73530a12df7b8cd9e49ed0463041962c1ce7a24c31'
|
||||
digest: '7e2cf6226623535784c59cd6a7b27dac60ee23fdce8a804dbd6dfedd'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_short_messages() {
|
||||
for c in short_cases {
|
||||
message := hex.decode(c.message)!
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
actual_result := sha512.sum512_224(message)
|
||||
|
||||
assert actual_result == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,551 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA512_256, the test vectors come from:
|
||||
// SHA512_256Monte.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
const seed = 'f41ece2613e4573915696b5adcd51ca328be3bf566a9ca99c9ceb0279c1cb0a7'
|
||||
|
||||
struct MonteTestCase {
|
||||
name string
|
||||
count int
|
||||
digest string
|
||||
}
|
||||
|
||||
const monte_cases = [
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 0'
|
||||
count: 0
|
||||
digest: 'b1d97a6536896aa01098fb2b9e15d8692621c84077051fc1f70a8a48baa6dfaf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 1'
|
||||
count: 1
|
||||
digest: 'a008d2c5adce31a95b30397ac691d8606c6769a47b801441ba3afb7f727c8a9c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 2'
|
||||
count: 2
|
||||
digest: '8eb896cb2b309db019121eb72564b89c1a59f74d4e2f2f6773c87b98c1997d77'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 3'
|
||||
count: 3
|
||||
digest: 'ac71b694438cc300dde0f6f9f548d2304e2bdb6ea45e2b305af5fb3e4ec27761'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 4'
|
||||
count: 4
|
||||
digest: 'd47cca4ae027778fc285bc78fb2a9c1cc7cde498267c35157e86b05fc58e698d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 5'
|
||||
count: 5
|
||||
digest: '8bc1516ecea32fa3cd4f9f12ac13a2af6763090226e7c1484b2d85757fc9e82a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 6'
|
||||
count: 6
|
||||
digest: '1abe44379539744d7806f5d3ef7c2202d0b08f575d1899b7a3df737b18e2a2a6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 7'
|
||||
count: 7
|
||||
digest: '324a7606ee9fc9cb26abd881581e70a06fedf33456f385b370973fcee8d01b7a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 8'
|
||||
count: 8
|
||||
digest: '06d1ccb978ca4b455ed380bea2e8c3afe24d0b935f5740677927f6f1a96fa111'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 9'
|
||||
count: 9
|
||||
digest: 'cc78adb572c8cff2cc84020dfb61c521657baf3bcd8aea9593437cd2cdb94266'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 10'
|
||||
count: 10
|
||||
digest: '935a43189f019f06a630f7601e1d40d51fc2c2ea602fea2c0da8404730c5a475'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 11'
|
||||
count: 11
|
||||
digest: 'a99225bcdbbac4a87d8ed9e8e06889e823fc993a9661cedf1af02c6d38505989'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 12'
|
||||
count: 12
|
||||
digest: 'e5e769874da74a143cd49f0a2f7a6cd3ad4c28f55d8719c85063dfdf0e1efbbf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 13'
|
||||
count: 13
|
||||
digest: '43f7ff7effc58dead5f13a47f8ea7e19f83dbcb409b10b3f985c78346817448f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 14'
|
||||
count: 14
|
||||
digest: 'c1acce072812dfc53682f0c4794b1cc4ae21fca882f4046e6d2c945f6d29dc24'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 15'
|
||||
count: 15
|
||||
digest: 'a78313758117cf3319d90decbe3b46bf7ba20c079879f485b3290fbead662ac9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 16'
|
||||
count: 16
|
||||
digest: '8eca6994ac6093c1f7701bec60770293d754e9eb95372f9ab10ca58fe8864bd0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 17'
|
||||
count: 17
|
||||
digest: '05457ef20a508c205225b9a836f11964febd60d9dd31943c49b91578741dd7fc'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 18'
|
||||
count: 18
|
||||
digest: '8ee3ca17f5ad34649a41b3cb6f4c60d24229d3c39b9afdce11725779296ce412'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 19'
|
||||
count: 19
|
||||
digest: 'c9873b3341592ea56d0321a6653c350ebab65beb5e37f0a1554e9c07d93924a4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 20'
|
||||
count: 20
|
||||
digest: 'eba87758a57c5f9e3caa8da51b1acdbb2e69be17379f81715a134f5f09c4662f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 21'
|
||||
count: 21
|
||||
digest: '8f70a95573734147b50866372b11673d97a8cd0754013f7f6fb35f96b2911353'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 22'
|
||||
count: 22
|
||||
digest: '19ec8b72cf00b934d5bde820566eadc516e0038cb54bfc59349c68b36d079a62'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 23'
|
||||
count: 23
|
||||
digest: '22f7a748d30425980a9f83298b0b053ff8ac156f304c87aa5d10a01e2e05c397'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 24'
|
||||
count: 24
|
||||
digest: '3429d8880a8862eb6973b245c7d62f2f8078b7defe8eb117e8c787b30df520bf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 25'
|
||||
count: 25
|
||||
digest: '373806e57129e849aa91a208a1f855f9bedfcd9f85b259a70fe481a35f0266ad'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 26'
|
||||
count: 26
|
||||
digest: '6fa0be65b46bfc853be64470cc9cfe46e2001d1345b3eb4ce3e2f881a2c7a56d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 27'
|
||||
count: 27
|
||||
digest: 'b32b578b078f6e3c8c48ca07de123fc7db6b6abe8ec09f6b91263e0353d2c584'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 28'
|
||||
count: 28
|
||||
digest: '8cb0edd50a485250433188a66758fc8167e07d665aeb1553f53e08169d1842b5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 29'
|
||||
count: 29
|
||||
digest: '92150694ff1674bf073856b6df9a6cd015087e9bd366e7387e8c19084e0cc598'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 30'
|
||||
count: 30
|
||||
digest: '3ec487fd88c8e1321e9279f8d5a82026efee762d686968cd2d801ab7f6b3d912'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 31'
|
||||
count: 31
|
||||
digest: '894c78e468398414affcf1e9ab8fb14426e1fae964379615a212b744e61b12e9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 32'
|
||||
count: 32
|
||||
digest: '7f6a9d2c8d476ad79c845f786da4bd4a8de9a4af05ad0cb12af1375077714cb4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 33'
|
||||
count: 33
|
||||
digest: '092ae9d7a22cff2d6f28cb2ed47c082ef279fc20e2246b638c6c0c941238a075'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 34'
|
||||
count: 34
|
||||
digest: '553d007076a97c6c6566600693cff33fcba2d021c1fb690427823d65076e4249'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 35'
|
||||
count: 35
|
||||
digest: '17a8b074390ff2aca2b9cb7bfa17310a293f522b6bfe9b6b6f1429d709f8be7b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 36'
|
||||
count: 36
|
||||
digest: '6d903e776f8edadc19c680fab311dfec6aebf7333dd924dadc21fd0b624ea856'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 37'
|
||||
count: 37
|
||||
digest: '1a340486e0703cfddf87dbedb73c93b499ed6018ed8a50ae148ec9cb0be1a608'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 38'
|
||||
count: 38
|
||||
digest: 'd694d39fadf623aaf0144abd69d5cb580d050fc4efe49f98f0d910cba5ca3531'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 39'
|
||||
count: 39
|
||||
digest: '128d31156899fec03b0251cd739f2ee6b5041e9323a5aa31389f67ddf0c5a981'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 40'
|
||||
count: 40
|
||||
digest: '1b3df866d64c5db4f55a4137e1d88da5b6e8a107a6fbe0022cde5e5c293a6a35'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 41'
|
||||
count: 41
|
||||
digest: '31feabe0b78b6a9ab56929570e48afc949e8150e5e1dd11ad7a8c6b43f1db943'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 42'
|
||||
count: 42
|
||||
digest: 'c7c08d91944704e9de672577acc1a0cc832cc109e26742a2812822c55dd432ff'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 43'
|
||||
count: 43
|
||||
digest: '76b41e08876b881dcf0007746a1a1e275e512b38c0f949cadd0521cc4bb43a2a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 44'
|
||||
count: 44
|
||||
digest: 'eb015a3eee8b130cba1f120e41b83eb032124d366f8a40eedb0569124b013c34'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 45'
|
||||
count: 45
|
||||
digest: '537d4b84f4c9ce3c30723db6ea2dfc3a8df1d2a4fb090c651dee04ebc019145a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 46'
|
||||
count: 46
|
||||
digest: '9000799092b166e5042f996f9dc4273daee4c96b80716e321ea17f50e3e74e18'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 47'
|
||||
count: 47
|
||||
digest: '20c9c91bf7bfd79ed144cfbf5ea7226f5513ceed5944834c53326dad1a6a77a4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 48'
|
||||
count: 48
|
||||
digest: '5d3b9b8125e1c55ee5dd70548d38ebf9bc706536b6db98f85c48b3072d27cb2d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 49'
|
||||
count: 49
|
||||
digest: '53e469865c36cddde9a53b29a3ed6b8bcc5e38f2c0f6dd3b356f1354be481a62'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 50'
|
||||
count: 50
|
||||
digest: '4df8eb71a1f46ab35861dfcaccb723d372dfe58af9c036e5079f70661a419c85'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 51'
|
||||
count: 51
|
||||
digest: '503fd9149292f8e65f5a59db63dc8305e527f7e70e9cdc282b9d5075f23f92c9'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 52'
|
||||
count: 52
|
||||
digest: '904c87a50b6383843b48cf9ce2a17c945b45c516fb0efa9eed88015fd10bb0dc'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 53'
|
||||
count: 53
|
||||
digest: '888062fa782842258cadec93b1bd624bfe392500f5e6d6ef9e71b2963b73bb3a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 54'
|
||||
count: 54
|
||||
digest: '90c2a13524c81890be3f184cddb2feb44053de85335fb7933c6af8e3ee5d4ac4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 55'
|
||||
count: 55
|
||||
digest: '1efd7a3e6331c66b21c40416ce4f27d6aba8099359ad950b752e5491a156d9c8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 56'
|
||||
count: 56
|
||||
digest: '3f2a1f7bdda96ae3abe859e7767a0831ee69971b15d09d9385fac858643b0207'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 57'
|
||||
count: 57
|
||||
digest: 'e021e5b9b812248cf5ea9563b84d753f5230cb1b442b04895871e3d8a7c6733e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 58'
|
||||
count: 58
|
||||
digest: 'a54312fe62b278b87bf440ff26703e280a13046071cfed2e23922e23ed7f8b17'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 59'
|
||||
count: 59
|
||||
digest: '2b9906372367f7704556d4345602337c581917c3d91711466f4d27c8597c1628'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 60'
|
||||
count: 60
|
||||
digest: 'd13e8e889226f72a1cfbb6d77a8cba9238900d148b4d0395e17415efc026a45f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 61'
|
||||
count: 61
|
||||
digest: '0977ad675ee02c46cc7523a4d617e5c8e69894efe0ad2d159b616eac65fdb68d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 62'
|
||||
count: 62
|
||||
digest: 'd34cd5081453b756bba9a455e0cabe97281fab2c6b5952a69171f8ed60bfb8d6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 63'
|
||||
count: 63
|
||||
digest: '720dc85f63580df35589802b1ee71cfa0522e92022382d875fd862bca3e64a19'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 64'
|
||||
count: 64
|
||||
digest: '933991fa66485b36788447d2f0c8fd0f4d3d815f95a64fb197a1f66e7655ec3e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 65'
|
||||
count: 65
|
||||
digest: 'f80e89277c950a465d4b8a857efb1200dd7acf6b2dc4842bd6d3edeb1be232bd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 66'
|
||||
count: 66
|
||||
digest: 'c180da36f5e94ebc6a41747500728394cf2fbb06c003a14c9c977e20a6d98deb'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 67'
|
||||
count: 67
|
||||
digest: '2d3e75cc7f37a6dee320001adc7e0d8811b87f532e126cbd99f13874cd149a80'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 68'
|
||||
count: 68
|
||||
digest: '3edd7afe868f3876cfce54aeb22fb55475aa4df87015c1defed2fb41f13ee786'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 69'
|
||||
count: 69
|
||||
digest: '7548c1cc9b96a65a918b37b4817825f32841bbc575ea8e6d12fd9d0c66ce8cd6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 70'
|
||||
count: 70
|
||||
digest: 'a0ea397e82b8c7639d3594199c517b8f42f5c3dc40d104b51a42b46eb891d1ac'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 71'
|
||||
count: 71
|
||||
digest: '7fce4436abbf5da053cad07e8cf721c24442f926d4cc20cb8ac0a68b9d63b8b7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 72'
|
||||
count: 72
|
||||
digest: '48f93612a3689b8123fa234251e59a9784dc865dda43186e02a3fa10eac57732'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 73'
|
||||
count: 73
|
||||
digest: 'f0c29f8e390435a2e233afa958ae208eb5d8eeb38e448df53a6d2e7a8e3a8266'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 74'
|
||||
count: 74
|
||||
digest: 'fa43fb8ffa7d953a4da11627e11c51ba4f1cf0a62464b0e9d34cb9f1ca4a2339'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 75'
|
||||
count: 75
|
||||
digest: '18a1c86b7c266b55b253f509e6457df10b48e6705bc0c78b638f9ee4eb937633'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 76'
|
||||
count: 76
|
||||
digest: 'f5cd2b6b4a6bd0070942f81d012bdc85cf55c095075578a0404f2273908c20d2'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 77'
|
||||
count: 77
|
||||
digest: 'b7825bba2320209852668a29f8b0eca4a3a0ad77e0e33cd2a7185761da5061b1'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 78'
|
||||
count: 78
|
||||
digest: 'e7688883bbc0dbc767dd8d46ce58a0463f29d0781dfe1bde55a83ba9ca54b1b5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 79'
|
||||
count: 79
|
||||
digest: '54ba60a63f82f501435dd8a51d772404e5cfbddf226bcbc47836cf717fadb4e8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 80'
|
||||
count: 80
|
||||
digest: 'c533fff054d8dabfd37c4e860761d215954c7bf8f37ab6d6ef7ff9ec4713ea65'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 81'
|
||||
count: 81
|
||||
digest: '71f36f26cb92c129f7450d76849a7f2f4bb0554e9ade0a9d5182f435541ca1fd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 82'
|
||||
count: 82
|
||||
digest: 'c39f5bfe6c241d0f64c13b05e5fb6725ffda3789ef9946c8af1dfcb424ba3d75'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 83'
|
||||
count: 83
|
||||
digest: '27401de7cc0d86a8f07e276a9fbf4fe5cdf7b3d73802a5c7edd27b686f6f7039'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 84'
|
||||
count: 84
|
||||
digest: 'bc56733b8682bab456b8c0819e1c9d6d3bb864b2427ec2a2003a871c44dc0246'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 85'
|
||||
count: 85
|
||||
digest: 'e3843383a52a8c3d6315d255d1708467f5de61a5372308978b295460220d99aa'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 86'
|
||||
count: 86
|
||||
digest: 'e03de5004325a1dc96eb709c849bb6ecadc5db9c6152aba480ca10c8fe2573e1'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 87'
|
||||
count: 87
|
||||
digest: 'df09f2a9bceab29b5c149ec7db23b1c8b1cc849ff2612c4ad9d66e98cc1f1faa'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 88'
|
||||
count: 88
|
||||
digest: '123426906e20a02fd517c4cee4e5f5273f894c56ae456ca466c7a0a2d1b0676c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 89'
|
||||
count: 89
|
||||
digest: '14a9e07e6280a8c7cf824cd1896ad974c310859eb1bb4bef59b715b25cfaaa30'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 90'
|
||||
count: 90
|
||||
digest: 'ae7febea114679a52c9f7351aa0a207dc40ba8c8394585cc5a0b9bfc7f67d76a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 91'
|
||||
count: 91
|
||||
digest: '4966b9ba04ef0590cf0f335798c9b3e15ad32d5ebd2719a0c914c8faeed65326'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 92'
|
||||
count: 92
|
||||
digest: '8ea5a43cdaf50149c3aef14cb2ff2db42279ca36267355a0e023f3ec2ea13375'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 93'
|
||||
count: 93
|
||||
digest: '14ca6c157502aa86c4900086c373c5d2b8789e5cc9863a384938e498fdaa52e0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 94'
|
||||
count: 94
|
||||
digest: '8471a7d5a2cdc61a8bc885c1b0b79491a54d6610ab19a3cffbe0c83479628cb3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 95'
|
||||
count: 95
|
||||
digest: '51749feaa3f2ea9c89b38d77814ea2796a3265e4f6ee7a2c08a1804c6fbfe042'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 96'
|
||||
count: 96
|
||||
digest: '8163861f1ca72bbc19cb8ce59bcee8a3d6d28c8ce17e33cea67f04277a68360a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 97'
|
||||
count: 97
|
||||
digest: '6c00f3fae370e7d14504c48cd7199064b3b4828163905af7b7a0593d2b5d06fd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 98'
|
||||
count: 98
|
||||
digest: '5fe007f269a854e2394874f1a95ef7ef3844cf06248deda3af561cfacaed1e35'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 99'
|
||||
count: 99
|
||||
digest: '1822ede971ca1407fbcb1dff487ea9d93d71d756cdf32945703de673f4b3d816'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_monte_messages() {
|
||||
mut msg_seed := hex.decode(seed)!
|
||||
|
||||
for c in monte_cases {
|
||||
mut md0 := msg_seed.clone()
|
||||
mut md1 := msg_seed.clone()
|
||||
mut md2 := msg_seed.clone()
|
||||
mut md3 := msg_seed.clone()
|
||||
|
||||
mut mi := []u8{len: 0, cap: 64}
|
||||
|
||||
for _ in 0 .. 1000 {
|
||||
mi.clear()
|
||||
mi << md0
|
||||
mi << md1
|
||||
mi << md2
|
||||
|
||||
md3 = sha512.sum512_256(mi)
|
||||
|
||||
md0 = md1.clone()
|
||||
md1 = md2.clone()
|
||||
md2 = md3.clone()
|
||||
}
|
||||
|
||||
msg_seed = md3.clone()
|
||||
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
assert md3 == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,675 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA512_256, the test vectors come from:
|
||||
// SHA512_256ShortMsg.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
// This structure deals with short message tests
|
||||
struct SHA512_256TestCase {
|
||||
name string
|
||||
message string
|
||||
digest string
|
||||
}
|
||||
|
||||
// short message test cases
|
||||
const short_cases = [
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 0'
|
||||
message: ''
|
||||
digest: 'c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 1'
|
||||
message: 'fa'
|
||||
digest: 'c4ef36923c64e51e875720e550298a5ab8a3f2f875b1e1a4c9b95babf7344fef'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 2'
|
||||
message: '74e4'
|
||||
digest: '0c994228b8d3bd5ea5b5259157a9bba7a193118ad22817e6fbed2df1a32a4148'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 3'
|
||||
message: '6f63b4'
|
||||
digest: 'a9e2427cec314b2814aaba87039485fc8d3ade992fa1d9acbb7f6769460a7317'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 4'
|
||||
message: '2bf98e7f'
|
||||
digest: '97d455e6881adbb8bf26ddc3ef120df4abb330adf8ed2ac7a4b6cce4a1727068'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 5'
|
||||
message: '77d2ee3fd1'
|
||||
digest: '329d0ae26df3646fb7db0b322cf1f3488d5381f66eb376fee40f0596d6d9dc4b'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 6'
|
||||
message: '7dae8fc020d9'
|
||||
digest: '447044f03bc30e2caa245d26ce4c72c1454f708cfcd9a215841a88cf5ecd2095'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 7'
|
||||
message: '5b48b8b01a59d5'
|
||||
digest: '1a86b4d34cd104c13b5b8d419784ce4c6d35594f2a9300e81468f4dc0634832a'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 8'
|
||||
message: 'b4e2e8501f54be91'
|
||||
digest: 'd25265bf9cbc0dd2f108a2f5e8f69db7d15e5b8fe9100fe887dae20b6e054fe8'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 9'
|
||||
message: '901db0f70f2d10626a'
|
||||
digest: 'f84ce7a760c85e67872ffca1722b1b7741032d9139211077f963a32d9f84771b'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 10'
|
||||
message: 'f24d98591ee3c732a172'
|
||||
digest: 'da234c1d6d18ad8f53070e4e5b9cff75385c13f3e44b014fc45c3509d0d06adb'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 11'
|
||||
message: 'bfb272537f021ade9bb330'
|
||||
digest: '7c49a59a3c3fd8e24de85854f68a3b7ec60c2031742a9a2dabf49199d88c2db5'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 12'
|
||||
message: '0a5f7424babb5cb85715fb17'
|
||||
digest: '5cd40c51502600f3a0eec7b3a3addbf6672eeecc50b3de2fd86dd1c0a47e8a3f'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 13'
|
||||
message: '57a10308aa2060aecad05adb2d'
|
||||
digest: 'a5208ece1de1342d02ea9ab7cfe537a2c81fa0eaedb427a7b3cb6c291959a6a8'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 14'
|
||||
message: '5e4674e97a257c231d8e91391d0a'
|
||||
digest: 'a88d7cbb6e31e87a6c99734f599d1588cb9439979b8210800eca0aa2067cd556'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 15'
|
||||
message: 'ba10b0da70e2a017cdc63f996dbc1b'
|
||||
digest: 'f8a5aa22937453719eb40b1dcf68a346e202ba225f4d7acc87e5a736abed3423'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 16'
|
||||
message: 'a3481996c109c9efb6692b82173921b6'
|
||||
digest: 'fba0f0813ca5c513d0b547419a15e27a7097d3eb280a298c1c693b55e03d2d2c'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 17'
|
||||
message: '0877c20cddcc86b833f7bc2dcf7a709a2e'
|
||||
digest: 'f4c3a2604e2725e4d179edd1b445ba489979f4ea5937e0c6b20b422c720d8bfa'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 18'
|
||||
message: '69445bd12f022f6a669bebe0467729f4dc7c'
|
||||
digest: '26bf709b3474554ab8dd12d9524faca43034118bd955fc52cb1f355c6df22391'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 19'
|
||||
message: 'f751f428a0af0b90a912a3be78daf12a765b43'
|
||||
digest: '5e0f8a8739f556daba4da4e861f39d1edaaece0204963942a4e66a11ec1fcf13'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 20'
|
||||
message: '19829a8c723c58ca9580cdf0dad2b6d38cdf60a5'
|
||||
digest: '3aa791b396ab81df9107278b8dd1c46ee57579db4cf5f9b83c54b37b0a601fc9'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 21'
|
||||
message: 'ae43132ac30de180c24dadb88602caea91366b8e51'
|
||||
digest: 'b9f0141ba006a3983972dbaa5e2bfe7152e38110e02475f03d84b0a3c743cda9'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 22'
|
||||
message: '8d2782a7843aa477b8f3bca9f9f2bafb5813db4c8c43'
|
||||
digest: '5424b31989031809b5fc8969b7c48b5dc0c233fc34ffb5b223cd5f3a9712a8d6'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 23'
|
||||
message: '72321fffd7918d4f5cea105cb0b884a2356af11ebe1267'
|
||||
digest: '17e3fb33e7f85b1ad5634fbbce9b5f9909f3329f4d74acad3dd0941c1531cf54'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 24'
|
||||
message: 'a7efce3e31433fe68d75145d84bb02960fb968871a3c2f7f'
|
||||
digest: '8ff0be0601e3ae9290715aed30634b13b8eb6f3c8b3294ee9b1fc342c260313e'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 25'
|
||||
message: 'd4d022cf90e6437aa0bfdb89284244c16dee0b488bc345ab66'
|
||||
digest: 'cb3a62feb0484be0ff9b56ea92414c7083f2b5776e883508b3a61e57305ee83c'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 26'
|
||||
message: '95de55287ad3cff69efec6e97c812456e47be25e433470c3259b'
|
||||
digest: '41c7027d16e37259645d0173c86141f38d808e9e27dc2dfeeaf335ed7c99490c'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 27'
|
||||
message: '63d8cfd72768c44920d7b015460489ad578c063be19053889cb809'
|
||||
digest: '876e59c8a64faf9d665f7cde5d42fbb331ba818ddcd284491ac51ed50e1613be'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 28'
|
||||
message: 'bd2c5a9116bf0d75b3498ce2ee4ba2868e06e0c047ec40b181540896'
|
||||
digest: 'eb537df04d512c2fc844020f8ff32e043c04614b88cea0a4e05e0ff32ccffa06'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 29'
|
||||
message: '37a45643a280a9d1a1c83e094e01173acd8aa16825252dee4eb3a3678c'
|
||||
digest: '80bca5ba3e632e8bad1589cd02d75d7d3e6a1aa9ff64c2b982d572f3d00d947d'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 30'
|
||||
message: 'a7be84014e8d09d8d51657789c07f29f7da49c5b5c0f836fffc6baf8206d'
|
||||
digest: 'c575b2ba075a63c4540084493636deabe9b8df61952f071559394d4dab810e08'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 31'
|
||||
message: '93c45fb91dcba420820bd3fee334b48fdf7b73d7b431ebdba79b2310a7fe19'
|
||||
digest: '98151839b8f3574e0a0b9f19e84afeb1c620fb2dcef248149c00613233337997'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 32'
|
||||
message: '1b77c8dcfd2fc4b54617054fa6b14d6e9d09ce9185a34a7fd2b27923998aab99'
|
||||
digest: '683b486861e598dabba740ac919522cf3b609c18205b6beca4ccbe6b0f6dc6db'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 33'
|
||||
message: '8d5cb933401b35dc34b15de0f5474d3c9b6aeb9057531b7f4b6b32599f0eaef7d1'
|
||||
digest: '16c523d2b8830ea90dd6b6b1ca49e4b51673006ca30ff47a4dcd4e7b35ad4f62'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 34'
|
||||
message: 'd6a66d66bf546b97ebd033cbed3504931e45296334ae28f4178d3de6f03106aa8221'
|
||||
digest: '3f607a5c7aef13fe98dc9f6b6a4b52979e7c68781ef5e12f69ded20c497eda47'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 35'
|
||||
message: 'ce885ffb340fd7a43e2150699b3f98ef334270036794ec759aa01d29f087ed6b551549'
|
||||
digest: '1071f8b57328b767209c15a43e1d8452763865ac93d58f93c840876c1a5b21e0'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 36'
|
||||
message: 'f2c28d685486be99afe87bf90c9f309357b44f60b688446a1918aa321180bf4fe5be1559'
|
||||
digest: '35bd192cc10fa24bd7954e0e0ee20c09440efc6416e94ca25a47e765bf32ef1d'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 37'
|
||||
message: '96e8e30c75fec82bef4de7ec8e053ea661cb72bc4eb9c1c1aaa638df07a826794dd8d00f0d'
|
||||
digest: 'b556798f76ef742cc1eb5d10732a925fd8208b4f079a6c0e1fe0d92fd87564a5'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 38'
|
||||
message: '2915c9b58835f0ec1e011fe5e6db40ae3ef3d890e268934d1bb024a634394b202e503708b543'
|
||||
digest: '3868885b4e3ae2172305acaad25ffe9094c72348ee9d7b0acc20029e26a7d013'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 39'
|
||||
message: '673ccce2807cb47622b7e09ee8efd812b44faeef436c301505cc63cd2ca52db003e652c4827ba2'
|
||||
digest: 'c7752098c3b5fcea98425a180a5c96146b443aa8d76a0c79fdcf3716bdd2b906'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 40'
|
||||
message: 'c1a6ac69f48008db50958665df9d911b78dfe519d9f34366f6cd691f90f741d1081e592676d093c4'
|
||||
digest: 'bd18af5b2b24d769eade525c8fcd535212abf8e5df180d7f3e3d023033fce192'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 41'
|
||||
message: '3cd123ae7bfd2b31613ecc5ee8b86e8e59a52ff46aeb2bcfa9f4fbe41eba7b2c2c21d0cab98aaa3f8f'
|
||||
digest: '7ce19714e1d3be680dde0e919d90157aabca76439df8f0979d19b3a686df6b28'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 42'
|
||||
message: 'a52dde5aea1f04399c5d91fb5c4e62da06b73a5d9bdc5a927fe85298e58e166187f154b69ac1057c01a7'
|
||||
digest: '035d362a4265031434c3aa153ab4aef6b00d5176227197430bb62884a085c5fe'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 43'
|
||||
message: '381906808394c5f9385a06bc9b6e528095e6f6ac07f0fc755e13594768b7686766e897d662576178c2a17c'
|
||||
digest: '22ea5298af2aa311a5b53f8b2838dfc008ae470bf96d2bb6794735ea72108879'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 44'
|
||||
message: 'a04a5d5d613d23703ab8dd0093d354829c5449823bcf09eb49124183fdc014b5a83b6b93a3c78c1b86edefb9'
|
||||
digest: '8ae688d5e9d0de9de834befe5c0829644def9c5da71ae0da4f79d1890487e25b'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 45'
|
||||
message: '175e1059931a94e6e37ea53c87e3c71d46be2f410b2131f8f285f810a3c679f9df6fa9275838eeb8c6cdd45737'
|
||||
digest: '5641036ef6221e08e3c795b2ad566aac9a69f85df1a8d35b3ea2b780ced33421'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 46'
|
||||
message: '3ce38a2e287fda13384cb306237e8c74357848818d340a9488e64a157ddc2975aba9016f6f82418ebbe878f0c388'
|
||||
digest: 'bc2041029b16895afb1f59f7280f8a8f09be5dd241c675343f7ad8d75b834b75'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 47'
|
||||
message: '9628a195ca6e708cfccf9f434dbe6c5105327f0f28ee1cfd4a069d62a39f203366f67d364fa47b677b20439b7d8514'
|
||||
digest: 'df6d891d2c204354b827f530c54652940cb483f58d6b433973752c1fd1d2f84d'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 48'
|
||||
message: 'd85bdb2df5d72f2190e4b3d4fa5b6d848a088bfcf0af52b8c64c584a689ff3fc06e8f1b7f7f0892350489210b6d5f315'
|
||||
digest: 'eb2681edf92a1f5559d10177110ad21ffd3fc1296e3cc83ece32e42f56ef7ded'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 49'
|
||||
message: 'd078a5dc6ec589117119ba3cfb9b11de57fccb563bade8b34a4fd2c7dd6b3f7c0363586cc7a81babb12efee78f1dd5b474'
|
||||
digest: '0fc7046f02d070642d821c746785f209bb332690bb34335e6c6428051793e1a9'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 50'
|
||||
message: 'b7ae6037d9b452994fb755aa0cf57fbc687298060a471f9b0c3d8e9d5a9ae0ad5b3b4fa7d4e3628c09d327c0259bbd76db2f'
|
||||
digest: 'cd1040a0d94382a6446a691c0a07c4f643edc11e3103e343608603b5bd101be3'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 51'
|
||||
message: '62f016dfc38a4c70b7f95d669e2d475704909e13c997d3da7e96b6cd11d83aa3adef789ddc49f7bcef042b319f033b15f44208'
|
||||
digest: '8aee50572b6b155cf40d6ed6c738bdbcaff2ade09bd4d8bc9c2f9a673373c44f'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 52'
|
||||
message: 'be890898b03f7cb52a9d4300ac2e8a80715102b1538fe37ce92c3165f2fc3e07f67870bd2a1144a395c593bd71ef1475d463234b'
|
||||
digest: 'ad156f2f416cceeb9a6a2520e79bba5295b584c59606fbdfda6ed13ed9d99af0'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 53'
|
||||
message: 'c12149eed4113efa31bb3c4b9aa933639a0e1ca716062ebe251e553a2217e07affe779cedb015bddd7d6bf44269c9780644e7f0e29'
|
||||
digest: 'b4941556b37c22c9d841bd0b1c4e5d8778b1c598d8b1ec55c4cff11cc7402d05'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 54'
|
||||
message: 'c579bffa9396172aa1d654b47930e65f95c0c74b6abda382a5ab3bd0b4d20bd588ee2a58992873de2b45e27bd01e40e92f5003d70334'
|
||||
digest: '63f898b4fe7a7d8c7ac776ed7811a922052791406429318fd5386a8f7864cfc6'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 55'
|
||||
message: '71b58f40e28bd9427f0f7821ece9c6e0f34b7f5cc924222692979a8e28ab1e0018445694ee52bfe0b3485011b3d05e3a84bcbdeb434028'
|
||||
digest: '7614582f42d5a907d4ceba0025798ee61d38072485f54ba3d742f29503f1911f'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 56'
|
||||
message: '592335639cd4f2f9ae6624e895d6a729b5079ee1f45aba911b7fb98c7f8b2cafe24a7e4c94d63267dd686c25a06fb38138dff541a6cccb28'
|
||||
digest: '68d64cb4331b71e72b42c88b8f6513f4bc17d995254f04dc2b7cac022ad5edfa'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 57'
|
||||
message: 'e26e1dc893fdced833eae15ac04ed4624a07e3c89dc3d1d8205be44bfd63327782ff1bc2c8f7175c920eb22e7790d40d442b46349cff72f1e1'
|
||||
digest: 'e1470b2f44e3955d2b5496292679d9086b7c0aa94f0d516e53a142e486c6ded8'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 58'
|
||||
message: '7def4d439a9b7a6c5700bb91688b1ca6c4ecdff263c6646446ab4d2ab947df80d5dbaac648ee6cd6593f339426fdc2c7303a36271a9ee9b6ae58'
|
||||
digest: 'a59591e28eb92dfbf290a06772bb145655979cd0fa0df15bf82aa27665abac03'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 59'
|
||||
message: '283998b5e2394fb1ce1cee355b677e79f89a09aa28fa52d5d993c307f27ea7b32b60995321333c52aa492d2a658d36ca960dc53a31b59c81355dc9'
|
||||
digest: '82f27f2abbe5fc2184b428eb92551e898a5177e997e337eebdc49320095c605e'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 60'
|
||||
message: '09f352d1ae807b258a9d49873a4c4aa4c63bfb52bf9180728ae7981bfb93d1f5262df8e2714cd4e4ee91143be8e785cdbc0888cbea44c4926c7e18cf'
|
||||
digest: 'c30efcccacda26ded16e92b0f2f2e667dc98f289a754cac628dfcb421ecc7240'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 61'
|
||||
message: 'e6c2b24789348d646a263ffcdb6fcd511e1aac527b227a7a907aecf6e9500806d09394a566b3ce6cf3a85db47b3588fb926ea6897078d5524890ef1fd6'
|
||||
digest: 'bf9ae2941d2bb948d33ae2a822e8738f744b5a9d692997719bd1a118743a0731'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 62'
|
||||
message: 'b099e1b52348f93a6c22896c72854ab04f2dd3d1f94c5fad21ddd12e5b35f57c80db097150997c4e5cd3f5ac241897b57cf7849334149f29f77b97017433'
|
||||
digest: '01d582c82ce6e6a8c0cfa81792110bc950fa55e31c101cc6f2df6b2aebc18925'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 63'
|
||||
message: 'ac4065c8dcd58031b7475c3debe032168fa9f7ae5ad02d48134dfe3b48c58bf243af82383ab5eeb2c65d54ad96e8fb1b657b8bd7297cda318e3f02a6a2e2b7'
|
||||
digest: '9fb9d7e6b81e86e441695ca5c762cf3b7735a75dbc4b2b1e3e5667848f6cdd73'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 64'
|
||||
message: 'd2bc0ce7217ff2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2fb6295326f716ce7e687fa0e3d5d25c5a8a8dd13a541a9292e8386e733f4f2a24728'
|
||||
digest: '9c1fea5786702d027bb5b66b3fa92de34621a8626982ec21c0ecf8daa79dea05'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 65'
|
||||
message: 'a82aa079ad878cf1d699e9612fd3aef603df30c3e8904358fb18a2976d7b91c33f43c0da4976732581c5e00d7a06d8302be4aab4f2d545dbd94d9cd817324fe2da'
|
||||
digest: '46eb49bfc5b2ee3c97b91102525b6666d56bffaab4baa03059b89f24ec4b5622'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 66'
|
||||
message: '72fee29494c25b119b6c5a600c468ec22e42af5ba93eb79452864ebe469a86f83632c85201800f3288b553f7bec649ddfe704920a27a8f65d13aa755985a238b3cdc'
|
||||
digest: 'f7eeddf08d3c1ab524167c908bcd8613d581cb0d03520d7b6b64d181bf13bf1e'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 67'
|
||||
message: 'feb7a094dffb5c0cb6f723c1b5e7d764d4ab5f896b13e409005940a45defb3ebe67bd85e2a21d8d1b800de1434ffcbd2aac92aba211666dd742d3a575da66a32d375b1'
|
||||
digest: '40cfd88d613bc7d105e178081d2e3c5a09cd629465821909dbc1e9b8cd04a266'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 68'
|
||||
message: '8ce31ca2ab2e7cff5ff5bcbcee367463cd5eee65b80bdb010116446729d1c31ead8df2a3226024538425538accc35a0dc0b364a50fbca50d9d01480e1c3ea8e9dc4fc2f5'
|
||||
digest: 'd61fcf2c3178cbf34042a0fc02869f4670ea400ea384ccf04d8460806fe11dce'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 69'
|
||||
message: '4963a36af562e045ec25e39a0d9c2a035d4f6d62044fc975986d1eaa9eabb6344ef0275e97007a1f63aa8cef1c44b5da6f54a8d350909a4a3e09a701c8a3711b50c80a760f'
|
||||
digest: '69df54c0fbb35859b5fb247c92b5665ed27962f042a790519db8ce27343b9590'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 70'
|
||||
message: '0663ac246f643427d7198feb54919f97f9e036864dc32c02fc87af50cd26dbeed4b48a18e9f96e9059605d9fdb10eb57c5583e1c7f501e6338bd4cb8d9361506378526138d50'
|
||||
digest: 'db458a327dd21bb9c073bd5736a745e467538d9476b7647b74dcd17031bad72d'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 71'
|
||||
message: 'e70df9ce76334cc2096c0e715d8c96652492b5b6637d3e801961c59421b9a66e59ff4a68047aa52d6d58036fcefc05dd6f99e64f120003448fb69b8fbc4ad34d8fe5fd1a872319'
|
||||
digest: '229be9deedbd16e948eebf8aa5838d276e0e6e295570c49eadc9f27c0e2e5798'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 72'
|
||||
message: 'dddad5815834a99d79abf4ed36af74065b2e70e87cb8483b2ee250d877e8de8b8296a2179768367b4bf0f674f478124360e9e2b0c7eb794ffd4e7c02eca935bf4240e394672b54e8'
|
||||
digest: '13b11a38ef74ab16bd65b84e83d34848bf3c56e6cab5c56cc0541e783df1d4b7'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 73'
|
||||
message: '84617bcdea87420cb0e93feebfde3aabbf7cc7178065c81c99e333684f381563b82fd76420f7c024ab31bc733c485c2996011d60c153ede0b078ebdb20446fdbc3b64af89ecd4f4eaf'
|
||||
digest: '5bb51bcfeedc618a28ccf3bbd96be08972eeb1bc22d9bb64883dabdc6c3c6b54'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 74'
|
||||
message: '970f5a9308f929c5de78e8119b96caf0ad9c4a06f182c73e75a9711c82cd694fda3524863e2c118533b57b78067bb0870e0763aa31354fbfa9e91dda08fe88dc7a7fbf474b1a0a50a9d1'
|
||||
digest: '930a9c33e393ae8b1c39e072b08f972ad840db5401a4eded1f1fd14f8a0f68c6'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 75'
|
||||
message: 'f29ec443a7c4bf4fcbc2cc4e992f3b1e0c70ebf60a2019efdcb676c3e2617cd4853701706c8f0d53f3abe96dd99b78e6385dca60bb49ef7c0bad099f8ab4a5f6448c4cb723c754aa6202fc'
|
||||
digest: '36d1cb5d930d73f01999533b035313a54b1e2cc223f07af829424230b8405177'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 76'
|
||||
message: '4913709a09e606f0034926f21ce0faeefc0483b5c0ade99fef950fd0b09a6bba3a6415e38b491de85d6d22c3562e20497fbf8af6f71299ede9fce33bbb942f5c88dc8800d1a3900f6fa917ea'
|
||||
digest: '0948d1dc7a0a0172d3dae4ae40d128444f2f6309b443ad6a8ab3849def606a7e'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 77'
|
||||
message: '3365dc87c7f29b50925f2d50b1e437a49ca995caac35fcb3db29dd19cc2e8c130b2ca1e795bd9f1f9be1d3df83f37f7530db383283868d782193e915774fbbcffce4d340b6cd0fe5008d38718a'
|
||||
digest: '579d6c492dcfb032b9272aa0f54d13ece0fb2276619dd7e75f86aef3f58bfaea'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 78'
|
||||
message: '45a899ee24ce1eb7ffe13aa5acb08cabe94ff003957153b72019c6664072d045e5fa096470e6e4331fc3cd44cc597452d8d468836226e7eabca7f5501ffeab349d45d2105868b0def2ce22db443c'
|
||||
digest: '5c088cd0c18bf699edf47ddbbd1e11c9caa9161b852a6024492e7ab7dd5745ee'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 79'
|
||||
message: '389d76c18d8d11eb5b7e6e80d79f93be52c784eb1101b7f35948c752c98f6c34ed05abdb0f964a4250b58700f8590a6e0b45170c1d8d08216656fba219ddc855f2bb36360e676e1a00fcaf92213c44'
|
||||
digest: 'b32d1b0acc097eddc13dbba91d2c144774f4bf1ba2275770b52858471de26ca1'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 80'
|
||||
message: '120b80b44a2435d4783766416ede1784e00d3467c7ed1b6304e75b5846febb812d637fa6b043e693bce4f7ca1df07d75a211519e7cbdd7a2e854cbe30e683ebe285bdbbde6306f0d119ba932705a1ef9'
|
||||
digest: '200818a7fa963423d0a90bd85475d67befdfa43bb49be7c026b9693743404dcd'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 81'
|
||||
message: '713705674e20066d61bfe9ca763a8705cb6ca1e8cf95c6d729507661fcc687156922c8975645e5f36eba8a3069eccb298e96c498767c7c741259107df0180d15b9461d51ffc8e65035c92fcbfff744eead'
|
||||
digest: '786ea368156477616fd76039f9b1caaa95763adcebc1cfdae8198f82a41182a9'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 82'
|
||||
message: '123ccaec522c2983b6cc2e06b0900c331db49dc5d5809cdf80cb14aeacbe184b1ddab5de643c2509b4204584f0a54a0408d0af6286d271f9648e7f5021566cf914f568b8fff36ee8e714bf1b23228e01b4ec'
|
||||
digest: '91b3e2463558941d0626936a8d275722fe2e600bb24df78d7c46752675d1c4da'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 83'
|
||||
message: '75d040ddea0428d8231dce4fbc98cc4a2f578a5f47475379d740aed8ab2ceb59bf6cfcf8af7786936fc438f13ceb5c02d207ab68e05e6637b944a2f94c3ce4f65661edb2d604d7b6c2976193f8c9882577f357'
|
||||
digest: '749bae9322af588495dbc0ce426debd9e9cc4c02f50c52ca246b5582840a86cb'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 84'
|
||||
message: '7c238aafde6aabab177f718e0cfe1386cb1421b4799b15788b862bf03a8072bb30d02303888032baf5be242341822095fa71487c68024aa0c1df31aaa08e82e4b4508440b549df9c9de26844146c3cb82c060cb0'
|
||||
digest: '36ba7bf53f7d253738f590ee25c6120e0e89b1b89c2a0691db6d38b72c20055b'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 85'
|
||||
message: '470be1ab595f8bfcbe651aafbe58a90cd4d72dba54f3437a50872c16bdc81593d21c9caeb13091874944f9977bca59e77b3031847afac62e82132450a165643549a72b78f77673bc13a88e9e17dd67e8f4560c07b2'
|
||||
digest: '8ef8d6472e09f566f70e17b454489c193d11fd99855f7e69c0eed389515df577'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 86'
|
||||
message: '6973b2d5fd42e78a2245c76f25681d704ea194e2b578281e58c6db6f6bbda92fef28bd2c86f4e55186f044824cd147c7d379daad8579dbe950d4ce3ffd06d3a2bd44d69d050606f19cc38880f3fb6c69b47be0759ddd'
|
||||
digest: '226fa54ab31f5a78eab4f92b10972fcfc8ccad25e0ffa49365da83f27220f6cd'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 87'
|
||||
message: 'c4d0d14c93058865d0fbe2e6e14e99f170cecd75c183f95343ef26bf65925fe9aab464dd005ea3a84eaa63bd4c3c43979711e39f0578e14f355d07986bcdc2819bb7d612c4f05170807abd49d8069a725cb70ccf7429d0'
|
||||
digest: '88e183a794f478a850856966fdedd71b14d8aba72819fb26f14d2315c67f2deb'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 88'
|
||||
message: '73661799c7d2e24ea484299d8c8c1125739dce5cc307c327a3e5eaa879987757ad74b855b1b840fd3ec444bbe0864521b436ef3770434213a58defaa41d405e65870ccf92443f1f04aede48b5e3e7f4caaf1e8ce2b97b858'
|
||||
digest: 'ad1affd1b194bc0afc389a2cb23281244a8d80a524262b2560d58f7f6d226f51'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 89'
|
||||
message: 'd49063453b779b18933d233369881617c987fef4b18eea6fc600c1a24672d5643e0dbbcbfd345bf0c86743f2cf68413e609c300d5bb3122ee68c5f0561529dd49dec3139489475f8acc50afb9a5b7097a0f6d311829f2861e8'
|
||||
digest: '6768946a3a27f46288ddfd4cb7b5fc9e27cd3ba46ec959e6f3d0cb5bff68e226'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 90'
|
||||
message: '905888121360fe46f86dddd119076195213443f339907f87e5a05b122864a5b7ef2b3c6badabd2a74251ef5f21d63938b213f4f6f516c5336975bb572ce28fc463002b51dc766afaf2411fd6b14e58493b48e47a6aaf1207b72a'
|
||||
digest: '145ff262e203957a88a875ef986ac484204b20d9c4be7d35ad59612764991d49'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 91'
|
||||
message: 'b752ac4adc97012119d895a800f318db6ae7e3c70344949d09e0f80550cc2fb48a860a41c570b8343581a261343b937487dd1ccce3d9378daf882af00c1daede13d851be5d7c198bc9026a29798f29f91ea422ab7694a753133c7a'
|
||||
digest: '2f399dc553da607b1c2d490e6461664a5a2c007f1800d76a2aaf7742a86b9617'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 92'
|
||||
message: '1ef7001c52803938e937d93f5c853f661ce483b4262eac63d81a2389030368f841ec046289c2bfc100e012f512d9dfafc271608f3eec5e89b78ca38d6f55b1671413b4e44c9eb636915d12993f092b37ebb35d49f709348063d5dca3'
|
||||
digest: '77e371349c466f6c331fac0284987537c15d0430e3f0cca8f1fe2aa7c794ef09'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 93'
|
||||
message: '284bff3b6a683ff220f5cbfd3c2fb8a72bdb8506fcdd5b2dc50794a3422f7b14c084524739229a50c1e38e072078f1b8c1b9091ccb3aec888d1ffa651f31abe046318be2996c8243e28f593bc7bd7a19aadff737cd3bce2dba496c45e2'
|
||||
digest: 'bfaa54963521e6e1ac72b55ee4d654c041f62b73ad5a5305c58f47bb25db7cc2'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 94'
|
||||
message: '081d08397e1353073f8df24675588ad215e4dc3615a59d2ad9b9815aeecb9a69fa37e036f36f115e909dbb02fd8a96cad3be182947e944e3a281c3cdf1ad35d4fd62c9417dcb0b3c8beffe8e558e6bab154b78ef43117c2808af1255f7c5'
|
||||
digest: 'ea8fbe273cd2bb3ab9cc7f3640fb4e3153a028d8ba9a880b3b8219006c28281f'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 95'
|
||||
message: '1ed6244a5996d5a4423c0106a4b8e785d750c7313843f3dfd6ac272c6eaa1dbe9abe5dcd457453e26246a3dfddbdc140d2d9bca0feb35a7f73616a428f1a567b2e9af86b1fc8aec6d597b1b55f2aa2219b3b662fa6bd340796c0ecda6c96ab'
|
||||
digest: '8fc2263517c85d7ab8926595b8047b4b838a075a29b24da712303c3e6e597e49'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 96'
|
||||
message: '63188781f4e9cbd1e89a54a65da053b93722e1106f00f024ad1582421ab919326f8a6e17536d6596e3cf413a9231141733e37aae540f8711cefafe489a87c4f2e6fd942f6809f3bef3076763487de48c2ee88733c5bc870617a668c6f01471ed'
|
||||
digest: '91a8e285029085e224987078066486b6c605cbac27e49e84f4639710ddd05d33'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 97'
|
||||
message: '371171b626ccea8b2980dcd33bcbb849fe57d201000bc2443d830a9be6befa2a6117d13f9177252b57c8855159ad5c7c02701876ca3c8cd6b78c931923e3f7f4c1be91e9dbc6b119dd4bc05917ee2387bf9d631f35c58b098bc2d2b5459b7a6a5d'
|
||||
digest: 'e68655149dc14bc5759b8cacb7c2d2a850456a64a87af41de84f567ffe9c5e60'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 98'
|
||||
message: '9bf7c7d99059248589b18a3fd3b03f4a72d21d2aacd635b5cc71b86d2043180d440a6a62a2160f5c3afd93659f8fd5f1420c6857f3953adfa5e1731c7231a07cdf86111d60117fe21febf3c7f906e271c9649d0aea86e94bf728e9dad52b45d7f4d3'
|
||||
digest: '385b95541558ad0a9a20cb91116eda03c5a694ca95eab1caf5c0d1501899d3bd'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 99'
|
||||
message: '1973263a26d4a418c691dd5f5ccb7dd7241ebcae24ccebbe60174c0f4eee279d89cc1a5bc9deb177136437e02d59cb065556b6e132b4fb340bf1301337548da3d5d44321bd370e25b6770e28e969d34495a0b73c059070bcbfefe5e2ff6141fc635346'
|
||||
digest: '39d8740d56e58f027a6af13cce9b6484b23fa6b3693354175c034ac1778a1a75'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 100'
|
||||
message: 'ec8ee65cef05452defe832e0a3a3ba6116a8d5d6a8638e2e566f63fd3c0aef8758c6c61a9182a1a2f899bb774d597a79c5b7525f0a40e74c845371a3d78e651dad865219b5bb0833eccb00171be5f898a081defc724eef9a606c20a899dcbd4e713550fe'
|
||||
digest: '3e7a652d89df9ed7cacf53d033997c87528b8cc37d59b8eafbedbe4e8e9c5c3b'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 101'
|
||||
message: 'df410a8b65f17139fc8eb8495df813b1f6f9f1b7471c7e628cc36d2e9c74f60311741a68a9972ef5ec5697060f22d3b719f8b90c4436016fa6ad066010f7cb68370a3c4e110eb78e826ccb07382840f4d470571d4a75524f8a7937096029d278982ef9a567'
|
||||
digest: '294c8788036098f49c23016534d032939d5e9638e3e4e8474533f52b668f2da1'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 102'
|
||||
message: '27c2ee5f63c114c1f61530685c19c21a4b7d47b3428e6b8265b87bf0884919628a773361e4a536f981e27e5ed1b312d619128ed20db6605ea09537bc1ba8b94c6cee75b0c1b3182c5612e3538bb95ce03aec44e247cdca1c79dafeab88b788e9772e9a922374'
|
||||
digest: 'cf027f6017618d970da83865d8da560f454ce2bd86af59624fb87c8e48beb208'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 103'
|
||||
message: '2f510b72ad1a26fead669ccafe9ad0fe31ce0a12f3d06bee9a6c2750fdebee6d89daabdb910d71aee6e3b2e2a8cab3f95b063ce43daf9427d7f9ad39d3b99b290d244a87edd97182f322c24e937664c94443a25dd4ebe528fe0cdf5a3e050adfe4b6513f68870c'
|
||||
digest: '8969727f522ab392d11c3cfa7d02fa2f9b457a1de2afd360ac9b2b4fece84e32'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 104'
|
||||
message: '2a81eb0e6f1d13df6544c69321c561a489ff9d77b9ae11d7a604f8a201fc35c25feb945f965753536a0de1df696ee59c130a82b43e70d951b943d0563091124e4f6158a12a8be60eddcd58556f1a9e34fd354695147ff9065e0e496981feaaed440cbd3df460d5f7'
|
||||
digest: '3818a14b4abd900c823275d45afea6ed1df6cc659eb3ef387445f8ad3903623f'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 105'
|
||||
message: '9aa1fa540acb4d2a59a6a3aa8c2fdbcd0a4a17b6b55508e65a036cb34b68d4f64a50ab05a9d574e1b03153b03fd0cf6db4aad6de0fcf01c655431a5d320ddcfde18bf91e510862848090c2b72b034bb4aa69b6e216858547acad8cfc76d9afde28f9ed87488c9e7d91'
|
||||
digest: 'f9424b3dd79d555e2f5f8a185933f77db95864f4b597ee805d5b62fe0396673e'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 106'
|
||||
message: 'ccf2cc0cd223b80ebbd49db9ede7a22862812dbc4b1aa6c9fad07f8efe01716b9018084e2ea7616f85b7333d945c0c970f8cdd400130b98db67cda61d87ce55bd8f06e4e8f5abff22655d5d93328aca4249bbd76e10ac4a9adb7c6c04d64539d6d2209f53f6459006557'
|
||||
digest: '06d1cd544f954160ade83a102eb935f7f948009591b3eadaf4765868c63450d8'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 107'
|
||||
message: '5aa1b85ca84f24f487f69e796268826518154bd6a224583ef6c3f15c2bbb856bdd473599d32697badfefb33e06a55260e18b79a1433930751df0873c9e2bdb739e76562c3c83b5bbc67b4eb3da925111cbde4eb64669f71b36852840e45f24e563d722fd2b8f0860044276'
|
||||
digest: 'c760de5612ec9d047848727b261c8876b6c33b2c57ee1ac99da0890c009b9540'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 108'
|
||||
message: 'b613eebbad7a1860928ae7329a38cfe86f1174a579740ecc5cff1216c2470fe25accd5cc212cdd80e096e5d1f582db05579ffc73d50d3d519ecdeac706768d478729112106c627525860e99d05efbdde4c457d9a6744d5da104dec3a43fb463d4612e9e3e7b2be7e05d13bc1'
|
||||
digest: '012499f4e6e2af3b530d264bce97e344405ffe59c04b31432e7f0446a6ef33ae'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 109'
|
||||
message: '823ef09a0a657d28ffe8173b6cf04bf4795a96b39b19339608d5323c6ed8cacfe42bf04121fc28d5eb439ce2d3a66bd42099437309c9326827bbb9fc29b02324cacd14bb0078650e76052f9d3d922620bf2f29c9f44317c9d82be3151c23eb6a1b6a858e11a1dbda8774faf512'
|
||||
digest: '08042c79507268fdcebf12719610219d1364117e66916b9e0c1a2aedf5b4a8df'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 110'
|
||||
message: '9607cca45873add19a93dccf3d0f790e856ff30b84c8211ad69b8e628ffa142972ecac5264138423208c524c2b17e9250b780938b41d7cff43005eefeecfbdb53b4b62bf71eeedfe4cd028eaf5cb95c731dd4927d9cffdb18a1463209df4b68f5aea95f3684a11e9882605b28473'
|
||||
digest: '73b4086d690ace6940c01912acb3a57bfc15c4a16c40a90b4329f1fa9f3085d2'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 111'
|
||||
message: '5731f467c5b923c43af9c5fa849aad21ab8dd7db1ca1a687065571b705ea3ee4febdcd614ad4d98e16b79a4e09818ebb28367918f757ab06e1b481fbda822ef143adbb5b0e704d5d2222a73c0153ef14a817b5c9b7a2313fd115ccce4698e3f0efa9c73d5ab3089a27e3f3adb23759'
|
||||
digest: 'f5253b5c69db9c724aebf762ec51c221f8a4d4e2174a4b7f56e4d69aa44adfa3'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 112'
|
||||
message: '92b23c0bc4d8d07d22e28812710dff06cb9bbecea2c960ac0200f480164fa2e1ee19926c7f0b095cec51d55c040aec990bf9501abd7d355490c366f93a3ae5127347d14dfc3b8d98e0821feefa1cd671b75230ba1da1fa6d0cfbb910c42f491da8a5c455424ea65886db2e735b2d07b9'
|
||||
digest: '55a0597f11ff71c426201715beb585f254bb31c1dbade533f04e499c3391ff79'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 113'
|
||||
message: 'bcc51ea0a66564a171dabfa279e384f4d9fdcba38028215788ee7d78c3a2769596e6b2070a6fa2d1200d6ccb65e52900c7015154a70c736a2f562ac4e61f4c2c81116453fd0e63b9ea2c92cc0afecb541a16e90ef0c77d97c630c38cd675d4f027501ccea6c90f1f784118ed8fb5d2b97b'
|
||||
digest: 'c16ca79c0ab44f39da1c65e8943ad2e90888c3d80b5e3b3b1bff59408b59d6f3'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 114'
|
||||
message: '2183bf5465b18359a451cf3030bab07fa761d11926444c7dba88c0a01760a4ec8d32db8837f588da76de234a9d3bcd49ee9fe092c63fcbb0149c1dc10f62df792990276a3edaea82124c12d5fa2fd09cd930347e4ebffb0f2cb6a8972b3bd614dde7cc82e328525960e3c358ae5e6481505e'
|
||||
digest: '7e5b4bd808b900735c0fe665da9437dacaf85249df653c6ee72fb296e8a9b8bb'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 115'
|
||||
message: '959ba94b728a8adf53513521022558183a632e24ad82a3904b47b966c2372a8741524ffa82fe408507423d7aa4344dd43db52482d15b4a03b7af7a3328994965fe1808b1bb36ea90cd3c6aa61122e7de954991bca26d89effad544265ecc312553559b18261bd0272ea7834a51d56f5fc9893d'
|
||||
digest: '85c2f125e6d11f831807820ccf0a53932713dbcef3e23b0e3c0aad8f89139cc4'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 116'
|
||||
message: '30d62ff4263a731a205069cf7c0a0db0b50d3db13f08c00fb24586862b7e31c5eff1d51f52b6fc83d851eeae99842f9fea67484b39baca933979917340b1467ced9327840dc60b9cbf02a042d7dbf8d881da445527d2df3b94718ec9591606716fe2ae8c1f12a74d1f8c0af3feb77043c190b836'
|
||||
digest: '4543378ed5a054557889b4634d4aa77bd30726b797235010d6a4920bf9cc3b40'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 117'
|
||||
message: '3761a4861249c4e0115b997c2c87e85e5ea2bcaf44aea31ae65c1975d5cf45a476a3e3ba9d2e82625d05ef7e1fc2f10df205365222b98e330c9957df30f238b388aa135f19813444c797cf216d2fa9ef2db2150905f72290a3c1130e7b890f59167e1abbadcb444ff61820ae3e5378cbb8b03f1c15'
|
||||
digest: '088167f12e82a45698cad25b405da5e24a0f4515b28b915bfe799d0990723598'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 118'
|
||||
message: '6e26e2b41b80f26b87cba9bf5e11b734611e89110c9210157634c5667a89eaca14a612190d42e3f3db0f1baec34bd1924091fe49a8f63b910d51cc3461dade3adef70d5da55229bda62f3ad5bffdc1ae282a41520e3cfe847e1e05ae85b76c1b96c1db662bd94c33afd20e1c9c4f10efe1915c16868d'
|
||||
digest: 'ad549004c75fa7818dfa6e906062a850589f7a8d17a1c411fc955168215e45cc'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 119'
|
||||
message: 'fe8b3dca283022daf7022a88dfb8ff61847509c41e9cec4f22e652971fb2ea1ce59cb17ced5070e6f5a185d2ebd5e7ef0c43655d4d212e1dfa9796c69d17177921f196163722e8b0f96d953fcdaedc958d6af794e5aaa09dfc0ad34b560dd662f9b37702ce4e95214b91e1384feae63b4d1247cfade248'
|
||||
digest: '37a89a63b4a30e6a21549a245a2633ee5fdb618e6749f60522f5ad03a34d4465'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 120'
|
||||
message: '04c48b4c37a0dafe8ab2c517eeb472385661001376296ac5ca2aaf67db5c30dfbe0b59fcdd8b83c3fa271903705afa30bc421f6d3d517eeb38462e721f5bcb3d13c01c0ba749f373e7645578994ddb5dc28558bb6c80bcd0a79d391ace5ca4240bcc1da11d42f2b75950c19deff5dd686f12f3228c1dee1d'
|
||||
digest: '29a6b04353ea82f3f2a28503a125233f8afc5b601921637a0a24b83436abf9b5'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 121'
|
||||
message: 'bc43ae59c1bed74fd4eb61be97b0276ec5adda96c67c3b4680378e026f3b4baff82c16b4fa3af159a7a2b1729277ae4208a2bf9aa42866411eab47986434df7eec2f727248b745f7fb140e3d8b82a9fdd7340ca5ab997db592de0369ebb41a983f53aadcd2bf3af3784a6165aa5a7e67d96ca9000259ea6a83'
|
||||
digest: '6e1244587179eff28881bb80b02d193908a4c4d014b4da5b7e93c09e2b2964f5'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 122'
|
||||
message: 'ddad789728581044ff760f79099e01a2cfc94ba27a070e22de714e28b85f54eb34db50e6b355432bca981cfa8efc21920fdd9147224d88d5640622f47ba2e32c9f0f57eb5a3df5d58b19495bb1bf538f66eb2a362ab1e41f626fbab4a0ff68cf2531d3cfa578eeea4ae3dec5fb4f5d41dddc5c981a9decaae294'
|
||||
digest: '6e3ff96f4e4a722c912392b3b5fa20ae762ccef244c011268720962184383a66'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 123'
|
||||
message: '8c7214e14eb6e0ee14de3ca0edcb510aec5079b3d143ff48e5d3268d261b6c99a4f80f432b18d1d82254f80fb3409a3e2d0017cda65de7ebe41896817e7d0c643e3c12cfca75121083121e81ae5934bad2c1c105600563139978f3edad98c32c20e5246d72f42c00ffbfb6e0243fa9e8a33d7e434965fc25ce9c46'
|
||||
digest: 'b4b4e5edda4fb4f7c0e734cbcca3c78dbd6f2c9a997ae85a6394108cbc5c567d'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 124'
|
||||
message: '3b766fbba3339959b194163c36b4eb6505ac17e7b24e753e9916e3e1225da41b44d0031648213939d0fc91b3173dca587a60bdad3838403e76e449388600573368180d5091622084ecac74331f9382010ff6fde5a6aab57fd46fbbabd323c656b036d590075e16e30e8c07e3d41edb07cb561fb7850b9da6bb9e8162'
|
||||
digest: 'b450e083d9f3f58284ef80023e3bacb1826e560a22f6e6625d14ad1348df96b1'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 125'
|
||||
message: '6ed8a9f9f2baf57e659aed127833edee9025a8481cf61d772556c75826a714f01fbc1953e5e184c4bc1cd21d27b3c272ffee09f1c31e470c2fde3adb109931bb564dc43c6b8ec33ac3cd6c49b5dae15789a8d98cd2519575fe5916622b378d0c3c11137b2cc89a27a334235ec7b132e555da7fe2f094eff9b94fc2b61f'
|
||||
digest: '17312a26ef9b41ffebe31ee7ee51162704a2f05a5905ff8b692fd603942e9668'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 126'
|
||||
message: 'dcb458193c4ba82a45bfdf028000841e4a8c671f8e2b841dd4dc2a3d7b0f5d86421478f00ed417bee7bf330e43058faf87095332cb13f744dd44633b89d055ee186702ca17f400225a8a63c7409b27d9376ccedc83c5490e3ced1cf896d6be4466943ecee1132cfea60ab754ff2b1344639d1e4540ab4225f8be9d9f2988'
|
||||
digest: '9392ce14d344de05e4f87f634b457079343e270fff5b5c7b731e9fef137115dd'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 127'
|
||||
message: '3e3a52d3261e1194249786d6c0e18d52d92f1c7639f079c26c51aa72d1032e5df13eea1d1006667002ad39de4099c29c3b4719b1f0904557bd2bb0a47374d869ac6b465b5f00c470b18ecb8c0ea53b5d790c4e832006cff534d587a0f77df95117ca4fd43a94935eda422228538d5e5d3a87a436f1db7e63785619ae86a6f9'
|
||||
digest: 'b34e72cefefb63d6e309bcfb4f0b1d350f2c5c582de3b93ad137f921a92a7e79'
|
||||
},
|
||||
SHA512_256TestCase{
|
||||
name: 'test case 128'
|
||||
message: 'bc8173c878ca60e9a0f823f9a589d4ff84547b389b117fb6bb1b614e7e75a9b1db0b21d9f73b42a73e94eccab3de5ae2845a54e5e24ba6c20fb4d245b964023b863040d6f080e953530d5fd944e8ffa525bf5364f65c88e06e6e22df4b8cee48e67738880a9f3f3406e9e6f001b0ac8f8e0ade7c814c0c5800d0b9e4ddf55622'
|
||||
digest: 'f691d01ee9ab675f3872313b77e6a4543c71e3e89aa94c48f91d6ee7fa1ab4fb'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_short_messages() {
|
||||
for c in short_cases {
|
||||
message := hex.decode(c.message)!
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
actual_result := sha512.sum512_256(message)
|
||||
|
||||
assert actual_result == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,551 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA512, the test vectors come from:
|
||||
// SHA512Monte.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
const seed = '5c337de5caf35d18ed90b5cddfce001ca1b8ee8602f367e7c24ccca6f893802fb1aca7a3dae32dcd60800a59959bc540d63237876b799229ae71a2526fbc52cd'
|
||||
|
||||
struct MonteTestCase {
|
||||
name string
|
||||
count int
|
||||
digest string
|
||||
}
|
||||
|
||||
const monte_cases = [
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 0'
|
||||
count: 0
|
||||
digest: 'ada69add0071b794463c8806a177326735fa624b68ab7bcab2388b9276c036e4eaaff87333e83c81c0bca0359d4aeebcbcfd314c0630e0c2af68c1fb19cc470e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 1'
|
||||
count: 1
|
||||
digest: 'ef219b37c24ae507a2b2b26d1add51b31fb5327eb8c3b19b882fe38049433dbeccd63b3d5b99ba2398920bcefb8aca98cd28a1ee5d2aaf139ce58a15d71b06b4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 2'
|
||||
count: 2
|
||||
digest: 'c3d5087a62db0e5c6f5755c417f69037308cbce0e54519ea5be8171496cc6d18023ba15768153cfd74c7e7dc103227e9eed4b0f82233362b2a7b1a2cbcda9daf'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 3'
|
||||
count: 3
|
||||
digest: 'bb3a58f71148116e377505461d65d6c89906481fedfbcfe481b7aa8ceb977d252b3fe21bfff6e7fbf7575ceecf5936bd635e1cf52698c36ef6908ddbd5b6ae05'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 4'
|
||||
count: 4
|
||||
digest: 'b68f0cd2d63566b3934a50666dec6d62ca1db98e49d7733084c1f86d91a8a08c756fa7ece815e20930dd7cb66351bad8c087c2f94e8757cb98e7f4b86b21a8a8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 5'
|
||||
count: 5
|
||||
digest: '937d7856a82a84c163c79417d0540c47daaf9ffe662c843737dbbcbe5f865bf6f47a9d2bd10129a4f498073094653c324a2519a1c71ac1279b1623ff7d24647a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 6'
|
||||
count: 6
|
||||
digest: 'f8fbc058c2b9f84131c9decfa543a35ade41581f670398efd61b3abfced9c1cfcb5324f2370487f9c59a65bc668ea596c8d22ce8a33014dfad28357fa7d05f04'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 7'
|
||||
count: 7
|
||||
digest: '4ab0c9484ff5c30fa64ae6e81510c5fea566eafb88f175f8bc19109f40fe80014c8b77fff10b8750778429bf3c5497e4cb92d9b30014f4cb975dff2a45244c28'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 8'
|
||||
count: 8
|
||||
digest: '685179397554d276513d630234a03419808c698abf2600d7490aabb8e455c6ab6ea412c7729dc140a79dff66533c6946cbe90f9da9ed16e2e629db1651bea870'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 9'
|
||||
count: 9
|
||||
digest: '335e6e941ab7dadfecdb74ea6cb4e8584b6e3408841a33a6cf7fd6a63294b1930a60983240311672acac3840a90e64cc366ce75081b2252627e9c31197ebad03'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 10'
|
||||
count: 10
|
||||
digest: 'e3217f6af6e279e9445dc3738cbf9ba0e9edba0455844a73648139777afdea2c4d8032e214f541bf92675fb23f24df8e4fe98e0003aadfb6d8f9cc2cd799bbf7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 11'
|
||||
count: 11
|
||||
digest: 'ee2fdfb3ae630613b7d890977cf2515deac272a37f27e4a01961ecf103d4ff5b45cc8aef53b635dd75aa51aabf71c0642555ccd3281e0388f8ca09d83258cf30'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 12'
|
||||
count: 12
|
||||
digest: '6a30d97cc98af6a25b673dce7aeab8d762bf2e55ea0c6dc899179281f84dd02a2896f77e9c106b472f55f7adbef7b1157be567ee1236ebdac2a3c5d8cb133eb5'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 13'
|
||||
count: 13
|
||||
digest: 'ac1176abdc5f71170183d92ae55856221b0d95590af11d9d72ba605ec026bbec52d6974bc43a1efb125ff2b161fbdc616fda00f04193a0bc26aacdfa052a5741'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 14'
|
||||
count: 14
|
||||
digest: '59fa909480620ecc08d34531a6da1b55158b74fc93ddf68e1d242615b6f3843a7952e63e798c6445cde1b07e0be09d0d711cb7b42a0e7760a593b08acfceb63d'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 15'
|
||||
count: 15
|
||||
digest: '9eb253319efa61b864f27bd334d7dd78b38d3265fb544e0c8edee950a547e1d8db921a285774ab94d66beae933298d20f2a5aa87c62fe1e383cc3b18e7af18ac'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 16'
|
||||
count: 16
|
||||
digest: '81735324005671f7bdad9e685ee8257f5e0622b9fcb5d38dbdfb2df27258c3e1d46d76e24c0c92c744e1b50a2b4b0d31525b3af83cc80a75722d921bdeef59c4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 17'
|
||||
count: 17
|
||||
digest: '17498cdff4323bb8021e44eca6559e05d8ff9a0ef2ee9d4ba0ac6e73f83972a0dfbb6d47728fa70311d7c82e154966e1b7678263b0f65133e9116969193d429b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 18'
|
||||
count: 18
|
||||
digest: '228c4574d7c45eb9ba9240722133fce74abe00c7328ab30b4bde373dc79afdd6e0569d36268cd5eaa2f27205fc00512577bcbb6699e1d66ed85eafaba7548afb'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 19'
|
||||
count: 19
|
||||
digest: '3d40ccd9cc445bbecca9227c67fe455d89e0b7c1c858d32f30e2b544ca9a5a606535aea2e59fec6ec4d1ba898cc4338c6eadef9c0884bcf56aca2f481a2d7d3e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 20'
|
||||
count: 20
|
||||
digest: 'e1e577aeac92e3a2b7f8a262bf2ac9c037d2274ca6618fbe4cc21db7c699e9946b6671ae45ea433a1e392a5bc9eec96fd641ba8f4a047f022a04a337227004df'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 21'
|
||||
count: 21
|
||||
digest: '5e4424c0bcb2f0f7a2428821a9d5840a82401f4440ae6bed25c53cd9e71cf9d39904d6a375bd721f4332ab0202529c91feb9c094c3e6d34ca4f66649ee6fa212'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 22'
|
||||
count: 22
|
||||
digest: '56b199d63ca37189d5ca0d40006ac7bcb9f39cbdc00ef7b8a5697caa7d81d05b645a146995b1151d01958f1589337e14afc6e7dd10a815170e527a398e6ce8c3'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 23'
|
||||
count: 23
|
||||
digest: 'd2d498ff93fb03013a64f295b5bc68e57d2fb5600da578aa011d43ff432eae3e0c800f9e2a53155e56fdbf5e068fe2b4beb3e42b2585531b8b16c4d8ca3356c6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 24'
|
||||
count: 24
|
||||
digest: '3d3875489903710f17cf4247b5842ace6f017b1a3b99e9ee5fbc04fc7898e78b12693879878028ca40c63cd0f6925fb7d0ca0412e4f06619e3ace223690f03b8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 25'
|
||||
count: 25
|
||||
digest: 'a013e21cd1234483c95c2ea2757be949bc79401ba39b09c316a1612d594642be65ca106e12695ac3808c57c6f2980e895fd1fe188946562afc238414e1e43649'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 26'
|
||||
count: 26
|
||||
digest: 'c5f6367d7195489e16242f912fbe0d8002e947de3a7e9c53f77b1e5e90e05bd7ca395e787e34cb5f500c02da59c9d83de35601de7ae80dae74a0d6b4a292d43b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 27'
|
||||
count: 27
|
||||
digest: '7c28c44c6aaba83c122f24d68273e28a5afd65b4071d02b7ea3300478d5118971e1356ae57cbc70d2a177ea464a1c2c50d4297b933e789c63b1481797ae8f08c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 28'
|
||||
count: 28
|
||||
digest: 'af7cb42b1c70a85ac1ae1c2991b25b657c19f4fcf83af7f7dc0ae1028c1452a6a17dc98929634fe6ed3855b70b96bc2caa93d82037b94ebeddc77e4c1a7cc563'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 29'
|
||||
count: 29
|
||||
digest: 'bd56ad4c0cbd162706053da929d667253aadcf417affb483fff4f2699bf406d128cfdf5196dfbb05bb89ccbf04c5147bd2ebb3156b0bc1768ca6faa171c91c01'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 30'
|
||||
count: 30
|
||||
digest: '004d7b0fff9bcddf4b3913ae190a76728705a3d23874d92a8b7ff246c8fcad46623cb04723c8aded0cba4968d1a8cc1375b99005786c1bcb7ae4bf13325c3ae0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 31'
|
||||
count: 31
|
||||
digest: '8299a5bf5ed64f525c4eebbeca969fc1b91a81adb58c584bdd2d7676386a31fa546643a3cf505007584f02fb712d708cab645bf078a1b9339f5a76aee985d017'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 32'
|
||||
count: 32
|
||||
digest: 'ce7100f3455db1a9776a9f40d562ea998afca1f9fee7e0d81c8db34cf68ad23a8bfa6fc04774703e1e56d5196b66966158fcf2a8335a58c6ba7ba1af756ba1dc'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 33'
|
||||
count: 33
|
||||
digest: '90aaabcb655ee921b8350229efe6064a60051cf0cac858fa3d43afd5b97cc82301bd1b8cc1f874022e5af948185638783a13ca1bbd5049ace7fbf4f6d90c201f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 34'
|
||||
count: 34
|
||||
digest: '3cf0a25b33ded3e0806dfe603b9987f1d6f2b3fdcb1ec7f8566828c00e17e8f59e38b3bca302396c7525ca194e6cc8501369059e2e34ae21e3141215876847c4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 35'
|
||||
count: 35
|
||||
digest: 'bdc5266aee339a1ff13fcf5229773cd3d14b47101e83076927c160bb71bf7445590525a2012d52af008e118e16df1b6bfcaf8f22b4e45f9e749f3c20625a2bc8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 36'
|
||||
count: 36
|
||||
digest: 'ef8d2ba885381ab97756d59dbbbf53a1ea35d152b2d8f82c3518430aa34e708359194ea43950d032e151f576d343a5c3cfe6b71d4ed0ead9d3a107402589bad0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 37'
|
||||
count: 37
|
||||
digest: '194ea5324c4179998dd7057755f255fdea04dadf533f7851e3e9718b610948e32fd28323077d9421142ac808978adfa325b668c8599a2e01c757a5a14ed2dd37'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 38'
|
||||
count: 38
|
||||
digest: '106984d2f0087e621dae760552bc6279072267883c204079481af6034354f1a2b77c17e6c039a1063e479342aa3ccd90330dd3fb5a7d5e976619497e2d3326cd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 39'
|
||||
count: 39
|
||||
digest: 'a1347216f1a6db47b90c4ded3c5c75440f54c22c87d538314d1340f86f88acba01378acb933ddad0adc6b75d55bfb7e8efc9c4a531b2a410610b7515b6dac66a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 40'
|
||||
count: 40
|
||||
digest: 'b76e4db147e0eaa4f04880654088b9d0fce518c8c377d92c846345604dc6b2b18d377fdb8e30f06d9bcfe6d7dacc07d6adff73d98d49f8f132b80f3084390830'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 41'
|
||||
count: 41
|
||||
digest: 'acd4e527763dfd4513f0def0b1edf8ea12dc78d336b7b796f3dcc32e1068725443a2f55ab4f666b27d6bf2ab39669c98293f0a9108051fd3144d31a1ed171ddd'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 42'
|
||||
count: 42
|
||||
digest: '10128c15494bc87a87374f676ef9fe2df20b36ffcca41a80bd40b216637b3de710efd070e277827820a7bba3cceb7b21f8fe7f9775d6c4df4d3da5349434ec49'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 43'
|
||||
count: 43
|
||||
digest: '2632dd5c188c6ed3a4610405fdda704add752f5424d9de65a51400fe478e26cd0412e5f91ca4b744c34f4954f40a3a4254431d21954623208b527b7b4daa687e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 44'
|
||||
count: 44
|
||||
digest: '45707f5b6fc5ccd1f78d77f177d10fb8b462c74cc821518cd5cfa4b5d6b40b418044900693c37abbb82367d340fec67f800d74072935da1706b4d90ae26099c7'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 45'
|
||||
count: 45
|
||||
digest: '56c37f31220b5b3040373d91b2c5e42fe9e601a12f7f8dc4534459bf28e484b8713db243c5782c031e674003a3c14c42fd152e7188789065e82795e10f87d54b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 46'
|
||||
count: 46
|
||||
digest: '5da94c899d48bd8299fee3d81662f8d6c5f8f8bc54d18cb0368b13cebaee7ad71e74ea80f34974ad166f04f9a0602809166fe4085a475a8ca86cade12b6754c4'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 47'
|
||||
count: 47
|
||||
digest: '0664363f97ba910760b0922e31ca880ca97469506cb007e3108c36c3ce3ce1801fb4197609479339e8820632b6a38bffffee05a9adc11cc544b9aa6f5b95cc6f'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 48'
|
||||
count: 48
|
||||
digest: '732c41a1edaa727c04f627ff158aaff67c18efd667216132b99ab84d108996a10bb008b5d803b22ed1aa78bb0d10f8a762fd34777d7dccce8e84827ba88d4193'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 49'
|
||||
count: 49
|
||||
digest: 'fc9c21d67e393a2b05a23a17d8db630cbaebaa3def211181749f1bcad181560627fb60ee20fae2e5980cbf50fce0a19dce807e7fb75c4da0ef008bc75d413a65'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 50'
|
||||
count: 50
|
||||
digest: '0453b765afc1edffa595efe345177f5805ed3abc1297ceab757ae7161723a6144cb543299f418049276d16b7896662631634fab9549127c10f27505b7dee8665'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 51'
|
||||
count: 51
|
||||
digest: '3853f3bf024e0668e8d1ea53733a97537f97d9307c5f3a19864ab4eeb1654710693bb961a344dec8a758f5e64b26fcb6dd423419c4a114fa749211a9de06c281'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 52'
|
||||
count: 52
|
||||
digest: '240137f0dd57beb3f7fc283bb3ead423c67883fd46f4e27471d7be57ad469a49bad03a3658418bd55614678f3a463bceff85291314b90ef43ccbcb028f0a7a07'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 53'
|
||||
count: 53
|
||||
digest: 'f9050a5271edbe4cfdb9520ec05bbdc3cbcb9bce36fd212338d3e7028a39b9ab30793e561d75a2e424193264c7f0775e65599ef0c94e0ad24dbfe18252364267'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 54'
|
||||
count: 54
|
||||
digest: '47caa7a5862fad837aaa409a4a9df2575e645528c35159115911b7c4e2f08ae49d68de97249b31b83ce2c163f649cad4559dc6e6a7191f2922d79a5fd6af167b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 55'
|
||||
count: 55
|
||||
digest: '13f5825c41fa49edf6104e3e35c9c224eba93e37374f730004c39c54e7391e4a847fd61865235a3fe32224c96fbe86f7e14c3d5df496e83ec989a71b4f293a44'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 56'
|
||||
count: 56
|
||||
digest: 'e5b55e05efe1ca6b9a96a57e3a1523d610d70f837e93b31fa98c2736d3e114d238d46ec6b6e3d19e774b253f6b0c7a2ebe69b7e60fc0874444806b2a2278df45'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 57'
|
||||
count: 57
|
||||
digest: 'f14a586ac30f0af255f597a9aef9abba5e99c04d17b01f24427c4ee2c196b52acb1ceefc9b15cb822b3ecffdc2f7c49e11d3fc0769acee33361537d379c62e0c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 58'
|
||||
count: 58
|
||||
digest: '7e2d3398807195c48e6ec52d20710bbf8b21ea8de4d1abc197897ccc58aeff40259edc67270cdae0edcc686c0d0dccc5760c1495ab1cf48482dc2000ae2d42ad'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 59'
|
||||
count: 59
|
||||
digest: '2f3d5c5f990bf615d5e8b396ccbd0337da39fad09b059f955a431db76a9dc720dffc4e02c0be397c7e0463799cd75fd6ab7c52bec66c8df5ef0d47e14a4c5927'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 60'
|
||||
count: 60
|
||||
digest: '483a1764d308cc494a2b543d29ba616483aefdf91c7769fd084eedaac1add1891df95d317a47430b2bf73e4081f86597020e28afe2d34a22b77ea62b6112d09a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 61'
|
||||
count: 61
|
||||
digest: 'bfa88691ec951511651c6f14af100eeb26d87729e18ac3ef49a80d73ffeaeea53e97c4a7277a7ee9f2fba070b1c9720d6cdba407dd82267019e3f0f5662b2f2b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 62'
|
||||
count: 62
|
||||
digest: '4c17c8e2e7132dbf82afebc40efc77926d16f4d2c082d846dac28733aa767e2840ebf04f2563df75933466a36e11968d342e4157827605d04d9627ce9b5216c8'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 63'
|
||||
count: 63
|
||||
digest: '70bbfc29a2a765220af84e7bb10d759a3152ad4b5643ef6b89966950ec7ef9503d57bc0a28c4ee789a60bf9dcac59139e15241d73b990410cf92eff213da9eca'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 64'
|
||||
count: 64
|
||||
digest: '8d1d56f37fc19b84984a6fa33aa9c2dbdbf79a29c04ad0b4cf20333e6bec943447be2416242f8cd2f9732e79bb925cc5a61a80c5fc9c079961243fd1c1f5900e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 65'
|
||||
count: 65
|
||||
digest: '492fd0171f4dcd5d20ea6c0d34b5576c8894664ae5955e6737f5e3b711c2804d99ccca065b7ec18c82da98b18a3029b765c51ebc7c433b36492e0ed6b8511bb6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 66'
|
||||
count: 66
|
||||
digest: '7f49e8e54db7e5b4323cae2db71f3e8b8eba172dcad3602e9b7b058007a5589358732d5afffa56072a46e89b1ea27ef8d556deb86b569c635d394f15d99d8a15'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 67'
|
||||
count: 67
|
||||
digest: '56884a6a9210d5f371e25823efb2511a9c410c26a441e07c1bdffe8605084267d49c315baf6a692d7d97844b2714b4930877a5d7f52cf6fa151700fcb6980546'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 68'
|
||||
count: 68
|
||||
digest: '6aaef8284eef221ecb17ea3c9596f075b5155fe7b925d737ed3c6543c761c28c7cd9d9d4b5e2a37b2f183a2a367bbd34b633497bc7a1737d61c8c1f3ef295062'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 69'
|
||||
count: 69
|
||||
digest: '38ef178f5688e59d47c375252db7b39f40c0c84169878ee7ba5086e4b25fea81076b9c37847e9e6bf24ae0b343689c265ec5ca7469e619acd61b0276721efb1b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 70'
|
||||
count: 70
|
||||
digest: 'e3fe1aabad120777cf24eaae289b486632ca46ceb89afae73dbae5fa87c767879369355a9cc5c21ca604ed91d0f2f58c466573f3e6d88e52c62c0d3cb188e141'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 71'
|
||||
count: 71
|
||||
digest: '82f5bd920457bb2763a0da031a7fed47b236951b1ea420c20fd2b6de1dbfbb9c4600ea7092788493e2d4be6ee24b6dba04e57af3e8f2f14d9837295420ac7631'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 72'
|
||||
count: 72
|
||||
digest: '6d0b26208ba9b1615067bb3ff97b292fe67e4c02d240d649c32370e0a4cd22d03bdf864be4d24a3f5f51aeccfd1afd5191e590edeb5f7bec323b0506c3104b89'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 73'
|
||||
count: 73
|
||||
digest: 'd081083158054d08371ec84f4d3aa5aa761734ac6091a30330a861fda056f835c750bf4f7981af1693ff28545366bd05cec47bccd77a7d237befb0135c534138'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 74'
|
||||
count: 74
|
||||
digest: '6ba8b52780b8a07a2a2015dd8f0c5e7437b8e024c4ee428f7ba91dfea118cb72a939872550983317132b841b7cbc29a22b8f1cfea0c55203cafc69b55ed6244a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 75'
|
||||
count: 75
|
||||
digest: '312692b0a51f002b7f06d05b39d15a5637dbddd2f4f1a73e6c88a4c841cdba5cd8e69c0939ab39bb1a9c54fa35402143c97edb9704a0e9e1a98701710f6a5dad'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 76'
|
||||
count: 76
|
||||
digest: 'aaee960de201a8dcccff95b834fccf0dafc03fe6cffc0429162bf4aff01165ab07a0c9435e9cb412121b7ba010657ccc3152118602b665072136317d92fd4262'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 77'
|
||||
count: 77
|
||||
digest: '21fdff552e08c86c07f080cefacaaaf31846eb893bfe2e4f88c3c3cd8cbf592a84500942695a5e5ae971ab343ce2695dd1baeb1f94dd4b53d678e14265e421ae'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 78'
|
||||
count: 78
|
||||
digest: 'ca8f1a5b2172f6adb474da53b35e3f73ffd88263d3eecde72e48b16e1a0658015b555ee319005a1d82802e91431ee777610f9b1028d819921e1044ad426b0270'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 79'
|
||||
count: 79
|
||||
digest: 'ce5ab25eff9c1ddc569a1eaaa66b689109ee269db7066e0b02d39b3564fd14ca6249987b7791e203d3d7c2ebf18558d2f23f94c03dd1d03aa63849e4d2889a76'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 80'
|
||||
count: 80
|
||||
digest: 'a6f8b0561000dd4ae8b828c5f676e8c1a6474c4a042a645f1815bd52e9ff53c97dc36d5d8997f8ce332185feead76267f5b2e63f597fb3345ca0046e58fc0f24'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 81'
|
||||
count: 81
|
||||
digest: 'fec86794bad4106c5ad1c1a2d9a1b7aae480396ec231eb5cac21c4077d17a0b652da0037363399a5a1dababa4a40e4c54b9124167580dee9108c4dbb24c57512'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 82'
|
||||
count: 82
|
||||
digest: '594f5dd3f4c87bdc0d81309386e9163a9718e34c7b0dcb4613f8487aa786f9d211cfb61bb247fa9f5ecef042e710f192850f5571807294bfd8a54397850e5773'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 83'
|
||||
count: 83
|
||||
digest: 'd81ad866f25ef6a0a6431d267114da564513e5ebdcf48db7e95db8cf32a89f0ab107874d796035db97420ffcf1db5f04dc1a52ddbbb960fc63b7f3f835cc8be6'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 84'
|
||||
count: 84
|
||||
digest: '431d537e098e9949f6a68108d55d20952e3bfcdeb7273bac3917e37790a84fa5db04c33a79c113a06cf333e831d7702a00853a93fd0aa5146d934f4f71242a6a'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 85'
|
||||
count: 85
|
||||
digest: '4ed95636c6885ae4e63d042e82f4da830c702dbf3b9746d64770a64dd666b33208315f3a947c4dff790771ef283788a9c74da83e22b97f750286a820ee46698c'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 86'
|
||||
count: 86
|
||||
digest: 'a9bcb60b4d7724cdddddbc232b4ac70b94d0d7e9f0724b1222d918930cbb9bdbb04b3ad43e3c8caf3bf8b004ee4aec6bd527ff8eb6189b44827f7ba7057f6a90'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 87'
|
||||
count: 87
|
||||
digest: 'd6d5e44d5bb07fc4144ab6ab309f048968f73f7992beb326047e9e2cd7af6240bc8abf46703c32fdb58fb2a8672594a660ef855be74f24cec09d4fb00219de82'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 88'
|
||||
count: 88
|
||||
digest: 'dfda9ac0c7147530da97715ccf47814182255f2f2cf40287db97a4c63b43fcd39e6d41e560921492badb253a7dea0aba863c7c33b912bb59d1ff4de03a4f03bb'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 89'
|
||||
count: 89
|
||||
digest: '0395faaaf2e907f27779d6f1cc9c9db68ec390a38fbb0702c6475b46f7a399498d46fd8014f834b131e1e83abba0359b1f16d8fc0a393580615def2ad0caba73'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 90'
|
||||
count: 90
|
||||
digest: '41cb98f09029abe85d24a0f131f116c7f69f54f7e91c250642606512bf3da4ca89ba70a4714a5f66d9ae81ff09317dadaff12a02057074c970f0f02a52bfafd2'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 91'
|
||||
count: 91
|
||||
digest: '8e8f161d48e306c5533ed614b8ef3a1979df6db7e13d0780a73c4a3980ddf0a95f93941d412c93683e39915a660c3fbec0dbb1bb6beea2e2099cd968011535c0'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 92'
|
||||
count: 92
|
||||
digest: '789593f0b8fb83ef9b3ec50ab8f6e1e47344f763d4f7ceab5600989e7b6fd5fef6ee5e487975f64474af6cd71ae4d9ecce8f009edea0227c7ebe73080b8f961b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 93'
|
||||
count: 93
|
||||
digest: 'f37e1449e0b313d9537a6177f7a31158d353e5b79c781facf02526ec94e0c6cfda37105bac67098b194ea82efb307c2929a9ab8aca0e76c53e829e3f901cd245'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 94'
|
||||
count: 94
|
||||
digest: '2e74e745caaf2d449ab3b031dd214b48616853a512cf2e95c40cb8e7594fe5e4879ac8a26d02eb35b3b96a5c9e7dcae3e15fd050a0bcc1fb3b9cb9c4df0fad3e'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 95'
|
||||
count: 95
|
||||
digest: '6eac7069c26082e52574ca6a58abb9b1b9faf452e8cca9f1c7023679ce192ca554892f30e38104d39088a24df35612444a0fc90084af7535fd9344fa51dded84'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 96'
|
||||
count: 96
|
||||
digest: 'ada6caf30c4f6e3644d952366e01519af6771b406e2c447552f0c597b8dd10e9e9b4e699c9a835de03f422be8980538d9786172dfd2fe511db272a1543d5aa35'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 97'
|
||||
count: 97
|
||||
digest: '4d4b0086b2cb05d713f2805caa7e6605c8f7dbbb2e0f92aa159aebdcd63060305f47b748f1bca6e0b6e11cf8f9697fcccb6584b878c4b54a699290728a40aa1b'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 98'
|
||||
count: 98
|
||||
digest: '97420b8a0ad102aeb92139da2c052d2748dd7d2dbb93a9ea79dc15b520d0ca7cab8cb7a00f5b5aebcb49d7e7f52a27180935ce617aeecdecba04064c668edd37'
|
||||
},
|
||||
MonteTestCase{
|
||||
name: 'checkpoint 99'
|
||||
count: 99
|
||||
digest: '4aa7dad74eb51d09a6ae7735c4b795b078f51c314f14f42a0d63071e13bdc5fd9f51612e77b36d44567502a3b5eb66c609ec017e51d8df93e58d1a44f3c1e375'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_monte_messages() {
|
||||
mut msg_seed := hex.decode(seed)!
|
||||
|
||||
for c in monte_cases {
|
||||
mut md0 := msg_seed.clone()
|
||||
mut md1 := msg_seed.clone()
|
||||
mut md2 := msg_seed.clone()
|
||||
mut md3 := msg_seed.clone()
|
||||
|
||||
mut mi := []u8{len: 0, cap: 64}
|
||||
|
||||
for _ in 0 .. 1000 {
|
||||
mi.clear()
|
||||
mi << md0
|
||||
mi << md1
|
||||
mi << md2
|
||||
|
||||
md3 = sha512.sum512(mi)
|
||||
|
||||
md0 = md1.clone()
|
||||
md1 = md2.clone()
|
||||
md2 = md3.clone()
|
||||
}
|
||||
|
||||
msg_seed = md3.clone()
|
||||
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
assert md3 == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,675 @@
|
||||
// These tests are derived from the Secure Hash Algorithm Validation System
|
||||
// test vectors contained in:
|
||||
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip
|
||||
//
|
||||
// For SHA512, the test vectors come from:
|
||||
// SHA512ShortMsg.rsp
|
||||
import crypto.sha512
|
||||
import encoding.hex
|
||||
|
||||
// This structure deals with short message tests
|
||||
struct SHA512TestCase {
|
||||
name string
|
||||
message string
|
||||
digest string
|
||||
}
|
||||
|
||||
// short message test cases
|
||||
const short_cases = [
|
||||
SHA512TestCase{
|
||||
name: 'test case 0'
|
||||
message: ''
|
||||
digest: 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 1'
|
||||
message: '21'
|
||||
digest: '3831a6a6155e509dee59a7f451eb35324d8f8f2df6e3708894740f98fdee23889f4de5adb0c5010dfb555cda77c8ab5dc902094c52de3278f35a75ebc25f093a'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 2'
|
||||
message: '9083'
|
||||
digest: '55586ebba48768aeb323655ab6f4298fc9f670964fc2e5f2731e34dfa4b0c09e6e1e12e3d7286b3145c61c2047fb1a2a1297f36da64160b31fa4c8c2cddd2fb4'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 3'
|
||||
message: '0a55db'
|
||||
digest: '7952585e5330cb247d72bae696fc8a6b0f7d0804577e347d99bc1b11e52f384985a428449382306a89261ae143c2f3fb613804ab20b42dc097e5bf4a96ef919b'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 4'
|
||||
message: '23be86d5'
|
||||
digest: '76d42c8eadea35a69990c63a762f330614a4699977f058adb988f406fb0be8f2ea3dce3a2bbd1d827b70b9b299ae6f9e5058ee97b50bd4922d6d37ddc761f8eb'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 5'
|
||||
message: 'eb0ca946c1'
|
||||
digest: 'd39ecedfe6e705a821aee4f58bfc489c3d9433eb4ac1b03a97e321a2586b40dd0522f40fa5aef36afff591a78c916bfc6d1ca515c4983dd8695b1ec7951d723e'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 6'
|
||||
message: '38667f39277b'
|
||||
digest: '85708b8ff05d974d6af0801c152b95f5fa5c06af9a35230c5bea2752f031f9bd84bd844717b3add308a70dc777f90813c20b47b16385664eefc88449f04f2131'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 7'
|
||||
message: 'b39f71aaa8a108'
|
||||
digest: '258b8efa05b4a06b1e63c7a3f925c5ef11fa03e3d47d631bf4d474983783d8c0b09449009e842fc9fa15de586c67cf8955a17d790b20f41dadf67ee8cdcdfce6'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 8'
|
||||
message: '6f8d58b7cab1888c'
|
||||
digest: 'a3941def2803c8dfc08f20c06ba7e9a332ae0c67e47ae57365c243ef40059b11be22c91da6a80c2cff0742a8f4bcd941bdee0b861ec872b215433ce8dcf3c031'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 9'
|
||||
message: '162b0cf9b3750f9438'
|
||||
digest: 'ade217305dc34392aa4b8e57f64f5a3afdd27f1fa969a9a2608353f82b95cfb4ae84598d01575a578a1068a59b34b5045ff6d5299c5cb7ee17180701b2d1d695'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 10'
|
||||
message: 'bad7c618f45be207975e'
|
||||
digest: '5886828959d1f82254068be0bd14b6a88f59f534061fb20376a0541052dd3635edf3c6f0ca3d08775e13525df9333a2113c0b2af76515887529910b6c793c8a5'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 11'
|
||||
message: '6213e10a4420e0d9b77037'
|
||||
digest: '9982dc2a04dff165567f276fd463efef2b369fa2fbca8cee31ce0de8a79a2eb0b53e437f7d9d1f41c71d725cabb949b513075bad1740c9eefbf6a5c6633400c7'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 12'
|
||||
message: '6332c3c2a0a625a61df71858'
|
||||
digest: '9d60375d9858d9f2416fb86fa0a2189ee4213e8710314fd1ebed0fd158b043e6e7c9a76d62c6ba1e1d411a730902309ec676dd491433c6ef66c8f116233d6ce7'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 13'
|
||||
message: 'f47be3a2b019d1beededf5b80c'
|
||||
digest: 'b94292625caa28c7be24a0997eb7328062a76d9b529c0f1d568f850df6d569b5e84df07e9e246be232033ffac3adf2d18f92ab9dacfc0ecf08aff7145f0b833b'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 14'
|
||||
message: 'b1715f782ff02c6b88937f054116'
|
||||
digest: 'ee1a56ee78182ec41d2c3ab33d4c41871d437c5c1ca060ee9e219cb83689b4e5a4174dfdab5d1d1096a31a7c8d3abda75c1b5e6da97e1814901c505b0bc07f25'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 15'
|
||||
message: '9bcd5262868cd9c8a96c9e82987f03'
|
||||
digest: '2e07662a001b9755ae922c8e8a95756db5341dc0f2e62ae1cf827038f33ce055f63ad5c00b65391428434ddc01e5535e7fecbf53db66d93099b8e0b7e44e4b25'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 16'
|
||||
message: 'cd67bd4054aaa3baa0db178ce232fd5a'
|
||||
digest: '0d8521f8f2f3900332d1a1a55c60ba81d04d28dfe8c504b6328ae787925fe0188f2ba91c3a9f0c1653c4bf0ada356455ea36fd31f8e73e3951cad4ebba8c6e04'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 17'
|
||||
message: '6ba004fd176791efb381b862e298c67b08'
|
||||
digest: '112e19144a9c51a223a002b977459920e38afd4ca610bd1c532349e9fa7c0d503215c01ad70e1b2ac5133cf2d10c9e8c1a4c9405f291da2dc45f706761c5e8fe'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 18'
|
||||
message: 'c6a170936568651020edfe15df8012acda8d'
|
||||
digest: 'c36c100cdb6c8c45b072f18256d63a66c9843acb4d07de62e0600711d4fbe64c8cf314ec3457c90308147cb7ac7e4d073ba10f0ced78ea724a474b32dae71231'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 19'
|
||||
message: '61be0c9f5cf62745c7da47c104597194db245c'
|
||||
digest: 'b379249a3ca5f14c29456710114ba6f6136b34c3fc9f6fb91b59d491af782d6b237eb71aaffdd38079461cf690a46d9a4ddd602d19808ab6235d1d8aa01e8200'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 20'
|
||||
message: 'e07056d4f7277bc548099577720a581eec94141d'
|
||||
digest: '59f1856303ff165e2ab5683dddeb6e8ad81f15bb578579b999eb5746680f22cfec6dba741e591ca4d9e53904837701b374be74bbc0847a92179ac2b67496d807'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 21'
|
||||
message: '67ebda0a3573a9a58751d4169e10c7e8663febb3a8'
|
||||
digest: '13963f81cfabfca71de4739fd24a10ce3897bba1d716907fc0a28490c192a7fc3ccb8db1f91af7a2d250d6617f0dfd1519d221d618a02e3e3fa9041cf35ed1ea'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 22'
|
||||
message: '63e09db99eb4cd6238677859a567df313c8520d845b4'
|
||||
digest: '9083e5348b08eb9810b2d15781d8265845410de54fe61750d4b93853690649adc6e72490bc2b7c365e2390573d9414becc0939719e0cb78eca6b2c80c2fda920'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 23'
|
||||
message: 'f3e06b4bd79e380a65cb679a98ccd732563cc5ebe892e2'
|
||||
digest: '6b315f106b07c59eedc5ab1df813b3c0b903060e7217cc010e9070278512a885008dac8b2472a521e77835a7f4deadc1d591aa23b624b69948a99bb60121c54e'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 24'
|
||||
message: '16b17074d3e3d97557f9ed77d920b4b1bff4e845b345a922'
|
||||
digest: '6884134582a760046433abcbd53db8ff1a89995862f305b887020f6da6c7b903a314721e972bf438483f452a8b09596298a576c903c91df4a414c7bd20fd1d07'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 25'
|
||||
message: '3edf93251349d22806bed25345fd5c190aac96d6cdb2d758b8'
|
||||
digest: '299e0daf6605e5b0c30e1ec8bb98e7a3bd7b33b388bdb457452dab509594406c8e7b841e6f4e75c8d6fbd614d5eb9e56c359bfafb4285754787ab72b46dd33f0'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 26'
|
||||
message: 'b2d5a14f01e6b778888c562a059ec819ad89992d16a09f7a54b4'
|
||||
digest: 'ab2e7d745d8ad393439af2a3fbc9cdc25510d4a04e78b526e12b1c0be3b22966872ebe652e2f46ed5c5acecd2f233a9175dd295ebeb3a0706fc66fa1b137042b'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 27'
|
||||
message: '844b66f12ba0c5f9e92731f571539d1eef332e1549a49dbfa4c6de'
|
||||
digest: 'c3f9c5781925774783ae9d839772d7513dfcea8c5af8da262c196f9fe80135b2b0c8c6ca0a1604e0a3460247620de20b299f2db7871982d27c2176ae5fa7ad65'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 28'
|
||||
message: '6b6cc692d39860b1f30203653e25d09c01e6a8043c1a9cb8b249a41e'
|
||||
digest: '2e5263d9a4f21b210e0e161ed39df44102864325788647261a6e70ea4b1ee0abb57b57499bc82158d82336dd53f1ef4464c6a08126e138b2cc0892f765f6af85'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 29'
|
||||
message: 'ab1fc9ee845eeb205ec13725daf1fb1f5d50629b14ea9a2235a9350a88'
|
||||
digest: '72d188a9df5f3b00057bca22c92c0f8228422d974302d22d4b322e7a6c8fc3b2b50ec74c6842781f29f7075c3d4bd065878648846c39bb3e4e2692c0f053f7ed'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 30'
|
||||
message: '594ed82acfc03c0e359cc560b8e4b85f6ee77ee59a70023c2b3d5b3285b2'
|
||||
digest: '5ef322cb4014ecbb713a13659612a222225984d31c187debc4459ba7901f03dac775400acfe3510b306b79894fb0e8437b412150c9193ee5a2164306ebb78301'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 31'
|
||||
message: 'f2c66efbf2a76c5b041860ea576103cd8c6b25e50eca9ff6a2fa88083fe9ac'
|
||||
digest: '7978f93ef7ed02c4a24abecba124d14dd214e1492ff1e168304c0eab89637da0f7a569c43dc4562bdb9404a018b6314fe0eebaccfb25ba76506aa7e9dcd956a7'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 32'
|
||||
message: '8ccb08d2a1a282aa8cc99902ecaf0f67a9f21cffe28005cb27fcf129e963f99d'
|
||||
digest: '4551def2f9127386eea8d4dae1ea8d8e49b2add0509f27ccbce7d9e950ac7db01d5bca579c271b9f2d806730d88f58252fd0c2587851c3ac8a0e72b4e1dc0da6'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 33'
|
||||
message: '9f8c49320af9370cd3db20e9b50d3eaa59a6232d7a86fb7d472f124508d7968b05'
|
||||
digest: '81b002f15c4d48be8517f7ed89df302fb1435c9435efefed58f3eb8ea11910623f1eb9028a66e02121a7f08a7c604226f2324f483e91548dbbd2c441ab704ce5'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 34'
|
||||
message: '4ab9aa069475e54b25e5688a52dd4acd134169c858105f01a0a1b134c72d4af51f8e'
|
||||
digest: '48ba5a63aba7e7bd8e420475331125a947928c67fdb00f65c4080d9a0b99c0672424e76a1ba6bd76dfe492c730f6f9adccaee7bb11571aadb31f6bb628cfa933'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 35'
|
||||
message: 'f0c1d3407de92ef7421e42df5c9ab31d2ec0a750a9522869cbe4cabd66908d5823ec04'
|
||||
digest: '9e75c5bca2c2af1d7739787f46e1d981c4f98e493d0724b5252c2fbae3c526719f1d27e6ccd0d705240281e8fbf3db75b9b3205c1413436d3b5d140004b8cca1'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 36'
|
||||
message: 'ae8c9f8fb41b519b6d943833fe1c32d1c4292fb1ddf1dbe2eb227d9e14d31ed74ebaef12'
|
||||
digest: '042f9fd0a4ed3d9fec3655ae11011c6f2bc7e457e8812b6d8be2cd45fc6c432a94558c88f22c01439618865e8e49e509c448b342ca914b120344aaf7bcbdca18'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 37'
|
||||
message: 'da39fb86237f00303844e61fc6cfe779e42af53349839590bcd2f0e4cbbc279ec0b7e885d1'
|
||||
digest: 'ecb43de8c233a731b38e30c5696f8876761b7ea72efe283fd07bedf20029f47c6d2a4427823e100fb087abaf22d7eff42a951c97c3dd05f48a20163fa4367cba'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 38'
|
||||
message: '3e7271d2070ef095394620c4b016576c150f34bea60784613a0f660d7fa5ae56872b88c58398'
|
||||
digest: '8154d0da634ab2266061acc123acb407650ffe9164a22de3fe29bf05393b2aece92cf4db00ea5b4341c31ddb7de151683c8a71b5a44d5c3175790feac67d18ee'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 39'
|
||||
message: '311fb67f6a0784bb01a2d5a3f3092c407a9d3322319dff9a79f894291c5fac37319fb408402e18'
|
||||
digest: '1870fe913abb0a4b4f53b6581ae18322cd05328514556607f3f4d7b6a2ac8e9185d94d947d8b9c88e0efa66d89b59f7439c75fdadd1816f7412306ab2b59d664'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 40'
|
||||
message: '7651ab491b8fa86f969d42977d09df5f8bee3e5899180b52c968b0db057a6f02a886ad617a84915a'
|
||||
digest: 'f35e50e2e02b8781345f8ceb2198f068ba103476f715cfb487a452882c9f0de0c720b2a088a39d06a8a6b64ce4d6470dfeadc4f65ae06672c057e29f14c4daf9'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 41'
|
||||
message: 'dbe5db685ed7cb848c094524c1723519d49dc66ef9fe6d57e6862a6435750bfa0a70f104f5d396e61a'
|
||||
digest: '2fa6e5b2c443a68050f093e7fb713bd6b18f6274c061ed61d79bf0688a61dba1940bcc30998276860943ab038902896d0fbf59b88b07c80de927037097150c40'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 42'
|
||||
message: '9fa83e96b2a6df23fb372895015678e0b2c9cd18a8542c3eaa2c435a76ae4dc9bd5136d970daff933acf'
|
||||
digest: '3a2c0ec88a3e5347cf0ea9c078838300ef7356f9a6c342063277c106b880a00ed2be205c13064097bd372fde38007bc306561eb4e74bba2bb20bd354aa690ca6'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 43'
|
||||
message: '8a5a45e398bac1d9b896b5a2b4e3566b91d80ad20c977ea7450ff2efb521d82f65019ee762e0c85c6cc841'
|
||||
digest: '3c704620f4066d79c1ff67752980f39ef3d9c1023fa5a213a5265376b14a15166ffe069b51df7710d8907fef9406bf375d502ce086ac82aff17229aaa7a5a334'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 44'
|
||||
message: '49cfffdaf4d031e33b1d28a447450545f6c4293b38d5afbcb9883976c014f080576ec691ac1bff70b742efab'
|
||||
digest: '8bcc4f1ea2b7862ef1591bfa73916665de8faf65439ddf5cc1be43cebfd5f60f205e835a2b186b675b041258c5cff42669316ce25b46a2f4d4218e102f0f5d6f'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 45'
|
||||
message: '2ff845d85efbc4fa5637e9448d950496f19d8d57da99b7bd3df7474822f0a790586736416714e364c6e1fae04e'
|
||||
digest: '236f6f4ed6e858c02d51787e60c578f731f694f8e52b5df4ecd5b04dff14c78e56bad1028d6f626c29d85aeee151a2a2846d3eed5cfafa9854a69fea8af6d04a'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 46'
|
||||
message: 'cfca05fd893c0f005f5ff796f4da19ba27a1e729956b8b715e67ce4b2d2a382a72ec7814f2f507b1825209a20fcc'
|
||||
digest: 'd80969284a4565add4dad6ab9b3bdf53446142f84aaf92d4b23dd22ee7241e6c81489ac8b246edcb6df9bd7b23d91a0c517f546feba4ed5790a2be6e165c1709'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 47'
|
||||
message: 'cfc425759a9c36bb9f4b32eed7767af6566f68ded0adeae25c7a70ca78ec09774d16c8bc357f6d6f7bd441bf62d942'
|
||||
digest: 'b587a785cdf455cc9c544e756c1e306300aa3c59f8725012e68ab4d54020b6d227a164d9f83c905e86f8cebeef708a69f976d6e7b18b9bf78e9b98cc4a5cd1b6'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 48'
|
||||
message: '097c9db919515242c99d973acb1dc4ed482768f974eb83b465f9f6c82503372006e4490835e2ec8f92301130bfb790b2'
|
||||
digest: 'ff5a376f938e73014caef7fe3962944a7230d020b7087869ebe7ec70302721cd06fcdc981c893a425d05e2f99fe198e4db50a088aee2bf1263212110efed422c'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 49'
|
||||
message: '77e73d387e7bc80419ebf5482b61d5255caf819fb59251ff6a384e75f601ea026d83ef950ed0b67518fb99dee0d8aaef1f'
|
||||
digest: 'c4c89cd882ec945cc888fb9a0127d35e585ecc14a75e4b5b3d8330538d22da28cf6af1ebec96dc247f109cd2aaab9756e6946a3d80db8363a4da3e6ddbb510a1'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 50'
|
||||
message: '317e5d9ac73ed0633fa18ebebbca7909ec3a5ef790478f9c38cacec44f196d895835b425774483043341381e7af2d383e51a'
|
||||
digest: 'b10bb04491b9c0c334709b407cda1d503efb6b63ee944f2d366b6855e6e63e5b80115be4be7ff63edecdfb5923792e68123976d79212b3884dec2179d1fcf382'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 51'
|
||||
message: '209461f20666a346fedf4a530f41a6fa280c43665767be923bc1d80bbcb8c9f8f93ad75782ea2689c8c5d211d2053b993145a0'
|
||||
digest: '67b7a328d9444056a52ca2f695c5d3f3baafb625a14fb32eee8ff26a40ccb296bec1771a826b55f7ddb6170d4caf7795b612448e66a0f19356fe505927149b47'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 52'
|
||||
message: '5d61aa45c446f3bf93604b0511313b4e2f306d6b046fbd94797b926746836f2e1dbdc56124060c6ca9c911b1122192d112420827'
|
||||
digest: 'd3931bde2bde8271ed18ca0b9148b12f6f16161e637e376fc961f65bc33bcacf2f6addf26a3eaa81b196653cc37e8a739ec5b3df870d8c38c8f28691c22a39bb'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 53'
|
||||
message: '9288c795bb0b86c0419d9c5637dcc37b39bfa18d441e3fbfca75bc0306e5432e8e7b3a5627b5bc7fdc424a77520abdff566e7f2bb8'
|
||||
digest: 'e363d0e95d8cd18c384016ebeed6d99c4fa2768e2bd58fca019c5108b9cde1cb46f3f884028a55ce282ec310a10037faa1b16b4a6a669957f0b00f350bbd63d0'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 54'
|
||||
message: '780427dc164b2f69b8c7d569266f461e2d30c88c4cd6057fb030a6cf636f24e3c0d0db742a7b6193fdaa15eec50dfb4fae6ec7653c91'
|
||||
digest: '2964b009fb1bf996de12e030b9d6e0608ae8b9dbf2acfb9beb76fc5361cc104ee85c2a46fb7b4cee90848312da302de49afe61c546477e2b25d223d5e3d33560'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 55'
|
||||
message: 'ec2a92e47f692b53c1355475c71ceff0b0952a8b3541b2938270247d44e7c5cc04e17236b353da028674eab4047d89ec5dad868cfd91ce'
|
||||
digest: 'c83aca6147bfcbbc72c377efa8d53654ba0830c5a6a89e1d2a19b713e68fb534640deb833ca512247166dd273b5897e57d526f88eef58f6ff97baee0b4ee5644'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 56'
|
||||
message: 'c99e31ad4e23ac68e15e605d0b02437f8147c44f5445a55b68a10905276cce8676481c33e8cd3efe322bb13fe0107bb546ccbec7b8b38d10'
|
||||
digest: '52992d45a88221d972958e9f2854adaa9a21d2bf7051e1f1019ae78004da50c5b55c144a02afffe539d753949a2b056534f5b4c21f248a05baa52a6c38c7f5dd'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 57'
|
||||
message: '9aa3e8ad92777dfeb121a646ce2e918d1e12b30754bc09470d6da4af6cc9642b012f041ff046569d4fd8d0dccfe448e59feefc908d9ad5af6f'
|
||||
digest: '994d1cda4de40aff4713237cf9f78f7033af83369ac9c64e504091ea2f1caff6c5152d6a0c5608f82886c0093b3d7fbadd49dfd1f9e0f85accf23bc7dad48904'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 58'
|
||||
message: '5842512c37312511a3d8ae41f5801df60cd682d58b4a997342b6e717e94006c214813e6c63e75591f957a7ec301779838bec8ae3ed7febad0805'
|
||||
digest: '9763c43331ad0eb279d704c5f6e97e02da8724115026827f889e9fcda21f60fd230894ab35abb719890f3afa51afd31bc6852183b9c51059910af460abd2474d'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 59'
|
||||
message: 'ca14e2ea2f37c78f78ef280f58707ec549a31a94361073e37701bfe503e4c01ee1f2e123e00e81a188f08fa050825709128a9b66bb8ae6ea47e41d'
|
||||
digest: '4600e022a02258739f67fdd367cc1e662631fb087918768352062b9b3c8de8dbca0e9ec751b91f284694fbddb8d325c0637bccb21dd2efa92e48dbab2e5e9c26'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 60'
|
||||
message: '647629c779b24c1e76f41744aba17159487532a0156a7d8264db50d645e9595ff81e0c96a850f2aa56c844c613a4b892727a9bfc3d3e20386766f805'
|
||||
digest: '5bc842fc2d3b7eb31d2d3044df3ec32af114feaa7cfc27ebc8630f46ab6f0c543f59b812e776e5303861d17da3f1f16097641f3b808d4d5cb3e483946409746c'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 61'
|
||||
message: '1c5dc0d1dd2e4c717635ff3e9b67caf957aec0f8f63c1b1e221e800a4c14848f4ea06e644e5d3e1de592ef5a8007fa3f07171b24bd07578d68963e5cb1'
|
||||
digest: 'cbf1ea86fa5b3dbf67be82fac41e84cccd0d296c757169b37837d273ccc015eecd102b9ce1cff68fdc7f05d22f2b774734f62ded54c8ee0bf57a5a82010d74f5'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 62'
|
||||
message: '8a555e75477d065b3af7e615475f37c0a667f73a4c7af5e4a69f28a68d9f4434776a8f90eab7f1d137eb4b22643c0a0d6a16fcfaa1bd62f2783546a9695f'
|
||||
digest: 'c088e4a3d7da2f6f99a8f3f717361108872b8ffef921b383c24b8061d4e7c27fc56f4f20dc8f952a14043c5650b5a9e777c49c41cfeb3f2de97ee2e16b2c3924'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 63'
|
||||
message: 'ebb3e2ad7803508ba46e81e220b1cff33ea8381504110e9f8092ef085afef84db0d436931d085d0e1b06bd218cf571c79338da31a83b4cb1ec6c06d6b98768'
|
||||
digest: 'f33428d8fc67aa2cc1adcb2822f37f29cbd72abff68190483e415824f0bcecd447cb4f05a9c47031b9c50e0411c552f31cd04c30cea2bc64bcf825a5f8a66028'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 64'
|
||||
message: 'c1ca70ae1279ba0b918157558b4920d6b7fba8a06be515170f202fafd36fb7f79d69fad745dba6150568db1e2b728504113eeac34f527fc82f2200b462ecbf5d'
|
||||
digest: '046e46623912b3932b8d662ab42583423843206301b58bf20ab6d76fd47f1cbbcf421df536ecd7e56db5354e7e0f98822d2129c197f6f0f222b8ec5231f3967d'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 65'
|
||||
message: 'd3ddddf805b1678a02e39200f6440047acbb062e4a2f046a3ca7f1dd6eb03a18be00cd1eb158706a64af5834c68cf7f105b415194605222c99a2cbf72c50cb14bf'
|
||||
digest: 'bae7c5d590bf25a493d8f48b8b4638ccb10541c67996e47287b984322009d27d1348f3ef2999f5ee0d38e112cd5a807a57830cdc318a1181e6c4653cdb8cf122'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 66'
|
||||
message: '8e8ef8aa336b3b98894c3126c71878910618838c00ac8590173c91749972ff3d42a61137029ad74501684f75e1b8d1d74336aa908c44082ae9eb162e901867f54905'
|
||||
digest: '41672931558a93762522b1d55389ecf1b8c0feb8b88f4587fbd417ca809055b0cb630d8bea133ab7f6cf1f21c6b35e2e25c0d19583258808e6c23e1a75336103'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 67'
|
||||
message: '52761e1dac0eaea898e0b07cd24f4b2e6bb7bc200ea4b0528842f17b87154559a2ea94459a0e480ae0bdf9f757dd4a335aed0e510138b024a04ed1d591b4323234dbd5'
|
||||
digest: 'b826fe80494e19c51b42f2582b2d080ba6b90512f35f2db67dd7fd5ee532eaa16498afba08b4996cbcfdf8d1a2df6b1da939e8265115a48aefa42f38205db436'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 68'
|
||||
message: '3804ebc43cbea80c2bd7e4fda5c5515500cd2d2b846a1378dbf218d5c377138606eb3cb8ac88f9076f6ff4436f90717427c9df1ba052acbbe4585e98b6e8e0bf800f1946'
|
||||
digest: '17dd6d87bc6773051e52047fd444996afa8124b0483fe121877f98553448772bd0e7751fc655e9cc2d29830211015d310f191474ca6adc0477a187c03b8fe252'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 69'
|
||||
message: '2249d698c4d807a8e7b4de21c485738959a0d67e5d2ca6f77983dfccb5dbf47931261e1f1537f3cbca253afb6bf4fe5e7672e1dcc860b3d6c8d243afe2d9758b375e955692'
|
||||
digest: '6af44563fc468d51182f6c3be58d45932af1d985c6f283976c91a9ff421f383fe21dc7322f397ccead583e26b3e3fda067976a7f34665df25a2ced7b4b09cdec'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 70'
|
||||
message: '32a9c17033658c54f22c7135ddfc879de94d79593ef2dc7d3041bfa872738389864eeda27801794ccc4ff1fcb5ef3fc48833801d6fe959e3627f8ea1536ad00fa9c7d7d9f043'
|
||||
digest: '6a47699dd3ada2f11bc4ea42072b06cc20857bf164497df1285400c250f5848b6f71957dbdc845f5daeab913036661f69387893fc2d61c25fa59b9d85b19f401'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 71'
|
||||
message: '3d65f69a590a5baaabcd274fe3ef9e88920ffc7adf05c16d7b0f4d18d72bac1e94c3b3d83b8f4c552eb80e9fde3911403f8b000579816f02e1716fd627946031d0af0793e7f3e1'
|
||||
digest: 'ffb2d9450943c24b5933c24812459b75d3d9f380344c9bc06fa3e17ee448eca2f98ff79f7e2235ccd9f9a8176f68a2254bbc9b834d6ac8d2bfdbc1597c432c9f'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 72'
|
||||
message: '76ff8b20a18cf104f6cdb65e2ba8f66ecf844af7e85e8ef2da19e8848a16052ec405a644dafb5ca08ec48f97327ac52c0e56218402c72a9a6dc1cf344d58a716a78d7d7529680bae'
|
||||
digest: 'f8858144c6d709dd0689a526a548a43f17494950ba2ac20544799e8ea27201d78bce5b921e29a7b4029278e68341ef2a0ca4ba3894566b3c8f8950e3e545a689'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 73'
|
||||
message: 'ca88dddfc876a12f45f19562bc9ca250f43267ab251a7f345c3c022e20144e135604078762ef5c8a8f038cf1b1d6a91709b59dd068396a9e971ab628f74886e765384a23607c1a1e6e'
|
||||
digest: '4f3d9eeef349ca51a7e419af1686f42795abde58a85335ce68d496e81e4436a80a61dc143a4300008c23a3e71f4ba98743195a3694a8d02fee11bd314569abc0'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 74'
|
||||
message: '0a78b16b4026f7ec063db4e7b77c42a298e524e268093c5038853e217dcd65f66428650165fca06a1b4c9cf1537fb5d463630ff3bd71cf32c3538b1fdda3fed5c9f601203319b7e1869a'
|
||||
digest: '6095c3df5b9db7ce524d76123f77421ce888b86a477ae8c6db1d0be8d326d22c852915ab03c0c81a5b7ac71e2c14e74bda17a78d2b10585fa214f6546eb710a0'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 75'
|
||||
message: '20f10ef9a0e6128675340171cd248df30b586557620b615ca39a00db534315a9012dbdbfd6a994986eb829dbe6cdaf3a37d4f59ac27298742c8f777b6b12677f21eb289129579868705f27'
|
||||
digest: 'b4ead3f860eabbd36c770d66c7356f8107acd1485c7c94178c2eaabd50266d7645d009972586ef83ed43ed92882137df5117b88f35231b894ec1741ae7501145'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 76'
|
||||
message: '995c8f747ea418f7d63aba2260b34ac3c7dceebb78438ca4b1f982b7db9798ec1a7f32622264cb024c0d9e60e955a6e1d677c923518851990a459b767d0f13cd803460f61870db3391b44693'
|
||||
digest: 'a00a601edeaca83041dc452d438a8de549594e25d843c2cf60a0e009fb92d87abe28a72690ab657c8d35b43cd02d22ec0755de229d1f922fa6ca18a6d6c2aaae'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 77'
|
||||
message: '0feb23c7e4a19bcbd70bd300d76ec9045d696f8c9687f49ec4154400e231d2f0862495150cf250b6f12f172a7d130f8fa5d175bf2f25e280172ccdfb327951701165302728a619aa2f242631c9'
|
||||
digest: 'eeb6dee30c119fb1e1eb5c15ff2b32d8b9c7464a4e4cc6815cd251a6bae29b49961dd5c2fa9c44a9b142ca062c7072cbf3db04299b767789040196bf0c06aa76'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 78'
|
||||
message: 'ac59a110623f1a64666f160ed32926676cb5be25dd9d962f441951b0efcb5d6a67ac1a4eae473e49c6257860728853ff415c5e8ec76a8a462ecfd343eeac22dad820722c597332fbfd94ebbd32c6'
|
||||
digest: 'f65ea942ae0a47e73b02b1442e5b26083db79307f64dd34a039c476faf18d5c514bb77a2c412a6074a7afc326ea66c74e5705fe2abbabf274333325a15b61fd9'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 79'
|
||||
message: '9e3e1077e1333a1fb1aa633ccf2f746588ad426489ea08dff5511438b5f4c0b110d1a4d47b540a12b21ea2aa070578ccfa5c22fe0b743ec0cc621c6b3a03b75f4d3eea5dce89e03269afcd9603d0db'
|
||||
digest: '4b5c5df80c344c12388c723856cd06965b2190af652480476747dc2195ea3716f87c1762359583a5f31522f83f7833bec30f1f47d14540417dd463f5d258cd4a'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 80'
|
||||
message: 'e881e3284c79d8f5237e699e4fbca84090c664bb53229f58cb0842b0436710c9b329d98191b8f030e9c1df89b03858c1569c6ff49a7c07c4a23a8a434b0fde13be4f94cb44ee629d5b44d336090d3de6'
|
||||
digest: '147d8071c7871ef9256cff32aa63ea031404fa5ee4ec09c56afdd5da919b0cc84a9d35d142c417715203316011cc620cd6855bb117063a5e52867facc680d5f4'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 81'
|
||||
message: 'e58521098911503de84311387d375c25929e6e55076eb6934fd8f2b1bb7b9667fbd76d5ee204828769a341b1f716da5bdfece6c62a9f4d4f988267fce1f5615540dbe375324eef607c910d976b45a5ea5f'
|
||||
digest: 'f97ba056fa41f43b8e1987072a09e828c71c5ff6ad4e37f9ab6b89e2a078933dd23052fa72c6615b613904259e9ff9b55ef7b923b89bc8752f6babddd256e117'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 82'
|
||||
message: '3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c9f133e5f8527f1b184830e07c3458c83a8ca9f9d9c6998760e610668ba0f22e22b656a737e978b246a17840b7dc4091da85f'
|
||||
digest: 'c8a466199acbcbc93f2ce042968508c046901631e3118a2d0bf39a9b42b4197a379b3a86cdeca9df2de1a3eb71b79ae9bf2d6575eadf1878029c4093133f54d3'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 83'
|
||||
message: '9af608d031ccf309d7273c607a8e5e36840d449b55db5b13f03aeb9af49fa7e7cf1383ee2ed9c5a8b7515f16fb1c7c84a681590bf90f56597b844db5ebee223d78109b72350772f7c72ea996603e1e84f2ba5f'
|
||||
digest: 'f0ded9495b4f64cac585be8a737cfa14247a4a81cdf7f01ebcb134ace71f5a83df2cd72e7773fea1e82beae17e13857372792c8231e2ab9fbeb633e399d5f0ae'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 84'
|
||||
message: 'd0df1bdf1df6203241722fb9c9c1cf7405017497ae154538ccf9224ad752e6ce1d4ae948639aca70cfe86b2b06543cb9914ebd3085aa3e2963f6e9b93d0b03a31ae26fcb9ca974eee016c091a6fcac37b21cc1d7'
|
||||
digest: 'c2da3ea3c8a3fd88a5bc5dea2bc076f861abedefae5a5fbd941ddfd1c41cc3312eb2dc826c2c0f65414fe72ebee447d2f9b1a6a56302660d1f86632ee80a175f'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 85'
|
||||
message: '8cbc9480553acef7bcdba9716ea8d66b4131780917de2b0b048045fcb32b5cac054808e1fce6e94ad851ecb47fe6cb802225d3551e08ea122093d0078dada564212eacf1d6394e0007cc62a1d595ab14ca08a284bc'
|
||||
digest: '63b39b88ceb848188b37316e04560e75a5340ab8d417932d231c997e892b41daa69d9fe3e9a14dd19ccfbbfa01488c208e7b946cfaf16ca2b1bf7c8d8da4e6b2'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 86'
|
||||
message: '38f184448f3cf82a54cafc556aff336f23f9149e612134b3fc00c8a56455653d88640b12f69062b8432c4335ad8f7ab4ff66cb7eb54f332561a36f024d92c3e26276f4fd48619628cff88e4b8e85cf14ca4767ed990d'
|
||||
digest: '9a49265fc641c59f1a91872cdae490d3da73c0c60fd59648e1d17dba1a647a5b95629392bb4ff5163d1a3cb45427c1437a3b2e1d9f030c0a8bcc5ed22da9e2ed'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 87'
|
||||
message: '70900618b1e9e9db62296fb6c6590c9f10b0a632765c489c887f1ab7c07791765a62e38465e1be281b1d396c6e080b7ee3e6fa56a30b9799d0e629be153ee76f81bc6a3295aa61489bfa87d53a8ad24248a6ede0dfcfe9'
|
||||
digest: '1c8c3357ff1f8d6ac4defb3af462a73e09159e3a20c6506edd8cd3052df941c81f68c5fbb893912619e28640977fe8eaae8e9d5d4e7d5f132552cefab4540bac'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 88'
|
||||
message: '4e6ddae0d805afcd10a055bce584c848d050fb29fe8f1c64b18e1abfe46b65782e6ff536e89d8d40928b41ed7371365c8080a9647f7532ce6c6d4ac21cfb0c8020783851ec9a7dbc3948f8fca7adf8b2a78c04d898d31ff6'
|
||||
digest: '5c2f996c779b91b3c4639311f54fabbdde7e2212b53dbae4828c8399588fc00d3b2ae60918aaaf6bb48bc757e52b2bcea84f5d15bf4ec25d5519fb54f6f26e1b'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 89'
|
||||
message: '696825f6d6ea8173ec47d0959a401c4ddf69f8f08ddd678a4d2ff976e3a4372bb39f4159845cb63585e1d4108d32e12fa7c5c9d7ce3508a7f53aca2b4bd951adbcd8984ebb7536563f5884c90bc5023b3316f7e4dc6958f743'
|
||||
digest: '3ce940ca96b00011375daa95c65f66907d69b3eb3b8d779e6fc971afcc05e990bc4c541f434590f6b18b68c080d0f24475a3e764e9cb85343301314ee2fb661e'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 90'
|
||||
message: '79ecdfd47a29a74220a52819ce4589747f2b30b364d0852cce52f91e4f0f48e61c72fa76b60d3002cae89dfc5519d3430b95c098fa4678516b5e355109ea9b3745aa41d6f8206ee64ae720f8d44653b001057f2eba7f63cd42f9'
|
||||
digest: 'ba3d0fe04470f4cf8f08c46d82ae3afd1caea8c13bebbe026b5c1777aa59860af2e3da7751844e0be24072af48bc8a6fd77678aaee04e08f63395f5c8a465763'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 91'
|
||||
message: '9263fe75e8f6c7d5d642e2ca6a6eea4f44e9a0f249513ed79c9409ffca5526ca4491aebb1382057cc7c36722b0b6c3b15123cde312214f25353abfe30bca170568a8e1ba5408917403a01834080ab607c56a10d0265082498fe0b6'
|
||||
digest: '7736d7a7fc1eb05857ce7d88abfffa87f58c670bfdfc0a8031f60f379e4b6ad94ac8f13ffe28c697809b5cfac7f13be01e7496a85237c4025539051fb2e32fb6'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 92'
|
||||
message: '78c17bfe0e02eb526d1a44a1ac127be082181452b625394bd6dc093a2cb432e6ee59c2f8b5503aba30dae41e1a1c6702697c99b2c94e94af48b00caf53b2e0e4e1bbee81ee282c7b2b35f58cf421a07e828d57a6622626af25835399'
|
||||
digest: 'b56b6e343166328523e0d1693e5174da643ae83cf69c85a7b3c3bee247b77b84702069d9e6b4cab03bf17fe612009bf4239683ca78ca7e876aca7d07603ba714'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 93'
|
||||
message: '298bb304a920f960447d8fd38b061bf8fe4ac1f871d8a0feb4549feb72ca694a5a41b6867d94cd5af77d468ad2f315d127b6c41a862800f3985e573e037740298e2c5c6186a9fb83609be2d49f8b4c31f96a2e49b56dbf09571b38587f'
|
||||
digest: '34e3878627904ffbbbd85266cc973c34f931e3cab5d4c31f841c553dd69f84838206067df4f9f3b9102001be19267151e673f5c2d4c2f8438a6999a0a325487d'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 94'
|
||||
message: 'a3cf714bf112647e727e8cfd46499acd35a640dd393ddd263cd85cf6225f59890a0686dad1c54eb8d809b81c08a98dba131bbdd6fce8ff59d95db824d8831ea480529da739227a6e0f62b603b38c35cdc2581f614a31879b8be54aeefaa0'
|
||||
digest: '6f230ae4903ddbef0ba384c2e3506eab318bfd1a46ea76099f65a3fd529c91bc2865b9fd943e346de64626b8529f9db1377bf2c5e0129c66b50c6a5cfb364b3a'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 95'
|
||||
message: '0a427ae55ef3a7e6044a08cf6128cbaaabfd776c4e9374708f2ece246fd73603d2f54ac3e01d16cfac2bdaf713920d66e8f0a3d54ee68cff64267d5528cdf2f295f474d10f81173e0143488ac53fc503c444ed23dec63a080ce90c2443dba8'
|
||||
digest: 'f6bbe5d0cf13ddf41c1436748a5d1ccae2948547b452c2171c7c8e8b66c6ae4de3c0e8b2962bcb60d3de3608479f80e455c9024d9716c38f6f1206861ab1eaac'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 96'
|
||||
message: '2cbbb87511f4948efec3a61b511ededb1dda8b6ecfc0210c11e43a77ee32dc2e374afae4268e3d30427804868232a966b56006d3214037076bf6a265b72135af0fb2ef7909fea2dea412f7717446b276ff153753662b4d4148c02347e3259169'
|
||||
digest: '76897b87a8a1cf835c434f6d391c9e5227351af9d3e20a3389c796b98b424281a59068d9c8d567ec2bebc435b0126b059e2d86394a9854d6611e1c922f385496'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 97'
|
||||
message: '2b23324c9992f60a7fc010159a03cb9a2b290df4fa6a82359b9af602f0a403a5ef33ed5da5b2caf87b77e6a4b93b650348ce2a7dbc08f8da9203d710b587ba5947c65e899f4a759f8e2b049ae7850a8e3e2962f6ef93ea4c631de5d78e729ec5bc'
|
||||
digest: '3beea0b373ed09cf1c919c51d86d642c9125e0ee81698dc4cbadf02e9e6925efb562fd9b87301a6377ca192be79c4118deabc450b54639000c2e312945451fb5'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 98'
|
||||
message: '4022f930c7033b00d986c65ff6bbbdf9ebd0e58c52844ff658df3893c3202dc533f873d4a7f5a5f944419fb5528c9b6788479a1e891306acae7995fc06db70a59baa95bef7da79f5e793f2db7f2a55825e4fdb4a34884af881ded1089fd5334502a2'
|
||||
digest: '0358775bbb733ccc49e78f544aeee512370d480d0e13c7e8d5c444c423e592146b45fdb91a1b694d35e36b60e4bc8397fca8bb9790e619339778b9cd1abe3fe9'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 99'
|
||||
message: '1cb77ba43ce77e236b9fc925f589b1c070780a84f99e8f50c1ff846ac92599cfe91612c8178325bee642a34f4dffdba2aa2ebcf7064339829b26f27993e1106c139c70d578cc05f0e1a777cceddb10a2c67fd9675e4a009df8037d6eeb38f5fba233df'
|
||||
digest: '6502f46551a3fab3a96428fb97801d7a4aa2f17fef6603238df84e17c74309ed3d9489c8b16a9384ee634a3f86d0b3ba9a4dbc9c51ec8bd4bf8d61de6d3d87d7'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 100'
|
||||
message: '52167de2d6c502d99fa10c27b2ab6203bdebc2cafbbfdef15872a43dd610c2362f796ad9bcb5528d95870058fa454453f1e6065b315d410a3f2650e5d71e69d78d9767dfb4accc057fd2069266b0f180cb319e30ded7535bbe52d24be151de4bb598fc5c'
|
||||
digest: '25cb3ed3983a91b4cf37a65193916c5e3e211b63e943e2f7b50a85d349a463b941aad33eff16561bdfdc92fda06a4e1d94b162de48f06d3c626940b31020925f'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 101'
|
||||
message: 'cede6697d422ddaa78e2d55ae080b8b9e9356c69bc558201a2d4b0b3190a812c27b34bbcee3a62b781378b1bf636b372bcbae1fa2f816a046a0a649a5c555c641fea4ccd841cc761f38f777972f8c91b0324e71c333ce787f04741439bf087ef5e895011c0'
|
||||
digest: '0be42a25d77ac6ad995c6be48e783380bad25a61732f87cefb0cce1a769cd69081f494a1a12d657664ef2b4d9c41f2ee83f6e9a84327d8756af9f985595e7d3b'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 102'
|
||||
message: '56d18d3e2e496440d0a5c9e1bcb464faf5bc70a8b562124f5fc9e9deb5fee6544b945e833b8b5d131b773ecb2cdd780cd4e1bb9e4f1e3cb0a1d64d19cf4b30e44e6c2d0cbcb4e284ce50db7a8a8062ddb63f981d9026c532bf8eeddf8af5a43848a32262178c'
|
||||
digest: '982dc61c91a93770582eee8025aa55da8e9edb966bf5cf70d4a6534c0d53a2789a8c4fb65b7fed478cda02ed1e0d198d85c5c735b2417c5fab5d34e969fc8e7e'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 103'
|
||||
message: '25a7320dfaec5af65da4d0f8688e29e8e95532ecc16679ea8aff0f407d898db6922855b0e8901aa9681aa3dca617cb440764cdc7293fbeaf7f585b593c2b0531738e0ade7c8626b9995f4a84d9fc9b593d6bbee01abc53c5be14bf6956fd2fd81000dafc7c7686'
|
||||
digest: '749c928c3d5510925bfe98659025b0ed7c01acd4d59a9bf1c54863a088091771dc9d407bdbf83b0f44b0902e10349ba79c84d0981d5e8c4f5c733a117fed0790'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 104'
|
||||
message: '3d7177b28ffd916e7e0634895833ba0bd9e0653df2cc4202c811536a005aec853a505e75db55d3c7107579041099e382a1feac80dde65d72368e909ab85f56d88e68d7c3c80c38f85bf8c2b36959409cc34ba8e3ad94fe8ee1927612d672d92141a329c4dd8a88a9'
|
||||
digest: '14a331508cd7d94fcce56a66bf65f20870a281c8442f8dbd4c2371454a2b66f8d0994a0b67692e771efc6a5e0b887acae7d6f4ec7338e1aa89f2abc7034c4e4c'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 105'
|
||||
message: 'c033e4a512297caecdbead892b11a9f7007af9a74bcab89e0bd4ffdd542ca03ea12e17a06c42bd43fc5f3f757fce4f6f5831997abac3f95676e1ebdb11ca43e11aa31e5ebabe18ce8d1bbfd8b02f482e1ce581b532e307e6960eb97441506c2ed299e1282523f41527'
|
||||
digest: '95ac9b7d22aa458921874c4b4331e7d64761853217c3f83c601abcbccd7e2eaa6ca6ce9a22ebcfe5046d52f8a09097f043ab8bc59243fd770090bb432c3155e9'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 106'
|
||||
message: '69fff0f1a3dbfb36e32f025819fa99ea9a0edaef73145bf7fcd05d8bb0a646cb3b5d5256d524856acfd2e44d6b72e4ebf1ff23c0ff6c56f821e782d5a15f7052a1445b06668eeb4af700679ee7ae26496fbd4640c06aa149964dfd6011df835ac13b73c8ff21151e8440'
|
||||
digest: '45d4daa652558d1c12beb0f5662c712f325b4c802fc6eb9ee039c949d002bb786f1a732712be941f9c5c79b3e5c43064d63a38578e5a54ee526acb735b9ad45f'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 107'
|
||||
message: 'b2c439c97ab7c63736b3796324d68eeb7a471ed142bd9622684167d61234fff82f93f907537a909bc2e75a4bcbc133cf57197662c1af746ae8b81e5b83de05d9b589851de25d3c99c004c1dfb12d93bf50d450af49c428716f5b90ef088e3b6a6b2c46d3ce67b379599018'
|
||||
digest: 'c48ec83be5fa669e6ec8db90aca9676cfe2ec0d5e8e7a2431687bb953c0a300be3db4075cca3bac4dfa4d971baf0fa1aff46639db4b238856ff36d1dfcd520f1'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 108'
|
||||
message: 'c016f522f26b7470e922b9a287e6d45f6c28813b68c1457e36d9ba266708272f9cbc5411f8db9d8bd5a9449fb6eb0cde7d4d03e5df019f2814a90ceed377c59d7d92623899bcb0268033073559d4d8de488686cbe3d67796e6df6ad4276d0b52cc62c49ebb58d7c95287aa6c'
|
||||
digest: '7402f1a99b47e102b3b73140c6771b07ee6c33b3715e9c4027c441bee40511b735d95e508baea78da26fded9b7038e9a53defa58448aba40dc1e62d7ec592107'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 109'
|
||||
message: 'a766b2a7ef916721f4677b67dbc65ef9b4d1bda1ad4e53fc854b0236440822152a111939e5ab2ba207719472b63fd4f4a54f4bde44a205d334a2d72cfe05abf804f41841b86d36920be6b0b529331ac163a985556c84511ec986439f83e1d7311f57d848cfa02df9ea0cf6b99a'
|
||||
digest: 'ddd60f93a3babc78299cf763e7919d45ac6f479700e1adb05ab137acdf89c1521ecb9dfeacd091e58ca57a1db964a9c3cd1fa39192cc1e9f734caa1c5fa62975'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 110'
|
||||
message: '10f2be77a4055771a67007cd8630e3230e38288499cb160380290174d66da57455b6baaa9785c84c8a663de41ed3bd544055b9170cec43cb3eb120eceaba1fe36e3eaa3fa4f99b425cd2519f09bc0282bada52d14ce625b1ded3b24d86b1dad342d2b7be322b775b04fc6b86afb4'
|
||||
digest: 'a872fa33d463b3343cec57c20c66979c33e1ad067bfc703454696aab5dd0003bc194318f4a8ebbc74503feb7211a472dadee991efe3e38f21a1310f8a76eac80'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 111'
|
||||
message: '324533e685f1852e358eea8ea8b81c288b3f3beb1f2bc2b8d3fdbac318382e3d7120de30c9c237aa0a34831deb1e5e060a7969cd3a9742ec1e64b354f7eb290cba1c681c66cc7ea994fdf5614f604d1a2718aab581c1c94931b1387e4b7dc73635bf3a7301174075fa70a9227d85d3'
|
||||
digest: '3b26c5170729d0814153becb95f1b65cd42f9a6d0649d914e4f69d938b5e9dc041cd0f5c8da0b484d7c7bc7b1bdefb08fe8b1bfedc81109345bc9e9a399feedf'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 112'
|
||||
message: '518985977ee21d2bf622a20567124fcbf11c72df805365835ab3c041f4a9cd8a0ad63c9dee1018aa21a9fa3720f47dc48006f1aa3dba544950f87e627f369bc2793ede21223274492cceb77be7eea50e5a509059929a16d33a9f54796cde5770c74bd3ecc25318503f1a41976407aff2'
|
||||
digest: 'c00926a374cde55b8fbd77f50da1363da19744d3f464e07ce31794c5a61b6f9c85689fa1cfe136553527fd876be91673c2cac2dd157b2defea360851b6d92cf4'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 113'
|
||||
message: '9159767275ba6f79cbb3d58c0108339d8c6a41138991ab7aa58b14793b545b04bda61dd255127b12cc501d5aaad476e09fa14aec21626e8d57b7d08c36cdb79eea314bdd77e65779a0b54eab08c48ceb976adf631f4246a33f7ef896887ea8b5dfa2087a225c8c180f8970696101fc283b'
|
||||
digest: '3cd3380a90868de17dee4bd4d7f90d7512696f0a92b2d089240d61a9d20cd3af094c78bf466c2d404dd2f662ec5f4a299be2adeadf627b98e50e1c072b769d62'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 114'
|
||||
message: 'fe2d8ae200e6657fdc7494af5a12b2ae940348f1f983f0ba98febbe99c80d115126d57dbf37296765ebb5990256696588b3851d54c8fbe7ade98a6faf7c20b5e4f730f54a7f912ca0ac31bbb53d17949ef69aa0de40c7bab12a871a9b90f68813ca87af4256422a268f4a1d8ec3aa1a947fd'
|
||||
digest: '8025a8608df0f6a01c34cdec012d4cb25852e1b100b68172fc4e86ac8b7126b64859cb9e767a7e59060989cedbd925afc475ca7369bd43f85ae590e224e036dd'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 115'
|
||||
message: 'dc28484ebfd293d62ac759d5754bdf502423e4d419fa79020805134b2ce3dff738c7556c91d810adbad8dd210f041296b73c2185d4646c97fc0a5b69ed49ac8c7ced0bd1cfd7e3c3cca47374d189247da6811a40b0ab097067ed4ad40ade2e4791e39204e398b3204971445822a1be0dd93af8'
|
||||
digest: '615115d2e8b62e345adaa4bdb95395a3b4fe27d71c4a111b86c1841463c5f03d6b20d164a39948ab08ae060720d05c10f6022e5c8caf2fa3bca2e04d9c539ded'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 116'
|
||||
message: '5af8c0f26db4e99b47ec2e4a01a786e77899e46d464ac337f175027b61aef3149848af849d76ac39b9b0910fe6594817859e55974fa167518ed72d088dae6b414d744d477974fb719c626da792f981233de24b7579d8acca510a266d73c0ee8ee1424343eaf6ffcc59c86c1becce5894072c6c11'
|
||||
digest: '09da284d5b6556508be54c8ab6c97bbd472995c6bbd585917ecdb54ea9167208daaa070a7b2b7d8e93ce1315f0d1ef8d69667429c44dc5ee1499de57b229a398'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 117'
|
||||
message: '49cd0ba0df5bb3f43f68464e3e83e9cbd5d5ee077ffa5591e30f939cb30c93f7d454fb3fbf8bb05327a89c08dc4baf1eef50237317a405775357f1e0d1f31d9f0f0d98124019d47bf18363b1ecfbfe155c10cbc83300e01bc9ce0347c596b35f411e6d8229ad2855e42022b0373ade98663c6d6e9c'
|
||||
digest: '30cbf0679a97c871574d2fc05d7aa760c6bc8a864b7d246c39b9e812f9b7ff7b4ef5197dd5b69493306688b8564de1ad47d75505c913ba6a78788f8caf5788bd'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 118'
|
||||
message: 'a8a37dfc083ad2f47fff468738bf8b728eb7f1907e427fa15cb4424bc685e55ed7b2825c9c60b839ccc2fe5fb33e36f570cb8661609e630bda05ee641d938428867d90e00744a4aad494c93c5f6d1327878078590cdce1e647c9820818f467641fcd508e2f2ebfd0ff3d4f272393478f3b9e6f806b43'
|
||||
digest: '8e1c91729be8eb40226f6c58a029380ef7edb9dc166a5c3cdbcefe90bd30d85cb7c4b248e66abf0a3a4c842281299bef6db88858d9e5ab5244f70b7969e1c072'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 119'
|
||||
message: '36af17595494ef793c42f48410246df07d05936a918afe74cd005e537c586b2843701f5df8952242b74586f83339b48f4ba3a66bdeb457ecdf61784eac6765cd9b8c570dd628dbba6ae5836b9ac3dbcd795f9efdb8742a35bca232abf36eb3b6698b2933965802277ba953a6edcacaf330c1e4e8c7d45f'
|
||||
digest: '158bfc348a30b4fabbe355a7d44bdc2122a4c850444c03f289003ce01bfc1ebf3ecc0febb6a8ff523d25db7681b05bdce048d11943ab476c1967cf6556c4a120'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 120'
|
||||
message: '42d66edc5f22e0c13c25504c5101a5d172d2db7209e461efa323c0bfaed27e5f808042ea9c3838ea31f9b76de465225ccfbd0c09ca0d9f07e9a43e3e46c7693e00a7e1d483900ddb0a629d5563456dbbf299ac91f92c3d3c17b05d180e6c87c6c93194c39d90273fcf4a482c56084f95e34c04311fa80438'
|
||||
digest: '061afb119a3c60876e04c10f12ad0f4b977593dc5a2d21096a57e7d3f7d4d44fdef934b2c17d7530674e4f4a1c176dbdcc54811a22e1b8712e4192fc2d4bf8e8'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 121'
|
||||
message: 'f91bb2e1a9c4cd96bf250426b3a6afd9b87ac51e93254d2dae3b16ec686ba80fb0bd7a84d218660e9007593075bc4f4c66567f0c7a5fd2010c999a8a0efa81f89ff5bfefe0fb910f0442e6d4a7c55bbb618c69a79a2ddd82a0938927f6fe3a80f04beaeb7c7636e3435d12dcf1c6bb6ed0a4edb69c9657fa93'
|
||||
digest: '6e692c8c694ee0a3565f37a299e0006b85ab4a821b20e76798220229f656efc6a20211a4e7e4ed77facde0d70e4d5d95bc8ed1d7a56d8df1446d562f044b344c'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 122'
|
||||
message: 'd1eb961ca6a8f67c49b61e4d3ceaa2a1de6f0ea927b132bf987abdaa725b0e1e274e46830e99a2f75af608964df0dff9a99024fc6839bac5acd10202f921ac71a27fcda681aa3109ebf5f21ee3a849098ea3a551e844fae4b48b5c5bb97ccc802bc5520d68a14cb7e5fc056b67d889d876efb82d0e9a9a2499f1'
|
||||
digest: '39b2c76ec207120de4b320c7fe069e602c9c38f257596da7369395e87eb64b3acff988c1839ac269d5012c093f9edd4b7cabf13bdea7d42e969ab108269c6ab0'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 123'
|
||||
message: 'adf2263200f376886ba7b6f5e4411d5f07f7d9d101590c73ace114bafbcb0fdc99269e87cd2cead2a1cfe5744394d333aba408a07e21f30233b65b907472e9e3c7d6e7aa6d2c47a08a1be7bb877913a6b5604c723384478911c339e3b5fe527c7e288705a89c95d970b443347897e79f6c522bafe62b11ef8f3135'
|
||||
digest: '3c23d2d8cf4db6ac6a42e27208180f37668bef5ee0a3f879483c8e604e7f42583f202037b8d242c04a87345b8be6dc8b121d6484b9edad0d73c894c1288f5cae'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 124'
|
||||
message: '18e75b47d898ac629c48e80dbfb75dae1e1700b771165eccdb18d628bfc4063dd6c3839a7ec4cd1255c4821b078cd174647b320bb685541d517c579f6b8e3cdd2e109a610c7a921653b204ad018d0340d9938735b60262662016767e1d8824a64954086229c0e3b5bd9ad88c54c1dc5aa4e768ff1a9470ee6f6e998f'
|
||||
digest: '01c756b7c20b5f95fd2b079ab6a50f28b946fb16266b07c6060945dc4fe9e0d279c5b1505b9ec7d8f8f3c9ebf0c5ee9365aec08cf278d65b64daeccc19d3cbf4'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 125'
|
||||
message: 'c2963342cfaa88ccd102a258e6d629f6b0d367dd55116502ca4451ea523623bc4175819a0648df3168e8ea8f10ed27354807d76e02ee1fdf1c9c655ee2b9fd08d557058dabdf8dcf964bfcacc996ae173971e26ea038d407c824260d06c2848a04a488c4c456dbcde2939e561ab908c4097b508638d6cda556465c9cc5'
|
||||
digest: 'a4d2f59393a5fea612c3c745f4bb9f41aaf3a3ce1679aa8afc1a62baa4ed452819418c8ae1a1e658757976692390fc43d4decf7d855cd8b498b6dc60cae05a90'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 126'
|
||||
message: '85360c3d4257d9878e2f5c16d3cd7d0747df3d231e1a8f63fddc69b3b1101af72153de4c8154b090c9815f2466e0e4f02f3af3a89a7fd04e306664f93e5490d4ce7fc169d553c520ae15dd02c7c613c39b4acd00e0c9a3c501566e52cecea11f7303dd1da61abf3f2532fd396047b1887255f4b256c0afcf58f3ae48c947'
|
||||
digest: 'e8352ddcac59e377ea0f9c32bbb43dfd1b6c829fad1954240c41b7c45b0b09db11064b64e2442a96f6530aac2c4abf3beb1eae77f2bce4efe88fee1a70cf5423'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 127'
|
||||
message: 'c13e6ca3abb893aa5f82c4a8ef754460628af6b75af02168f45b72f8f09e45ed127c203bc7bb80ff0c7bd96f8cc6d8110868eb2cfc01037d8058992a6cf2effcbfe498c842e53a2e68a793867968ba18efc4a78b21cdf6a11e5de821dcabab14921ddb33625d48a13baffad6fe8272dbdf4433bd0f7b813c981269c388f001'
|
||||
digest: '6e56f77f6883d0bd4face8b8d557f144661989f66d51b1fe4b8fc7124d66d9d20218616fea1bcf86c08d63bf8f2f21845a3e519083b937e70aa7c358310b5a7c'
|
||||
},
|
||||
SHA512TestCase{
|
||||
name: 'test case 128'
|
||||
message: 'fd2203e467574e834ab07c9097ae164532f24be1eb5d88f1af7748ceff0d2c67a21f4e4097f9d3bb4e9fbf97186e0db6db0100230a52b453d421f8ab9c9a6043aa3295ea20d2f06a2f37470d8a99075f1b8a8336f6228cf08b5942fc1fb4299c7d2480e8e82bce175540bdfad7752bc95b577f229515394f3ae5cec870a4b2f8'
|
||||
digest: 'a21b1077d52b27ac545af63b32746c6e3c51cb0cb9f281eb9f3580a6d4996d5c9917d2a6e484627a9d5a06fa1b25327a9d710e027387fc3e07d7c4d14c6086cc'
|
||||
},
|
||||
]
|
||||
|
||||
fn test_short_messages() {
|
||||
for c in short_cases {
|
||||
message := hex.decode(c.message)!
|
||||
expected_result := hex.decode(c.digest)!
|
||||
|
||||
actual_result := sha512.sum512(message)
|
||||
|
||||
assert actual_result == expected_result, 'failed ${c.name}'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
// Copyright (c) 2019-2024 Alexander Medvednikov. All rights reserved.
|
||||
// Use of this source code is governed by an MIT license
|
||||
// that can be found in the LICENSE file.
|
||||
import crypto.sha512
|
||||
import hash
|
||||
|
||||
// verify sha512.Digest implements hash.Hash
|
||||
fn test_digest_implements_hash() {
|
||||
get_digest := fn () hash.Hash {
|
||||
return sha512.new()
|
||||
}
|
||||
}
|
||||
|
||||
const final_result = '4143e55fcba7e39b20f62a1368e5eb28f64a8859458886117ac66027832e0f9f5263daec688c439d2d0fa07059334668d39e59543039703dbb7e03ec9da7f8d7'
|
||||
|
||||
fn test_crypto_sha512() {
|
||||
assert sha512.sum512('This is a sha512 checksum.'.bytes()).hex() == final_result
|
||||
}
|
||||
|
||||
fn test_crypto_sha512_writer() {
|
||||
mut digest := sha512.new_digest(.sha512)
|
||||
digest.write('This is a'.bytes()) or { assert false }
|
||||
digest.write(' sha512 checksum.'.bytes()) or { assert false }
|
||||
// mut sum := digest.checksum()
|
||||
mut sum := digest.sum([])
|
||||
assert sum.hex() == final_result
|
||||
sum = digest.sum([])
|
||||
assert sum.hex() == final_result
|
||||
}
|
||||
|
||||
fn test_crypto_sha512_writer_reset() {
|
||||
mut digest := sha512.new_digest(.sha512)
|
||||
digest.write('This is a'.bytes()) or { assert false }
|
||||
digest.write(' sha512 checksum.'.bytes()) or { assert false }
|
||||
_ = digest.sum([])
|
||||
digest.reset()
|
||||
digest.write('This is a'.bytes()) or { assert false }
|
||||
digest.write(' sha512 checksum.'.bytes()) or { assert false }
|
||||
sum := digest.sum([])
|
||||
assert sum.hex() == final_result
|
||||
}
|
||||
|
||||
fn test_crypto_sha512_384() {
|
||||
data := 'example bytes'.bytes()
|
||||
sum384 := sha512.sum384(data)
|
||||
expected := '8004e0038985a2d4dc40802b149f02cdd5868eaa58d87fae02f0cce2a3b566a6af63e34b11d5ba88c6035b96e587a6d6'
|
||||
assert sum384.hex() == expected
|
||||
|
||||
mut d := sha512.new384()
|
||||
d.write(data) or { assert false }
|
||||
sum := d.sum([])
|
||||
assert sum.hex() == expected
|
||||
|
||||
d.reset()
|
||||
d.write(data) or { assert false }
|
||||
chksum := d.sum([])
|
||||
assert chksum.hex() == expected
|
||||
}
|
||||
|
||||
fn test_crypto_sha512_224() {
|
||||
data := 'example bytes'.bytes()
|
||||
sum512_224 := sha512.sum512_224(data)
|
||||
expected := '2bcbe17a1c3cb7b2b8b75c3118ed8525b6a4c505f2e59f3dc5dfe462'
|
||||
assert sum512_224.hex() == expected
|
||||
|
||||
mut d := sha512.new512_224()
|
||||
d.write(data) or { assert false }
|
||||
sum := d.sum([])
|
||||
assert sum.hex() == expected
|
||||
|
||||
d.reset()
|
||||
d.write(data) or { assert false }
|
||||
chksum := d.sum([])
|
||||
assert chksum.hex() == expected
|
||||
}
|
||||
|
||||
fn test_crypto_sha512_256() {
|
||||
data := 'example bytes'.bytes()
|
||||
sum512_256 := sha512.sum512_256(data)
|
||||
expected := '984512a8f874623cf1e2d5bd85c7d1240214163db0ebd0919922768f94879563'
|
||||
assert sum512_256.hex() == expected
|
||||
|
||||
mut d := sha512.new512_256()
|
||||
d.write(data) or { assert false }
|
||||
sum := d.sum([])
|
||||
assert sum.hex() == expected
|
||||
|
||||
d.reset()
|
||||
d.write(data) or { assert false }
|
||||
chksum := d.sum([])
|
||||
assert chksum.hex() == expected
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
// Copyright (c) 2019-2024 Alexander Medvednikov. All rights reserved.
|
||||
// Use of this source code is governed by an MIT license
|
||||
// that can be found in the LICENSE file.
|
||||
// SHA512 block step.
|
||||
// This is the generic version with no architecture optimizations.
|
||||
// In its own file so that an architecture
|
||||
// optimized version can be substituted
|
||||
module sha512
|
||||
|
||||
import math.bits
|
||||
|
||||
// vfmt off
|
||||
const _k = [
|
||||
u64(0x428a2f98d728ae22), u64(0x7137449123ef65cd), u64(0xb5c0fbcfec4d3b2f), u64(0xe9b5dba58189dbbc),
|
||||
u64(0x3956c25bf348b538), u64(0x59f111f1b605d019), u64(0x923f82a4af194f9b), u64(0xab1c5ed5da6d8118),
|
||||
u64(0xd807aa98a3030242), u64(0x12835b0145706fbe), u64(0x243185be4ee4b28c), u64(0x550c7dc3d5ffb4e2),
|
||||
u64(0x72be5d74f27b896f), u64(0x80deb1fe3b1696b1), u64(0x9bdc06a725c71235), u64(0xc19bf174cf692694),
|
||||
u64(0xe49b69c19ef14ad2), u64(0xefbe4786384f25e3), u64(0x0fc19dc68b8cd5b5), u64(0x240ca1cc77ac9c65),
|
||||
u64(0x2de92c6f592b0275), u64(0x4a7484aa6ea6e483), u64(0x5cb0a9dcbd41fbd4), u64(0x76f988da831153b5),
|
||||
u64(0x983e5152ee66dfab), u64(0xa831c66d2db43210), u64(0xb00327c898fb213f), u64(0xbf597fc7beef0ee4),
|
||||
u64(0xc6e00bf33da88fc2), u64(0xd5a79147930aa725), u64(0x06ca6351e003826f), u64(0x142929670a0e6e70),
|
||||
u64(0x27b70a8546d22ffc), u64(0x2e1b21385c26c926), u64(0x4d2c6dfc5ac42aed), u64(0x53380d139d95b3df),
|
||||
u64(0x650a73548baf63de), u64(0x766a0abb3c77b2a8), u64(0x81c2c92e47edaee6), u64(0x92722c851482353b),
|
||||
u64(0xa2bfe8a14cf10364), u64(0xa81a664bbc423001), u64(0xc24b8b70d0f89791), u64(0xc76c51a30654be30),
|
||||
u64(0xd192e819d6ef5218), u64(0xd69906245565a910), u64(0xf40e35855771202a), u64(0x106aa07032bbd1b8),
|
||||
u64(0x19a4c116b8d2d0c8), u64(0x1e376c085141ab53), u64(0x2748774cdf8eeb99), u64(0x34b0bcb5e19b48a8),
|
||||
u64(0x391c0cb3c5c95a63), u64(0x4ed8aa4ae3418acb), u64(0x5b9cca4f7763e373), u64(0x682e6ff3d6b2b8a3),
|
||||
u64(0x748f82ee5defb2fc), u64(0x78a5636f43172f60), u64(0x84c87814a1f0ab72), u64(0x8cc702081a6439ec),
|
||||
u64(0x90befffa23631e28), u64(0xa4506cebde82bde9), u64(0xbef9a3f7b2c67915), u64(0xc67178f2e372532b),
|
||||
u64(0xca273eceea26619c), u64(0xd186b8c721c0c207), u64(0xeada7dd6cde0eb1e), u64(0xf57d4f7fee6ed178),
|
||||
u64(0x06f067aa72176fba), u64(0x0a637dc5a2c898a6), u64(0x113f9804bef90dae), u64(0x1b710b35131c471b),
|
||||
u64(0x28db77f523047d84), u64(0x32caab7b40c72493), u64(0x3c9ebe0a15c9bebc), u64(0x431d67c49c100d4c),
|
||||
u64(0x4cc5d4becb3e42b6), u64(0x597f299cfc657e2a), u64(0x5fcb6fab3ad6faec), u64(0x6c44198c4a475817),
|
||||
]
|
||||
// vfmt on
|
||||
|
||||
@[direct_array_access]
|
||||
fn block_generic(mut dig Digest, p_ []u8) {
|
||||
unsafe {
|
||||
mut p := p_
|
||||
mut w := [80]u64{}
|
||||
mut h0 := dig.h[0]
|
||||
mut h1 := dig.h[1]
|
||||
mut h2 := dig.h[2]
|
||||
mut h3 := dig.h[3]
|
||||
mut h4 := dig.h[4]
|
||||
mut h5 := dig.h[5]
|
||||
mut h6 := dig.h[6]
|
||||
mut h7 := dig.h[7]
|
||||
for p.len >= chunk {
|
||||
for i in 0 .. 16 {
|
||||
j := i * 8
|
||||
// vfmt off
|
||||
w[i] = (
|
||||
u64(p[j ]) << 56) |
|
||||
(u64(p[j + 1]) << 48) |
|
||||
(u64(p[j + 2]) << 40) |
|
||||
(u64(p[j + 3]) << 32) |
|
||||
(u64(p[j + 4]) << 24) |
|
||||
(u64(p[j + 5]) << 16) |
|
||||
(u64(p[j + 6]) << 8) |
|
||||
u64(p[j + 7]
|
||||
)
|
||||
// vfmt on
|
||||
}
|
||||
for i := 16; i < 80; i++ {
|
||||
v1 := w[i - 2]
|
||||
// vfmt off
|
||||
t1 := bits.rotate_left_64(v1, -19) ^ bits.rotate_left_64(v1, -61) ^ (v1 >> 6)
|
||||
v2 := w[i - 15]
|
||||
t2 := bits.rotate_left_64(v2, -1) ^ bits.rotate_left_64(v2, -8) ^ (v2 >> 7)
|
||||
// vfmt on
|
||||
w[i] = t1 + w[i - 7] + t2 + w[i - 16]
|
||||
}
|
||||
mut a := h0
|
||||
mut b := h1
|
||||
mut c := h2
|
||||
mut d := h3
|
||||
mut e := h4
|
||||
mut f := h5
|
||||
mut g := h6
|
||||
mut h := h7
|
||||
for i in 0 .. 80 {
|
||||
// vfmt off
|
||||
t1 := h + (bits.rotate_left_64(e, -14) ^ bits.rotate_left_64(e, -18) ^ bits.rotate_left_64(e, -41)) + ((e & f) ^ (~e & g)) + _k[i] + w[i]
|
||||
t2 := (bits.rotate_left_64(a, -28) ^ bits.rotate_left_64(a, -34) ^ bits.rotate_left_64(a, -39)) + ((a & b) ^ (a & c) ^ (b & c))
|
||||
// vfmt on
|
||||
h = g
|
||||
g = f
|
||||
f = e
|
||||
e = d + t1
|
||||
d = c
|
||||
c = b
|
||||
b = a
|
||||
a = t1 + t2
|
||||
}
|
||||
h0 += a
|
||||
h1 += b
|
||||
h2 += c
|
||||
h3 += d
|
||||
h4 += e
|
||||
h5 += f
|
||||
h6 += g
|
||||
h7 += h
|
||||
if chunk >= p.len {
|
||||
p = []
|
||||
} else {
|
||||
p = p[chunk..]
|
||||
}
|
||||
}
|
||||
dig.h[0] = h0
|
||||
dig.h[1] = h1
|
||||
dig.h[2] = h2
|
||||
dig.h[3] = h3
|
||||
dig.h[4] = h4
|
||||
dig.h[5] = h5
|
||||
dig.h[6] = h6
|
||||
dig.h[7] = h7
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user