Skip to content

Commit

Permalink
serialization lib
Browse files Browse the repository at this point in the history
  • Loading branch information
nginnever committed Aug 27, 2024
1 parent 487a399 commit bf992b8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
27 changes: 25 additions & 2 deletions packages/ciphernode/bfv/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fhe::{
bfv::{BfvParameters, BfvParametersBuilder, Ciphertext, Encoding, Plaintext, SecretKey},
mbfv::{AggregateIter, CommonRandomPoly, DecryptionShare, PublicKeyShare},
};
use fhe_traits::{FheDecoder, Serialize as FheSerialize, DeserializeParametrized};
use fhe_traits::{FheDecoder, Serialize as FheSerialize, Deserialize, DeserializeParametrized};
use rand::{Rng, rngs::OsRng, thread_rng};
use util::timeit::{timeit};

Expand Down Expand Up @@ -44,7 +44,30 @@ impl EnclaveBFV {
Self { pk_share, sk_share, params, crp }
}

pub fn get_pk_bytes(&mut self) -> Vec<u8> {
pub fn serialize_pk(&mut self) -> Vec<u8> {
self.pk_share.to_bytes()
}

pub fn deserialize_pk(&mut self, bytes: Vec<u8>, par_bytes: Vec<u8>, crp_bytes: Vec<u8>) -> PublicKeyShare {
let params = Arc::new(BfvParameters::try_deserialize(&par_bytes).unwrap());
let crp = CommonRandomPoly::deserialize(&crp_bytes, &params).unwrap();
PublicKeyShare::deserialize(&bytes, &params, crp.clone()).unwrap()
}

pub fn serialize_crp(&mut self) -> Vec<u8> {
self.crp.to_bytes()
}

pub fn deserialize_crp(&mut self, bytes: Vec<u8>, par_bytes: Vec<u8>) -> CommonRandomPoly {
let params = Arc::new(BfvParameters::try_deserialize(&par_bytes).unwrap());
CommonRandomPoly::deserialize(&bytes, &params).unwrap()
}

pub fn serialize_params(&mut self) -> Vec<u8> {
self.params.to_bytes()
}

pub fn deserialize_params(&mut self, par_bytes: Vec<u8>) -> Arc<BfvParameters> {
Arc::new(BfvParameters::try_deserialize(&par_bytes).unwrap())
}
}
5 changes: 4 additions & 1 deletion packages/ciphernode/enclave_node/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ async fn main() -> Result<(), Box<dyn Error>> {
println!("Hello, cipher world!");

let mut new_bfv = EnclaveBFV::new(4096, 4096, vec![0xffffee001, 0xffffc4001, 0x1ffffe0001]);
let pk_bytes = new_bfv.get_pk_bytes();
let pk_bytes = new_bfv.serialize_pk();
let param_bytes = new_bfv.serialize_params();
let crp_bytes = new_bfv.serialize_crp();
let deserialized_pk = new_bfv.deserialize_pk(pk_bytes, param_bytes, crp_bytes);

let (mut p2p, tx, mut rx) = EnclaveRouter::new()?;
p2p.connect_swarm("mdns".to_string())?;
Expand Down

0 comments on commit bf992b8

Please sign in to comment.