From 2d08655292314aceeac02d78ec87be38db0c4636 Mon Sep 17 00:00:00 2001 From: Gabe Kaptchuk Date: Tue, 19 Feb 2019 15:27:39 -0500 Subject: [PATCH] Up to bi_init_customer serializing --- src/commit_scheme.rs | 18 +++++++++--------- src/lib.rs | 6 ++++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/commit_scheme.rs b/src/commit_scheme.rs index 5c90a77..261242a 100644 --- a/src/commit_scheme.rs +++ b/src/commit_scheme.rs @@ -11,27 +11,27 @@ use bincode::SizeLimit::Infinite; use bincode::rustc_serialize::encode; use sodiumoxide::crypto::hash::sha512; -use serde::{Serialize}; +use serde::{Serialize, Deserialize}; -#[derive(Copy, Clone, Serialize)] +#[derive(Copy, Clone, Serialize, Deserialize)] pub struct PublicKey { - #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable")] + #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable", deserialize_with = "serialization_wrappers::deserialize_g_two")] g: G2, - #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable")] + #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable", deserialize_with = "serialization_wrappers::deserialize_g_two")] h: G2 } -#[derive(Copy, Clone, Serialize)] +#[derive(Copy, Clone, Serialize, Deserialize)] pub struct Commitment { - #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable")] + #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable", deserialize_with = "serialization_wrappers::deserialize_g_two")] pub c: G2, - #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable")] + #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable", deserialize_with = "serialization_wrappers::deserialize_fr")] pub r: Fr } -#[derive(Clone, Serialize)] +#[derive(Clone, Serialize, Deserialize)] pub struct CSParams { - #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable_vec")] + #[serde(serialize_with = "serialization_wrappers::serialize_generic_encodable_vec", deserialize_with = "serialization_wrappers::deserialize_g_two_vec")] pub pub_bases: Vec } diff --git a/src/lib.rs b/src/lib.rs index 6a10650..d61844c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -701,7 +701,7 @@ pub mod bidirectional { } // part of channel state - #[derive(Clone, Serialize)] + #[derive(Clone, Serialize, Deserialize)] pub struct PubKeyMap { wpk: secp256k1::PublicKey, revoke_token: Option @@ -1492,6 +1492,8 @@ pub mod ffishim { use bidirectional; use clsigs; + use commit_scheme; + use serde::{Serialize}; use libc::{c_char}; @@ -1620,7 +1622,7 @@ pub mod ffishim { #[no_mangle] - pub extern fn ffishim_bidirectional_init_customer(serialized_pp: *mut c_char, serializd_channel: *mut c_char, balance_customer: u32, balance_merchant: u32, serialized_commitment_setup: *mut c_char, serialized_customer_keypair: *mut c_char) -> *mut c_char { + pub extern fn ffishim_bidirectional_init_customer(serialized_pp: *mut c_char, serializd_channel: *mut c_char, balance_customer: i32, balance_merchant: i32, serialized_commitment_setup: *mut c_char, serialized_customer_keypair: *mut c_char) -> *mut c_char { // Deserialize the pp let bytes_pp = unsafe { CStr::from_ptr(serialized_pp).to_bytes() }; let name_pp: &str = str::from_utf8(bytes_pp).unwrap(); // make sure the bytes are UTF-8