diff --git a/Cargo.lock b/Cargo.lock index a412347bde5c0..531ed96690d42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5273,8 +5273,8 @@ dependencies = [ "pallet-identity", "parity-scale-codec", "scale-info", - "sha2 0.10.6", "sp-core", + "sp-core-hashing", "sp-io", "sp-runtime", "sp-std", diff --git a/frame/alliance/Cargo.toml b/frame/alliance/Cargo.toml index d6a16e2c32e36..d70dfd6d752eb 100644 --- a/frame/alliance/Cargo.toml +++ b/frame/alliance/Cargo.toml @@ -14,7 +14,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] array-bytes = { version = "4.1", optional = true } -sha2 = { version = "0.10.1", default-features = false, optional = true } log = { version = "0.4.14", default-features = false } codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] } @@ -22,6 +21,7 @@ scale-info = { version = "2.0.1", default-features = false, features = ["derive" sp-std = { version = "5.0.0", default-features = false, path = "../../primitives/std" } sp-core = { version = "7.0.0", default-features = false, path = "../../primitives/core" } +sp-core-hashing = { version = "5.0.0", default-features = false, path = "../../primitives/core/hashing", optional = true } sp-io = { version = "7.0.0", default-features = false, path = "../../primitives/io" } sp-runtime = { version = "7.0.0", default-features = false, path = "../../primitives/runtime" } @@ -34,13 +34,14 @@ pallet-collective = { version = "4.0.0-dev", path = "../collective", default-fea [dev-dependencies] array-bytes = "4.1" -sha2 = "0.10.1" +sp-core-hashing = { version = "5.0.0", default-features = false, path = "../../primitives/core/hashing" } pallet-balances = { version = "4.0.0-dev", path = "../balances" } pallet-collective = { version = "4.0.0-dev", path = "../collective" } [features] default = ["std"] std = [ + "sp-core-hashing?/std", "pallet-collective?/std", "frame-benchmarking?/std", "log/std", @@ -56,7 +57,7 @@ std = [ ] runtime-benchmarks = [ "array-bytes", - "sha2", + "sp-core-hashing", "frame-benchmarking/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "frame-support/runtime-benchmarks", diff --git a/frame/alliance/src/benchmarking.rs b/frame/alliance/src/benchmarking.rs index a30b5adcee3ed..92bf1ae4468df 100644 --- a/frame/alliance/src/benchmarking.rs +++ b/frame/alliance/src/benchmarking.rs @@ -40,11 +40,8 @@ fn assert_last_event, I: 'static>(generic_event: >:: } fn cid(input: impl AsRef<[u8]>) -> Cid { - use sha2::{Digest, Sha256}; - let mut hasher = Sha256::new(); - hasher.update(input); - let result = hasher.finalize(); - Cid::new_v0(&*result) + let result = sp_core_hashing::sha2_256(input.as_ref()); + Cid::new_v0(result) } fn rule(input: impl AsRef<[u8]>) -> Cid { diff --git a/frame/alliance/src/mock.rs b/frame/alliance/src/mock.rs index 0925a82fdbfa3..b8fd998eb20a0 100644 --- a/frame/alliance/src/mock.rs +++ b/frame/alliance/src/mock.rs @@ -368,11 +368,8 @@ pub fn new_bench_ext() -> sp_io::TestExternalities { } pub fn test_cid() -> Cid { - use sha2::{Digest, Sha256}; - let mut hasher = Sha256::new(); - hasher.update(b"hello world"); - let result = hasher.finalize(); - Cid::new_v0(&*result) + let result = sp_core_hashing::sha2_256(b"hello world"); + Cid::new_v0(result) } pub fn make_remark_proposal(value: u64) -> (RuntimeCall, u32, H256) { diff --git a/primitives/core/hashing/src/lib.rs b/primitives/core/hashing/src/lib.rs index 5bb68586a1340..26941bb60fa51 100644 --- a/primitives/core/hashing/src/lib.rs +++ b/primitives/core/hashing/src/lib.rs @@ -35,48 +35,22 @@ pub fn blake2_512_into(data: &[u8], dest: &mut [u8; 64]) { /// Do a Blake2 512-bit hash and return result. pub fn blake2_512(data: &[u8]) -> [u8; 64] { - let mut r = [0; 64]; - blake2_512_into(data, &mut r); - r -} - -/// Do a Blake2 256-bit hash and place result in `dest`. -pub fn blake2_256_into(data: &[u8], dest: &mut [u8; 32]) { - type Blake2b256 = blake2::Blake2b; - dest.copy_from_slice(Blake2b256::digest(data).as_slice()); + blake2::Blake2b512::digest(data).into() } /// Do a Blake2 256-bit hash and return result. pub fn blake2_256(data: &[u8]) -> [u8; 32] { - let mut r = [0; 32]; - blake2_256_into(data, &mut r); - r -} - -/// Do a Blake2 128-bit hash and place result in `dest`. -pub fn blake2_128_into(data: &[u8], dest: &mut [u8; 16]) { - type Blake2b128 = blake2::Blake2b; - dest.copy_from_slice(Blake2b128::digest(data).as_slice()); + blake2::Blake2b::::digest(data).into() } /// Do a Blake2 128-bit hash and return result. pub fn blake2_128(data: &[u8]) -> [u8; 16] { - let mut r = [0; 16]; - blake2_128_into(data, &mut r); - r -} - -/// Do a Blake2 64-bit hash and place result in `dest`. -pub fn blake2_64_into(data: &[u8], dest: &mut [u8; 8]) { - type Blake2b64 = blake2::Blake2b; - dest.copy_from_slice(Blake2b64::digest(data).as_slice()); + blake2::Blake2b::::digest(data).into() } /// Do a Blake2 64-bit hash and return result. pub fn blake2_64(data: &[u8]) -> [u8; 8] { - let mut r = [0; 8]; - blake2_64_into(data, &mut r); - r + blake2::Blake2b::::digest(data).into() } /// Do a XX 64-bit hash and place result in `dest`. @@ -128,21 +102,15 @@ pub fn twox_256(data: &[u8]) -> [u8; 32] { /// Do a keccak 256-bit hash and return result. pub fn keccak_256(data: &[u8]) -> [u8; 32] { - let mut output = [0u8; 32]; - output.copy_from_slice(sha3::Keccak256::digest(data).as_slice()); - output + sha3::Keccak256::digest(data).into() } /// Do a keccak 512-bit hash and return result. pub fn keccak_512(data: &[u8]) -> [u8; 64] { - let mut output = [0u8; 64]; - output.copy_from_slice(sha3::Keccak512::digest(data).as_slice()); - output + sha3::Keccak512::digest(data).into() } /// Do a sha2 256-bit hash and return result. pub fn sha2_256(data: &[u8]) -> [u8; 32] { - let mut output = [0u8; 32]; - output.copy_from_slice(sha2::Sha256::digest(data).as_slice()); - output + sha2::Sha256::digest(data).into() }