From 3119403fa30d8026ac5eabc3d4c1167559963209 Mon Sep 17 00:00:00 2001 From: Horhik Date: Wed, 24 Mar 2021 07:18:53 +0300 Subject: [PATCH] create separate file for Freenet keys --- Cargo.toml | 1 + src/types/key.rs | 33 +++++++++++++++++++++++++++++++++ src/types/mod.rs | 35 ++--------------------------------- 3 files changed, 36 insertions(+), 33 deletions(-) create mode 100644 src/types/key.rs diff --git a/Cargo.toml b/Cargo.toml index 7fe5528..ca6baae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,3 +13,4 @@ description = "Implementation of FCPv2 freenet protocol" [dependencies] regex = "1.4.3" rusqlite = "0.24.2" +serde = { version = "1.0", features = ["derive"], optional = true } diff --git a/src/types/key.rs b/src/types/key.rs new file mode 100644 index 0000000..9da892f --- /dev/null +++ b/src/types/key.rs @@ -0,0 +1,33 @@ +use super::traits::{FcpParser, FcpRequest}; +use rusqlite::types::ToSqlOutput; +use rusqlite::{Result, ToSql, types::{FromSql, ValueRef, FromSqlResult, FromSqlError}}; + +#[derive(Debug, PartialEq)] +pub struct SSK { + pub sign_key: String, + pub decrypt_key: String, + pub settings: Option, +} + +impl ToSql for SSK { + fn to_sql(&self) -> Result> { + Ok(ToSqlOutput::from(self.convert())) + } +} + +impl FromSql for SSK{ + fn column_result(value: ValueRef<'_>) -> FromSqlResult{ + match SSK::parse(value.as_str()?) { + Some(res) => Ok(res), + None => Err(FromSqlError::InvalidType) + } + } +} + +#[derive(Debug, PartialEq)] +pub struct USK { + pub ssk: SSK, + pub index: i32, +} + + diff --git a/src/types/mod.rs b/src/types/mod.rs index d911cfd..376f9cc 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -1,39 +1,8 @@ pub mod traits; +mod key; use regex::Regex; use traits::*; - -use rusqlite::types::ToSqlOutput; -use rusqlite::{Result, ToSql, types::{FromSql, ValueRef, FromSqlResult, FromSqlError}}; - -#[derive(Debug, PartialEq)] -pub struct SSK { - pub sign_key: String, - pub decrypt_key: String, - pub settings: Option, -} - -impl ToSql for SSK { - fn to_sql(&self) -> Result> { - Ok(ToSqlOutput::from(self.convert())) - } -} - -impl FromSql for SSK{ - fn column_result(value: ValueRef<'_>) -> FromSqlResult{ - match SSK::parse(value.as_str()?) { - Some(res) => Ok(res), - None => Err(FromSqlError::InvalidType) - } - } -} - -#[derive(Debug, PartialEq)] -pub struct USK { - pub ssk: SSK, - pub index: i32, -} - - +pub use key::*; #[derive(Debug, PartialEq)] pub struct SSKKeypair {