From 761fa20ba51f10fe84941cc06373672723ad191e Mon Sep 17 00:00:00 2001 From: drewstone <drewstone329@gmail.com> Date: Tue, 6 Aug 2024 13:46:46 -0600 Subject: [PATCH] Remove redjubjub (#735) --- Cargo.lock | 219 +++++++++---------------- Cargo.toml | 1 - frost/frost-redjubjub/Cargo.toml | 42 ----- frost/frost-redjubjub/src/constants.rs | 24 --- frost/frost-redjubjub/src/hash.rs | 58 ------- frost/frost-redjubjub/src/lib.rs | 211 ------------------------ frost/frost-redjubjub/src/types.rs | 146 ----------------- 7 files changed, 77 insertions(+), 624 deletions(-) delete mode 100644 frost/frost-redjubjub/Cargo.toml delete mode 100644 frost/frost-redjubjub/src/constants.rs delete mode 100644 frost/frost-redjubjub/src/hash.rs delete mode 100644 frost/frost-redjubjub/src/lib.rs delete mode 100644 frost/frost-redjubjub/src/types.rs diff --git a/Cargo.lock b/Cargo.lock index b9fe6b907..9f3173cd7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -103,7 +103,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -1179,25 +1179,6 @@ dependencies = [ "piper", ] -[[package]] -name = "bls12_381_plus" -version = "0.8.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ed5f583bb45888c562e1f117f7f20ce86a640f1163c38fe665ac7a71190861" -dependencies = [ - "arrayref", - "elliptic-curve", - "ff", - "group", - "hex", - "pairing", - "rand_core 0.6.4", - "serde", - "sha2 0.10.8", - "subtle 2.6.1", - "zeroize", -] - [[package]] name = "bounded-collections" version = "0.1.9" @@ -1290,9 +1271,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca2be1d5c43812bae364ee3f30b3afcb7877cf59f4aeb94c66f313a41d2fac9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" dependencies = [ "serde", ] @@ -1526,9 +1507,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -1536,9 +1517,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -1549,9 +1530,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -2531,7 +2512,7 @@ dependencies = [ "regex", "syn 2.0.72", "termcolor", - "toml 0.8.17", + "toml 0.8.19", "walkdir", ] @@ -2561,9 +2542,9 @@ checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clonable" @@ -3017,9 +2998,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -3082,7 +3063,7 @@ dependencies = [ "serde", "serde_json", "syn 2.0.72", - "toml 0.8.17", + "toml 0.8.19", "walkdir", ] @@ -3778,9 +3759,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" dependencies = [ "crc32fast", "libz-sys", @@ -4319,19 +4300,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "frost-redjubjub" -version = "2.0.0" -dependencies = [ - "blake2 0.10.6", - "frost-core", - "group", - "jubjub", - "parity-scale-codec 3.6.12", - "rand_core 0.6.4", - "subtle 2.6.1", -] - [[package]] name = "frost-ristretto255" version = "2.0.0" @@ -5655,21 +5623,6 @@ dependencies = [ "simple_asn1", ] -[[package]] -name = "jubjub" -version = "0.10.4" -source = "git+https://github.com/LIT-Protocol/jubjub.git#7f5e11a94c90bccf03c7c0e9c6c181b462076fee" -dependencies = [ - "bitvec 1.0.1", - "bls12_381_plus", - "elliptic-curve", - "ff", - "group", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "subtle 2.6.1", -] - [[package]] name = "k256" version = "0.13.3" @@ -7257,15 +7210,6 @@ dependencies = [ "primeorder 0.13.6 (git+https://github.com/LIT-Protocol/elliptic-curves.git)", ] -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - [[package]] name = "pallet-airdrop-claims" version = "2.0.0" @@ -9446,11 +9390,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy 0.6.6", + "zerocopy", ] [[package]] @@ -10129,9 +10073,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -10669,9 +10613,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-platform-verifier" @@ -12173,9 +12117,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", "memchr", @@ -12916,7 +12860,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -12992,7 +12936,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "proc-macro2", "quote", @@ -13013,7 +12957,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "environmental", "parity-scale-codec 3.6.12", @@ -13213,7 +13157,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -13245,7 +13189,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "Inflector", "expander", @@ -13338,7 +13282,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" [[package]] name = "sp-storage" @@ -13356,7 +13300,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "impl-serde", "parity-scale-codec 3.6.12", @@ -13393,7 +13337,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "parity-scale-codec 3.6.12", "tracing", @@ -13493,7 +13437,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#7d0aa89653d5073081a949eca1de2ca2d42a9e98" +source = "git+https://github.com/paritytech/polkadot-sdk#291c082cbbb0c838c886f38040e54424c55d9618" dependencies = [ "impl-trait-for-tuples", "log", @@ -14007,7 +13951,7 @@ dependencies = [ "sp-version", "strum 0.24.1", "tempfile", - "toml 0.8.17", + "toml 0.8.19", "walkdir", "wasm-opt", ] @@ -14197,7 +14141,7 @@ dependencies = [ [[package]] name = "sygma-access-segregator" version = "0.2.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "frame-benchmarking", "frame-support", @@ -14210,7 +14154,7 @@ dependencies = [ [[package]] name = "sygma-basic-feehandler" version = "0.3.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "frame-benchmarking", "frame-support", @@ -14227,7 +14171,7 @@ dependencies = [ [[package]] name = "sygma-bridge" version = "0.3.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "arrayref", "bounded-collections 0.1.9", @@ -14268,7 +14212,7 @@ dependencies = [ [[package]] name = "sygma-bridge-forwarder" version = "0.3.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "cumulus-pallet-xcm", "cumulus-primitives-core", @@ -14291,7 +14235,7 @@ dependencies = [ [[package]] name = "sygma-fee-handler-router" version = "0.3.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "frame-benchmarking", "frame-support", @@ -14310,7 +14254,7 @@ dependencies = [ [[package]] name = "sygma-percentage-feehandler" version = "0.3.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "frame-benchmarking", "frame-support", @@ -14327,7 +14271,7 @@ dependencies = [ [[package]] name = "sygma-rpc" version = "0.2.1" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "jsonrpsee 0.20.3", "parity-scale-codec 3.6.12", @@ -14344,7 +14288,7 @@ dependencies = [ [[package]] name = "sygma-runtime-api" version = "0.2.1" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "sp-api", "sygma-bridge", @@ -14354,7 +14298,7 @@ dependencies = [ [[package]] name = "sygma-traits" version = "0.2.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "ethabi 18.0.0", "frame-support", @@ -14369,7 +14313,7 @@ dependencies = [ [[package]] name = "sygma-xcm-bridge" version = "0.3.0" -source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#056f79acab07689eb879b16f8d51cea257153d7d" +source = "git+https://github.com/sygmaprotocol/sygma-substrate-pallets?branch=release-polkadot-v1.7.0#35dce85c5314ee842e6fd00f79183e1bb5514dd8" dependencies = [ "cumulus-pallet-xcm", "cumulus-primitives-core", @@ -14828,12 +14772,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.10.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix 0.38.34", "windows-sys 0.52.0", ] @@ -15097,14 +15042,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.17" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a44eede9b727419af8095cb2d72fab15487a541f54647ad4414b34096ee4631" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.18", + "toml_edit 0.22.20", ] [[package]] @@ -15129,15 +15074,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.18" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1490595c74d930da779e944f5ba2ecdf538af67df1a9848cbd156af43c1b7cf0" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.16", + "winnow 0.6.18", ] [[package]] @@ -15296,6 +15241,7 @@ dependencies = [ "sharded-slab", "smallvec", "thread_local", + "time", "tracing", "tracing-core", "tracing-log 0.2.0", @@ -15377,16 +15323,16 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55265878356bdd85c9baa15859c87de93b2bf1f33acf752040a561e4a228f62" +checksum = "207aa50d36c4be8d8c6ea829478be44a372c6a77669937bb39c698e52f1491e8" dependencies = [ "glob", "serde", "serde_derive", "serde_json", "termcolor", - "toml 0.8.17", + "toml 0.8.19", ] [[package]] @@ -16140,11 +16086,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -16208,6 +16154,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -16397,9 +16352,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.16" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b480ae9340fc261e6be3e95a1ba86d54ae3f9171132a73ce8d4bbaf68339507c" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] @@ -16535,34 +16490,14 @@ dependencies = [ "time", ] -[[package]] -name = "zerocopy" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" -dependencies = [ - "byteorder", - "zerocopy-derive 0.6.6", -] - [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy-derive" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", + "byteorder", + "zerocopy-derive", ] [[package]] @@ -16656,9 +16591,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 883a4f32f..78108da5a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -132,7 +132,6 @@ frost-ristretto255 = { path = "frost/frost-ristretto255", default-features = fal frost-secp256k1 = { path = "frost/frost-secp256k1", default-features = false } frost-p256 = { path = "frost/frost-p256", default-features = false } frost-p384 = { path = "frost/frost-p384", default-features = false } -frost-redjubjub = { path = "frost/frost-redjubjub", default-features = false } frost-taproot = { path = "frost/frost-taproot", default-features = false } # Substrate dependencies diff --git a/frost/frost-redjubjub/Cargo.toml b/frost/frost-redjubjub/Cargo.toml deleted file mode 100644 index 3fd9aef31..000000000 --- a/frost/frost-redjubjub/Cargo.toml +++ /dev/null @@ -1,42 +0,0 @@ -[package] -name = "frost-redjubjub" -edition = "2021" -# When releasing to crates.io: -# - Update html_root_url -# - Update CHANGELOG.md -# - Create git tag. -version.workspace = true -authors = [ - "Deirdre Connolly <durumcrustulum@gmail.com>", - "Chelsea Komlo <me@chelseakomlo.com>", - "Conrado Gouvea <conradoplg@gmail.com>" -] -readme = "README.md" -license = "MIT OR Apache-2.0" -categories = ["cryptography"] -keywords = ["cryptography", "crypto", "ed25519", "threshold", "signature"] -description = "A Schnorr signature scheme over Ed25519 that supports FROST." - -[package.metadata.docs.rs] -features = ["serde"] -rustdoc-args = ["--cfg", "docsrs"] - -[dependencies] -# blake2b_simd = { version = "1", default-features = false } -blake2 = { version = "0.10.6", default-features = false } -parity-scale-codec = { workspace = true } -jubjub = { version = "0.10", git = "https://github.com/LIT-Protocol/jubjub.git", features = ["alloc"], default-features = false } -group = { version = "0.13", features = ["alloc"], default-features = false } -frost-core = { workspace = true } -rand_core = { workspace = true, optional = true } -subtle = { workspace = true } - -[features] -default = ["std"] -std = [ - "rand_core/std", - "parity-scale-codec/std", - "jubjub/std", - "blake2/std", - # "blake2b_simd/std", -] \ No newline at end of file diff --git a/frost/frost-redjubjub/src/constants.rs b/frost/frost-redjubjub/src/constants.rs deleted file mode 100644 index c8bb00572..000000000 --- a/frost/frost-redjubjub/src/constants.rs +++ /dev/null @@ -1,24 +0,0 @@ -// -*- mode: rust; -*- -// -// This file is part of reddsa. -// Copyright (c) 2019-2021 Zcash Foundation -// See LICENSE for licensing information. -// -// Authors: -// - Henry de Valence <hdevalence@hdevalence.ca> - -// /// The byte-encoding of the basepoint for `SpendAuthSig`. -// // Extracted ad-hoc from librustzcash -// // XXX add tests for this value. -pub const SPENDAUTHSIG_BASEPOINT_BYTES: [u8; 32] = [ - 48, 181, 242, 170, 173, 50, 86, 48, 188, 221, 219, 206, 77, 103, 101, 109, 5, 253, 28, 194, - 208, 55, 187, 83, 117, 182, 233, 109, 158, 1, 161, 215, -]; - -// /// The byte-encoding of the basepoint for `BindingSig`. -// // Extracted ad-hoc from librustzcash -// // XXX add tests for this value. -// pub const BINDINGSIG_BASEPOINT_BYTES: [u8; 32] = [ -// 139, 106, 11, 56, 185, 250, 174, 60, 59, 128, 59, 71, 176, 241, 70, 173, 80, 171, 34, 30, -// 110, 42, 251, 230, 219, 222, 69, 203, 169, 211, 129, 237, -// ]; diff --git a/frost/frost-redjubjub/src/hash.rs b/frost/frost-redjubjub/src/hash.rs deleted file mode 100644 index 7dabb44f1..000000000 --- a/frost/frost-redjubjub/src/hash.rs +++ /dev/null @@ -1,58 +0,0 @@ -// -*- mode: rust; -*- -// -// This file was part of reddsa. -// With updates made to support FROST. -// Copyright (c) 2019-2021 Zcash Foundation -// See LICENSE for licensing information. -// -// Authors: -// - Deirdre Connolly <deirdre@zfnd.org> -// - Henry de Valence <hdevalence@hdevalence.ca> - -use blake2::{ - digest::{Mac, Update}, - Blake2bMac512, -}; - -/// Provides H^star, the hash-to-scalar function used by RedDSA. -pub struct HStar { - pub(crate) state: Blake2bMac512, -} - -impl Default for HStar { - fn default() -> Self { - let persona = b"Zcash_RedJubjubH"; - let state = Blake2bMac512::new_with_salt_and_personal(&[], &[], persona).unwrap(); - Self { state } - } -} - -impl HStar { - // Only used by FROST code - #[allow(unused)] - pub(crate) fn new(personalization_string: &[u8]) -> Self { - let state = - Blake2bMac512::new_with_salt_and_personal(&[], &[], personalization_string).unwrap(); - Self { state } - } - - /// Add `data` to the hash, and return `Self` for chaining. - pub fn update(&mut self, data: impl AsRef<[u8]>) -> &mut Self { - Update::update(&mut self.state, data.as_ref()); - self - } - - /// Consume `self` to compute the hash output. - pub fn finalize(&self) -> jubjub::Scalar { - jubjub::Scalar::from_bytes_wide( - self.state - .clone() - .finalize() - .into_bytes() - .to_vec() - .as_slice() - .try_into() - .unwrap_or(&[0u8; 64]), - ) - } -} diff --git a/frost/frost-redjubjub/src/lib.rs b/frost/frost-redjubjub/src/lib.rs deleted file mode 100644 index 4d96491df..000000000 --- a/frost/frost-redjubjub/src/lib.rs +++ /dev/null @@ -1,211 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] -extern crate alloc; - -mod constants; -mod hash; -pub mod types; -use blake2::digest::Mac; -pub use types::*; - -use crate::alloc::borrow::ToOwned; -use group::{ - cofactor::CofactorGroup, - ff::{Field as FFField, PrimeField}, - Group as GGroup, GroupEncoding, -}; -use jubjub::{ExtendedPoint, SubgroupPoint}; - -// Re-exports in our public API -pub use frost_core::{ - error::{FieldError, GroupError}, - traits::{Ciphersuite, Field, Group}, -}; - -#[cfg(feature = "std")] -use rand_core::{CryptoRng, RngCore}; - -use crate::hash::HStar; - -/// The context string for FROST(Jubjub, BLAKE2b-512). -/// TODO: this hasn't been formalized yet, so it's subject to change. -const CONTEXT_STRING: &str = "FROST-RedJubjub-BLAKE2b-512-v1"; - -fn hash_to_array(inputs: &[&[u8]]) -> [u8; 64] { - let mut state = HStar::default(); - for i in &inputs[1..] { - state.update(i); - } - *state - .state - .finalize() - .into_bytes() - .to_vec() - .as_slice() - .try_into() - .unwrap_or(&[0u8; 64]) -} -fn hash_to_scalar(domain: &[u8], msg: &[u8]) -> jubjub::Scalar { - HStar::default().update(domain).update(msg).finalize() -} - -/// An implementation of the FROST(Jubjub, BLAKE2b-512) ciphersuite scalar field. -#[derive(Clone, Copy)] -pub struct JubjubScalarField; - -impl Field for JubjubScalarField { - type Scalar = WrappedScalar; - - type Serialization = [u8; 32]; - - fn zero() -> Self::Scalar { - WrappedScalar(jubjub::Scalar::zero()) - } - - fn one() -> Self::Scalar { - WrappedScalar(jubjub::Scalar::one()) - } - - fn invert(scalar: &Self::Scalar) -> Result<Self::Scalar, FieldError> { - // [`Jubjub::Scalar`]'s Eq/PartialEq does a constant-time comparison using - // `ConstantTimeEq` - if *scalar == <Self as Field>::zero() { - Err(FieldError::InvalidZeroScalar) - } else { - Ok(WrappedScalar(jubjub::Scalar::invert(&scalar.0).unwrap())) - } - } - - #[cfg(feature = "std")] - fn random<R: RngCore + CryptoRng>(rng: &mut R) -> Self::Scalar { - WrappedScalar(jubjub::Scalar::random(rng)) - } - - fn serialize(scalar: &Self::Scalar) -> Self::Serialization { - scalar.0.to_bytes() - } - - fn little_endian_serialize(scalar: &Self::Scalar) -> Self::Serialization { - Self::serialize(scalar) - } - - fn deserialize(buf: &Self::Serialization) -> Result<Self::Scalar, FieldError> { - match jubjub::Scalar::from_repr(*buf).into() { - Some(s) => Ok(WrappedScalar(s)), - None => Err(FieldError::MalformedScalar), - } - } -} - -/// An implementation of the FROST(Jubjub, BLAKE2b-512) ciphersuite group. -#[derive(Clone, Copy, PartialEq, Eq)] -pub struct JubjubGroup; - -impl Group for JubjubGroup { - type Field = JubjubScalarField; - - type Element = WrappedSubgroupPoint; - - type Serialization = [u8; 32]; - - fn cofactor() -> <Self::Field as Field>::Scalar { - Self::Field::one() - } - - fn identity() -> Self::Element { - WrappedSubgroupPoint(SubgroupPoint::identity()) - } - - fn generator() -> Self::Element { - let pt: ExtendedPoint = - jubjub::AffinePoint::from_bytes(&constants::SPENDAUTHSIG_BASEPOINT_BYTES) - .unwrap() - .into(); - WrappedSubgroupPoint(pt.into_subgroup().unwrap()) - } - - fn serialize(element: &Self::Element) -> Self::Serialization { - element.0.to_bytes() - } - - fn deserialize(buf: &Self::Serialization) -> Result<Self::Element, GroupError> { - let point = SubgroupPoint::from_bytes(buf); - - match Option::<SubgroupPoint>::from(point) { - Some(point) => { - if point == SubgroupPoint::identity() { - Err(GroupError::InvalidIdentityElement) - } else { - Ok(WrappedSubgroupPoint(point)) - } - }, - None => Err(GroupError::MalformedElement), - } - } -} - -/// An implementation of the FROST(Jubjub, BLAKE2b-512) ciphersuite. -#[derive(Clone, Copy, Default, PartialEq, Eq, Debug)] -pub struct JubjubBlake2b512; - -impl Ciphersuite for JubjubBlake2b512 { - const ID: &'static str = CONTEXT_STRING; - - type Group = JubjubGroup; - - type HashOutput = [u8; 64]; - - type SignatureSerialization = [u8; 64]; - - /// H1 for FROST(Jubjub, BLAKE2b-512) - fn H1(m: &[u8]) -> <<Self::Group as Group>::Field as Field>::Scalar { - WrappedScalar(hash_to_scalar((CONTEXT_STRING.to_owned() + "rho").as_bytes(), m)) - } - - /// H2 for FROST(Jubjub, BLAKE2b-512) - fn H2(m: &[u8]) -> <<Self::Group as Group>::Field as Field>::Scalar { - WrappedScalar(HStar::default().update(m).finalize()) - } - - /// H3 for FROST(Jubjub, BLAKE2b-512) - fn H3(m: &[u8]) -> <<Self::Group as Group>::Field as Field>::Scalar { - WrappedScalar(hash_to_scalar((CONTEXT_STRING.to_owned() + "nonce").as_bytes(), m)) - } - - /// H4 for FROST(Jubjub, BLAKE2b-512) - fn H4(m: &[u8]) -> Self::HashOutput { - hash_to_array(&[CONTEXT_STRING.as_bytes(), b"msg", m]) - } - - /// H5 for FROST(Jubjub, BLAKE2b-512) - fn H5(m: &[u8]) -> Self::HashOutput { - hash_to_array(&[CONTEXT_STRING.as_bytes(), b"com", m]) - } - - /// HDKG for FROST(Jubjub, BLAKE2b-512) - fn HDKG(m: &[u8]) -> Option<<<Self::Group as Group>::Field as Field>::Scalar> { - Some(WrappedScalar(hash_to_scalar((CONTEXT_STRING.to_owned() + "dkg").as_bytes(), m))) - } - - /// HID for FROST(Jubjub, BLAKE2b-512) - fn HID(m: &[u8]) -> Option<<<Self::Group as Group>::Field as Field>::Scalar> { - Some(WrappedScalar(hash_to_scalar((CONTEXT_STRING.to_owned() + "id").as_bytes(), m))) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use frost_core::{signing_key::SigningKey, verifying_key::VerifyingKey}; - - #[test] - fn test_sign_and_verify() { - let mut rng = rand_core::OsRng; - - let sk = SigningKey::<JubjubBlake2b512>::new(&mut rng); - let vk = VerifyingKey::<JubjubBlake2b512>::from(sk); - - let msg = b"Hello, world!"; - let signature = sk.sign(rng, msg); - assert!(vk.verify(msg, &signature).is_ok()); - } -} diff --git a/frost/frost-redjubjub/src/types.rs b/frost/frost-redjubjub/src/types.rs deleted file mode 100644 index 47757a2ec..000000000 --- a/frost/frost-redjubjub/src/types.rs +++ /dev/null @@ -1,146 +0,0 @@ -use core::ops::{Add, Mul, Neg, Sub}; - -use group::{ff::Field as FFField, GroupEncoding}; -use jubjub::{Scalar, SubgroupPoint}; -use parity_scale_codec::{Decode, Encode}; -use subtle::{Choice, ConditionallyNegatable, ConditionallySelectable}; - -/// A wrapper around a [`ed448_goldilocks::Scalar`] to implement the [`Encode`,`Decode`] -/// traits. -#[derive(Clone, Copy, PartialEq, Eq, Debug)] -pub struct WrappedScalar(pub Scalar); - -impl Encode for WrappedScalar { - fn size_hint(&self) -> usize { - 32 - } - - fn encode_to<W: parity_scale_codec::Output + ?Sized>(&self, dest: &mut W) { - dest.write(self.0.to_bytes().as_ref()); - } -} - -impl Decode for WrappedScalar { - fn decode<I: parity_scale_codec::Input>( - input: &mut I, - ) -> Result<Self, parity_scale_codec::Error> { - let mut bytes = [0u8; 32]; - input.read(&mut bytes)?; - Ok(WrappedScalar(Scalar::from_bytes(&bytes).unwrap_or(Scalar::ZERO))) - } -} - -impl Sub for WrappedScalar { - type Output = WrappedScalar; - - fn sub(self, rhs: WrappedScalar) -> WrappedScalar { - WrappedScalar(self.0 - rhs.0) - } -} - -impl Add for WrappedScalar { - type Output = WrappedScalar; - - fn add(self, rhs: WrappedScalar) -> WrappedScalar { - WrappedScalar(self.0 + rhs.0) - } -} - -impl Mul<WrappedScalar> for WrappedScalar { - type Output = WrappedScalar; - - fn mul(self, rhs: WrappedScalar) -> WrappedScalar { - WrappedScalar(self.0 * rhs.0) - } -} - -impl Neg for WrappedScalar { - type Output = WrappedScalar; - - fn neg(self) -> WrappedScalar { - WrappedScalar(-self.0) - } -} - -impl ConditionallySelectable for WrappedScalar { - fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self { - WrappedScalar(Scalar::conditional_select(&a.0, &b.0, choice)) - } -} - -impl ConditionallyNegatable for WrappedScalar { - fn conditional_negate(&mut self, choice: Choice) { - self.0.conditional_negate(choice); - } -} - -/// A wrapper around a [`curve25519_dalek::edwards::EdwardsPoint`] to implement the -/// [`Encode`,`Decode`] traits. -#[derive(Clone, Copy, PartialEq, Eq, Debug)] -pub struct WrappedSubgroupPoint(pub SubgroupPoint); - -impl Encode for WrappedSubgroupPoint { - fn size_hint(&self) -> usize { - 32 - } - - fn encode_to<W: parity_scale_codec::Output + ?Sized>(&self, dest: &mut W) { - dest.write(self.0.to_bytes().as_ref()); - } -} - -impl Decode for WrappedSubgroupPoint { - fn decode<I: parity_scale_codec::Input>( - input: &mut I, - ) -> Result<Self, parity_scale_codec::Error> { - let mut bytes = [0u8; 32]; - input.read(&mut bytes)?; - Ok(WrappedSubgroupPoint( - SubgroupPoint::from_bytes(&bytes).unwrap_or(SubgroupPoint::default()), - )) - } -} - -impl Sub for WrappedSubgroupPoint { - type Output = WrappedSubgroupPoint; - - fn sub(self, rhs: WrappedSubgroupPoint) -> WrappedSubgroupPoint { - WrappedSubgroupPoint(self.0 - rhs.0) - } -} - -impl Add for WrappedSubgroupPoint { - type Output = WrappedSubgroupPoint; - - fn add(self, rhs: WrappedSubgroupPoint) -> WrappedSubgroupPoint { - WrappedSubgroupPoint(self.0 + rhs.0) - } -} - -impl Mul<WrappedScalar> for WrappedSubgroupPoint { - type Output = WrappedSubgroupPoint; - - fn mul(self, rhs: WrappedScalar) -> WrappedSubgroupPoint { - WrappedSubgroupPoint(self.0 * rhs.0) - } -} - -impl Neg for WrappedSubgroupPoint { - type Output = WrappedSubgroupPoint; - - fn neg(self) -> WrappedSubgroupPoint { - WrappedSubgroupPoint(-self.0) - } -} - -impl ConditionallySelectable for WrappedSubgroupPoint { - fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self { - WrappedSubgroupPoint(SubgroupPoint::conditional_select(&a.0, &b.0, choice)) - } -} - -impl ConditionallyNegatable for WrappedSubgroupPoint { - fn conditional_negate(&mut self, choice: Choice) { - self.0.conditional_negate(choice); - } -}