Struct indy_crypto::bls::Bls [] [src]

pub struct Bls {}

Methods

impl Bls
[src]

[src]

Signs the message and returns signature.

Arguments

  • message - Message to sign
  • sign_key - Sign key

Example

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();

[src]

Verifies the message signature and returns true - if signature valid or false otherwise.

Arguments

  • signature - Signature to verify
  • message - Message to verify
  • ver_key - Verification key
  • gen - Generator point

Example

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);

[src]

Verifies the message multi signature and returns true - if signature valid or false otherwise.

Arguments

  • multi_sig - Multi signature to verify
  • message - Message to verify
  • ver_keys - List of verification keys
  • gen - Generator point

Example

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)

Trait Implementations

Auto Trait Implementations

impl Send for Bls

impl Sync for Bls