# [−][src]Enum bulletproofs::errors::MPCError

pub enum MPCError {
MaliciousDealer,
InvalidBitsize,
InvalidAggregation,
InvalidGeneratorsLength,
WrongNumBitCommitments,
WrongNumPolyCommitments,
WrongNumProofShares,
MalformedProofShares {
},
}

Represents an error during the multiparty computation protocol for proof aggregation.

This is a separate type from the ProofError to allow a layered API: although the MPC protocol is used internally for single-party proving, its API should not expose the complexity of the MPC protocol.

## Variants

MaliciousDealer

This error occurs when the dealer gives a zero challenge, which would annihilate the blinding factors.

InvalidBitsize

This error occurs when attempting to create a proof with bitsize other than $$8$$, $$16$$, $$32$$, or $$64$$.

InvalidAggregation

This error occurs when attempting to create an aggregated proof with non-power-of-two aggregation size.

InvalidGeneratorsLength

This error occurs when there are insufficient generators for the proof.

WrongNumBitCommitments

This error occurs when the dealer is given the wrong number of value commitments.

WrongNumPolyCommitments

This error occurs when the dealer is given the wrong number of polynomial commitments.

WrongNumProofShares

This error occurs when the dealer is given the wrong number of proof shares.

MalformedProofShares

This error occurs when one or more parties submit malformed proof shares.

### Fields of MalformedProofShares

bad_shares: Vec<usize>

A vector with the indexes of the parties whose shares were malformed.

## Trait Implementations

### impl Clone for MPCError[src]

#### fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

### impl Fail for MPCError[src]

#### fn context<D>(self, context: D) -> Context<D> where    D: Display + Send + Sync + 'static,

Provides context for this failure. Read more

#### fn compat(self) -> Compat<Self>

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more

#### fn causes(&self) -> Causes

Deprecated since 0.1.2:

#### fn root_cause(&self) -> &(dyn Fail + 'static)

Deprecated since 0.1.2:

## Blanket Implementations

### impl<T, U> TryFrom for T where    U: Into<T>, [src]

#### type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

### impl<T, U> TryInto for T where    U: TryFrom<T>, [src]

#### type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

### impl<T> Same for T

#### type Output = T

Should always be Self

### impl<E> Fail for E where    E: 'static + Error + Send + Sync,

#### fn name(&self) -> Option<&str>

Returns the "name" of the error. Read more

#### fn cause(&self) -> Option<&(dyn Fail + 'static)>

Returns a reference to the underlying cause of this failure, if it is an error that wraps other errors. Read more

#### fn backtrace(&self) -> Option<&Backtrace>

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more

#### fn context<D>(self, context: D) -> Context<D> where    D: Display + Send + Sync + 'static,

Provides context for this failure. Read more

#### fn compat(self) -> Compat<Self>

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more

#### fn causes(&self) -> Causes

Deprecated since 0.1.2: