From 06ae8e88ce6da4e352152a95050a0a014a966763 Mon Sep 17 00:00:00 2001 From: Ralph Giles Date: Tue, 16 Jul 2024 10:09:48 -0700 Subject: [PATCH 1/3] boomerang: Remove unnecessary clones These types implement copy, so the explicit clone isn't necessary. --- boomerang/src/server.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boomerang/src/server.rs b/boomerang/src/server.rs index 1f5e615..6911b60 100644 --- a/boomerang/src/server.rs +++ b/boomerang/src/server.rs @@ -393,8 +393,8 @@ pub struct SpendVerifyM3 { impl Clone for SpendVerifyM3 { fn clone(&self) -> Self { Self { - comm: self.comm.clone(), - sig_commit: self.sig_commit.clone(), + comm: self.comm, + sig_commit: self.sig_commit, id_1: self.id_1, verifying_key: self.verifying_key, tag_key: self.tag_key, From b78057f47f5744ff5f377a66ae940ceb8fbd3ae7 Mon Sep 17 00:00:00 2001 From: Ralph Giles Date: Tue, 16 Jul 2024 10:12:13 -0700 Subject: [PATCH 2/3] Use const u8::MAX instead of calling max_value() Addresses a clippy lint and may optimize better. --- acl/src/config.rs | 2 +- pedersen/src/pedersen_config.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/acl/src/config.rs b/acl/src/config.rs index 7b48d6b..2f0f8a9 100644 --- a/acl/src/config.rs +++ b/acl/src/config.rs @@ -54,7 +54,7 @@ impl KeyPair { pub fn affine_from_bytes_tai(bytes: &[u8]) -> sw::Affine { use sha3::{Digest, Sha3_256}; - for i in 0..=u8::max_value() { + for i in 0..=u8::MAX { let mut sha = Sha3_256::new(); Digest::update(&mut sha, bytes); Digest::update(&mut sha, [i]); diff --git a/pedersen/src/pedersen_config.rs b/pedersen/src/pedersen_config.rs index 5380726..887d6da 100644 --- a/pedersen/src/pedersen_config.rs +++ b/pedersen/src/pedersen_config.rs @@ -455,7 +455,7 @@ impl PedersenComm

