[][src]Struct ursa::bls::Bls

pub struct Bls {}

Methods

impl Bls[src]

pub fn sign(message: &[u8], sign_key: &SignKey) -> UrsaCryptoResult<Signature>[src]

Signs the message and returns signature.

Arguments

  • message - Message to sign
  • sign_key - Sign key

Example

use ursa::bls::*;
let message = vec![1, 2, 3, 4, 5];
let sign_key = SignKey::new(None).unwrap();
Bls::sign(&message, &sign_key).unwrap();

pub fn verify(
    signature: &Signature,
    message: &[u8],
    ver_key: &VerKey,
    gen: &Generator
) -> UrsaCryptoResult<bool>
[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 ursa::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);

pub fn verify_proof_of_posession(
    pop: &ProofOfPossession,
    ver_key: &VerKey,
    gen: &Generator
) -> UrsaCryptoResult<bool>
[src]

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

pub fn verify_multi_sig(
    multi_sig: &MultiSignature,
    message: &[u8],
    ver_keys: &[&VerKey],
    gen: &Generator
) -> UrsaCryptoResult<bool>
[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 ursa::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)

pub fn _verify_signature<T>(
    signature: &PointG1,
    message: &[u8],
    ver_key: &PointG2,
    gen: &Generator,
    hasher: T
) -> UrsaCryptoResult<bool> where
    T: Digest
[src]

Auto Trait Implementations

impl Send for Bls

impl Unpin for Bls

impl Sync for Bls

impl UnwindSafe for Bls

impl RefUnwindSafe for Bls

Blanket Implementations

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

impl<T> From<T> for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

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

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self