[−][src]Struct bls_like::TinyBLS
Infrequently used BLS variant with tiny 48 byte signatures and 96 byte public keys,
We recommend gainst this variant by default because verifiers
always perform O(signers)
additions on the PublicKeyGroup
,
or worse 128 bit scalar multiplications with delinearization.
Yet, there are specific use cases where this variant performs
better. We swapy two group roles relative to zcash here.
Trait Implementations
impl<E: Engine> EngineBLS for TinyBLS<E>
[src]
type Engine = E
type Scalar = <Self::Engine as ScalarEngine>::Fr
type PublicKeyGroup = E::G2
Group where BLS public keys live Read more
type SignatureGroup = E::G1
Group where BLS signatures live Read more
fn miller_loop<'a, I>(i: I) -> E::Fqk where
I: IntoIterator<Item = (&'a <E::G2Affine as CurveAffine>::Prepared, &'a <E::G1Affine as CurveAffine>::Prepared)>,
[src]
I: IntoIterator<Item = (&'a <E::G2Affine as CurveAffine>::Prepared, &'a <E::G1Affine as CurveAffine>::Prepared)>,
fn pairing<G2, G1>(p: G2, q: G1) -> E::Fqk where
G1: Into<E::G1Affine>,
G2: Into<E::G2Affine>,
[src]
G1: Into<E::G1Affine>,
G2: Into<E::G2Affine>,
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]
e: &<Self::Engine as Engine>::Fqk
) -> Option<<Self::Engine as Engine>::Fqk>
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]
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)>,
Implement verification equation for aggregate BLS signatures provided as prepared points Read more
impl<E: Default + Engine> Default for TinyBLS<E>
[src]
Auto Trait Implementations
impl<E> Sync for TinyBLS<E> where
E: Sync,
E: Sync,
impl<E> Unpin for TinyBLS<E> where
E: Unpin,
E: Unpin,
impl<E> Send for TinyBLS<E> where
E: Send,
E: Send,
impl<E> RefUnwindSafe for TinyBLS<E> where
E: RefUnwindSafe,
E: RefUnwindSafe,
impl<E> UnwindSafe for TinyBLS<E> where
E: UnwindSafe,
E: UnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same<T> for T
type Output = T
Should always be Self