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

pub struct Bls {}

Methods

impl Bls
[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();

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

Verifies the proof of possession and returns true - if valid or false otherwise.

Arguments

  • pop - Proof of possession
  • 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 pop = ProofOfPossession::new(&ver_key, &sign_key).unwrap();

let valid = Bls::verify_proof_of_posession(&pop, &ver_key, &gen).unwrap();
assert!(valid);

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)

Auto Trait Implementations

impl Send for Bls

impl Sync for Bls

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

Performs the conversion.

impl<T> From for T
[src]

Performs the conversion.

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Borrow for T where
    T: ?Sized
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut for T where
    T: ?Sized
[src]

Mutably borrows from an owned value. Read more

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more

impl<T> Same for T

Should always be Self