Up to bi_init_customer serializing

This commit is contained in:
Gabe Kaptchuk 2019-02-19 15:27:39 -05:00
parent 574aa693eb
commit 2d08655292
2 changed files with 13 additions and 11 deletions

View File

@ -11,27 +11,27 @@ use bincode::SizeLimit::Infinite;
use bincode::rustc_serialize::encode; use bincode::rustc_serialize::encode;
use sodiumoxide::crypto::hash::sha512; use sodiumoxide::crypto::hash::sha512;
use serde::{Serialize}; use serde::{Serialize, Deserialize};
#[derive(Copy, Clone, Serialize)] #[derive(Copy, Clone, Serialize, Deserialize)]
pub struct PublicKey { 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, 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 h: G2
} }
#[derive(Copy, Clone, Serialize)] #[derive(Copy, Clone, Serialize, Deserialize)]
pub struct Commitment { 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, 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 pub r: Fr
} }
#[derive(Clone, Serialize)] #[derive(Clone, Serialize, Deserialize)]
pub struct CSParams { 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<G2> pub pub_bases: Vec<G2>
} }

View File

@ -701,7 +701,7 @@ pub mod bidirectional {
} }
// part of channel state // part of channel state
#[derive(Clone, Serialize)] #[derive(Clone, Serialize, Deserialize)]
pub struct PubKeyMap { pub struct PubKeyMap {
wpk: secp256k1::PublicKey, wpk: secp256k1::PublicKey,
revoke_token: Option<secp256k1::Signature> revoke_token: Option<secp256k1::Signature>
@ -1492,6 +1492,8 @@ pub mod ffishim {
use bidirectional; use bidirectional;
use clsigs; use clsigs;
use commit_scheme;
use serde::{Serialize}; use serde::{Serialize};
use libc::{c_char}; use libc::{c_char};
@ -1620,7 +1622,7 @@ pub mod ffishim {
#[no_mangle] #[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 // Deserialize the pp
let bytes_pp = unsafe { CStr::from_ptr(serialized_pp).to_bytes() }; 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 let name_pp: &str = str::from_utf8(bytes_pp).unwrap(); // make sure the bytes are UTF-8