#![no_std]
#![forbid(unsafe_code)]
pub mod ec;
pub mod fp;
pub mod params;
pub mod precomp;
pub mod theta;
pub mod formats;
pub mod hash;
pub mod types;
pub mod verify;
pub use formats::{AnySignature, CompressedSignature, ExpandedSignature, SignatureFormat};
pub use hash::hash_to_challenge;
pub use types::{PublicKey, Scalar, Signature};
pub use fp::{Fp, Fp2, FpBackend};
pub use params::{Level1, Level3, Level5, SecurityLevel};
pub use precomp::LevelPrecomp;
pub use signature::{self, SignatureEncoding, Verifier};
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Error {
InvalidSignature,
MalformedInput,
InvalidLength,
InternalError,
}
impl core::fmt::Display for Error {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Error::InvalidSignature => f.write_str("invalid signature"),
Error::MalformedInput => f.write_str("malformed input"),
Error::InvalidLength => f.write_str("invalid length"),
Error::InternalError => f.write_str("internal error"),
}
}
}
#[cfg(feature = "std")]
extern crate std;
#[cfg(feature = "std")]
impl std::error::Error for Error {}