concordium_base 9.0.0

A library that defines common types and functionality that are needed by Concordium Rust projects.
Documentation
use crate::{
    curve_arithmetic::arkworks_instances::ArkGroup,
    random_oracle::RandomOracle,
    sigma_protocols::{com_enc_eq, com_eq_sig, common::*, dlog},
};
use ark_bls12_381::{G1Projective, G2Projective};

type G1 = ArkGroup<G1Projective>;
type G2 = ArkGroup<G2Projective>;
type Bls12 = ark_ec::models::bls12::Bls12<ark_bls12_381::Config>;

#[test]
pub fn test_and() {
    let mut csprng = rand::thread_rng();
    AndAdapter::<
        AndAdapter<dlog::Dlog<G1>, com_eq_sig::ComEqSig<Bls12, G1>>,
        com_enc_eq::ComEncEq<G2>,
    >::with_valid_data(38, &mut csprng, |prover, secret, csprng| {
        let proof = prove(&mut RandomOracle::domain("test"), &prover, secret, csprng)
            .expect("Proving should succeed.");
        assert!(verify(&mut RandomOracle::domain("test"), &prover, &proof))
    })
}