sigma-protocols 0.5.1

SIGMA zero-knowledge proof protocols
Documentation
use std::fmt;

#[derive(Debug, Clone)]
pub enum Error {
    InvalidProof,
    InvalidChallenge,
    InvalidCommitment,
    InvalidResponse,
    SerializationError(String),
    InvalidPoint,
    InvalidScalar,
    TranscriptError(String),
}

impl fmt::Display for Error {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            Error::InvalidProof => write!(f, "Invalid proof"),
            Error::InvalidChallenge => write!(f, "Invalid challenge"),
            Error::InvalidCommitment => write!(f, "Invalid commitment"),
            Error::InvalidResponse => write!(f, "Invalid response"),
            Error::SerializationError(msg) => write!(f, "Serialization error: {msg}"),
            Error::InvalidPoint => write!(f, "Invalid point"),
            Error::InvalidScalar => write!(f, "Invalid scalar"),
            Error::TranscriptError(msg) => write!(f, "Transcript error: {msg}"),
        }
    }
}

impl std::error::Error for Error {}

pub type Result<T> = std::result::Result<T, Error>;