-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create json tests for crypto consensus testing #416
Conversation
c544ddf
to
e9f957b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JSON and Go is not fun...
There's lots of panic
s, but all of them can just be converted to return err
s 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
func RunJSONTests() *cobra.Command { | |
func runJSONTests() *cobra.Command { |
} | ||
|
||
const ( | ||
RANDOM = "random" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this would panic if there's no error, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should return an error to avoid panicking
v int | ||
} | ||
|
||
func (enc *testEncoder) addTest(tc *testCase) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: