1#[cfg(feature = "bls-signatures")]
2pub mod native_bls;
3
4use crate::{ProtocolError, PublicKeyValidationError};
5
6pub trait BlsModule {
7 fn validate_public_key(&self, pk: &[u8]) -> Result<(), PublicKeyValidationError>;
8 fn verify_signature(
9 &self,
10 signature: &[u8],
11 data: &[u8],
12 public_key: &[u8],
13 ) -> Result<bool, ProtocolError>;
14 fn private_key_to_public_key(&self, private_key: &[u8]) -> Result<Vec<u8>, ProtocolError>;
15 fn sign(&self, data: &[u8], private_key: &[u8]) -> Result<Vec<u8>, ProtocolError>;
16}