| Crates.io | multiversx-bls |
| lib.rs | multiversx-bls |
| version | 0.2.0 |
| created_at | 2025-09-04 14:14:55.05353+00 |
| updated_at | 2025-09-16 12:38:28.5791+00 |
| description | BLS signature library for MultiversX |
| homepage | https://multiversx.com/ |
| repository | https://github.com/multiversx/mx-bls-rs |
| max_upload_size | |
| id | 1824274 |
| size | 5,772,782 |
This is a wrapper library of bls, that bridges the functionality with MultiversX crypto packages.
| multiversx-bls | Spec Name |
|---|---|
| G1 | Signature |
| G2 | Public Key |
verify(&self, public_key: G2, msg: &[u8]) -> bool
fast_aggregate_verify(&self, public_keys: &[G2], msg: &[u8]) -> bool
add_assign(&mut self, signature: G1)
is_valid_order(&self) -> bool
aggregate(&mut self, sigs: &[G1])
is_zero(&self) -> bool
is_valid(&self) -> bool
verify_signature_order(verify: bool)
true: verification enabled;false: verification disabled (default).deserialize(&mut self, buf: &[u8]) -> bool
from_serialized(buf: &[u8]) -> Result<Self, BlsError>
BlsError::InvalidData on failure.serialize(&self) -> Result<Vec<u8>, BlsError>
BlsError::SerializeError on failure.add_assign(&mut self, public_key: G2)
is_valid_order(&self) -> bool
set_str(&mut self, s: &str)
deserialize_g2(&mut self, buf: &[u8]) -> bool
is_zero(&self) -> bool
is_valid(&self) -> bool
verify_public_key_order(verify: bool)
serialize(&self) -> Result<Vec<u8>, BlsError>
BlsError::SerializeError on failure.deserialize(&mut self, buf: &[u8]) -> bool
from_serialized(buf: &[u8]) -> Result<Self, BlsError>
BlsError::InvalidData otherwise.set_by_csprng(&mut self)
set_hex_str(&mut self, s: &str) -> bool
from_hex_str(s: &str) -> Result<SecretKey, BlsError>
BlsError::InvalidData if invalid.get_public_key(&self) -> G2
sign(&self, msg: &[u8]) -> G1
deserialize(&mut self, buf: &[u8]) -> bool
from_serialized(buf: &[u8]) -> Result<Self, BlsError>
BlsError::InvalidData if invalid.serialize(&self) -> Result<Vec<u8>, BlsError>
BlsError::SerializeError on failure.v1.28.2.Example: creating a public key from a vector of bytes.
let buffer = [0; 96];
let mut public_key = G2::default();
if !public_key.deserialize_g2(buffer) {
return Err(BlsError::InvalidData);
}
Example: creating a signature from a vector of bytes.
let buffer = [0; 48];
let mut sign = G1::default();
if !sign.deserialize(buffer) {
return Err(BlsError::InvalidData);
}
Example: verifying a BLS signature with a single public key and message.
fn verify_signature(signature: G1, public_key: G2, message: &[u8]) {
signature.verify(public_key, message)
}