diff --git a/Cargo.lock b/Cargo.lock index cf446df..d541a94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -356,6 +356,23 @@ dependencies = [ "url", ] +[[package]] +name = "fluence-identity" +version = "0.2.0" +dependencies = [ + "bs58 0.3.1", + "derivative", + "ed25519-dalek", + "failure", + "fluence-fork-libp2p-core", + "log", + "rand 0.7.3", + "ref-cast", + "serde", + "serde_json", + "signature", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1325,6 +1342,7 @@ dependencies = [ "ed25519-dalek", "failure", "fluence-fork-libp2p-core", + "fluence-identity", "log", "rand 0.7.3", "ref-cast", diff --git a/Cargo.toml b/Cargo.toml index cab4ac2..3d17ace 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ license = "Apache-2.0" [dependencies] libp2p-core = { package = "fluence-fork-libp2p-core", version = "0.26.0" } serde = { version = "=1.0.118", features = ["derive"] } +fluence-identity = { path = "identity" } serde_json = "1.0.58" bs58 = "0.3.1" failure = "0.1.6" diff --git a/bin/Cargo.lock b/bin/Cargo.lock index be06a28..8e53f3b 100644 --- a/bin/Cargo.lock +++ b/bin/Cargo.lock @@ -366,6 +366,23 @@ dependencies = [ "url", ] +[[package]] +name = "fluence-identity" +version = "0.2.0" +dependencies = [ + "bs58 0.3.1", + "derivative", + "ed25519-dalek", + "failure", + "fluence-fork-libp2p-core", + "log", + "rand 0.7.3", + "ref-cast", + "serde", + "serde_json", + "signature", +] + [[package]] name = "fluence-sdk-macro" version = "0.2.18" @@ -1369,6 +1386,7 @@ dependencies = [ "ed25519-dalek", "failure", "fluence-fork-libp2p-core", + "fluence-identity", "log", "rand 0.7.3", "ref-cast", diff --git a/identity/Cargo.toml b/identity/Cargo.toml new file mode 100644 index 0000000..f72c77f --- /dev/null +++ b/identity/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "fluence-identity" +version = "0.2.0" +authors = ["Fluence Labs"] +edition = "2018" +description = "identity" +license = "Apache-2.0" + +[dependencies] +libp2p-core = { package = "fluence-fork-libp2p-core", version = "0.26.0" } +serde = { version = "=1.0.118", features = ["derive"] } +serde_json = "1.0.58" +bs58 = "0.3.1" +failure = "0.1.6" +log = "0.4.11" +ref-cast = "1.0.2" +derivative = "2.1.1" +ed25519-dalek = "1.0.1" +rand = "0.7.0" +signature = "1.3.0" diff --git a/src/key_pair.rs b/identity/src/key_pair.rs similarity index 100% rename from src/key_pair.rs rename to identity/src/key_pair.rs diff --git a/identity/src/lib.rs b/identity/src/lib.rs new file mode 100644 index 0000000..9f6f5a8 --- /dev/null +++ b/identity/src/lib.rs @@ -0,0 +1,33 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#![recursion_limit = "512"] +#![warn(rust_2018_idioms)] +#![deny( + dead_code, + nonstandard_style, + unused_imports, + unused_mut, + unused_variables, + unused_unsafe, + unreachable_patterns +)] + +pub mod key_pair; + +pub use key_pair::KeyPair; + +pub(crate) use libp2p_core::identity::ed25519; diff --git a/src/certificate.rs b/src/certificate.rs index 8b7bfac..a2522f9 100644 --- a/src/certificate.rs +++ b/src/certificate.rs @@ -15,7 +15,7 @@ */ use ed25519_dalek::PublicKey; -use crate::key_pair::KeyPair; +use fluence_identity::key_pair::KeyPair; use crate::trust::{Trust, TRUST_LEN}; use std::str::FromStr; use std::time::Duration; @@ -237,7 +237,7 @@ mod tests { use super::*; use crate::misc::current_time; use std::time::{Duration, SystemTime, UNIX_EPOCH}; - use crate::key_pair::KeyPair; + use fluence_identity::key_pair::KeyPair; pub fn one_second() -> Duration { Duration::from_secs(1) diff --git a/src/lib.rs b/src/lib.rs index e338c14..9672dfc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -28,7 +28,6 @@ mod certificate; pub mod certificate_serde; -mod key_pair; mod misc; mod public_key_hashable; mod revoke; @@ -37,10 +36,7 @@ mod trust_graph; mod trust_graph_storage; mod trust_node; -pub(crate) use libp2p_core::identity::ed25519; - pub use crate::certificate::Certificate; -pub use crate::key_pair::KeyPair; pub use crate::misc::current_time; pub use crate::public_key_hashable::PublicKeyHashable; pub use crate::trust::Trust; diff --git a/src/revoke.rs b/src/revoke.rs index 5927e93..27acf8d 100644 --- a/src/revoke.rs +++ b/src/revoke.rs @@ -15,8 +15,8 @@ */ use ed25519_dalek::PublicKey; -use crate::key_pair::KeyPair; -use crate::key_pair::Signature; +use fluence_identity::key_pair::KeyPair; +use fluence_identity::key_pair::Signature; use crate::trust::{EXPIRATION_LEN, PK_LEN}; use std::time::Duration; diff --git a/src/trust.rs b/src/trust.rs index 7794ef0..8db00e7 100644 --- a/src/trust.rs +++ b/src/trust.rs @@ -15,7 +15,7 @@ */ use ed25519_dalek::{PublicKey}; -use crate::key_pair::{KeyPair, Signature}; +use fluence_identity::key_pair::{KeyPair, Signature}; use derivative::Derivative; use std::convert::TryInto; use std::time::Duration; diff --git a/src/trust_graph.rs b/src/trust_graph.rs index 4290a77..f947024 100644 --- a/src/trust_graph.rs +++ b/src/trust_graph.rs @@ -279,7 +279,7 @@ impl TrustGraph { #[cfg(test)] mod tests { use super::*; - use crate::key_pair::KeyPair; + use fluence_identity::key_pair::KeyPair; use crate::misc::current_time; use crate::trust_graph_storage::InMemoryStorage; use failure::_core::time::Duration; diff --git a/src/trust_node.rs b/src/trust_node.rs index 8e1675b..830299d 100644 --- a/src/trust_node.rs +++ b/src/trust_node.rs @@ -150,7 +150,7 @@ impl TrustNode { mod tests { use std::time::Duration; - use crate::key_pair::KeyPair; + use fluence_identity::key_pair::KeyPair; use super::*;