mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-09 12:49:23 +00:00
Replace Ciphersuite::hash_to_F
The prior-present `Ciphersuite::hash_to_F` was a sin. Implementations took a DST, yet were not require to securely handle it. It was also biased towards the requirements of `modular-frost` as `ciphersuite` was originally written all those years ago, when `modular-frost` had needs exceeding what `ff`, `group` satisfied. Now, the hash is bound to produce an output which can be converted to a scalar with `ff::FromUniformBytes`. A new `hash_to_F`, which accepts a single argument of the value to hash (removing the potential to insecurely handle the DST by removing the DST entirely). Due to `digest` yielding a `GenericArray`, yet `FromUniformBytes` taking a `const usize`, the `ciphersuite` crate now defines a `FromUniformBytes` trait taking an array (then implemented for all satisfiers of `ff::FromUniformBytes`). In order to get the array type from the `GenericArray`, the output of the hash, `digest` is updated to the `0.11` release candidate which moves to `flexible-array` which solves that problem. The existing, specific `hash_to_F` functions have been moved to `modular-frost` as necessary. `flexible-array` itself is patched to a fork due to https://github.com/RustCrypto/hybrid-array/issues/131.
This commit is contained in:
168
Cargo.lock
generated
168
Cargo.lock
generated
@@ -42,7 +42,7 @@ version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
|
||||
dependencies = [
|
||||
"crypto-common",
|
||||
"crypto-common 0.1.6",
|
||||
"generic-array 0.14.7",
|
||||
]
|
||||
|
||||
@@ -353,7 +353,7 @@ dependencies = [
|
||||
"ruint",
|
||||
"rustc-hash 2.1.1",
|
||||
"serde",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"tiny-keccak",
|
||||
]
|
||||
|
||||
@@ -1524,6 +1524,15 @@ dependencies = [
|
||||
"digest 0.10.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "blake2"
|
||||
version = "0.11.0-rc.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ce3d950855224a23299348898f8a2127860e1afea78df3e51deebb89d1cb2f8f"
|
||||
dependencies = [
|
||||
"digest 0.11.0-rc.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "blake2b_simd"
|
||||
version = "1.0.3"
|
||||
@@ -1577,6 +1586,15 @@ dependencies = [
|
||||
"generic-array 0.14.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "block-buffer"
|
||||
version = "0.11.0-rc.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a229bfd78e4827c91b9b95784f69492c1b77c1ab75a45a8a037b139215086f94"
|
||||
dependencies = [
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "blst"
|
||||
version = "0.3.15"
|
||||
@@ -1895,7 +1913,7 @@ version = "0.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
|
||||
dependencies = [
|
||||
"crypto-common",
|
||||
"crypto-common 0.1.6",
|
||||
"inout",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -1904,7 +1922,7 @@ dependencies = [
|
||||
name = "ciphersuite"
|
||||
version = "0.4.2"
|
||||
dependencies = [
|
||||
"digest 0.10.7",
|
||||
"digest 0.11.0-rc.0",
|
||||
"ff",
|
||||
"ff-group-tests",
|
||||
"flexible-transcript",
|
||||
@@ -1929,13 +1947,12 @@ name = "ciphersuite-kp256"
|
||||
version = "0.4.0"
|
||||
dependencies = [
|
||||
"ciphersuite 0.4.2",
|
||||
"elliptic-curve",
|
||||
"ff-group-tests",
|
||||
"hex",
|
||||
"k256",
|
||||
"p256",
|
||||
"rand_core 0.6.4",
|
||||
"sha2 0.10.9",
|
||||
"sha2 0.11.0-rc.0",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
@@ -2326,6 +2343,15 @@ dependencies = [
|
||||
"typenum",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.2.0-rc.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8a23fa214dea9efd4dacee5a5614646b30216ae0f05d4bb51bafb50e9da1c5be"
|
||||
dependencies = [
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ctr"
|
||||
version = "0.9.2"
|
||||
@@ -2440,7 +2466,7 @@ dependencies = [
|
||||
"hex",
|
||||
"rand_core 0.6.4",
|
||||
"rustversion",
|
||||
"sha2 0.10.9",
|
||||
"sha2 0.11.0-rc.0",
|
||||
"subtle",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -2517,7 +2543,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976"
|
||||
dependencies = [
|
||||
"data-encoding",
|
||||
"syn 1.0.109",
|
||||
"syn 2.0.106",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2674,7 +2700,18 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
||||
dependencies = [
|
||||
"block-buffer 0.10.4",
|
||||
"const-oid",
|
||||
"crypto-common",
|
||||
"crypto-common 0.1.6",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.11.0-rc.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "460dd7f37e4950526b54a5a6b1f41b6c8e763c58eb9a8fc8fc05ba5c2f44ca7b"
|
||||
dependencies = [
|
||||
"block-buffer 0.11.0-rc.4",
|
||||
"crypto-common 0.2.0-rc.3",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
@@ -2756,7 +2793,7 @@ dependencies = [
|
||||
name = "dkg-evrf"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"ciphersuite 0.4.2",
|
||||
"ciphersuite-kp256",
|
||||
"dalek-ff-group",
|
||||
@@ -2986,7 +3023,7 @@ dependencies = [
|
||||
name = "embedwards25519"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.11.0-rc.0",
|
||||
"ciphersuite 0.4.2",
|
||||
"curve25519-dalek",
|
||||
"dalek-ff-group",
|
||||
@@ -3102,7 +3139,7 @@ dependencies = [
|
||||
"group",
|
||||
"k256",
|
||||
"rand_core 0.6.4",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"subtle",
|
||||
"tokio",
|
||||
]
|
||||
@@ -3149,7 +3186,7 @@ version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"fs-err",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -3276,10 +3313,10 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
|
||||
name = "flexible-transcript"
|
||||
version = "0.3.4"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"digest 0.10.7",
|
||||
"blake2 0.11.0-rc.0",
|
||||
"digest 0.11.0-rc.0",
|
||||
"merlin",
|
||||
"sha2 0.10.9",
|
||||
"sha2 0.11.0-rc.0",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
@@ -3728,7 +3765,7 @@ name = "generalized-bulletproofs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/monero-oxide/monero-oxide?rev=a6f8797007e768488568b821435cf5006517a962#a6f8797007e768488568b821435cf5006517a962"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"ciphersuite 0.4.99",
|
||||
"ff",
|
||||
"flexible-transcript",
|
||||
@@ -4174,6 +4211,14 @@ version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f"
|
||||
|
||||
[[package]]
|
||||
name = "hybrid-array"
|
||||
version = "0.3.1"
|
||||
source = "git+https://github.com/kayabaNerve/hybrid-array?rev=8caa508976c93696a67f40734537c91be7cecd96#8caa508976c93696a67f40734537c91be7cecd96"
|
||||
dependencies = [
|
||||
"typenum",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "0.14.30"
|
||||
@@ -4685,7 +4730,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "k256"
|
||||
version = "0.13.4"
|
||||
source = "git+https://github.com/kayabaNerve/elliptic-curves?rev=fc92333e222b7f0cbe268d2ca92ed572f71f3e1d#fc92333e222b7f0cbe268d2ca92ed572f71f3e1d"
|
||||
source = "git+https://github.com/kayabaNerve/elliptic-curves?rev=4994c9ab163781a88cd4a49beae812a89a44e8c3#4994c9ab163781a88cd4a49beae812a89a44e8c3"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"ecdsa",
|
||||
@@ -4704,6 +4749,15 @@ dependencies = [
|
||||
"cpufeatures",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "keccak"
|
||||
version = "0.2.0-pre.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7cdd4f0dc5807b9a2b25dd48a3f58e862606fe7bd47f41ecde36e97422d7e90"
|
||||
dependencies = [
|
||||
"cpufeatures",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "keccak-asm"
|
||||
version = "0.1.4"
|
||||
@@ -5936,7 +5990,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"keccak",
|
||||
"keccak 0.1.5",
|
||||
"rand_core 0.6.4",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -5957,7 +6011,7 @@ dependencies = [
|
||||
"hex",
|
||||
"prime-field",
|
||||
"rand_core 0.6.4",
|
||||
"sha3",
|
||||
"sha3 0.11.0-rc.0",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
@@ -6021,10 +6075,10 @@ dependencies = [
|
||||
"ciphersuite 0.4.2",
|
||||
"ciphersuite-kp256",
|
||||
"dalek-ff-group",
|
||||
"digest 0.10.7",
|
||||
"dkg",
|
||||
"dkg-dealer",
|
||||
"dkg-recovery",
|
||||
"elliptic-curve",
|
||||
"flexible-transcript",
|
||||
"hex",
|
||||
"minimal-ed448",
|
||||
@@ -6033,6 +6087,7 @@ dependencies = [
|
||||
"rand_core 0.6.4",
|
||||
"schnorr-signatures",
|
||||
"serde_json",
|
||||
"sha2 0.10.9",
|
||||
"subtle",
|
||||
"thiserror 2.0.16",
|
||||
"zeroize",
|
||||
@@ -6118,7 +6173,7 @@ dependencies = [
|
||||
"dalek-ff-group",
|
||||
"group",
|
||||
"monero-io",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"std-shims",
|
||||
"subtle",
|
||||
]
|
||||
@@ -6172,7 +6227,7 @@ dependencies = [
|
||||
"curve25519-dalek",
|
||||
"monero-generators",
|
||||
"monero-io",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"std-shims",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -6286,7 +6341,7 @@ dependencies = [
|
||||
"digest 0.10.7",
|
||||
"multihash-derive 0.8.0",
|
||||
"sha2 0.10.9",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"unsigned-varint 0.7.2",
|
||||
]
|
||||
|
||||
@@ -6315,7 +6370,7 @@ dependencies = [
|
||||
"ripemd",
|
||||
"sha1",
|
||||
"sha2 0.10.9",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"strobe-rs",
|
||||
]
|
||||
|
||||
@@ -6714,8 +6769,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
|
||||
[[package]]
|
||||
name = "p256"
|
||||
version = "0.13.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
|
||||
source = "git+https://github.com/kayabaNerve/elliptic-curves?rev=4994c9ab163781a88cd4a49beae812a89a44e8c3#4994c9ab163781a88cd4a49beae812a89a44e8c3"
|
||||
dependencies = [
|
||||
"ecdsa",
|
||||
"elliptic-curve",
|
||||
@@ -6873,7 +6927,7 @@ version = "0.4.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"crc32fast",
|
||||
"fs2",
|
||||
"hex",
|
||||
@@ -7245,8 +7299,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "primeorder"
|
||||
version = "0.13.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
|
||||
source = "git+https://github.com/kayabaNerve/elliptic-curves?rev=4994c9ab163781a88cd4a49beae812a89a44e8c3#4994c9ab163781a88cd4a49beae812a89a44e8c3"
|
||||
dependencies = [
|
||||
"elliptic-curve",
|
||||
]
|
||||
@@ -9539,7 +9592,7 @@ dependencies = [
|
||||
name = "secq256k1"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.11.0-rc.0",
|
||||
"ciphersuite 0.4.2",
|
||||
"ff-group-tests",
|
||||
"generalized-bulletproofs-ec-gadgets",
|
||||
@@ -9692,7 +9745,7 @@ dependencies = [
|
||||
"async-lock",
|
||||
"bitcoin",
|
||||
"bitvec",
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"ciphersuite 0.4.2",
|
||||
"ciphersuite-kp256",
|
||||
@@ -9754,7 +9807,7 @@ name = "serai-coordinator"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"ciphersuite 0.4.2",
|
||||
"dalek-ff-group",
|
||||
@@ -9791,7 +9844,7 @@ name = "serai-coordinator-libp2p-p2p"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"futures-util",
|
||||
"hex",
|
||||
@@ -9845,7 +9898,7 @@ dependencies = [
|
||||
name = "serai-coordinator-tributary"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"ciphersuite 0.4.2",
|
||||
"dalek-ff-group",
|
||||
@@ -9868,7 +9921,7 @@ dependencies = [
|
||||
name = "serai-cosign"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"log",
|
||||
"parity-scale-codec",
|
||||
@@ -10408,7 +10461,7 @@ dependencies = [
|
||||
name = "serai-processor-key-gen"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"ciphersuite 0.4.2",
|
||||
"dkg-evrf",
|
||||
@@ -10456,7 +10509,7 @@ dependencies = [
|
||||
name = "serai-processor-scanner"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"group",
|
||||
"hex",
|
||||
@@ -10488,7 +10541,7 @@ dependencies = [
|
||||
name = "serai-processor-signers"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"borsh",
|
||||
"ciphersuite 0.4.2",
|
||||
"dalek-ff-group",
|
||||
@@ -10887,6 +10940,17 @@ dependencies = [
|
||||
"digest 0.10.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.11.0-rc.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "aa1d2e6b3cc4e43a8258a9a3b17aa5dfd2cc5186c7024bba8a64aa65b2c71a59"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"digest 0.11.0-rc.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha3"
|
||||
version = "0.10.8"
|
||||
@@ -10894,7 +10958,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
|
||||
dependencies = [
|
||||
"digest 0.10.7",
|
||||
"keccak",
|
||||
"keccak 0.1.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha3"
|
||||
version = "0.11.0-rc.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b9e6a92fd180fd205defdc0b78288ce847c7309d329fd6647a814567e67db50e"
|
||||
dependencies = [
|
||||
"digest 0.11.0-rc.0",
|
||||
"keccak 0.2.0-pre.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -11026,7 +11100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85"
|
||||
dependencies = [
|
||||
"aes-gcm",
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"chacha20poly1305",
|
||||
"curve25519-dalek",
|
||||
"rand_core 0.6.4",
|
||||
@@ -11114,7 +11188,7 @@ version = "4.0.0-dev"
|
||||
source = "git+https://github.com/serai-dex/substrate#8587cd89bec74f789d4e23fdf776508a0ed5db6f"
|
||||
dependencies = [
|
||||
"Inflector",
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"expander",
|
||||
"proc-macro-crate 1.3.1",
|
||||
"proc-macro2",
|
||||
@@ -11260,7 +11334,7 @@ source = "git+https://github.com/serai-dex/substrate#8587cd89bec74f789d4e23fdf77
|
||||
dependencies = [
|
||||
"array-bytes",
|
||||
"bitflags 1.3.2",
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"bounded-collections",
|
||||
"bs58",
|
||||
"dyn-clonable",
|
||||
@@ -11304,7 +11378,7 @@ dependencies = [
|
||||
"blake2b_simd",
|
||||
"byteorder",
|
||||
"digest 0.10.7",
|
||||
"sha3",
|
||||
"sha3 0.10.8",
|
||||
"twox-hash",
|
||||
]
|
||||
|
||||
@@ -11799,7 +11873,7 @@ checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"byteorder",
|
||||
"keccak",
|
||||
"keccak 0.1.5",
|
||||
"subtle",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -12534,7 +12608,7 @@ dependencies = [
|
||||
name = "tributary-sdk"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
"blake2 0.10.6",
|
||||
"ciphersuite 0.4.2",
|
||||
"dalek-ff-group",
|
||||
"flexible-transcript",
|
||||
@@ -12747,7 +12821,7 @@ version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
|
||||
dependencies = [
|
||||
"crypto-common",
|
||||
"crypto-common 0.1.6",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user