1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::errors::ValueError;
use crate::field_elem::{FieldElement, FieldElementVector};
use crate::group_elem::GroupElementVector;
use crate::group_elem_g1::{G1Vector, G1};
pub fn commit_to_field_element(g: &G1, h: &G1, elem: &FieldElement, r: &FieldElement) -> G1 {
g.binary_scalar_mul(h, elem, r)
}
pub fn commit_to_field_element_vectors(
g: &G1Vector,
h: &G1Vector,
u: &G1,
a: &FieldElementVector,
b: &FieldElementVector,
c: &FieldElement,
) -> Result<G1, ValueError> {
let mut combined_g: Vec<G1> = vec![];
combined_g.extend_from_slice(g.as_slice());
combined_g.extend_from_slice(h.as_slice());
combined_g.push(u.clone());
let mut combined_f: Vec<FieldElement> = vec![];
combined_f.extend_from_slice(a.as_slice());
combined_f.extend_from_slice(b.as_slice());
combined_f.push(c.clone());
G1Vector::from(combined_g).inner_product_const_time(&combined_f)
}