pub mod base;
pub mod history;
pub mod lookup;
#[cfg(feature = "nostd")]
use alloc::format;
#[cfg(feature = "nostd")]
use alloc::string::String;
#[cfg(feature = "nostd")]
use alloc::string::ToString;
#[derive(Debug, Eq, PartialEq)]
pub enum VerificationError {
MembershipProof(String),
NonMembershipProof(String),
LookupProof(String),
HistoryProof(String),
#[cfg(feature = "vrf")]
Vrf(crate::ecvrf::VrfError),
#[cfg(feature = "protobuf")]
Serialization(crate::proto::ConversionError),
}
impl core::fmt::Display for VerificationError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let code = match &self {
VerificationError::MembershipProof(err) => format!("(Membership proof) - {err}"),
VerificationError::NonMembershipProof(err) => {
format!("(Non-membership proof) - {err}")
}
VerificationError::LookupProof(err) => format!("(Lookup proof) - {err}"),
VerificationError::HistoryProof(err) => format!("(History proof) - {err}"),
#[cfg(feature = "vrf")]
VerificationError::Vrf(vrf) => vrf.to_string(),
#[cfg(feature = "protobuf")]
VerificationError::Serialization(proto) => proto.to_string(),
};
write!(f, "Verification error {code}")
}
}
#[cfg(feature = "vrf")]
impl From<crate::ecvrf::VrfError> for VerificationError {
fn from(input: crate::ecvrf::VrfError) -> Self {
VerificationError::Vrf(input)
}
}
#[cfg(feature = "protobuf")]
impl From<crate::proto::ConversionError> for VerificationError {
fn from(input: crate::proto::ConversionError) -> Self {
VerificationError::Serialization(input)
}
}
#[cfg(feature = "protobuf")]
impl From<protobuf::Error> for VerificationError {
fn from(input: protobuf::Error) -> Self {
let conv: crate::proto::ConversionError = input.into();
conv.into()
}
}
#[cfg(feature = "public_tests")]
pub use base::{verify_membership_for_tests_only, verify_nonmembership_for_tests_only};
pub use history::{key_history_verify, HistoryVerificationParams};
pub use lookup::lookup_verify;