[−][src]Struct bls_like::pop::CountPoPSignedMessage
One individual message with attached aggreggate BLS signatures from signers for whom we previously checked proofs-of-possession, and with the singers presented as a compact bitfield.
We may aggregage any number of duplicate signatures per signer here,
unlike CountPoPSignedMessage
, but our serialized signature costs
one 96 or or 48 bytes compressed curve point, plus the size of
ProofsOfPossession::Signers
times log of the largest duplicate
count.
You must provide a ProofsOfPossession
for this, likely by
implementing it for your own data structures.
Fields
max_duplicates: usize
Errors if a duplicate signature count would exceed this number.
We suggest rounding up to the nearest power of two.
Methods
impl<E, POP> CountPoPSignedMessage<E, POP> where
E: EngineBLS,
POP: ProofsOfPossession<E>,
[src]
E: EngineBLS,
POP: ProofsOfPossession<E>,
pub fn new(
proofs_of_possession: POP,
message: Message
) -> CountPoPSignedMessage<E, POP>
[src]
proofs_of_possession: POP,
message: Message
) -> CountPoPSignedMessage<E, POP>
pub fn add(&mut self, signed: &SignedMessage<E>) -> Result<(), PoPError>
[src]
Include one signed message, after testing for message and proofs-of-possession table agreement, and disjoint publickeys.
pub fn add_bitpop(
&mut self,
other: &BitPoPSignedMessage<E, POP>
) -> Result<(), PoPError>
[src]
&mut self,
other: &BitPoPSignedMessage<E, POP>
) -> Result<(), PoPError>
pub fn merge(
&mut self,
other: &CountPoPSignedMessage<E, POP>
) -> Result<(), PoPError>
[src]
&mut self,
other: &CountPoPSignedMessage<E, POP>
) -> Result<(), PoPError>
Merge two CountPoPSignedMessage
, after testing for message
and proofs-of-possession table agreement, and disjoint publickeys.
Trait Implementations
impl<'a, E, POP> Signed for &'a CountPoPSignedMessage<E, POP> where
E: EngineBLS,
POP: ProofsOfPossession<E>,
[src]
E: EngineBLS,
POP: ProofsOfPossession<E>,
type E = E
type M = Message
type PKG = PublicKey<E>
type PKnM = Once<(Message, PublicKey<E>)>
Iterator over messages and public key reference pairs.
fn messages_and_publickeys(self) -> Self::PKnM
[src]
fn signature(&self) -> Signature<E>
[src]
fn verify(self) -> bool
[src]
impl<'a, E, POP> Clone for CountPoPSignedMessage<E, POP> where
E: EngineBLS,
POP: ProofsOfPossession<E> + Clone,
[src]
E: EngineBLS,
POP: ProofsOfPossession<E> + Clone,
fn clone(&self) -> CountPoPSignedMessage<E, POP>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl<E, POP> Sync for CountPoPSignedMessage<E, POP> where
POP: Sync,
<E as EngineBLS>::SignatureGroup: Sync,
<POP as ProofsOfPossession<E>>::Signers: Sync,
POP: Sync,
<E as EngineBLS>::SignatureGroup: Sync,
<POP as ProofsOfPossession<E>>::Signers: Sync,
impl<E, POP> Unpin for CountPoPSignedMessage<E, POP> where
POP: Unpin,
<E as EngineBLS>::SignatureGroup: Unpin,
<POP as ProofsOfPossession<E>>::Signers: Unpin,
POP: Unpin,
<E as EngineBLS>::SignatureGroup: Unpin,
<POP as ProofsOfPossession<E>>::Signers: Unpin,
impl<E, POP> Send for CountPoPSignedMessage<E, POP> where
POP: Send,
<E as EngineBLS>::SignatureGroup: Send,
<POP as ProofsOfPossession<E>>::Signers: Send,
POP: Send,
<E as EngineBLS>::SignatureGroup: Send,
<POP as ProofsOfPossession<E>>::Signers: Send,
impl<E, POP> UnwindSafe for CountPoPSignedMessage<E, POP> where
POP: UnwindSafe,
<E as EngineBLS>::SignatureGroup: UnwindSafe,
<POP as ProofsOfPossession<E>>::Signers: UnwindSafe,
POP: UnwindSafe,
<E as EngineBLS>::SignatureGroup: UnwindSafe,
<POP as ProofsOfPossession<E>>::Signers: UnwindSafe,
impl<E, POP> RefUnwindSafe for CountPoPSignedMessage<E, POP> where
POP: RefUnwindSafe,
<E as EngineBLS>::SignatureGroup: RefUnwindSafe,
<POP as ProofsOfPossession<E>>::Signers: RefUnwindSafe,
POP: RefUnwindSafe,
<E as EngineBLS>::SignatureGroup: RefUnwindSafe,
<POP as ProofsOfPossession<E>>::Signers: RefUnwindSafe,
Blanket Implementations
impl<T> From<T> for T
[src]
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, 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> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
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