diff --git a/.gitmodules b/.gitmodules index feaf87d1..63a704f2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "sign/monero/c/monero"] - path = sign/monero/c/monero +[submodule "coins/monero/c/monero"] + path = coins/monero/c/monero url = https://github.com/monero-project/monero diff --git a/Cargo.toml b/Cargo.toml index 94cb90cd..cc003a45 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,5 +3,5 @@ members = [ "sign/frost", "sign/dalek-ff-group", - "sign/monero", + "coins/monero", ] diff --git a/sign/monero/.gitignore b/coins/monero/.gitignore similarity index 100% rename from sign/monero/.gitignore rename to coins/monero/.gitignore diff --git a/sign/monero/Cargo.toml b/coins/monero/Cargo.toml similarity index 100% rename from sign/monero/Cargo.toml rename to coins/monero/Cargo.toml diff --git a/sign/monero/LICENSE b/coins/monero/LICENSE similarity index 100% rename from sign/monero/LICENSE rename to coins/monero/LICENSE diff --git a/sign/monero/build.rs b/coins/monero/build.rs similarity index 100% rename from sign/monero/build.rs rename to coins/monero/build.rs diff --git a/sign/monero/c/monero b/coins/monero/c/monero similarity index 100% rename from sign/monero/c/monero rename to coins/monero/c/monero diff --git a/sign/monero/c/wrapper.c b/coins/monero/c/wrapper.c similarity index 100% rename from sign/monero/c/wrapper.c rename to coins/monero/c/wrapper.c diff --git a/sign/monero/src/clsag/mod.rs b/coins/monero/src/clsag/mod.rs similarity index 100% rename from sign/monero/src/clsag/mod.rs rename to coins/monero/src/clsag/mod.rs diff --git a/sign/monero/src/clsag/multisig.rs b/coins/monero/src/clsag/multisig.rs similarity index 100% rename from sign/monero/src/clsag/multisig.rs rename to coins/monero/src/clsag/multisig.rs diff --git a/sign/monero/src/frost.rs b/coins/monero/src/frost.rs similarity index 100% rename from sign/monero/src/frost.rs rename to coins/monero/src/frost.rs diff --git a/sign/monero/src/key_image/mod.rs b/coins/monero/src/key_image/mod.rs similarity index 100% rename from sign/monero/src/key_image/mod.rs rename to coins/monero/src/key_image/mod.rs diff --git a/sign/monero/src/key_image/multisig.rs b/coins/monero/src/key_image/multisig.rs similarity index 100% rename from sign/monero/src/key_image/multisig.rs rename to coins/monero/src/key_image/multisig.rs diff --git a/sign/monero/src/lib.rs b/coins/monero/src/lib.rs similarity index 100% rename from sign/monero/src/lib.rs rename to coins/monero/src/lib.rs diff --git a/sign/monero/tests/clsag.rs b/coins/monero/tests/clsag.rs similarity index 100% rename from sign/monero/tests/clsag.rs rename to coins/monero/tests/clsag.rs diff --git a/sign/monero/tests/frost.rs b/coins/monero/tests/frost.rs similarity index 100% rename from sign/monero/tests/frost.rs rename to coins/monero/tests/frost.rs diff --git a/sign/monero/tests/key_image.rs b/coins/monero/tests/key_image.rs similarity index 100% rename from sign/monero/tests/key_image.rs rename to coins/monero/tests/key_image.rs diff --git a/sign/dalek-ff-group/Cargo.toml b/sign/dalek-ff-group/Cargo.toml index 4dcec3cf..55140724 100644 --- a/sign/dalek-ff-group/Cargo.toml +++ b/sign/dalek-ff-group/Cargo.toml @@ -8,6 +8,7 @@ edition = "2021" [dependencies] rand_core = "0.6" +digest = "0.10" subtle = "2.4" diff --git a/sign/dalek-ff-group/src/lib.rs b/sign/dalek-ff-group/src/lib.rs index 47f3b7ca..f1f0b3cf 100644 --- a/sign/dalek-ff-group/src/lib.rs +++ b/sign/dalek-ff-group/src/lib.rs @@ -5,6 +5,7 @@ use core::{ }; use rand_core::RngCore; +use digest::{consts::U64, Digest}; use subtle::{Choice, CtOption, ConstantTimeEq, ConditionallySelectable}; @@ -146,6 +147,14 @@ impl PrimeField for Scalar { fn root_of_unity() -> Self { unimplemented!() } } +impl Scalar { + pub fn from_hash>(hash: D) -> Scalar { + let mut output = [0u8; 64]; + output.copy_from_slice(&hash.finalize()); + Scalar(DScalar::from_bytes_mod_order_wide(&output)) + } +} + #[derive(Clone, Copy, PartialEq, Eq, Debug)] pub struct EdwardsPoint(pub DPoint); pub const ED25519_BASEPOINT_POINT: EdwardsPoint = EdwardsPoint(constants::ED25519_BASEPOINT_POINT);