Create json tests for crypto consensus testing - #416
Conversation
c544ddf to
e9f957b
Compare
jannikluhn
left a comment
There was a problem hiding this comment.
JSON and Go is not fun...
There's lots of panics, but all of them can just be converted to return errs as far as I can tell, didn't point out all of them.
But looks good in general.
| } else { | ||
| f, err := os.OpenFile(args[0], os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o600) | ||
| if err != nil { | ||
| panic(err) |
There was a problem hiding this comment.
I think you can just return the error here, no need to panic.
| "github.com/shutter-network/rolling-shutter/rolling-shutter/medley/testkeygen" | ||
| ) | ||
|
|
||
| func GenerateTestdata() *cobra.Command { |
There was a problem hiding this comment.
| func GenerateTestdata() *cobra.Command { | |
| func generateTestdata() *cobra.Command { |
for consistency with the other crypto commands
| return cmd | ||
| } | ||
|
|
||
| func RunJSONTests() *cobra.Command { |
There was a problem hiding this comment.
| func RunJSONTests() *cobra.Command { | |
| func runJSONTests() *cobra.Command { |
| } | ||
|
|
||
| const ( | ||
| RANDOM = "random" |
There was a problem hiding this comment.
constants should just be camel case, not all caps. Note that the first character being upper or lower case determines if the variable is exported or not.
| RunE: func(cmd *cobra.Command, args []string) error { | ||
| errs := ReadTestcases(filename) | ||
|
|
||
| return errs[0] |
There was a problem hiding this comment.
this would panic if there's no error, no?
There was a problem hiding this comment.
It doesn't - errs is initialized with the length of testcases.
Nevertheless, the intention here was to allow for some kind of error aggregator (i.e. https://github.com/hashicorp/go-multierror), which is not implemented.
| }, | ||
| } | ||
|
|
||
| func CreateJSONTests(enc testEncoder) { |
There was a problem hiding this comment.
this should return an error to avoid panicking
| v int | ||
| } | ||
|
|
||
| func (enc *testEncoder) addTest(tc *testCase) { |
There was a problem hiding this comment.
this method should return an error to avoid panicking
|
|
||
| var buf bytes.Buffer | ||
| if enc.i > 0 { | ||
| buf.WriteString(",\n") |
There was a problem hiding this comment.
as far as I can tell, all the write methods return an error which should be passed through (if err != nil { return err })
| tc.ID = fmt.Sprint(enc.i) | ||
| switch tc.TestType { | ||
| case ENCRYPTION: | ||
| tc.Name = fmt.Sprintf("%s %d", ENCRYPTION, enc.e) |
There was a problem hiding this comment.
maybe Name(e) could be a method in the Test trait, which would be implemented separately for encryption, decryption, and verification tests. Then you wouldn't have to modify the test case here which feels a bit strange.
I used |
b95d153 to
f803038
Compare
|
I still think it would be cleaner to return errors instead of panicking, but in practice the only difference will be less scary error messages, which is not very critical. So I'm ok with keeping the panics. |
fef868a to
962cce4
Compare
This adds the commands
```
rolling-shutter crypto testdata [output_file]
rolling-shutter crypto jsontests -f input_file
```
that will generate or execute tests for the methods
```
shcrypto.Encrypt
shcrypto.EncryptedMessage.Decrypt
shcrypto.VerifyEpochSecret
```
The output from `testdata` is a json file with test specifications
similar to
```
[
{
"name": "decryption 2",
"id": "3",
"description": "A 1 byte message.",
"type": "decryption",
"test_data": {
"cipher": "0x20b1bd1817ead1ccf50b04ef9b77fac4c6d9b60b63436b54483f642128df31fb204d9460355ab724eb255fba7459b170306f42fd2dd7d5acc43b9c96287602760ed9138b682a195489749669573a8492b615e9c1b5185fc272a1268fad8c035e03162b507b968a34d211f168e5c1e9e3df975974e242d36d6be99ba88dcb0944fdcb3887b2fda72ce25f0dfcd8ef6d7de49a1c4d66de07ed591aa84caf406c42c1c88417d5cee83b3ef00da832d3ed35017ddc602c3a24c7deac3af725f27266",
"epoch_secret_key": "0x144e428af1602d58bfb9a12bb31597f45c6c2c9d227b7a6d3f35f37d333548eb0888206e52d7cb2c6b1de7770fc2ce475a08e6cf4e95a608ec5bd93efafed6f3",
"expected": "0x11"
}
},
...
]
```
There are three test types corresponding to the crypto methods from
above: `decryption, encryption, verification`.
For `decryption` and `encryption` tests, an `expected` value of `0x`
means that the result should be empty (i.e. a failure,
with the exception of the special case of an empty encrypted message).
For verification tests the `expected` value is a boolean `true/false`.
962cce4 to
4f6c49d
Compare
Implements shutter-network/shutter#105
This adds the commands
that will generate or execute tests for the methods
Example Input/Output:
Generated testdata (click to expand)
```json [ { "name": "encryption 1", "id": "0", "description": "A zero byte message.", "type": "encryption", "test_data": { "message": "0x", "eon_public_key": "0x21cfff996dbe9de668d88167c9e420db5c040324a1da4c26db5b6e128e6930e60986a6b1f5143b06101f6f67a8e21d116a23732ecb7a1036db28a672304f0d9013f06faeff051511f02a28cd5f7e9496e43cc5edd36b281e4682778cd97aa2d91712b4263002e861f5cc0635aac8e6c71f4e9c82e4d59fb4f84c1445e2097acd", "epoch_id": "0x782ea3d49836e2320e5021bbce19bbaf918b5cc5d2c1bb04f31ca4ecf16535c8", "sigma": "0x9f4470756792f15072d3f6b934e4e814e11f6d10594db74fedf2461a9bdf21c1", "expected": "0x0e457f3ac57fb2bfde1fa5e85ff91419669464ed5a7bbbdeba649da363748c39140c69722afffd983dd26f7712d4bace66bc9c4211a359c82a6922d2c363d5460aec0123756a12c52c8a16f70378925c5b0fa8115e7159a53caa1b8a973b78220ce4d58b799084b4b0aabb17fcbcaa20ca9dc2b2821edb30cc66a8f6d307730bc98fcbfb6181f80349da438c4b7dbd89630f003b57dc6000bcea654764d0496c4ba5660ee4db63c88ace60ec58ddeec1b2e35a2758b084f6f1878f8641950c59" } }, { "name": "decryption 1", "id": "1", "description": "A zero byte message.", "type": "decryption", "test_data": { "cipher": "0x0e457f3ac57fb2bfde1fa5e85ff91419669464ed5a7bbbdeba649da363748c39140c69722afffd983dd26f7712d4bace66bc9c4211a359c82a6922d2c363d5460aec0123756a12c52c8a16f70378925c5b0fa8115e7159a53caa1b8a973b78220ce4d58b799084b4b0aabb17fcbcaa20ca9dc2b2821edb30cc66a8f6d307730bc98fcbfb6181f80349da438c4b7dbd89630f003b57dc6000bcea654764d0496c4ba5660ee4db63c88ace60ec58ddeec1b2e35a2758b084f6f1878f8641950c59", "epoch_secret_key": "0x09cc2ad1eb1ddabfde0cde187dcd082538955b5120fafb29bd98aabcb58dd1c718ef4a8f2a541181cd9423909508fc28c4a54305d5f085daca20eaa4791dbcf4", "expected": "0x" } }, { "name": "encryption 2", "id": "2", "description": "A 1 byte message.", "type": "encryption", "test_data": { "message": "0x9d", "eon_public_key": "0x1ceac31a2bce8a1f4207c30919b004450a800eda2e00614b447b89622ebc4dbc01e2f437329c6d4bd671b7a4556ed742bbbb8608eb716347cb8c8c79c03431e606e9a51f1d359220d0500bac0f4950d86cd38d3254b8c168aef2f07439a1fd882e7e0f26c4b6d94a7cca724b1daa76d63e951b168376bdaff033f71e3a2aca5a", "epoch_id": "0xe3c241d7b379ebeaebc530b23a421e86fbbf0b6537f297ad290c9831a1fc0f61", "sigma": "0xd66aada74db18e9d889bdf1ddeeb09667722464e244cbc34b79fba97375b170e", "expected": "0x14246f911d5e6783000a80d1c3542bf15ef7fbe7c4a990b1e2605a99c6108b8b1600f115caba5b24d4344f422fd74fc99bf25d03bb0712b1f0b053f35957c0bb176d56811894256853cb63ac2583c472f705c274f8c17f05ce74221ee7e98bc61524b158a110e9955a1ec2925e97433de4578ef48b8624fcf60a97f329e67f50c0cd16b2970966a3605eb7141e63ae578246b97be6811bc4dd294487f1e504cedabd72abd82e79adeb856d25b7d399caaa9f79e9303fa57394833531fc68ba03" } }, { "name": "decryption 2", "id": "3", "description": "A 1 byte message.", "type": "decryption", "test_data": { "cipher": "0x14246f911d5e6783000a80d1c3542bf15ef7fbe7c4a990b1e2605a99c6108b8b1600f115caba5b24d4344f422fd74fc99bf25d03bb0712b1f0b053f35957c0bb176d56811894256853cb63ac2583c472f705c274f8c17f05ce74221ee7e98bc61524b158a110e9955a1ec2925e97433de4578ef48b8624fcf60a97f329e67f50c0cd16b2970966a3605eb7141e63ae578246b97be6811bc4dd294487f1e504cedabd72abd82e79adeb856d25b7d399caaa9f79e9303fa57394833531fc68ba03", "epoch_secret_key": "0x1eb69ecf05b8c7af4400ee63b9dfdba142900b1770e92ef6b1bcd69af4f9d8d22f177efeb71cbfa7ab07ad919c7aba3ef7ea8fc98f04568072e70b9961e087e6", "expected": "0x9d" } }, { "name": "encryption 3", "id": "4", "description": "A 31 byte message.", "type": "encryption", "test_data": { "message": "0x501ec488fa71bdef02ad9b4032348aaaa9c2ae0bc86d993520c76f41c3bc6d", "eon_public_key": "0x27b7eb3acbd7b1850e84cb8d78889e25912e6834e69b63b9d22f6ff32a5a9db72ef51693a5f20b7aa5b9c66b89e004cdcef0e030ac7c74de562e2dbb5446f30718eff0726bdbc478bcc1248e338a25964c70c154658630631a05ae1472a94a3c1f84490cf61ab730101049d57be81a576c8132adeee09780c5f926f327f4849e", "epoch_id": "0xb6e43730e358f902dd31486dc0427d2402ef5acc02309072a8a4f47d8bf5fdd8", "sigma": "0x1ab06973d0576cb3e434fdea3512d35c176c80c2e21f83c917c142545aad6098", "expected": "0x1c51795b51d3f2312ecfb899bd77bc78a454005611b2b65e3be6d9a0f32525fc2d136d5517ef9b20a417d5754d186462c73a3950af31732a6cee966f82c3d422116c20cbb8bb1e0696f409a5f98b18aa03f9dc95ddc8b7b40c87cfcce0ba39571c2787c423a67fd1c33cc13e17490b4efd1f2152fb7a5e7e3bb8069ced3247d2fc304d5a1b6670c79bed9166b0c31120517a6ff194c473bd2fee5905d7dd17bd37cc950fe6006ff645003021aa763fae765c8463e221216aa439879dc49ceb73" } }, { "name": "decryption 3", "id": "5", "description": "A 31 byte message.", "type": "decryption", "test_data": { "cipher": "0x1c51795b51d3f2312ecfb899bd77bc78a454005611b2b65e3be6d9a0f32525fc2d136d5517ef9b20a417d5754d186462c73a3950af31732a6cee966f82c3d422116c20cbb8bb1e0696f409a5f98b18aa03f9dc95ddc8b7b40c87cfcce0ba39571c2787c423a67fd1c33cc13e17490b4efd1f2152fb7a5e7e3bb8069ced3247d2fc304d5a1b6670c79bed9166b0c31120517a6ff194c473bd2fee5905d7dd17bd37cc950fe6006ff645003021aa763fae765c8463e221216aa439879dc49ceb73", "epoch_secret_key": "0x2352f2cb656448e1d09dce2383b4b0c1f44c8306d34b4f037f6ee0c4bf3550b40ab9fa24fcb00623827ea7e9322f1c2ee9c203e467007111277dbed3fe914aec", "expected": "0x501ec488fa71bdef02ad9b4032348aaaa9c2ae0bc86d993520c76f41c3bc6d" } }, { "name": "encryption 4", "id": "6", "description": "A 32 byte message.", "type": "encryption", "test_data": { "message": "0x9380073b6a4fd01e8d40c4293d8d7d58bdb028975965b4ae51f9a70ce1c0bf3c", "eon_public_key": "0x2c291b23abcacd52c5b9d51fc50bc0149924e79105c960954fd1343844aa46171ed88b7bf430ffa500e3a2d3ed1a139d459f6e3bd5acfb0b8ffe94933cdd9b9f21344ba43f3bd7c350ebed3965b483f3be8f3963bb5923c57e42ba16f574f90c1ab708ae01a1b55326390b7a08bd72767ec4471e81b7541f6bbdc6611d680060", "epoch_id": "0x3ed56d39520e14df8b9e93b2fda7bfe7b1fe8dda649e78f64438684e3dc91bee", "sigma": "0x68536b8022a28f3c3830f233bf8203106e9d311b92eded387716a513b726a8b9", "expected": "0x228b78aed386ee3f7af230e5a938cfd0ce25648d9fb15e13bc7e079c3350c2b704231efcaa54934d3f785f30895608fe5e0e369ec0bd9123f5bcfb8b9a7478c91ffbeb465549cf317ac7e5bc6798f0d7d82090e73e113ae20dc8d84a9ed60b7e1638418f4ce9e1b51201fac31e1386e26f23a1e4cc474c3e35d5d204ae5c3e215eb82b83a7e98a0ccf8ce5d7bdc8e330ec271608f60eeba490edd6154524f9ce8f59f71f46f91ac3e7fb0b5206b195307b537d44b900fda996def9ae9d4c873e2e76b19fe1476bb2d3b1b7f3c268799d982bd77a1e6b55419384774e5defbe77" } }, { "name": "decryption 4", "id": "7", "description": "A 32 byte message.", "type": "decryption", "test_data": { "cipher": "0x228b78aed386ee3f7af230e5a938cfd0ce25648d9fb15e13bc7e079c3350c2b704231efcaa54934d3f785f30895608fe5e0e369ec0bd9123f5bcfb8b9a7478c91ffbeb465549cf317ac7e5bc6798f0d7d82090e73e113ae20dc8d84a9ed60b7e1638418f4ce9e1b51201fac31e1386e26f23a1e4cc474c3e35d5d204ae5c3e215eb82b83a7e98a0ccf8ce5d7bdc8e330ec271608f60eeba490edd6154524f9ce8f59f71f46f91ac3e7fb0b5206b195307b537d44b900fda996def9ae9d4c873e2e76b19fe1476bb2d3b1b7f3c268799d982bd77a1e6b55419384774e5defbe77", "epoch_secret_key": "0x1f7ce1bf64dd9331adac9c7aec1d73ccdad5cd2dc3a75e86ba85ed9249a562c72f1d614ec73629829cf1c4214674b3a3695942d8de4dcdc4654034ce07f58c0b", "expected": "0x9380073b6a4fd01e8d40c4293d8d7d58bdb028975965b4ae51f9a70ce1c0bf3c" } }, { "name": "encryption 5", "id": "8", "description": "A 33 byte message.", "type": "encryption", "test_data": { "message": "0x4212f3cd92445a424663275d7816d574b16275a9a4a961842f9b3efcb6f08062f3", "eon_public_key": "0x076662da6f6b87e4dcd6a013c2955d35ea7073fceb92d6e97377e35aed1c864712fc2a47d1686c135afa46eca1c5eb3d5f83568beb5a726992e71115f1153356284e9733ad5761b28b791ec750918ca1dd78f69f3ce084c13a4e85b97142107023de3c6a9626992c06f8eff9219a3ffbc93b49b1f4cca260b112518027845a07", "epoch_id": "0x7fa89c8eb7035344757c059635033b3cbc862357a0b6e9e6c06a21c17ba467b4", "sigma": "0x698199c3a8154eec8fdda72ca199b763cf4ea6e1a8c288a8ef6a2f021d10aa6c", "expected": "0x076a770fac44f461d5999583e4f431ba852027e1acb05d542123c056bcfb2bd6264d839cc56ffe6cb76bc4d43e36f7aea24d005f3e391c711476ccbc85caede529c6c7420efe7640f90ac403ff260b5aaa96ea4471dff5f6ba47d0791c3db63003000f6e814927d483281a55a3ecbea888548d6a259cbf39917fdb9e888ddcf6a2db45e5f3129ad9af34b335d5b18a570f85f01b71a8da45d1fcd4f82004ccb0a15dc27a96ab0cd7d421222561b79137d7c3a3ea5fcdb34e4f50ab799dfd8e929784fea2aea3e135e502ceba27d0886e87335b568a98c763b1ffd23c076fd584" } }, { "name": "decryption 5", "id": "9", "description": "A 33 byte message.", "type": "decryption", "test_data": { "cipher": "0x076a770fac44f461d5999583e4f431ba852027e1acb05d542123c056bcfb2bd6264d839cc56ffe6cb76bc4d43e36f7aea24d005f3e391c711476ccbc85caede529c6c7420efe7640f90ac403ff260b5aaa96ea4471dff5f6ba47d0791c3db63003000f6e814927d483281a55a3ecbea888548d6a259cbf39917fdb9e888ddcf6a2db45e5f3129ad9af34b335d5b18a570f85f01b71a8da45d1fcd4f82004ccb0a15dc27a96ab0cd7d421222561b79137d7c3a3ea5fcdb34e4f50ab799dfd8e929784fea2aea3e135e502ceba27d0886e87335b568a98c763b1ffd23c076fd584", "epoch_secret_key": "0x0b11eb45351992abcda85f8ee8d4543e52d86aa5ca9cf77864ac877b6b74158412e6a81a219e0029e2a6667bb2d4f5935c59a68ada3dec50cec989679840562b", "expected": "0x4212f3cd92445a424663275d7816d574b16275a9a4a961842f9b3efcb6f08062f3" } }, { "name": "encryption 6", "id": "10", "description": "A 319 byte message.", "type": "encryption", "test_data": { "message": "0x1bb90e4467084eb6fa348d097392cba7853adc34417ea754733398997624f8a7cdcfc839c4992bada71c07f10f1a29fc55de7405f32fb135ebb61046410101a528c940265a001c457b199e0c5999af2533f9b9e113a360653e47ccc4b15ce5e291d1ac21132125896ded340a48e0db5937311a20a9fba7094188aae852c1f396317a65e04054199e8c3bcc21c9b486eef6fab35675aaf7a56220da68ff1bb6309e0b6c65019924a6b951ac4bd324b1ba234bd8c4beb7fa14abddbca8e476679c681103f8ca5a378134ff1927e473818a62c10f6452fae1b2163200d5eaae0d2549ffed9c5d7399aafda310f76f0babdbb0585ddaeb0269220ba81f60444146a4f47d02f3c872f76b22516dae8d80fd75cc991a054f4a010133d69fd2a84a69c0f58121cc6019aaeef64ed2890f2ecd554bb55913632ad87ad3cae4c8a3ffbc", "eon_public_key": "0x2b7e87014016f5a4d8903bbd370c566e96e687cdc1fea76820620da7ee0cbe2915cc2e11e9417d3fb3bf11847cb40c01470a130ae1ee53bf3b85b651120d75a605b7e969de4bf5f2c5514f6f5b77e8d0cd5fe007329d1676d2f5e9f129cfbf032b43786c38fc76e2577d9d8c15049f5967c14e262232a08f0163cd24b848a551", "epoch_id": "0x61868112f60454bf9d4a0ecb2f3cf993c64b1b79c8db9d39a8eb765cd7cc207e", "sigma": "0x6aad9245e37a6fb6eff793bda0b80cbe2d7823341f8f5f0a020bf1877a90ec3c", "expected": "0x27bc23b85ae58121b5ccca3c256d0e557fb5d7377dd4621bdc0a79e97ad88d2c1df78ae0db6a8c6c96b5f613ef55730ab1bf1ca03d206dad12bd468415a141e82c7bf16125739cf140cee681cd52f3be25d17038341316ee48f01d15dc80888e0a8c6a8dd916a8a6a7dad640897d0c80b560e3a61a1ac2c0fdc2e9eae054941aeb52a26e0a55b2bac39cf7309e5d4bd45bde3b9a3bf169cf5ced74ee0adc7de6310a364e8a88090e82e36db9ba0be99c846a20560c09e3b7818f86904c236c0e83e8b189b02212d4723f9f553bcd1e98dde0de1d01edb5a9607660e67a03ee70308da037b1d40130789e31204e34c1ed55d1901a6b8ca15fff2fff747cb3d57c905f6ea564b8ad0ef8e40e1d1bd804a14a46db2fe844ebcb9c43eb7ee75937f0ae5d6e589a01a628c7a4eeb468a0170506226fa324521b838c3f4bb94cc41da8e237edb3644a867301131374e7b36a67369758de25567db727f252db34785cee906a7864687900b7fce111c8842b4dbf90670c7c949a9cf298ce42badf44e0a664cc9262d0bd8ade5b2703e466c1fc298650bd0c67bfe0675ab39096509ff8fe81f727c64a71e31f5f6daa9a49f8c37a5ffdc4f9a688d933dfb535886ca2a580b4a270bab4cc11fe2bcddc562055783c2ad59340c84e3867dfe03c94cb4c3c26" } }, { "name": "decryption 6", "id": "11", "description": "A 319 byte message.", "type": "decryption", "test_data": { "cipher": "0x27bc23b85ae58121b5ccca3c256d0e557fb5d7377dd4621bdc0a79e97ad88d2c1df78ae0db6a8c6c96b5f613ef55730ab1bf1ca03d206dad12bd468415a141e82c7bf16125739cf140cee681cd52f3be25d17038341316ee48f01d15dc80888e0a8c6a8dd916a8a6a7dad640897d0c80b560e3a61a1ac2c0fdc2e9eae054941aeb52a26e0a55b2bac39cf7309e5d4bd45bde3b9a3bf169cf5ced74ee0adc7de6310a364e8a88090e82e36db9ba0be99c846a20560c09e3b7818f86904c236c0e83e8b189b02212d4723f9f553bcd1e98dde0de1d01edb5a9607660e67a03ee70308da037b1d40130789e31204e34c1ed55d1901a6b8ca15fff2fff747cb3d57c905f6ea564b8ad0ef8e40e1d1bd804a14a46db2fe844ebcb9c43eb7ee75937f0ae5d6e589a01a628c7a4eeb468a0170506226fa324521b838c3f4bb94cc41da8e237edb3644a867301131374e7b36a67369758de25567db727f252db34785cee906a7864687900b7fce111c8842b4dbf90670c7c949a9cf298ce42badf44e0a664cc9262d0bd8ade5b2703e466c1fc298650bd0c67bfe0675ab39096509ff8fe81f727c64a71e31f5f6daa9a49f8c37a5ffdc4f9a688d933dfb535886ca2a580b4a270bab4cc11fe2bcddc562055783c2ad59340c84e3867dfe03c94cb4c3c26", "epoch_secret_key": "0x19571483ff0b5f76177869d6958f404b2e4655dd0c31c76e8f20cd3fb9aad420014d0d60454462687d15b6d6c0dcbf41a0f3994907fb7e0f7c8eedd132233a00", "expected": "0x1bb90e4467084eb6fa348d097392cba7853adc34417ea754733398997624f8a7cdcfc839c4992bada71c07f10f1a29fc55de7405f32fb135ebb61046410101a528c940265a001c457b199e0c5999af2533f9b9e113a360653e47ccc4b15ce5e291d1ac21132125896ded340a48e0db5937311a20a9fba7094188aae852c1f396317a65e04054199e8c3bcc21c9b486eef6fab35675aaf7a56220da68ff1bb6309e0b6c65019924a6b951ac4bd324b1ba234bd8c4beb7fa14abddbca8e476679c681103f8ca5a378134ff1927e473818a62c10f6452fae1b2163200d5eaae0d2549ffed9c5d7399aafda310f76f0babdbb0585ddaeb0269220ba81f60444146a4f47d02f3c872f76b22516dae8d80fd75cc991a054f4a010133d69fd2a84a69c0f58121cc6019aaeef64ed2890f2ecd554bb55913632ad87ad3cae4c8a3ffbc" } }, { "name": "encryption 7", "id": "12", "description": "A 320 byte message.", "type": "encryption", "test_data": { "message": "0x383d45edab8c9befec82a572936d23ccd147ea4fd4baeec49a2955ac11696bdc10ee58788d7d8bdd37a0bff7b052c056f3b2ad041cd7cc00647eef04c147dda87fd3d0af20348bdf575b70e187f292fa14967e908c77a0f612454b6ec85712f9b45e7c7dcf71242205933265c2e792dda99617cc8d407766d67d0b6bc494f97bc9155dd6d1cb6ca80947781007cb0b9c7cb03efd84ab8ac85b414f9f0c980338636d1837d3d73a280350e7d6a192604e82b726504f441c448e31a44597883fbf86daef84ec084ee738eb0445c845551d5919317f7645743936cb782eabd0b75a281876d75832f8c0c01339e5768ddbb53a2273e96390c7e1afb519f8c7e3168efbac7c2ec2f4579bf3501d033ae5b735ecf637d9fac8c3ac3868fef8b9efa650bcc6e6fd17c28ed8275369257c6f1715ddecd4095be2019febd4ca18fb6f0050", "eon_public_key": "0x2896f91bb493c928d3a8a2092d0680d7319451f23fe63afa4fd0347a4e388049138316bae206a7b3b0957bf58a2be0b6591c8b0c0b826858200b03f7b5fb1efe22c4e3ffd5c9728c0ae8f8183bf16773d7418ce8e560161cc5571b2424f2332429445824cd9169fdbf61016e3fbe100348cb73dede57f4ef1e38a8db1c1a4126", "epoch_id": "0x6e873cc5f64d88d918c06fb3794218c4bb0525cbff7213c823069f969162a599", "sigma": "0x71f9f74855b385dcade03190c69659d68a18e5e562c40a2311311fd32a661315", "expected": "0x22db73fa73584079d184356c44befae56084054ae152bb87e5a80897f3238dd01f7fed81742f6af3d6dd9ff32de4364909a623c5c5000c4186e024f9cde6b18d25711e408f644a750e4aef2c63bd969f41043edf414236430411a31ef212b4f213ac5c62f8a8b76a28e2935256ff54239de0d1022303a8ee2ee73f53753e421cb411657ca32a62ab759cb9b22780707ae23444b40c24f23619f2ce3b491060a8ecd97d93f73f651df2f9e83f311f4cbc47ae2c67c55d26cb837c07c4af9eda076fdae3292148790d94211e6cb83ce3d33f475ee0d79e0bca87d0a1e77375892ed08fc19db6916b19b0d6331faebad5e387912f6459ffa19f3b0c7dc37fc07895cecead69f76ffa4e897ec32f6549f5e3375685c0895c4d5931e7cb23145f61638e83b09d497641faaf65a13ccf4c909adf0d4545f8b503394d0e1a1ad41119f54c2b3e62b7d22854f02c9e4b336859f7abeb2d94c74e7d8508e7cd0d92f2d808ba430fd5d85335cb0d030b25eab07a37fb2f9d7d72597849d5b3c2b6b7692998dc59dbdc7f54fed8385988fa18789956ec449f0017255fb10ff294ab62d83a68ab4748e54cf6ff91c3052382ea2edab895f363b93e8032e1754d20774d2a311a6f6d6c7e7a6ff52ad1ac1eb579fba28d8fd1d77a68b1d58080eb81ab2ef67412ad16a5bef354f0c5a2b519242844151996b9236352ad02729de2176eb5ef3eaa" } }, { "name": "decryption 7", "id": "13", "description": "A 320 byte message.", "type": "decryption", "test_data": { "cipher": "0x22db73fa73584079d184356c44befae56084054ae152bb87e5a80897f3238dd01f7fed81742f6af3d6dd9ff32de4364909a623c5c5000c4186e024f9cde6b18d25711e408f644a750e4aef2c63bd969f41043edf414236430411a31ef212b4f213ac5c62f8a8b76a28e2935256ff54239de0d1022303a8ee2ee73f53753e421cb411657ca32a62ab759cb9b22780707ae23444b40c24f23619f2ce3b491060a8ecd97d93f73f651df2f9e83f311f4cbc47ae2c67c55d26cb837c07c4af9eda076fdae3292148790d94211e6cb83ce3d33f475ee0d79e0bca87d0a1e77375892ed08fc19db6916b19b0d6331faebad5e387912f6459ffa19f3b0c7dc37fc07895cecead69f76ffa4e897ec32f6549f5e3375685c0895c4d5931e7cb23145f61638e83b09d497641faaf65a13ccf4c909adf0d4545f8b503394d0e1a1ad41119f54c2b3e62b7d22854f02c9e4b336859f7abeb2d94c74e7d8508e7cd0d92f2d808ba430fd5d85335cb0d030b25eab07a37fb2f9d7d72597849d5b3c2b6b7692998dc59dbdc7f54fed8385988fa18789956ec449f0017255fb10ff294ab62d83a68ab4748e54cf6ff91c3052382ea2edab895f363b93e8032e1754d20774d2a311a6f6d6c7e7a6ff52ad1ac1eb579fba28d8fd1d77a68b1d58080eb81ab2ef67412ad16a5bef354f0c5a2b519242844151996b9236352ad02729de2176eb5ef3eaa", "epoch_secret_key": "0x0ab2aadaa3eeff3c8d2d7aa91c27b23fdd85b53ef5a7023da235dfb17473ab702dfcc0716f6af75506c3964c4559643bb5deea1af39a152f740c9cc829f079a7", "expected": "0x383d45edab8c9befec82a572936d23ccd147ea4fd4baeec49a2955ac11696bdc10ee58788d7d8bdd37a0bff7b052c056f3b2ad041cd7cc00647eef04c147dda87fd3d0af20348bdf575b70e187f292fa14967e908c77a0f612454b6ec85712f9b45e7c7dcf71242205933265c2e792dda99617cc8d407766d67d0b6bc494f97bc9155dd6d1cb6ca80947781007cb0b9c7cb03efd84ab8ac85b414f9f0c980338636d1837d3d73a280350e7d6a192604e82b726504f441c448e31a44597883fbf86daef84ec084ee738eb0445c845551d5919317f7645743936cb782eabd0b75a281876d75832f8c0c01339e5768ddbb53a2273e96390c7e1afb519f8c7e3168efbac7c2ec2f4579bf3501d033ae5b735ecf637d9fac8c3ac3868fef8b9efa650bcc6e6fd17c28ed8275369257c6f1715ddecd4095be2019febd4ca18fb6f0050" } }, { "name": "encryption 8", "id": "14", "description": "A 321 byte message.", "type": "encryption", "test_data": { "message": "0x54ace039654f716bc09912b5660a63648f9400e2b165e26714c195fd740dff5af3b1831df99ed04921f6dff41b6aa71e1bdea45ca72fffbeed4424b8c41e5f525b90a5ed061b96c512df78a381970beafc2063830b13736125ba979dba41f147841f612d871d5f406caecd54fb7b2176745b9d44d71f0cd98869b02c394b2acd616dbd7c06c06819be15b69d40aeb93b879503b9e41e707b93733ae36c9a3d5ab2bcdbd1125ca7c87cbdce2028cfa42cdc2117a55a27944430ad05879ec7fdd7c79244532632d9f3e5e2204b9930a51d95251db3cc1fb4ae82a7d1c0a550fa1b541bca6762d07c587781db12c4b6fc904d3c764584b27294eb5b8de88ee8de6b6183f3432741f26c68d3e773f571b76aa42ee5c7867c07f1b248caa51b89406c31eb2473eced6a4a759198319f2dc59e6b2a1bffb95bc2d717e3ac94d738a05f6f", "eon_public_key": "0x21fa1c301e6f736775d5aabfc7240073bf71ae72c7d0b6766c734be9e9df35252ff307a3e2cc7aeef964876904c89353fa829b54eedf46530c3b40713bd7bb9812137c67c130d887ace762386bcb8a6073a4f82f5f0800acc51aea283bafd0f41535befd1547abc9d7d29725b3081b04edfa721488a4dcc4648bc7c30efba5ff", "epoch_id": "0xcfb39b5cf4af554d20e4dd49f5e78a9023f8f0a2d7cc6eed9fbaa47a5b02838f", "sigma": "0x09d073e3ef705fb69ac2d552559528e9da2aed1c9c57327e77c78c029bf56660", "expected": "0x0ba11977dd2c2bf8b099e914a10afc1106c444c26cff8b3041add40725b045b52fb103bb939970c69f111fcd9bc5cf131f227a53f003b5802fde1f8c95ba96eb06337e6ca9274fd1631aca270f1c623b7247f54870fa7f56115d4bb62245867b0476f9f7e4743ee4a6bae26598bda64d3e2db9e74aaeb585f887336a16718cf73ef2604eb5b4330d91e33afb385c79ccd4310dba37037b380890ba349fd4aeb384e0412d4780714ecaf08883bae4a8fece613b5946142ea29890fb03151e2d105ab52e829e7c8e4d732016b964222fb2e33b3121ecc623fcd902c017981c4beeadc81e4510f64952176d9bbcf97a76b55e28b5b093bc3f85db6ed2a804ce8ecfbe35b99b38d07557059f76addf8f201010ba65575408735caa93b1bbbc99454659064a97db7391a3e9c0a62ed441053fe9c974719c37d38abeabc7128fcf90f04ab14608fd009b33e0a808f9c82e4ef39afc2ac6a60617aa734045a0d02f782b5e2fb26ce2883d439533961c6ea9029baddbb0f8c17cd68dfe35e352653ea09a40a0d4fcfa65c3eede46e3bd14b9d159cb1c73089b979b41d2afbbe32a326c2d4f461e1747d585bca4ffc4c1cfaef4e5314e6f6ba309b4ce178980ec27aa9e5483fcce6a714b9a28c29e934cdef9f4f9c5e895b1963f15393f56cfd3b3f5aae60020c8363466cd94fa564008add8441bfd87285a54a7196abb02c2423ace4068" } }, { "name": "decryption 8", "id": "15", "description": "A 321 byte message.", "type": "decryption", "test_data": { "cipher": "0x0ba11977dd2c2bf8b099e914a10afc1106c444c26cff8b3041add40725b045b52fb103bb939970c69f111fcd9bc5cf131f227a53f003b5802fde1f8c95ba96eb06337e6ca9274fd1631aca270f1c623b7247f54870fa7f56115d4bb62245867b0476f9f7e4743ee4a6bae26598bda64d3e2db9e74aaeb585f887336a16718cf73ef2604eb5b4330d91e33afb385c79ccd4310dba37037b380890ba349fd4aeb384e0412d4780714ecaf08883bae4a8fece613b5946142ea29890fb03151e2d105ab52e829e7c8e4d732016b964222fb2e33b3121ecc623fcd902c017981c4beeadc81e4510f64952176d9bbcf97a76b55e28b5b093bc3f85db6ed2a804ce8ecfbe35b99b38d07557059f76addf8f201010ba65575408735caa93b1bbbc99454659064a97db7391a3e9c0a62ed441053fe9c974719c37d38abeabc7128fcf90f04ab14608fd009b33e0a808f9c82e4ef39afc2ac6a60617aa734045a0d02f782b5e2fb26ce2883d439533961c6ea9029baddbb0f8c17cd68dfe35e352653ea09a40a0d4fcfa65c3eede46e3bd14b9d159cb1c73089b979b41d2afbbe32a326c2d4f461e1747d585bca4ffc4c1cfaef4e5314e6f6ba309b4ce178980ec27aa9e5483fcce6a714b9a28c29e934cdef9f4f9c5e895b1963f15393f56cfd3b3f5aae60020c8363466cd94fa564008add8441bfd87285a54a7196abb02c2423ace4068", "epoch_secret_key": "0x086335bb0354449fb059dc7c051e3e9f6c4e71ae197fe27bafd7b15c3e9ce10923104dcd30a71595350551d61e7cd717f752b5c7a9259dbd3f35e9ab70d6db05", "expected": "0x54ace039654f716bc09912b5660a63648f9400e2b165e26714c195fd740dff5af3b1831df99ed04921f6dff41b6aa71e1bdea45ca72fffbeed4424b8c41e5f525b90a5ed061b96c512df78a381970beafc2063830b13736125ba979dba41f147841f612d871d5f406caecd54fb7b2176745b9d44d71f0cd98869b02c394b2acd616dbd7c06c06819be15b69d40aeb93b879503b9e41e707b93733ae36c9a3d5ab2bcdbd1125ca7c87cbdce2028cfa42cdc2117a55a27944430ad05879ec7fdd7c79244532632d9f3e5e2204b9930a51d95251db3cc1fb4ae82a7d1c0a550fa1b541bca6762d07c587781db12c4b6fc904d3c764584b27294eb5b8de88ee8de6b6183f3432741f26c68d3e773f571b76aa42ee5c7867c07f1b248caa51b89406c31eb2473eced6a4a759198319f2dc59e6b2a1bffb95bc2d717e3ac94d738a05f6f" } }, { "name": "encryption 9", "id": "16", "description": "The message 'A message'", "type": "encryption", "test_data": { "message": "0x41206d657373616765", "eon_public_key": "0x2fdd0533e962db963dfad19fb76960fe40445b349623bd0a49dd3c15eda77027138a625558a7c5138398a2d37b5805a622f8f7dd1e3ac85a5a773a3fd4c01a7429c515980405c3a5393b1488c422852d01e234c053a9eb43a6356a46a0185a742d2b503f6acb0981277a75b1a434ba60192b81c91f5e0b162a42676564ff89e6", "epoch_id": "0xd46182d474c54e0ff4398168a9cfc8a0405a36763ad73f64aee4374473045df0", "sigma": "0x881db97b104f8fd2d66359c6bafae7d6962e8c17275d2968d4b9352bf2f78566", "expected": "0x2935354b3e2ec30436afbb3291d6d7203a8d2471f87195431b6cea978359e4ec269df2a0e074de761105bf9290864935940ee47564b8e9989ed133a9eada8b790f8d7e6c622f1eb329c5135c78ffdad9544205e1bf2f0848ef35d6e8c5a5bad725133356bf9cf466023c565b67c2e8b905c0d0178ea40808115c2eeb93c9cbfc092d03ef39e69089924f57f70dabc65a6f5b29b73df6625824690c4aa8e837b11904ff326ed1612fe77727d83adc7d8f9a13b6d1152fbf64428b9f7fa278f7ef" } }, { "name": "decryption 9", "id": "17", "description": "The message 'A message'", "type": "decryption", "test_data": { "cipher": "0x2935354b3e2ec30436afbb3291d6d7203a8d2471f87195431b6cea978359e4ec269df2a0e074de761105bf9290864935940ee47564b8e9989ed133a9eada8b790f8d7e6c622f1eb329c5135c78ffdad9544205e1bf2f0848ef35d6e8c5a5bad725133356bf9cf466023c565b67c2e8b905c0d0178ea40808115c2eeb93c9cbfc092d03ef39e69089924f57f70dabc65a6f5b29b73df6625824690c4aa8e837b11904ff326ed1612fe77727d83adc7d8f9a13b6d1152fbf64428b9f7fa278f7ef", "epoch_secret_key": "0x0e87ad4cf733c442c9edb95bc7edb10a52003bdc54e94e35080d2a2dceb35c900d5bcddeb3abfcfc371dc402fdbd8e97339efb1308a4ae2363a0e6a8ac48bc11", "expected": "0x41206d657373616765" } }, { "name": "verification 1", "id": "18", "description": "Verification of a random 32 byte epochID", "type": "verification", "test_data": { "epoch_secret_key": "0x2f9bb0d8fbb880c25de2c4403bb6d2f93ce8230ce674e6c0493c8d7d4edf7bd51857f61b9c65b2a6d25dff8ab2b49502b97120a501e36c05a389329f431e3392", "eon_public_key": "0x05875055f09c3e7b013860a3d902d0df498321e3c68407029a4ff77e6ff6e0a0089aba691059433c2187397c437689c95f8717a5621ec3eefd3d02a3a02959da0da47d04629fa363ceb092887c4f402ad10783ec0a43bfd2f8f4eb99d6461ec01cf5abccae48fd19353644477e116983320caba46ccac30170729c78461dd374", "epoch_id": "0xb465f5693225df0d5425e33ecdca4bceadce7602e49ac46b919992b1930aae20", "expected": true } }, { "name": "verification 2", "id": "19", "description": "A failed verification", "type": "verification", "test_data": { "epoch_secret_key": "0x181ca31bb6347455406d0625616c6299c1b7867a8b5ecc57c8a602e36c418de116522bf1b47835c1225b8e416eefecf9a49c9367ad465bd8459de223aa16ddba", "eon_public_key": "0x2f67ca5b703d61a11e2338f899b30cf3680e5132ebc63fabe8a4a44fbe01d5300e178cfe132d13fb880b355565ea9c2be278e5415d2ffc3238f80d753cf4ab9f14bc747d5f6a5b14859a48bc6c33e2a6cc09688775070332f0d2afcc5ce46ba120ac95b8e3f5b6a61b0410c4a724932867f28e009551a8c367d344e8dde0cf22", "epoch_id": "0xf990f90dfd6823ec16f7e7922f76d7343c6a18dbc154d370c8c1593f75d9a750", "expected": false } } ] ```Output from testrun: