From da96ea94bd8143a00162159605bde6fc6802df62 Mon Sep 17 00:00:00 2001 From: ryan Date: Fri, 25 Aug 2023 04:27:16 -0500 Subject: [PATCH] keyforkd: extract DerivablePath --- Cargo.lock | 8 ++++++++ Cargo.toml | 1 + keyfork-derive-util/Cargo.toml | 9 +++++++++ keyfork-derive-util/src/lib.rs | 24 ++++++++++++++++++++++++ keyforkd/Cargo.toml | 1 + keyforkd/src/server.rs | 3 ++- keyforkd/src/service.rs | 24 +----------------------- 7 files changed, 46 insertions(+), 24 deletions(-) create mode 100644 keyfork-derive-util/Cargo.toml create mode 100644 keyfork-derive-util/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 15d5375..b36f399 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -253,6 +253,13 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "keyfork-derive-util" +version = "0.1.0" +dependencies = [ + "serde", +] + [[package]] name = "keyfork-frame" version = "0.1.0" @@ -287,6 +294,7 @@ version = "0.1.0" dependencies = [ "bincode", "dirs", + "keyfork-derive-util", "keyfork-frame", "keyfork-mnemonic-util", "serde", diff --git a/Cargo.toml b/Cargo.toml index 323fc92..b824636 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ members = [ "keyfork-mnemonic-generate", "keyfork-mnemonic-util", + "keyfork-derive-util", "keyforkd", "keyfork-frame" ] diff --git a/keyfork-derive-util/Cargo.toml b/keyfork-derive-util/Cargo.toml new file mode 100644 index 0000000..e7c3b63 --- /dev/null +++ b/keyfork-derive-util/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "keyfork-derive-util" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +serde = { version = "1.0.186", features = ["derive"] } diff --git a/keyfork-derive-util/src/lib.rs b/keyfork-derive-util/src/lib.rs new file mode 100644 index 0000000..5d48502 --- /dev/null +++ b/keyfork-derive-util/src/lib.rs @@ -0,0 +1,24 @@ +use serde::{Serialize, Deserialize}; + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct DerivablePath { + pub(crate) path: Vec, +} + +// TODO: move DerivablePath into a models crate for clients to produce? +/* +impl DerivablePath { + pub fn new(input: &[&[u8]]) -> DerivablePath { + DerivablePath { + path: input + .iter() + .map(|&word| { + // perform path validation + word.to_vec() + }) + .collect(), + } + } +} +*/ + diff --git a/keyforkd/Cargo.toml b/keyforkd/Cargo.toml index 28b009b..ea426b8 100644 --- a/keyforkd/Cargo.toml +++ b/keyforkd/Cargo.toml @@ -13,6 +13,7 @@ multithread = ["tokio/rt-multi-thread"] [dependencies] bincode = "1.3.3" dirs = "5.0.1" +keyfork-derive-util = { version = "0.1.0", path = "../keyfork-derive-util" } keyfork-frame = { version = "0.1.0", path = "../keyfork-frame" } keyfork-mnemonic-util = { version = "0.1.0", path = "../keyfork-mnemonic-util" } serde = { version = "1.0.186", features = ["derive"] } diff --git a/keyforkd/src/server.rs b/keyforkd/src/server.rs index 175fe9c..a0ac667 100644 --- a/keyforkd/src/server.rs +++ b/keyforkd/src/server.rs @@ -1,5 +1,6 @@ -use crate::service::{DerivablePath, DerivationError, Keyforkd}; +use crate::service::{DerivationError, Keyforkd}; use keyfork_frame::asyncext::{try_decode_from, try_encode_to}; +use keyfork_derive_util::DerivablePath; use std::{io::Error, path::{Path, PathBuf}}; use tokio::net::{UnixListener, UnixStream}; use tower::{Service, ServiceExt}; diff --git a/keyforkd/src/service.rs b/keyforkd/src/service.rs index f7d82f8..1e6b3fa 100644 --- a/keyforkd/src/service.rs +++ b/keyforkd/src/service.rs @@ -1,31 +1,9 @@ use std::{future::Future, pin::Pin, task::Poll, sync::Arc}; use keyfork_mnemonic_util::Mnemonic; +use keyfork_derive_util::DerivablePath; use tower::Service; use thiserror::Error; -use serde::{Serialize, Deserialize}; - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct DerivablePath { - pub(crate) path: Vec>, -} - -// TODO: move DerivablePath into a models crate for clients to produce? -/* -impl DerivablePath { - pub fn new(input: &[&[u8]]) -> DerivablePath { - DerivablePath { - path: input - .iter() - .map(|&word| { - // perform path validation - word.to_vec() - }) - .collect(), - } - } -} -*/ #[derive(Clone, Debug)] pub struct Keyforkd {