equality_across_groups 0.2.0

Protocols for proving equality of committed values across groups and correctness of elliptic curve point addition and scalar multiplication
Documentation
use ark_serialize::SerializationError;
use bulletproofs_plus_plus::error::BulletproofsPlusPlusError;
use schnorr_pok::error::SchnorrError;

#[derive(Debug)]
pub enum Error {
    WitnessBiggerThanExpected,
    WitnessBiggerThan64Bit,
    ZOutOfRangeForRep(usize),
    SchnorrCheckFailedForRep(usize),
    MissingRangeProof,
    BulletproofsPlusPlusGeneratorsDontMatchCommitmentKey,
    RecreatedCommitmentsDontMatch,
    /// Scalar field of committing group should have same size as base field of curve whose point is being committed
    ScalarFieldBaseFieldMismatch,
    CannotCommitToExtensionOfDegree(u64),
    PointAtInfinity,
    CannotAddEqualPoints,
    XCoordCantBeSame,
    InvalidPointAddResult,
    TauProofFailed,
    TauSquareProofFailed,
    TxProofFailed,
    TyProofFailed,
    InsufficientNumberOfRepetitions(usize, usize),
    InsufficientChallengeSize(usize, usize),
    IncorrectPointOpeningAtIndex(usize),
    IncorrectScalarOpeningAtIndex(usize),
    EcdsaSigResponseNotInvertible,
    InvalidTransformedEcdsaSig,
    BulletproofsPlusPlus(BulletproofsPlusPlusError),
    Schnorr(SchnorrError),
    Serialization(SerializationError),
}

impl From<BulletproofsPlusPlusError> for Error {
    fn from(e: BulletproofsPlusPlusError) -> Self {
        Self::BulletproofsPlusPlus(e)
    }
}

impl From<SchnorrError> for Error {
    fn from(e: SchnorrError) -> Self {
        Self::Schnorr(e)
    }
}

impl From<SerializationError> for Error {
    fn from(e: SerializationError) -> Self {
        Self::Serialization(e)
    }
}