use bls_signatures_rs::bn256::Bn256;
use bls_signatures_rs::MultiSignature;
fn main() {
let secret_key_1 =
hex::decode("c9afa9d845ba75166b5c215767b1d6934e50c3db36e89b127b8a622b120f6721").unwrap();
let secret_key_2 =
hex::decode("a55e93edb1350916bf5beea1b13d8f198ef410033445bcb645b65be5432722f1").unwrap();
let public_key_1 = Bn256.derive_public_key(&secret_key_1).unwrap();
let public_key_2 = Bn256.derive_public_key(&secret_key_2).unwrap();
let message: &[u8] = b"sample";
let sig_1 = Bn256.sign(&secret_key_1, &message).unwrap();
let sig_2 = Bn256.sign(&secret_key_2, &message).unwrap();
let agg_pub_key = Bn256
.aggregate_public_keys(&[&public_key_1, &public_key_2])
.unwrap();
let agg_sig = Bn256.aggregate_signatures(&[&sig_1, &sig_2]).unwrap();
Bn256.verify(&agg_sig, &message, &agg_pub_key).unwrap();
println!("Successful verification");
}