Skip to main content

dpp/bls/
mod.rs

1#[cfg(feature = "bls-signatures")]
2mod bls_signatures;
3#[cfg(feature = "bls-signatures")]
4pub use bls_signatures::{BlsError, PublicKey, SecretKey, Signature};
5#[cfg(feature = "bls-signatures")]
6pub mod native_bls;
7/// Serde implementations and field adapters for BLS public keys.
8#[cfg(feature = "bls-signatures")]
9pub mod serde;
10
11use crate::{ProtocolError, PublicKeyValidationError};
12
13pub trait BlsModule {
14    fn validate_public_key(&self, pk: &[u8]) -> Result<(), PublicKeyValidationError>;
15    fn verify_signature(
16        &self,
17        signature: &[u8],
18        data: &[u8],
19        public_key: &[u8],
20    ) -> Result<bool, ProtocolError>;
21    fn private_key_to_public_key(&self, private_key: &[u8]) -> Result<Vec<u8>, ProtocolError>;
22    fn sign(&self, data: &[u8], private_key: &[u8]) -> Result<Vec<u8>, ProtocolError>;
23}