Fix coordinator units tests (#144)

* Add extra pipeline jobs (#135)

Add test for ed25519 with sockets

* Fix coordinator unit tests (#135)

* Remove unnecessary prints (#135)

* Clean up (#135)

* Clean up after merge (#135)

* pin to older nightly version

* Update default values for Args (#135)

* Clean up (#135)

* Fix conflict in workflows (#135)

* Remove pipeline job for removed sockets feature (#135)

* Use stable instead of nightly

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
This commit is contained in:
natalie 2024-03-21 13:08:18 +00:00 committed by GitHub
parent c36dcf0eaf
commit 07ea1a1f66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 410 additions and 287 deletions

332
Cargo.lock generated
View File

@ -19,18 +19,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "aho-corasick"
version = "1.1.2"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
[[package]]
name = "anstream"
version = "0.6.11"
version = "0.6.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
dependencies = [
"anstyle",
"anstyle-parse",
@ -76,9 +76,9 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.79"
version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
[[package]]
name = "arrayref"
@ -94,13 +94,13 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
[[package]]
name = "async-trait"
version = "0.1.77"
version = "0.1.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -134,10 +134,10 @@ dependencies = [
"axum-core",
"bytes",
"futures-util",
"http 1.0.0",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"hyper 1.1.0",
"hyper 1.2.0",
"hyper-util",
"itoa",
"matchit",
@ -167,7 +167,7 @@ dependencies = [
"async-trait",
"bytes",
"futures-util",
"http 1.0.0",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"mime",
@ -191,9 +191,9 @@ dependencies = [
"axum",
"bytes",
"cookie",
"http 1.0.0",
"http 1.1.0",
"http-body-util",
"hyper 1.1.0",
"hyper 1.2.0",
"hyper-util",
"mime",
"pretty_assertions",
@ -243,9 +243,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.4.2"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
[[package]]
name = "bitvec"
@ -292,9 +292,9 @@ dependencies = [
[[package]]
name = "bumpalo"
version = "3.14.0"
version = "3.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
[[package]]
name = "byteorder"
@ -310,12 +310,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]]
name = "cc"
version = "1.0.83"
version = "1.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
"libc",
]
checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
[[package]]
name = "cfg-if"
@ -325,9 +322,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "4.5.2"
version = "4.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
dependencies = [
"clap_builder",
"clap_derive",
@ -347,14 +344,14 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.0"
version = "4.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
dependencies = [
"heck",
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -449,9 +446,9 @@ checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
[[package]]
name = "crossbeam-channel"
version = "0.5.11"
version = "0.5.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
dependencies = [
"crossbeam-utils",
]
@ -497,7 +494,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -586,9 +583,9 @@ dependencies = [
[[package]]
name = "either"
version = "1.9.0"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
[[package]]
name = "embedded-io"
@ -655,9 +652,9 @@ dependencies = [
[[package]]
name = "fiat-crypto"
version = "0.2.6"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f"
[[package]]
name = "fnv"
@ -831,16 +828,16 @@ dependencies = [
[[package]]
name = "h2"
version = "0.3.24"
version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
dependencies = [
"bytes",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
"http 0.2.11",
"http 0.2.12",
"indexmap",
"slab",
"tokio",
@ -850,16 +847,16 @@ dependencies = [
[[package]]
name = "h2"
version = "0.4.2"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
checksum = "51ee2dd2e4f378392eeff5d51618cd9a63166a2513846bbc55f21cfacd9199d4"
dependencies = [
"bytes",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
"http 1.0.0",
"http 1.1.0",
"indexmap",
"slab",
"tokio",
@ -903,10 +900,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
version = "0.3.5"
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
[[package]]
name = "hex"
@ -919,9 +922,9 @@ dependencies = [
[[package]]
name = "http"
version = "0.2.11"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
dependencies = [
"bytes",
"fnv",
@ -930,9 +933,9 @@ dependencies = [
[[package]]
name = "http"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
dependencies = [
"bytes",
"fnv",
@ -946,7 +949,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
dependencies = [
"bytes",
"http 0.2.11",
"http 0.2.12",
"pin-project-lite",
]
@ -957,18 +960,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
dependencies = [
"bytes",
"http 1.0.0",
"http 1.1.0",
]
[[package]]
name = "http-body-util"
version = "0.1.0"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
dependencies = [
"bytes",
"futures-util",
"http 1.0.0",
"futures-core",
"http 1.1.0",
"http-body 1.0.0",
"pin-project-lite",
]
@ -995,8 +998,8 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"h2 0.3.24",
"http 0.2.11",
"h2 0.3.25",
"http 0.2.12",
"http-body 0.4.6",
"httparse",
"httpdate",
@ -1011,20 +1014,21 @@ dependencies = [
[[package]]
name = "hyper"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
dependencies = [
"bytes",
"futures-channel",
"futures-util",
"h2 0.4.2",
"http 1.0.0",
"h2 0.4.3",
"http 1.1.0",
"http-body 1.0.0",
"httparse",
"httpdate",
"itoa",
"pin-project-lite",
"smallvec",
"tokio",
"want",
]
@ -1051,9 +1055,9 @@ dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http 1.0.0",
"http 1.1.0",
"http-body 1.0.0",
"hyper 1.1.0",
"hyper 1.2.0",
"pin-project-lite",
"socket2",
"tokio",
@ -1080,9 +1084,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
[[package]]
name = "indexmap"
version = "2.2.2"
version = "2.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
dependencies = [
"equivalent",
"hashbrown",
@ -1117,9 +1121,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
[[package]]
name = "js-sys"
version = "0.3.68"
version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
dependencies = [
"wasm-bindgen",
]
@ -1174,9 +1178,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.20"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "matchers"
@ -1339,11 +1343,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "openssl"
version = "0.10.63"
version = "0.10.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
dependencies = [
"bitflags 2.4.2",
"bitflags 2.5.0",
"cfg-if",
"foreign-types",
"libc",
@ -1360,7 +1364,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -1371,9 +1375,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-sys"
version = "0.9.99"
version = "0.9.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
dependencies = [
"cc",
"libc",
@ -1448,22 +1452,22 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pin-project"
version = "1.1.4"
version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.1.4"
version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -1489,9 +1493,9 @@ dependencies = [
[[package]]
name = "pkg-config"
version = "0.3.29"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "platforms"
@ -1535,9 +1539,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.78"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
dependencies = [
"unicode-ident",
]
@ -1622,7 +1626,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata 0.4.5",
"regex-automata 0.4.6",
"regex-syntax 0.8.2",
]
@ -1637,9 +1641,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.4.5"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [
"aho-corasick",
"memchr",
@ -1660,17 +1664,17 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "reqwest"
version = "0.11.26"
version = "0.11.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
dependencies = [
"base64",
"bytes",
"encoding_rs",
"futures-core",
"futures-util",
"h2 0.3.24",
"http 0.2.11",
"h2 0.3.25",
"http 0.2.12",
"http-body 0.4.6",
"hyper 0.14.28",
"hyper-tls",
@ -1717,7 +1721,7 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
"http 0.2.11",
"http 0.2.12",
"mime",
"mime_guess",
"rand",
@ -1741,11 +1745,11 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.38.31"
version = "0.38.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
dependencies = [
"bitflags 2.4.2",
"bitflags 2.5.0",
"errno",
"libc",
"linux-raw-sys",
@ -1769,9 +1773,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
[[package]]
name = "ryu"
version = "1.0.16"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
[[package]]
name = "schannel"
@ -1813,9 +1817,9 @@ dependencies = [
[[package]]
name = "semver"
version = "1.0.21"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
[[package]]
name = "serde"
@ -1834,7 +1838,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -1850,9 +1854,9 @@ dependencies = [
[[package]]
name = "serde_path_to_error"
version = "0.1.15"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
dependencies = [
"itoa",
"serde",
@ -1958,12 +1962,12 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
[[package]]
name = "socket2"
version = "0.5.5"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
dependencies = [
"libc",
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]
@ -2008,7 +2012,7 @@ version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck",
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
@ -2034,9 +2038,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.48"
version = "2.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
dependencies = [
"proc-macro2",
"quote",
@ -2078,9 +2082,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "tempfile"
version = "3.10.0"
version = "3.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
dependencies = [
"cfg-if",
"fastrand",
@ -2122,14 +2126,14 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
name = "thread_local"
version = "1.1.7"
version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
dependencies = [
"cfg-if",
"once_cell",
@ -2208,7 +2212,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -2257,9 +2261,9 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
dependencies = [
"bitflags 2.4.2",
"bitflags 2.5.0",
"bytes",
"http 1.0.0",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"pin-project-lite",
@ -2300,7 +2304,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -2372,7 +2376,7 @@ dependencies = [
"byteorder",
"bytes",
"data-encoding",
"http 1.0.0",
"http 1.1.0",
"httparse",
"log",
"rand",
@ -2411,9 +2415,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-normalization"
version = "0.1.22"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
dependencies = [
"tinyvec",
]
@ -2443,9 +2447,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "uuid"
version = "1.7.0"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
dependencies = [
"getrandom",
"rand",
@ -2478,7 +2482,7 @@ checksum = "b3fd98999db9227cf28e59d83e1f120f42bc233d4b152e8fab9bc87d5bb1e0f8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]
[[package]]
@ -2498,9 +2502,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.91"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@ -2508,24 +2512,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.91"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
version = "0.4.41"
version = "0.4.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
dependencies = [
"cfg-if",
"js-sys",
@ -2535,9 +2539,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.91"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -2545,28 +2549,28 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.91"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.91"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
name = "web-sys"
version = "0.3.68"
version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
dependencies = [
"js-sys",
"wasm-bindgen",
@ -2609,7 +2613,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets 0.52.0",
"windows-targets 0.52.4",
]
[[package]]
@ -2629,17 +2633,17 @@ dependencies = [
[[package]]
name = "windows-targets"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
dependencies = [
"windows_aarch64_gnullvm 0.52.0",
"windows_aarch64_msvc 0.52.0",
"windows_i686_gnu 0.52.0",
"windows_i686_msvc 0.52.0",
"windows_x86_64_gnu 0.52.0",
"windows_x86_64_gnullvm 0.52.0",
"windows_x86_64_msvc 0.52.0",
"windows_aarch64_gnullvm 0.52.4",
"windows_aarch64_msvc 0.52.4",
"windows_i686_gnu 0.52.4",
"windows_i686_msvc 0.52.4",
"windows_x86_64_gnu 0.52.4",
"windows_x86_64_gnullvm 0.52.4",
"windows_x86_64_msvc 0.52.4",
]
[[package]]
@ -2650,9 +2654,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
[[package]]
name = "windows_aarch64_msvc"
@ -2662,9 +2666,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
[[package]]
name = "windows_i686_gnu"
@ -2674,9 +2678,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
[[package]]
name = "windows_i686_msvc"
@ -2686,9 +2690,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
[[package]]
name = "windows_x86_64_gnu"
@ -2698,9 +2702,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
[[package]]
name = "windows_x86_64_gnullvm"
@ -2710,9 +2714,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
[[package]]
name = "windows_x86_64_msvc"
@ -2722,9 +2726,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.0"
version = "0.52.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
[[package]]
name = "winreg"
@ -2768,5 +2772,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
"syn 2.0.53",
]

View File

@ -14,25 +14,25 @@ pub struct Args {
pub num_signers: u16,
/// Public key package to use. Can be a file with a JSON-encoded
/// package, or "-". If the file does not exist or if "-" is specified,
/// package, or "". If the file does not exist or if "" is specified,
/// then it will be read from standard input.
#[arg(short = 'P', long, default_value = "public-key-package.json")]
pub public_key_package: String,
/// The message to sign. Can be a file with the raw message, or "-". If "-"
/// The message to sign. Can be a file with the raw message, or "". If ""
/// is specified, then it will be read from standard input as a hex string.
#[arg(short = 'm', long, default_value = "-")]
#[arg(short = 'm', long, default_value = "")]
pub message: String,
/// The randomizer to use. Can be a file with the raw randomizer, or "-". If "-"
/// is specified, then it will be read from standard input as a hex string.
#[cfg(feature = "redpallas")]
#[arg(short = 'r', long, default_value = "-")]
#[arg(short = 'r', long, default_value = "")]
pub randomizer: String,
/// Where to write the generated raw bytes signature. If "-", the
/// human-readable hex-string is printed to stdout.
#[arg(short = 's', long, default_value = "-")]
#[arg(short = 's', long, default_value = "")]
pub signature: String,
/// IP to bind to, if using online comms

View File

@ -36,8 +36,7 @@ pub async fn cli(
reader,
logger,
participants_config.commitments.clone(),
)
.await?;
)?;
#[cfg(feature = "redpallas")]
let randomizer = request_randomizer(args, reader, logger)?;

View File

@ -42,7 +42,7 @@ impl SocketComms {
let _ = handler
.network()
.listen(Transport::FramedTcp, addr)
.map_err(|e| println!("{}", e));
.unwrap();
let socket_comm = Self {
input_rx: rx,
@ -63,9 +63,7 @@ impl SocketComms {
NetEvent::Accepted(_endpoint, _listener) => println!("Client connected"), // Tcp or Ws
NetEvent::Message(endpoint, data) => {
println!("Received: {}", String::from_utf8_lossy(data));
let _ = input_tx
.try_send((endpoint, data.to_vec()))
.map_err(|e| println!("{}", e));
input_tx.try_send((endpoint, data.to_vec())).unwrap();
}
NetEvent::Disconnected(_endpoint) => println!("Client disconnected"), //Tcp or Ws
});

View File

@ -42,13 +42,14 @@ async fn read_commitments(
input: &mut dyn BufRead,
logger: &mut dyn Write,
) -> Result<ParticipantsConfig, Box<dyn std::error::Error>> {
let pub_key_package = read_from_file_or_stdin(
let out = read_from_file_or_stdin(
input,
logger,
"public key package",
&args.public_key_package,
)?;
let pub_key_package: PublicKeyPackage = serde_json::from_str(&pub_key_package)?;
let pub_key_package: PublicKeyPackage = serde_json::from_str(&out)?;
let num_of_participants = if args.num_signers == 0 {
writeln!(logger, "The number of participants: ")?;

View File

@ -19,7 +19,7 @@ pub struct CommitmentsConfig {
pub signer_commitments: BTreeMap<Identifier, SigningCommitments>,
}
pub async fn step_2(
pub fn step_2(
args: &Args,
input: &mut impl BufRead,
logger: &mut dyn Write,
@ -38,7 +38,7 @@ fn request_message(
logger: &mut dyn Write,
commitments: BTreeMap<Identifier, SigningCommitments>,
) -> Result<SigningPackage, Box<dyn std::error::Error>> {
let message = if args.message == "-" {
let message = if args.message.is_empty() {
writeln!(logger, "The message to be signed (hex encoded)")?;
let mut msg = String::new();

View File

@ -104,7 +104,7 @@ fn print_signature(
logger: &mut dyn Write,
group_signature: Signature,
) -> Result<(), Box<dyn std::error::Error>> {
if args.signature == "-" {
if args.signature.is_empty() {
writeln!(
logger,
"Group signature: {}",

View File

@ -1 +1,2 @@
// mod steps;
mod common;
mod steps;

View File

@ -0,0 +1,109 @@
#[cfg(test)]
pub struct Helpers {
pub participant_id_1: String,
pub participant_id_3: String,
pub public_key_1: String,
pub public_key_2: String,
pub public_key_3: String,
pub verifying_key: String,
pub pub_key_package: String,
pub commitments_input_1: String,
pub commitments_input_3: String,
pub commitments_from_part_1: String,
pub commitments_from_part_3: String,
pub signing_package_helper: String,
pub message: String,
pub signature_1: String,
pub signature_3: String,
pub group_signature: String,
pub hiding_commitment_1: String,
pub binding_commitment_1: String,
pub hiding_commitment_3: String,
pub binding_commitment_3: String,
}
pub fn get_helpers() -> Helpers {
// values
let participant_id_1 =
"0100000000000000000000000000000000000000000000000000000000000000".to_string();
let participant_id_2 =
"0200000000000000000000000000000000000000000000000000000000000000".to_string();
let participant_id_3 =
"0300000000000000000000000000000000000000000000000000000000000000".to_string();
let public_key_1 =
"d4a06421802d96e04b0ac84f73d30ac97c9e57e95a46ca689f2045e76e2354a0".to_string();
let public_key_2 =
"dedbd6791a9656967ce48c8e952a7bf341a21d9181853a34b7f67a707edc0675".to_string();
let public_key_3 =
"adc4d81882fc4e6c0d82accd6ae9b701aae88edafbe1376673a616ba456b37ce".to_string();
let verifying_key =
"892508e904eb45ac8e1b4348d6eeb94ac0d3e6b3fe6f9f06a7e1b10979d378ee".to_string();
let hiding_commitment_1 =
"4a413c35349ebb5cc2b931270c5886df98b6e1e621bd364648b99e3cf7f02bbf".to_string();
let hiding_commitment_3 =
"50de72191c1d6473954113df25bd05fa4915c01813a70cf1e93db5f75e49e949".to_string();
let binding_commitment_1 =
"fa99e65abd54bf22a005109591a1a8cf060cdb80155a408b005c5187697d8a4b".to_string();
let binding_commitment_3 =
"ddec2b43bc985d653229ce7bfa829a157c33baad284e2c35eafd8c3886d18a8b".to_string();
let signature_share_1 =
"a06a646f08efe0347720b18a69f25e2ec3b4176dd86e310e1f559016a18bd903".to_string();
let signature_share_3 =
"6fc5bfee50b5784c0b62a1b24bc244bcd46a23fafc61c6f011b7f55044408f08".to_string();
let message = "74657374".to_string();
let group_signature = "b606aef4e7530e01a1261e2d2f8c2773ab449f32206d47fc0c7c8cf968f97e610f30245e59a459818282523db5b4a3ea971f3b67d5d0f7fe300c8667e5cb680c".to_string();
// messages
let signing_share = "89e9c106192578f94d74c546f0cbb3515e8d87cc6d14558ada1930d50fae3209";
let commitments = [
"892508e904eb45ac8e1b4348d6eeb94ac0d3e6b3fe6f9f06a7e1b10979d378ee",
"33f846d72143920fc7b106924ea021cca8ee33af99847b03de57367ad12182ad",
];
// JSON
let commitments_from_part_1 = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"identifier\":\"{}\",\"signing_share\":\"{}\",\"commitment\":[\"{}\",\"{}\"]}}", participant_id_1, signing_share, commitments[0], commitments[1]);
let commitments_from_part_3 = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"identifier\":\"{}\",\"signing_share\":\"{}\",\"commitment\":[\"{}\",\"{}\"]}}", participant_id_3, signing_share, commitments[0], commitments[1]);
let signing_package_helper = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"signing_commitments\":{{\"{}\":{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"hiding\":\"{}\",\"binding\":\"{}\"}},\"{}\":{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"hiding\":\"{}\",\"binding\":\"{}\"}}}},\"message\":\"{}\"}}", participant_id_1, hiding_commitment_1, binding_commitment_1, participant_id_3, hiding_commitment_3, binding_commitment_3, message);
let signature_1 = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"share\":\"{}\"}}", signature_share_1);
let signature_3 = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"share\":\"{}\"}}", signature_share_3);
let pub_key_package = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"verifying_shares\":{{\"{}\":\"{}\",\"{}\":\"{}\",\"{}\":\"{}\"}},\"verifying_key\":\"{}\"}}", participant_id_1, public_key_1, participant_id_2, public_key_2, participant_id_3, public_key_3, verifying_key).to_string();
let commitments_input_1 = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"hiding\":\"{}\", \"binding\":\"{}\"}}", hiding_commitment_1, binding_commitment_1);
let commitments_input_3 = format!("{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"hiding\":\"{}\", \"binding\":\"{}\"}}", hiding_commitment_3, binding_commitment_3);
Helpers {
participant_id_1,
participant_id_3,
public_key_1,
public_key_2,
public_key_3,
verifying_key,
pub_key_package,
commitments_input_1,
commitments_input_3,
commitments_from_part_1,
commitments_from_part_3,
signing_package_helper,
message,
signature_1,
signature_3,
group_signature,
hiding_commitment_1,
binding_commitment_1,
hiding_commitment_3,
binding_commitment_3,
}
}

View File

@ -15,14 +15,18 @@ use frost_ed25519 as frost;
use hex::FromHex;
use std::{collections::BTreeMap, io::BufWriter};
// Test values from https://github.com/ZcashFoundation/frost/blob/main/frost-ed25519/tests/helpers/vectors.json
use super::common::get_helpers;
use super::common::Helpers;
const PUBLIC_KEY_1: &str = "fc2c9b8e335c132d9ebe0403c9317aac480bbbf8cbdb1bc3730bb68eb60dadf9";
const PUBLIC_KEY_2: &str = "f7c3031debffbaf121022409d057e6e1034a532636301d12e26beddff58d05c7";
const PUBLIC_KEY_3: &str = "2cff4148a2f965801fb1f25f1d2a4e5df2f75b3a57cd06f30471c2c774419a41";
const GROUP_PUBLIC_KEY: &str = "15d21ccd7ee42959562fc8aa63224c8851fb3ec85a3faf66040d380fb9738673";
fn build_pub_key_package() -> (BTreeMap<Identifier, VerifyingShare>, VerifyingKey) {
let Helpers {
public_key_1,
public_key_2,
public_key_3,
verifying_key,
..
} = get_helpers();
fn build_pub_key_package() -> PublicKeyPackage {
let id_1 = Identifier::try_from(1).unwrap();
let id_2 = Identifier::try_from(2).unwrap();
let id_3 = Identifier::try_from(3).unwrap();
@ -30,43 +34,42 @@ fn build_pub_key_package() -> PublicKeyPackage {
let mut signer_pubkeys = BTreeMap::new();
signer_pubkeys.insert(
id_1,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_1).unwrap()).unwrap(),
VerifyingShare::deserialize(<[u8; 32]>::from_hex(public_key_1).unwrap()).unwrap(),
);
signer_pubkeys.insert(
id_2,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_2).unwrap()).unwrap(),
VerifyingShare::deserialize(<[u8; 32]>::from_hex(public_key_2).unwrap()).unwrap(),
);
signer_pubkeys.insert(
id_3,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_3).unwrap()).unwrap(),
VerifyingShare::deserialize(<[u8; 32]>::from_hex(public_key_3).unwrap()).unwrap(),
);
let group_public =
VerifyingKey::deserialize(<[u8; 32]>::from_hex(GROUP_PUBLIC_KEY).unwrap()).unwrap();
VerifyingKey::deserialize(<[u8; 32]>::from_hex(verifying_key).unwrap()).unwrap();
PublicKeyPackage::new(signer_pubkeys, group_public)
(signer_pubkeys, group_public)
}
fn build_signing_commitments() -> BTreeMap<Identifier, SigningCommitments> {
let Helpers {
hiding_commitment_1,
binding_commitment_1,
hiding_commitment_3,
binding_commitment_3,
..
} = get_helpers();
let id_1 = Identifier::try_from(1).unwrap();
let id_3 = Identifier::try_from(3).unwrap();
const HIDING_COMMITMENT_1: &str =
"5078f5c6d679654bb88a8887242d49cc21a553ed26caed4d52570c6656fb9b92";
const BINDING_COMMITMENT_1: &str =
"936b660d3008d8298b0a7220a327a0813ffedd9d07604bdc73d7cffef63c0da0";
const HIDING_COMMITMENT_3: &str =
"91c2469b501fe5af8493f9ae77c8f57999460af317f2d9f2d4378ae0e665860e";
const BINDING_COMMITMENT_3: &str =
"c225618accff2266a45d87dc3219b04c774ca26c8629c4fa483e7e87da820007";
let signer_commitments_1 = SigningCommitments::new(
NonceCommitment::deserialize(<[u8; 32]>::from_hex(HIDING_COMMITMENT_1).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(BINDING_COMMITMENT_1).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(hiding_commitment_1).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(binding_commitment_1).unwrap()).unwrap(),
);
let signer_commitments_3 = SigningCommitments::new(
NonceCommitment::deserialize(<[u8; 32]>::from_hex(HIDING_COMMITMENT_3).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(BINDING_COMMITMENT_3).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(hiding_commitment_3).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(binding_commitment_3).unwrap()).unwrap(),
);
let mut signing_commitments = BTreeMap::new();
@ -84,37 +87,47 @@ fn build_signing_commitments() -> BTreeMap<Identifier, SigningCommitments> {
// 3. identifiers for all signers
#[tokio::test]
async fn check_step_1() {
let Helpers {
participant_id_1,
participant_id_3,
pub_key_package,
commitments_input_1,
commitments_input_3,
..
} = get_helpers();
let mut comms = CLIComms {};
let args = Args::default();
let mut buf = BufWriter::new(Vec::new());
let id_1 = Identifier::try_from(1).unwrap();
let id_3 = Identifier::try_from(3).unwrap();
// -- INPUTS --
let pub_key_package = "{\"signer_pubkeys\":{\"0100000000000000000000000000000000000000000000000000000000000000\":\"fc2c9b8e335c132d9ebe0403c9317aac480bbbf8cbdb1bc3730bb68eb60dadf9\", \"0200000000000000000000000000000000000000000000000000000000000000\":\"f7c3031debffbaf121022409d057e6e1034a532636301d12e26beddff58d05c7\",\"0300000000000000000000000000000000000000000000000000000000000000\":\"2cff4148a2f965801fb1f25f1d2a4e5df2f75b3a57cd06f30471c2c774419a41\"},\"group_public\":\"15d21ccd7ee42959562fc8aa63224c8851fb3ec85a3faf66040d380fb9738673\", \"ciphersuite\":\"FROST(Ed25519, SHA-512)\"}";
let num_of_participants = 2u16;
let num_of_participants = 2;
let id_input_1 = "0100000000000000000000000000000000000000000000000000000000000000";
let id_input_3 = "0300000000000000000000000000000000000000000000000000000000000000";
let signing_commitments = build_signing_commitments();
let input = format!(
"{}\n{}\n{}\n{}\n",
pub_key_package, num_of_participants, id_input_1, id_input_3
"{}\n{}\n{}\n{}\n{}\n{}\n",
pub_key_package,
num_of_participants,
participant_id_1,
commitments_input_1,
participant_id_3,
commitments_input_3
);
let mut valid_input = input.as_bytes();
// --
let (signer_pub_keys, group_public) = build_pub_key_package();
let expected = "Paste the JSON public key package: \nThe number of participants: \nIdentifier for participant 1 (hex encoded): \nIdentifier for participant 2 (hex encoded): \nSelected participants: \n\"0100000000000000000000000000000000000000000000000000000000000000\"\n\"0300000000000000000000000000000000000000000000000000000000000000\"\n";
let expected_participants_config = ParticipantsConfig {
commitments: signing_commitments.clone(),
pub_key_package: PublicKeyPackage::new(signer_pub_keys, group_public),
};
let (_, res) = &buf.into_parts();
let actual = hex::encode(res.as_ref().unwrap());
let participants_config = step_1(&args, &mut comms, &mut valid_input, &mut buf).await;
assert_eq!(hex::encode(expected), actual)
assert!(participants_config.unwrap() == expected_participants_config);
}
// Input required:
@ -123,48 +136,49 @@ async fn check_step_1() {
// 3. commitments for all signers
#[tokio::test]
async fn check_step_2() {
let mut comms = CLIComms {};
let Helpers {
commitments_from_part_1,
commitments_from_part_3,
signing_package_helper,
message,
..
} = get_helpers();
let args = Args::default();
let mut buf = BufWriter::new(Vec::new());
// -- INPUTS --
let message = "74657374";
let commitments_input_1 = "{\"header\":{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"},\"identifier\":\"0100000000000000000000000000000000000000000000000000000000000000\",\"signing_share\":\"4ca8a14c31582e92770b23d8b4e5f253d94cbbdc34332cbbb9972f7d0a16a106\",\"commitment\":[\"c0b1eb84bc74624e9196a4ae01d7b784133dd714943001524e33f62ac09fe6df\",\"a4ed252f52e34077e990f70a743a261ff74cbda88173269cc1feeb0616af734b\",\"0fe7ced03a6d5cc4286d050f20fea6dbc14f412a430fc21f92ee2861011fb93c\"]}";
let commitments_input_3 = "{\"header\":{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"},\"identifier\":\"0300000000000000000000000000000000000000000000000000000000000000\",\"signing_share\":\"4ca8a14c31582e92770b23d8b4e5f253d94cbbdc34332cbbb9972f7d0a16a106\",\"commitment\":[\"c0b1eb84bc74624e9196a4ae01d7b784133dd714943001524e33f62ac09fe6df\",\"a4ed252f52e34077e990f70a743a261ff74cbda88173269cc1feeb0616af734b\",\"0fe7ced03a6d5cc4286d050f20fea6dbc14f412a430fc21f92ee2861011fb93c\"]}";
let input = format!(
"{}\n{}\n{}\n",
message, commitments_input_1, commitments_input_3
message, commitments_from_part_1, commitments_from_part_3
);
let mut valid_input = input.as_bytes();
// --
let id_1 = Identifier::try_from(1).unwrap();
let id_3 = Identifier::try_from(3).unwrap();
let signing_commitments = build_signing_commitments();
let expected_signing_package = SigningPackage::new(signing_commitments.clone(), b"test");
let message = hex::decode(message).unwrap();
let signing_package = step_2(&mut valid_input, &mut buf, signing_commitments.clone());
let expected_signing_package = SigningPackage::new(signing_commitments.clone(), &message);
assert!(signing_package.is_ok());
assert!(signing_package.unwrap() == expected_signing_package);
let signing_package = step_2(
&args,
&mut valid_input,
&mut buf,
signing_commitments.clone(),
)
.unwrap();
let expected_participants_config = ParticipantsConfig {
commitments: signing_commitments.clone(),
pub_key_package: build_pub_key_package(),
};
// assert!(&signing_package.await.is_ok());
assert!(signing_package == expected_signing_package);
let participants_config = step_1(&args, &mut comms, &mut valid_input, &mut buf);
assert!(participants_config.await.unwrap() == expected_participants_config);
let expected = "The message to be signed (hex encoded)\nPlease enter JSON encoded commitments for participant 0100000000000000000000000000000000000000000000000000000000000000:\nPlease enter JSON encoded commitments for participant 0300000000000000000000000000000000000000000000000000000000000000:\nSigning Package:\n{\"signing_commitments\":{\"0100000000000000000000000000000000000000000000000000000000000000\":{\"hiding\":\"5078f5c6d679654bb88a8887242d49cc21a553ed26caed4d52570c6656fb9b92\",\"binding\":\"936b660d3008d8298b0a7220a327a0813ffedd9d07604bdc73d7cffef63c0da0\",\"ciphersuite\":\"FROST(Ed25519, SHA-512)\"},\"0300000000000000000000000000000000000000000000000000000000000000\":{\"hiding\":\"91c2469b501fe5af8493f9ae77c8f57999460af317f2d9f2d4378ae0e665860e\",\"binding\":\"c225618accff2266a45d87dc3219b04c774ca26c8629c4fa483e7e87da820007\",\"ciphersuite\":\"FROST(Ed25519, SHA-512)\"}},\"message\":\"74657374\",\"ciphersuite\":\"FROST(Ed25519, SHA-512)\"}\n";
let expected = format!(
"The message to be signed (hex encoded)\nSigning Package:\n{}\n",
signing_package_helper
);
let (_, res) = &buf.into_parts();
let actual = String::from_utf8(res.as_ref().unwrap().to_owned()).unwrap();
@ -177,33 +191,25 @@ async fn check_step_2() {
// // 2. signatures for all signers
#[tokio::test]
async fn check_step_3() {
let Helpers {
participant_id_1,
participant_id_3,
signature_1,
signature_3,
group_signature,
message,
..
} = get_helpers();
let mut comms = CLIComms {};
let args = Args::default();
let mut buf = BufWriter::new(Vec::new());
let args = Args::default();
let id_1 = Identifier::try_from(1).unwrap();
let id_3 = Identifier::try_from(3).unwrap();
// keygen output
const PUBLIC_KEY_1: &str = "fc2c9b8e335c132d9ebe0403c9317aac480bbbf8cbdb1bc3730bb68eb60dadf9";
const PUBLIC_KEY_3: &str = "2cff4148a2f965801fb1f25f1d2a4e5df2f75b3a57cd06f30471c2c774419a41";
const GROUP_PUBLIC_KEY: &str =
"15d21ccd7ee42959562fc8aa63224c8851fb3ec85a3faf66040d380fb9738673";
let (signer_pubkeys, group_public) = build_pub_key_package();
let mut signer_pubkeys = BTreeMap::new();
signer_pubkeys.insert(
id_1,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_1).unwrap()).unwrap(),
);
signer_pubkeys.insert(
id_3,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_3).unwrap()).unwrap(),
);
let group_public =
VerifyingKey::deserialize(<[u8; 32]>::from_hex(GROUP_PUBLIC_KEY).unwrap()).unwrap();
let signature_1 = "{\"share\":\"b97409beff18861f0959530db091a64b812e3fefaa87e1e3d2c039f11d96cc09\",\"ciphersuite\":\"FROST(Ed25519, SHA-512)\"}";
let signature_3 = "{\"share\":\"9816a14e7cdecfcb240976f564cf98c5640e596b6ddf270379efbef4e9f7db0b\",\"ciphersuite\":\"FROST(Ed25519, SHA-512)\"}";
// step 2 input
let input = format!("{}\n{}\n", signature_1, signature_3);
@ -215,17 +221,25 @@ async fn check_step_3() {
commitments: commitments.clone(),
pub_key_package: PublicKeyPackage::new(signer_pubkeys, group_public),
};
let signing_package = SigningPackage::new(commitments, b"test");
let message = hex::decode(message).unwrap();
let signing_package = SigningPackage::new(commitments, &message);
// step 3 generate signature
step_3(
&args,
&mut comms,
&mut valid_input,
&mut buf,
participants_config,
&signing_package,
);
)
.await
.unwrap();
let expected = "Please enter JSON encoded signature shares for participant 0100000000000000000000000000000000000000000000000000000000000000:\nPlease enter JSON encoded signature shares for participant 0300000000000000000000000000000000000000000000000000000000000000:\nGroup signature: \"72c948a63797c693e8e978fdb703a1f5a7590472a539da13b71dd6c2b8c1b2a664b7b4af6194439357c5d15f366760fce53c985a186709e74bb0f8e5078ea805\"\n";
let expected = format!("Please enter JSON encoded signature shares for participant {}:\nPlease enter JSON encoded signature shares for participant {}:\nGroup signature: \"{}\"\n", participant_id_1, participant_id_3, group_signature);
let (_, res) = &buf.into_parts();
let actual = String::from_utf8(res.as_ref().unwrap().to_owned()).unwrap();

View File

@ -10,7 +10,7 @@ pub struct Args {
pub cli: bool,
/// Public key package to use. Can be a file with a JSON-encoded
/// package, or "-". If the file does not exist or if "-" is specified,
/// package, or "". If the file does not exist or if "" is specified,
/// then it will be read from standard input.
#[arg(short = 'k', long, default_value = "key-package-1.json")]
pub key_package: String,

View File

@ -64,9 +64,7 @@ impl SocketComms {
} // Tcp or Ws
NetEvent::Message(endpoint, data) => {
println!("Received: {}", String::from_utf8_lossy(data));
let _ = input_tx
.try_send((endpoint, data.to_vec()))
.map_err(|e| println!("{}", e));
input_tx.try_send((endpoint, data.to_vec())).unwrap();
}
NetEvent::Disconnected(endpoint) => {
println!("Disconnected from server at {}", endpoint)

View File

@ -40,17 +40,6 @@ pub async fn request_inputs(
Ok(Round1Config { key_package })
}
pub fn generate_nonces_and_commitments(
key_package: &KeyPackage,
rng: &mut ThreadRng,
) -> (SigningNonces, SigningCommitments) {
let (nonces, commitments) = frost::round1::commit(key_package.signing_share(), rng);
// TODO: Store nonces
(nonces, commitments)
}
pub fn print_values(
commitments: SigningCommitments,
logger: &mut dyn Write,
@ -70,3 +59,14 @@ pub fn print_values(
Ok(())
}
pub fn generate_nonces_and_commitments(
key_package: &KeyPackage,
rng: &mut ThreadRng,
) -> (SigningNonces, SigningCommitments) {
let (nonces, commitments) = frost::round1::commit(key_package.signing_share(), rng);
// TODO: Store nonces
(nonces, commitments)
}

View File

@ -32,9 +32,9 @@ async fn trusted_dealer_journey() {
let coordinator_args = CoordinatorArgs {
cli: true,
public_key_package: "-".to_string(),
signature: "-".to_string(),
message: "-".to_string(),
public_key_package: "".to_string(),
signature: "".to_string(),
message: "".to_string(),
..Default::default()
};
let mut coordinator_comms = CoordinatorCLIComms {};
@ -143,7 +143,6 @@ async fn trusted_dealer_journey() {
&mut buf,
commitments_map.clone(),
)
.await
.unwrap();
// Round 2