Merge branch 'ped92-generics' into ccs08

This commit is contained in:
Gijs Van Laer 2019-06-16 10:39:24 -04:00
commit 8b2f837051
1 changed files with 10 additions and 11 deletions

View File

@ -4,7 +4,7 @@ use pairing::{Engine, CurveProjective, CurveAffine};
use ff::Rand;
#[derive(Clone)]
pub struct PublicKey<E: Engine> {
pub struct CSPublicKey<E: Engine> {
g: E::G2,
h: E::G2,
}
@ -16,11 +16,11 @@ pub struct Commitment<E: Engine> {
}
#[derive(Clone)]
pub struct CSParams<E: Engine> {
pub struct CSMultiPublicKey<E: Engine> {
pub pub_bases: Vec<E::G2>
}
//impl<E: Engine> fmt::Display for PublicKey<E> {
//impl<E: Engine> fmt::Display for CSPublicKey<E> {
// fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
// let g_vec: Vec<u8> = encode(&self.g, Infinite).unwrap();
// let h_vec: Vec<u8> = encode(&self.h, Infinite).unwrap();
@ -55,14 +55,14 @@ pub struct CSParams<E: Engine> {
// }
//}
impl<E: Engine> PublicKey<E> {
impl<E: Engine> CSPublicKey<E> {
/*
Implements the setup algorithm for the Pedersen92 commitment scheme
*/
pub fn setup<R: Rng>(rng: &mut R) -> Self {
let g = E::G2::rand(rng);
let h = E::G2::rand(rng);
let pk = PublicKey { g, h };
let pk = CSPublicKey { g, h };
return pk;
}
@ -111,8 +111,7 @@ decommit(pk, cm, msg) -> bool where
}
impl<E: Engine> CSParams<E> {
impl<E: Engine> CSMultiPublicKey<E> {
/*
Implements the setup algorithm for the Pedersen92 commitment scheme over
a vector of messages.
@ -122,7 +121,7 @@ impl<E: Engine> CSParams<E> {
for i in 0..len {
p.push(E::G2::rand(rng));
}
return CSParams { pub_bases: p };
return CSMultiPublicKey { pub_bases: p };
}
pub fn commit<R: Rng>(&self, rng: &mut R, x: &Vec<E::Fr>, r: E::Fr) -> Commitment<E> {
@ -163,7 +162,7 @@ mod tests {
#[test]
fn commit_one_message_works() {
let rng = &mut thread_rng();
let pk = PublicKey::<Bls12>::setup(rng);
let pk = CSPublicKey::<Bls12>::setup(rng);
let m1 = Fr::rand(rng);
let mut m2 = m1.clone();
@ -179,7 +178,7 @@ mod tests {
fn commit_n_message_works() {
let rng = &mut thread_rng();
let len = 3;
let csp = CSParams::<Bls12>::setup_gen_params(rng, len);
let csp = CSMultiPublicKey::<Bls12>::setup_gen_params(rng, len);
let mut m: Vec<Fr> = Vec::new();
for i in 0..len {
@ -188,6 +187,6 @@ mod tests {
let r = m[0].clone();
let c = csp.commit(rng, &m, r);
assert_eq!(true, csp.decommit( &c, &m));
assert_eq!(true, csp.decommit(&c, &m));
}
}