[][src]Struct bls_like::UsualBLS

pub struct UsualBLS<E: Engine>(pub E);

Usual BLS variant with tiny 48 byte public keys and 96 byte signatures.

We favor this variant because verifiers always perform O(signers) additions on the PublicKeyGroup, or worse 128 bit scalar multiplications with delinearization. We also orient this variant to match zcash's traits.

Trait Implementations

impl<E: Engine> EngineBLS for UsualBLS<E>[src]

type Engine = E

type Scalar = <Self::Engine as ScalarEngine>::Fr

type PublicKeyGroup = E::G1

Group where BLS public keys live Read more

type SignatureGroup = E::G2

Group where BLS signatures live Read more

fn generate<R: Rng>(rng: &mut R) -> Self::Scalar[src]

Generate a random scalar for use as a secret key.

fn hash_to_signature_curve<M: Borrow<[u8]>>(message: M) -> Self::SignatureGroup[src]

Hash one message to the signature curve.

fn final_exponentiation(
    e: &<Self::Engine as Engine>::Fqk
) -> Option<<Self::Engine as Engine>::Fqk>
[src]

Perform final exponentiation on the result of a Miller loop.

fn verify_prepared<'a, I>(
    signature: &'a <<Self::SignatureGroup as CurveProjective>::Affine as CurveAffine>::Prepared,
    inputs: I
) -> bool where
    I: IntoIterator<Item = (&'a <<Self::PublicKeyGroup as CurveProjective>::Affine as CurveAffine>::Prepared, &'a <<Self::SignatureGroup as CurveProjective>::Affine as CurveAffine>::Prepared)>, 
[src]

Implement verification equation for aggregate BLS signatures provided as prepared points Read more

impl<E: Default + Engine> Default for UsualBLS<E>[src]

Auto Trait Implementations

impl<E> Sync for UsualBLS<E> where
    E: Sync

impl<E> Send for UsualBLS<E> where
    E: Send

impl<E> Unpin for UsualBLS<E> where
    E: Unpin

impl<E> RefUnwindSafe for UsualBLS<E> where
    E: RefUnwindSafe

impl<E> UnwindSafe for UsualBLS<E> where
    E: UnwindSafe

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