bac0f24cf7
* split up coconut module a bit * internal tool for watching dkg state and updating group contract * debug dkg state * display past dealer data * improved EpochState Display impl * display contract errors + advance epoch state * check admin * panic handler * simplify app.rs * split action enum * added new tab with logger information * new dealing display * sort by index * [fixedup] wip: updating epoch issued credentials - OG 92ade10384a6d7b6c6c222d2e29d69d3b3446a4c * storing and signing partial blinded credentials * starting cleanup * fixed coconut tests + clippy * fixed nym-api tests * removed dkg-manager tool it was moved to a different branch * implemented remaining endpoints * unit tests + bug fixes * clippy * added persistent identity keys to nym-api theyre not yet announced - this will be in another PR * cargo fmt * clippy * fixed loading of old configs without storage paths set * added additional logs for blind-sign endpoint * fixed up licenses * lowercasing error variants * changed 'issued_credentials' to a post * added minimal client support * fixed the unit test
70 lines
2.1 KiB
Rust
70 lines
2.1 KiB
Rust
// Copyright 2021 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use thiserror::Error;
|
|
|
|
/// A `Result` alias where the `Err` case is `coconut_rs::Error`.
|
|
pub type Result<T> = std::result::Result<T, CoconutError>;
|
|
|
|
#[derive(Error, Debug)]
|
|
pub enum CoconutError {
|
|
#[error("Setup error: {0}")]
|
|
Setup(String),
|
|
|
|
#[error("encountered error during keygen")]
|
|
Keygen,
|
|
|
|
#[error("Issuance related error: {0}")]
|
|
Issuance(String),
|
|
|
|
#[error("Tried to prepare blind sign request for higher than specified number of attributes (max: {}, requested: {})", max, requested)]
|
|
IssuanceMaxAttributes { max: usize, requested: usize },
|
|
|
|
#[error("Interpolation error: {0}")]
|
|
Interpolation(String),
|
|
|
|
#[error("Aggregation error: {0}")]
|
|
Aggregation(String),
|
|
|
|
#[error("Unblind error: {0}")]
|
|
Unblind(String),
|
|
|
|
#[error("Verification error: {0}")]
|
|
Verification(String),
|
|
|
|
#[error("Deserialization error: {0}")]
|
|
Deserialization(String),
|
|
|
|
#[error(
|
|
"Deserailization error, expected at least {} bytes, got {}",
|
|
min,
|
|
actual
|
|
)]
|
|
DeserializationMinLength { min: usize, actual: usize },
|
|
|
|
#[error("Tried to deserialize {object} with bytes of invalid length. Expected {actual} < {object} or {modulus_target} % {modulus} == 0")]
|
|
DeserializationInvalidLength {
|
|
actual: usize,
|
|
target: usize,
|
|
modulus_target: usize,
|
|
modulus: usize,
|
|
object: String,
|
|
},
|
|
|
|
#[error("received an array of unexpected size for deserialization of {typ}. got {received} but expected {expected}")]
|
|
UnexpectedArrayLength {
|
|
typ: String,
|
|
received: usize,
|
|
expected: usize,
|
|
},
|
|
|
|
#[error("failed to decode the base58 representation: {0}")]
|
|
Base58DecodingFailure(#[from] bs58::decode::Error),
|
|
|
|
#[error("failed to deserialize scalar from the received bytes - it might not have been canonically encoded")]
|
|
ScalarDeserializationFailure,
|
|
|
|
#[error("failed to deserialize G1Projective point from the received bytes - it might not have been canonically encoded")]
|
|
G1ProjectiveDeserializationFailure,
|
|
}
|