[−][src]Struct bls_like::single::KeypairVT
BLS Keypair
We create Signed
messages with a Keypair
to avoid recomputing
the public key, which usually takes longer than signing when
the public key group is G2
.
We provide constant-time signing using key splitting.
Fields
secret: SecretKeyVT<E>
public: PublicKey<E>
Methods
impl<E: EngineBLS> KeypairVT<E>
[src]
pub fn generate<R: Rng>(rng: R) -> Self
[src]
Generate a Keypair
pub fn into_split<R: Rng>(&self, rng: R) -> Keypair<E>
[src]
Convert into a SecretKey
applying side channel protections.
pub fn sign(&self, message: Message) -> SignedMessage<E>
[src]
Sign a message creating a SignedMessage
using a user supplied CSPRNG for the key splitting.
Trait Implementations
Auto Trait Implementations
impl<E> Sync for KeypairVT<E> where
<E as EngineBLS>::PublicKeyGroup: Sync,
<E as EngineBLS>::Scalar: Sync,
<E as EngineBLS>::PublicKeyGroup: Sync,
<E as EngineBLS>::Scalar: Sync,
impl<E> Send for KeypairVT<E> where
<E as EngineBLS>::PublicKeyGroup: Send,
<E as EngineBLS>::Scalar: Send,
<E as EngineBLS>::PublicKeyGroup: Send,
<E as EngineBLS>::Scalar: Send,
impl<E> Unpin for KeypairVT<E> where
<E as EngineBLS>::PublicKeyGroup: Unpin,
<E as EngineBLS>::Scalar: Unpin,
<E as EngineBLS>::PublicKeyGroup: Unpin,
<E as EngineBLS>::Scalar: Unpin,
impl<E> RefUnwindSafe for KeypairVT<E> where
<E as EngineBLS>::PublicKeyGroup: RefUnwindSafe,
<E as EngineBLS>::Scalar: RefUnwindSafe,
<E as EngineBLS>::PublicKeyGroup: RefUnwindSafe,
<E as EngineBLS>::Scalar: RefUnwindSafe,
impl<E> UnwindSafe for KeypairVT<E> where
<E as EngineBLS>::PublicKeyGroup: UnwindSafe,
<E as EngineBLS>::Scalar: UnwindSafe,
<E as EngineBLS>::PublicKeyGroup: UnwindSafe,
<E as EngineBLS>::Scalar: UnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
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