Signs the message and returns signature.
message
- Message to sign
sign_key
- Sign key
use indy_crypto::bls::*;
let message = vec![1, 2, 3, 4, 5];
let sign_key = SignKey::new(None).unwrap();
Bls::sign(&message, &sign_key).unwrap();
Verifies the message signature and returns true - if signature valid or false otherwise.
signature
- Signature to verify
message
- Message to verify
ver_key
- Verification key
gen
- Generator point
use indy_crypto::bls::*;
let gen = Generator::new().unwrap();
let sign_key = SignKey::new(None).unwrap();
let ver_key = VerKey::new(&gen, &sign_key).unwrap();
let message = vec![1, 2, 3, 4, 5];
let signature = Bls::sign(&message, &sign_key).unwrap();
let valid = Bls::verify(&signature, &message, &ver_key, &gen).unwrap();
assert!(valid);
Verifies the message multi signature and returns true - if signature valid or false otherwise.
multi_sig
- Multi signature to verify
message
- Message to verify
ver_keys
- List of verification keys
gen
- Generator point
use indy_crypto::bls::*;
let gen = Generator::new().unwrap();
let sign_key1 = SignKey::new(None).unwrap();
let ver_key1 = VerKey::new(&gen, &sign_key1).unwrap();
let sign_key2 = SignKey::new(None).unwrap();
let ver_key2 = VerKey::new(&gen, &sign_key2).unwrap();
let message = vec![1, 2, 3, 4, 5];
let signature1 = Bls::sign(&message, &sign_key1).unwrap();
let signature2 = Bls::sign(&message, &sign_key2).unwrap();
let signatures = vec![
&signature1,
&signature2
];
let multi_sig = MultiSignature::new(&signatures).unwrap();
let ver_keys = vec![
&ver_key1, &ver_key2
];
let valid = Bls::verify_multi_sig(&multi_sig, &message, &ver_keys, &gen).unwrap();
assert!(valid)