MCPcopy Create free account
hub / github.com/docknetwork/crypto / process_response

Method process_response

kvac/src/bbs_sharp/hol.rs:258–295  ·  view source on GitHub ↗
(
        mut self,
        response: Responses<G::ScalarField>,
    )

Source from the content-addressed store, hash-verified

256 }
257
258 pub fn process_response(
259 mut self,
260 response: Responses<G::ScalarField>,
261 ) -> (Vec<TokenPrivateData<G>>, Vec<ProofOfValidity<G>>) {
262 assert_eq!(self.A_hat.len(), response.0.len());
263 let c = mem::take(&mut self.c).unwrap();
264 let v = mem::take(&mut self.v);
265 let u = mem::take(&mut self.u);
266 let A_hat = mem::take(&mut self.A_hat);
267 let B_bar = mem::take(&mut self.B_bar);
268 let D = mem::take(&mut self.D);
269 let minus_e = mem::take(&mut self.minus_e);
270 let r1 = mem::take(&mut self.r1);
271 let r3 = mem::take(&mut self.r3);
272 // r_i = (r_0_i + v_i) * u_i
273 let r = cfg_into_iter!(u)
274 .zip(cfg_into_iter!(v))
275 .zip(cfg_into_iter!(response.0))
276 .map(|((u_i, v_i), r_0_i)| (r_0_i + v_i) * u_i)
277 .collect::<Vec<_>>();
278 let mut t_pr = vec![];
279 let mut pr_v = vec![];
280 for i in 0..r.len() {
281 t_pr.push(TokenPrivateData {
282 D: D[i],
283 r1: r1[i],
284 r3: r3[i],
285 minus_e,
286 });
287 pr_v.push(ProofOfValidity {
288 A_hat: A_hat[i],
289 B_bar: B_bar[i],
290 c: c[i],
291 r: r[i],
292 });
293 }
294 (t_pr, pr_v)
295 }
296}
297
298impl<G: AffineRepr> HOLSignerProtocol<G> {

Callers 1

checkFunction · 0.80

Calls 2

mapMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected