From 2a05d77d94efe860e701afb8fe7713bcc4c95590 Mon Sep 17 00:00:00 2001 From: Jedrzej Stuczynski Date: Fri, 10 Jan 2020 11:49:49 +0000 Subject: [PATCH] Initial crypto crate --- Cargo.lock | 9 +++++ Cargo.toml | 1 + clients/nym-client/src/identity/mixnet.rs | 33 ------------------- clients/nym-client/src/identity/mod.rs | 1 - clients/nym-client/src/identity/validators.rs | 1 - common/crypto/Cargo.toml | 12 +++++++ common/crypto/src/lib.rs | 2 ++ 7 files changed, 24 insertions(+), 35 deletions(-) delete mode 100644 clients/nym-client/src/identity/mixnet.rs delete mode 100644 clients/nym-client/src/identity/mod.rs delete mode 100644 clients/nym-client/src/identity/validators.rs create mode 100644 common/crypto/Cargo.toml create mode 100644 common/crypto/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 4ae6441c1b..95cc9c762e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -400,6 +400,15 @@ dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crypto" +version = "0.1.0" +dependencies = [ + "curve25519-dalek 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crypto-mac" version = "0.7.0" diff --git a/Cargo.toml b/Cargo.toml index 585ac0c362..22f7202d67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ members = [ "clients/provider-client", "clients/validator-client", "common/addressing", + "common/crypto", "common/topology", "mixnode", "sfw-provider", diff --git a/clients/nym-client/src/identity/mixnet.rs b/clients/nym-client/src/identity/mixnet.rs deleted file mode 100644 index 10e081a4fa..0000000000 --- a/clients/nym-client/src/identity/mixnet.rs +++ /dev/null @@ -1,33 +0,0 @@ -use curve25519_dalek::montgomery::MontgomeryPoint; -use curve25519_dalek::scalar::Scalar; - -// This keypair serves as the user's identity within the Mixnet -pub struct KeyPair { - pub private: Scalar, - pub public: MontgomeryPoint, -} - -impl KeyPair { - pub fn new() -> KeyPair { - let (private, public) = sphinx::crypto::keygen(); - KeyPair { private, public } - } - - pub fn from_bytes(private_bytes: Vec, public_bytes: Vec) -> KeyPair { - let mut bytes = [0; 32]; - bytes.copy_from_slice(&private_bytes[..]); - let private = Scalar::from_canonical_bytes(bytes).unwrap(); - let mut bytes = [0; 32]; - bytes.copy_from_slice(&public_bytes[..]); - let public = MontgomeryPoint(bytes); - KeyPair { private, public } - } - - pub fn private_bytes(&self) -> [u8; 32] { - self.private.to_bytes() - } - - pub fn public_bytes(&self) -> [u8; 32] { - self.public.to_bytes() - } -} diff --git a/clients/nym-client/src/identity/mod.rs b/clients/nym-client/src/identity/mod.rs deleted file mode 100644 index ae7f01c0eb..0000000000 --- a/clients/nym-client/src/identity/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod mixnet; diff --git a/clients/nym-client/src/identity/validators.rs b/clients/nym-client/src/identity/validators.rs deleted file mode 100644 index b18c85b0b2..0000000000 --- a/clients/nym-client/src/identity/validators.rs +++ /dev/null @@ -1 +0,0 @@ -// TODO types for Validator keys will go in here once we hook this up. diff --git a/common/crypto/Cargo.toml b/common/crypto/Cargo.toml new file mode 100644 index 0000000000..f9e58cb9b6 --- /dev/null +++ b/common/crypto/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "crypto" +version = "0.1.0" +authors = ["Jedrzej Stuczynski