{ pub fn affine_from_bytes_tai(bytes: &[u8]) -> sw::Affine

{ use sha3::{Digest, Sha3_256}; // Try a deterministic sequence of hashes to find a valid point. - for i in 0..=u8::max_value() { + for i in 0..=u8::MAX { let mut sha = Sha3_256::new(); Digest::update(&mut sha, bytes); Digest::update(&mut sha, [i]); From 34e5f18dbe2d215aa006a269bbb7e9b747f6717d Mon Sep 17 00:00:00 2001 From: Ralph Giles Date: Tue, 16 Jul 2024 10:21:54 -0700 Subject: [PATCH 3/3] cargo fmt --- .../client/benches/client_benchmark.rs | 70 ++-- end2end-example/client/src/main.rs | 339 +++++++++++------- end2end-example/server/src/main.rs | 17 +- 3 files changed, 240 insertions(+), 186 deletions(-) diff --git a/end2end-example/client/benches/client_benchmark.rs b/end2end-example/client/benches/client_benchmark.rs index 2798743..9bba7d6 100644 --- a/end2end-example/client/benches/client_benchmark.rs +++ b/end2end-example/client/benches/client_benchmark.rs @@ -16,7 +16,7 @@ use tokio::task; type SF = ::ScalarField; -static SERVER_ENDPOINT: &str = "localhost:8080";//"52.11.217.156:8080";// +static SERVER_ENDPOINT: &str = "localhost:8080"; //"52.11.217.156:8080";// // functions to benchmark async fn boomerang_protocol() { @@ -36,23 +36,19 @@ async fn issuance_protocol(ckp: UKeyPair, skp: ServerKeyPair) -> // send to server get m2 let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_issuance_m2"); - let issuance_m2 = issuance_send_m1_get_m2( - issuance_m1.clone(), - endpoint, - ).await; + let issuance_m2 = issuance_send_m1_get_m2(issuance_m1.clone(), endpoint).await; // issuance m3 - let issuance_m3 = - IssuanceC::::generate_issuance_m3(issuance_m1.clone(), issuance_m2.clone(), &mut OsRng); + let issuance_m3 = IssuanceC::::generate_issuance_m3( + issuance_m1.clone(), + issuance_m2.clone(), + &mut OsRng, + ); // send to server get m4 let endpoint2 = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_issuance_m4"); - let issuance_m4 = issuance_send_m2m3_get_m4( - issuance_m2.clone(), - issuance_m3.clone(), - endpoint2, - ) - .await; + let issuance_m4 = + issuance_send_m2m3_get_m4(issuance_m2.clone(), issuance_m3.clone(), endpoint2).await; // populate state let issuance_state = @@ -89,12 +85,8 @@ async fn collection_protocol( // send to server get m3 let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_collection_m3"); - let collection_m3 = collection_send_m1m2_get_m3( - collection_m1.clone(), - collection_m2.clone(), - endpoint, - ) - .await; + let collection_m3 = + collection_send_m1m2_get_m3(collection_m1.clone(), collection_m2.clone(), endpoint).await; // m4 let collection_m4 = CollectionC::::generate_collection_m4( @@ -105,12 +97,8 @@ async fn collection_protocol( // send to server get m5 let endpoint2 = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_collection_m5"); - let collection_m5 = collection_send_m3m4_get_m5( - collection_m3.clone(), - collection_m4.clone(), - endpoint2, - ) - .await; + let collection_m5 = + collection_send_m3m4_get_m5(collection_m3.clone(), collection_m4.clone(), endpoint2).await; // populate state let collection_state = CollectionC::::populate_state( @@ -174,12 +162,8 @@ async fn spending_protocol( // send to server get m5 let endpoint2 = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_spending_m5"); - let spendverify_m5 = spending_send_m3m4_get_m5( - spendverify_m3.clone(), - spendverify_m4.clone(), - endpoint2, - ) - .await; + let spendverify_m5 = + spending_send_m3m4_get_m5(spendverify_m3.clone(), spendverify_m4.clone(), endpoint2).await; // populate state let spending_state = SpendVerifyC::::populate_state( @@ -206,10 +190,7 @@ async fn spending_protocol( async fn get_server_keypair_from_server() -> ServerKeyPair { let client = reqwest::Client::new(); let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/server_keypair"); - let response = client - .get(endpoint) - .send() - .await; + let response = client.get(endpoint).send().await; let response_body = response.unwrap().text().await; @@ -221,10 +202,7 @@ async fn get_server_keypair_from_server() -> ServerKeyPair { async fn get_collection_m1() -> CollectionS { let client = reqwest::Client::new(); let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_collection_m1"); - let response = client - .get(endpoint) - .send() - .await; + let response = client.get(endpoint).send().await; let response_body = response.unwrap().text().await; @@ -236,10 +214,7 @@ async fn get_collection_m1() -> CollectionS { async fn get_spending_m1() -> SpendVerifyS { let client = reqwest::Client::new(); let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_spending_m1"); - let response = client - .get(endpoint) - .send() - .await; + let response = client.get(endpoint).send().await; let response_body = response.unwrap().text().await; @@ -248,7 +223,7 @@ async fn get_spending_m1() -> SpendVerifyS { SpendVerifyS::::deserialize_compressed(&*spending_m1_bytes).unwrap() } -async fn issuance_send_m1_get_m2( +async fn issuance_send_m1_get_m2( issuance_c: IssuanceC, endpoint: String, ) -> IssuanceS { @@ -405,7 +380,12 @@ async fn spending_send_m1m2_get_m3( let spending_m1_u64: Vec = spending_m1_bytes.into_iter().map(u64::from).collect(); let spending_m2_u64: Vec = spending_m2_bytes.into_iter().map(u64::from).collect(); - let body_vec: Vec> = vec![spending_m1_u64, spending_m2_u64, state_vector, policy_vector]; + let body_vec: Vec> = vec![ + spending_m1_u64, + spending_m2_u64, + state_vector, + policy_vector, + ]; let body = serde_json::to_string(&body_vec).unwrap(); // send spending_m* as json string to server diff --git a/end2end-example/client/src/main.rs b/end2end-example/client/src/main.rs index 8932fda..4b1d74b 100644 --- a/end2end-example/client/src/main.rs +++ b/end2end-example/client/src/main.rs @@ -5,10 +5,10 @@ use boomerang::{ client::{CollectionC, IssuanceC, SpendVerifyC, UKeyPair}, server::{CollectionS, IssuanceS, ServerKeyPair, SpendVerifyS}, }; +use bytes::Bytes; use rand::rngs::OsRng; use serde_json::json; use t256::Config; // use arksecp256r1 -use bytes::Bytes; type SF = ::ScalarField; @@ -19,15 +19,20 @@ async fn get_server_keypair_from_server() -> ServerKeyPair { let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/server_keypair"); let request = client - .get(endpoint) - .header("Content-Type", "application/json") - .build() - .unwrap(); + .get(endpoint) + .header("Content-Type", "application/json") + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() + let request_size = request + .headers() + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -35,13 +40,18 @@ async fn get_server_keypair_from_server() -> ServerKeyPair { let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize server keypair let server_keypair_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -53,15 +63,20 @@ async fn get_collection_m1() -> CollectionS { let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_collection_m1"); let request = client - .get(endpoint) - .header("Content-Type", "application/json") - .build() - .unwrap(); + .get(endpoint) + .header("Content-Type", "application/json") + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -69,13 +84,18 @@ async fn get_collection_m1() -> CollectionS { let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize message m1 let collection_m1_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -87,15 +107,20 @@ async fn get_spending_m1() -> SpendVerifyS { let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_spending_m1"); let request = client - .get(endpoint) - .header("Content-Type", "application/json") - .build() - .unwrap(); + .get(endpoint) + .header("Content-Type", "application/json") + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -103,20 +128,25 @@ async fn get_spending_m1() -> SpendVerifyS { let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize message m1 let spending_m1_bytes: Vec = serde_json::from_str(&response_body).unwrap(); SpendVerifyS::::deserialize_compressed(&*spending_m1_bytes).unwrap() } -async fn issuance_send_m1_get_m2( +async fn issuance_send_m1_get_m2( issuance_c: IssuanceC, endpoint: String, ) -> IssuanceS { @@ -131,16 +161,21 @@ async fn issuance_send_m1_get_m2( let client = reqwest::Client::new(); let request = client - .post(endpoint) - .header("Content-Type", "application/json") - .body(issuance_c_json) - .build() - .unwrap(); + .post(endpoint) + .header("Content-Type", "application/json") + .body(issuance_c_json) + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -148,13 +183,18 @@ async fn issuance_send_m1_get_m2( let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize issuance_m2 response from server let issuance_s_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -183,16 +223,21 @@ async fn issuance_send_m2m3_get_m4( let client = reqwest::Client::new(); let request = client - .post(endpoint) - .header("Content-Type", "application/json") - .body(body) - .build() - .unwrap(); + .post(endpoint) + .header("Content-Type", "application/json") + .body(body) + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -200,13 +245,18 @@ async fn issuance_send_m2m3_get_m4( let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize issuance_m4 response from server let issuance_m4_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -237,16 +287,21 @@ async fn collection_send_m1m2_get_m3( let client = reqwest::Client::new(); let request = client - .post(endpoint) - .header("Content-Type", "application/json") - .body(body) - .build() - .unwrap(); + .post(endpoint) + .header("Content-Type", "application/json") + .body(body) + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -254,13 +309,18 @@ async fn collection_send_m1m2_get_m3( let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize collection_m3 response from server let collection_s_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -291,16 +351,21 @@ async fn collection_send_m3m4_get_m5( let client = reqwest::Client::new(); let request = client - .post(endpoint) - .header("Content-Type", "application/json") - .body(body) - .build() - .unwrap(); + .post(endpoint) + .header("Content-Type", "application/json") + .body(body) + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -308,13 +373,18 @@ async fn collection_send_m3m4_get_m5( let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize collection_m5 response from server let collection_s_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -341,23 +411,33 @@ async fn spending_send_m1m2_get_m3( let spending_m1_u64: Vec = spending_m1_bytes.into_iter().map(u64::from).collect(); let spending_m2_u64: Vec = spending_m2_bytes.into_iter().map(u64::from).collect(); - let body_vec: Vec> = vec![spending_m1_u64, spending_m2_u64, state_vector, policy_vector]; + let body_vec: Vec> = vec![ + spending_m1_u64, + spending_m2_u64, + state_vector, + policy_vector, + ]; let body = serde_json::to_string(&body_vec).unwrap(); // send spending_m* as json string to server let client = reqwest::Client::new(); let request = client - .post(endpoint) - .header("Content-Type", "application/json") - .body(body) - .build() - .unwrap(); + .post(endpoint) + .header("Content-Type", "application/json") + .body(body) + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -365,13 +445,18 @@ async fn spending_send_m1m2_get_m3( let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize spending_m* response from server let spending_s_bytes: Vec = serde_json::from_str(&response_body).unwrap(); @@ -401,16 +486,21 @@ async fn spending_send_m3m4_get_m5( let client = reqwest::Client::new(); let request = client - .post(endpoint) - .header("Content-Type", "application/json") - .body(body) - .build() - .unwrap(); + .post(endpoint) + .header("Content-Type", "application/json") + .body(body) + .build() + .unwrap(); // Calculate request size - let request_size = request.headers().iter() - .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + request.body().map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); + let request_size = request + .headers() + .iter() + .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) + .sum::() + + request + .body() + .map_or(0, |body| body.as_bytes().map_or(0, |b| b.len())); let response = client.execute(request).await.unwrap(); @@ -418,20 +508,24 @@ async fn spending_send_m3m4_get_m5( let response_body = response.text().await.unwrap(); // Calculate response size - let response_size = headers.iter() + let response_size = headers + .iter() .map(|(name, value)| name.as_str().len() + value.as_bytes().len()) - .sum::() + Bytes::from(response_body.clone()).len(); + .sum::() + + Bytes::from(response_body.clone()).len(); println!("Request size: {} bytes", request_size); println!("Response size: {} bytes", response_size); - println!("Total data consumption: {} bytes", request_size + response_size); + println!( + "Total data consumption: {} bytes", + request_size + response_size + ); // deserialize spending_m* response from server let spending_s_bytes: Vec = serde_json::from_str(&response_body).unwrap(); SpendVerifyS::::deserialize_compressed(&*spending_s_bytes).unwrap() } - #[tokio::main] async fn main() { // Generate user keys @@ -450,28 +544,24 @@ async fn main() { // send to server get m2 println!("Client: Send M1 to server and retrieve M2"); let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_issuance_m2"); - let issuance_m2 = issuance_send_m1_get_m2( - issuance_m1.clone(), - endpoint, - ).await; + let issuance_m2 = issuance_send_m1_get_m2(issuance_m1.clone(), endpoint).await; // check some properties assert!(issuance_m2.m2.verifying_key.is_on_curve()); assert!(issuance_m2.m2.tag_key.is_on_curve()); // issuance m3 println!("Client: Generate M3"); - let issuance_m3 = - IssuanceC::::generate_issuance_m3(issuance_m1.clone(), issuance_m2.clone(), &mut OsRng); + let issuance_m3 = IssuanceC::::generate_issuance_m3( + issuance_m1.clone(), + issuance_m2.clone(), + &mut OsRng, + ); // send to server get m4 println!("Client: Send M3 to server and retrieve M4"); let endpoint2 = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_issuance_m4"); - let issuance_m4 = issuance_send_m2m3_get_m4( - issuance_m2.clone(), - issuance_m3.clone(), - endpoint2, - ) - .await; + let issuance_m4 = + issuance_send_m2m3_get_m4(issuance_m2.clone(), issuance_m3.clone(), endpoint2).await; // populate state let issuance_state = @@ -511,12 +601,9 @@ async fn main() { // send to server get m3 println!("Client: Send M2 to server and retrieve M3"); let endpoint = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_collection_m3"); - let collection_m3 = collection_send_m1m2_get_m3( - collection_m1.clone(), - collection_m2.clone(), - endpoint, - ) - .await; + let collection_m3 = + collection_send_m1m2_get_m3(collection_m1.clone(), collection_m2.clone(), endpoint) + .await; // m4 println!("Client: Generate M4"); @@ -529,12 +616,9 @@ async fn main() { // send to server get m5 println!("Client: Send M4 to server and retrieve M5"); let endpoint2 = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_collection_m5"); - let collection_m5 = collection_send_m3m4_get_m5( - collection_m3.clone(), - collection_m4.clone(), - endpoint2, - ) - .await; + let collection_m5 = + collection_send_m3m4_get_m5(collection_m3.clone(), collection_m4.clone(), endpoint2) + .await; // populate state let collection_state = CollectionC::::populate_state( @@ -611,12 +695,9 @@ async fn main() { // send to server get m5 println!("Client: Send M4 to server and retrieve M5"); let endpoint2 = format!("http://{}{}", SERVER_ENDPOINT, "/boomerang_spending_m5"); - let spendverify_m5 = spending_send_m3m4_get_m5( - spendverify_m3.clone(), - spendverify_m4.clone(), - endpoint2, - ) - .await; + let spendverify_m5 = + spending_send_m3m4_get_m5(spendverify_m3.clone(), spendverify_m4.clone(), endpoint2) + .await; // populate state let spending_state = SpendVerifyC::::populate_state( diff --git a/end2end-example/server/src/main.rs b/end2end-example/server/src/main.rs index bf14484..3392ca9 100644 --- a/end2end-example/server/src/main.rs +++ b/end2end-example/server/src/main.rs @@ -27,12 +27,9 @@ async fn boomerang_spending_m5(data: web::Data, req_body: String) -> i let spending_m4_bytes: Vec = parameters[1].clone(); let spending_m4 = SpendVerifyC::::deserialize_compressed(spending_m4_bytes.as_slice()).unwrap(); - - let spending_m5 = SpendVerifyS::::generate_spendverify_m5( - spending_m4, - spending_m3, - data.skp.clone(), - ); + + let spending_m5 = + SpendVerifyS::::generate_spendverify_m5(spending_m4, spending_m3, data.skp.clone()); // Serialize spending_m3 let mut spending_m5_bytes = Vec::new(); @@ -71,7 +68,6 @@ async fn boomerang_spending_m3(data: web::Data, req_body: String) -> i let spending_m2 = SpendVerifyC::::deserialize_compressed(spending_m2_bytes.as_slice()).unwrap(); - let v: SF = SF::one(); let state_vector = ¶meters[2]; let policy_vector = ¶meters[3]; @@ -212,11 +208,8 @@ async fn boomerang_issuance_m4(data: web::Data, req_body: String) -> i let issuance_m3 = IssuanceC::::deserialize_compressed(issuance_m3_bytes.as_slice()).unwrap(); - let issuance_m4 = IssuanceS::::generate_issuance_m4( - issuance_m3, - issuance_m2, - data.skp.clone(), - ); + let issuance_m4 = + IssuanceS::::generate_issuance_m4(issuance_m3, issuance_m2, data.skp.clone()); // Serialize issuance_m4 let mut issuance_m4_bytes = Vec::new();