diff --git a/Cargo.lock b/Cargo.lock index bd2cfa2a..cfdeaeb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2224,7 +2224,6 @@ dependencies = [ "radicle-ssh", "serde", "serde_json", - "sha2 0.10.6", "siphasher", "sqlite", "tempfile", diff --git a/radicle-crypto/Cargo.toml b/radicle-crypto/Cargo.toml index f503e8c6..59f3b986 100644 --- a/radicle-crypto/Cargo.toml +++ b/radicle-crypto/Cargo.toml @@ -10,13 +10,14 @@ edition = "2021" [features] test = ["fastrand", "quickcheck"] -ssh = ["base64", "radicle-ssh", "sha2", "ssh-key"] +ssh = ["base64", "radicle-ssh", "ssh-key"] [dependencies] ed25519-compact = { version = "2.0.2", features = ["pem"] } cyphernet = { version = "0", optional = true } multibase = { version = "0.9.1" } serde = { version = "1", features = ["derive"] } +sha2 = { version = "0.10.2" } sqlite = { version = "0.28.1", optional = true } thiserror = { version = "1" } zeroize = { version = "1.5.7" } @@ -47,10 +48,6 @@ version = "0" default-features = false optional = true -[dependencies.sha2] -version = "0.10.2" -optional = true - [dependencies.base64] version = "0.13" optional = true diff --git a/radicle/src/hash.rs b/radicle-crypto/src/hash.rs similarity index 100% rename from radicle/src/hash.rs rename to radicle-crypto/src/hash.rs diff --git a/radicle-crypto/src/lib.rs b/radicle-crypto/src/lib.rs index c6ff9b0a..6ae4f02b 100644 --- a/radicle-crypto/src/lib.rs +++ b/radicle-crypto/src/lib.rs @@ -10,6 +10,7 @@ pub use ed25519::{Error, KeyPair, Seed}; #[cfg(any(test, feature = "test"))] pub mod test; +pub mod hash; #[cfg(feature = "ssh")] pub mod ssh; diff --git a/radicle-crypto/src/test/arbitrary.rs b/radicle-crypto/src/test/arbitrary.rs index 1610166c..cb29ddc4 100644 --- a/radicle-crypto/src/test/arbitrary.rs +++ b/radicle-crypto/src/test/arbitrary.rs @@ -1,6 +1,6 @@ use quickcheck::Arbitrary; -use crate::{test::signer::MockSigner, KeyPair, PublicKey, SecretKey, Seed}; +use crate::{hash, test::signer::MockSigner, KeyPair, PublicKey, SecretKey, Seed}; impl Arbitrary for MockSigner { fn arbitrary(g: &mut quickcheck::Gen) -> Self { @@ -22,6 +22,13 @@ impl Arbitrary for PublicKey { } } +impl Arbitrary for hash::Digest { + fn arbitrary(g: &mut quickcheck::Gen) -> Self { + let bytes: Vec = Arbitrary::arbitrary(g); + hash::Digest::new(&bytes) + } +} + #[derive(Clone, Debug)] pub struct ByteArray([u8; N]); diff --git a/radicle-node/src/lib.rs b/radicle-node/src/lib.rs index 1119eca9..adc15c18 100644 --- a/radicle-node/src/lib.rs +++ b/radicle-node/src/lib.rs @@ -13,13 +13,13 @@ pub mod tests; pub mod wire; pub use nakamoto_net::{Io, Link, LocalDuration, LocalTime}; -pub use radicle::{collections, crypto, git, hash, identity, node, profile, rad, storage}; +pub use radicle::{collections, crypto, git, identity, node, profile, rad, storage}; pub mod prelude { pub use crate::clock::Timestamp; + pub use crate::crypto::hash::Digest; pub use crate::crypto::{PublicKey, Signature, Signer}; pub use crate::deserializer::Deserializer; - pub use crate::hash::Digest; pub use crate::identity::{Did, Id}; pub use crate::service::filter::Filter; pub use crate::service::message::Address; diff --git a/radicle-node/src/wire.rs b/radicle-node/src/wire.rs index e5ad954b..df751262 100644 --- a/radicle-node/src/wire.rs +++ b/radicle-node/src/wire.rs @@ -13,11 +13,11 @@ use nakamoto_net as nakamoto; use nakamoto_net::{Link, LocalTime}; use crate::address; +use crate::crypto::hash::Digest; use crate::crypto::{PublicKey, Signature, Signer, Unverified}; use crate::deserializer::Deserializer; use crate::git; use crate::git::fmt; -use crate::hash::Digest; use crate::identity::Id; use crate::node; use crate::service; diff --git a/radicle/Cargo.toml b/radicle/Cargo.toml index 4a90108c..7f8bb1d5 100644 --- a/radicle/Cargo.toml +++ b/radicle/Cargo.toml @@ -23,7 +23,6 @@ multibase = { version = "0.9.1" } log = { version = "0.4.17", features = ["std"] } once_cell = { version = "1.13" } olpc-cjson = { version = "0.1.1" } -sha2 = { version = "0.10.2" } serde = { version = "1", features = ["derive"] } serde_json = { version = "1", features = ["preserve_order"] } siphasher = { version = "0.3.10" } diff --git a/radicle/src/lib.rs b/radicle/src/lib.rs index 451c4e9c..e292629f 100644 --- a/radicle/src/lib.rs +++ b/radicle/src/lib.rs @@ -8,7 +8,6 @@ pub extern crate radicle_crypto as crypto; pub mod cob; pub mod collections; pub mod git; -pub mod hash; pub mod identity; pub mod node; pub mod profile; diff --git a/radicle/src/test/arbitrary.rs b/radicle/src/test/arbitrary.rs index 0e6c4d43..7b185a06 100644 --- a/radicle/src/test/arbitrary.rs +++ b/radicle/src/test/arbitrary.rs @@ -10,7 +10,6 @@ use quickcheck::Arbitrary; use crate::collections::HashMap; use crate::git; -use crate::hash; use crate::identity::{project::Delegate, project::Doc, Did, Id}; use crate::storage; use crate::storage::refs::{Refs, SignedRefs}; @@ -198,10 +197,3 @@ impl Arbitrary for Id { Id::from(oid) } } - -impl Arbitrary for hash::Digest { - fn arbitrary(g: &mut quickcheck::Gen) -> Self { - let bytes: Vec = Arbitrary::arbitrary(g); - hash::Digest::new(&bytes) - } -}