proof_system 0.34.0

Proof system to comprise various cryptographic primitives
Documentation
use ark_ec::pairing::Pairing;
use ark_std::{
    collections::{BTreeMap, BTreeSet},
    io::Write,
    rand::RngCore,
};
use bbs_plus::prelude::{
    BBSPlusError, PoKOfSignature23G1Proof, PoKOfSignature23G1Protocol, PreparedPublicKeyG2,
    PreparedSignatureParams23G1, PublicKeyG2, SignatureParams23G1,
};
use dock_crypto_utils::{
    expect_equality,
    iter::take_while_satisfy,
    misc::seq_inc_by_n_from,
    randomized_pairing_check::RandomizedPairingChecker,
    signature::{MessageOrBlinding, MultiMessageSignatureParams},
    try_iter::CheckLeft,
};
use itertools::Itertools;

use crate::{error::ProofSystemError, statement_proof::StatementProof};

use super::merge_indexed_messages_with_blindings;

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PoKBBSSigG1SubProtocol<'a, E: Pairing> {
    pub id: usize,
    pub revealed_messages: &'a BTreeMap<usize, E::ScalarField>,
    pub signature_params: &'a SignatureParams23G1<E>,
    pub public_key: Option<&'a PublicKeyG2<E>>,
    pub protocol: Option<PoKOfSignature23G1Protocol<E>>,
}

impl<'a, E: Pairing> PoKBBSSigG1SubProtocol<'a, E> {
    impl_bbs_subprotocol!(
        SignatureParams23G1,
        PoKBBSSignature23G1,
        PoKOfSignature23G1Protocol,
        PoKBBSSignature23G1,
        PoKOfSignature23G1Proof,
        PreparedSignatureParams23G1
    );
}