Struct elastic_elgamal::CandidateDecryption
source · pub struct CandidateDecryption<G: Group> { /* private fields */ }
Expand description
Candidate for a VerifiableDecryption
that is not yet verified. This presentation should be
used for decryption data retrieved from an untrusted source.
Decryption data can be verified using Self::verify()
. The threshold encryption scheme
implemented in the sharing
module has its own verification procedure
in PublicKeySet
.
§Examples
See VerifiableDecryption
for an example of usage.
Implementations§
source§impl<G: Group> CandidateDecryption<G>
impl<G: Group> CandidateDecryption<G>
sourcepub fn from_bytes(bytes: &[u8]) -> Option<Self>
pub fn from_bytes(bytes: &[u8]) -> Option<Self>
Deserializes decryption data from bytes
. Returns None
if the data is malformed.
sourcepub fn verify(
self,
ciphertext: Ciphertext<G>,
key: &PublicKey<G>,
proof: &LogEqualityProof<G>,
transcript: &mut Transcript
) -> Result<VerifiableDecryption<G>, VerificationError>
pub fn verify( self, ciphertext: Ciphertext<G>, key: &PublicKey<G>, proof: &LogEqualityProof<G>, transcript: &mut Transcript ) -> Result<VerifiableDecryption<G>, VerificationError>
Verifies this as decryption for ciphertext
under key
using the provided
zero-knowledge proof
.
§Errors
Returns an error if proof
does not verify.
sourcepub fn into_unchecked(self) -> VerifiableDecryption<G>
pub fn into_unchecked(self) -> VerifiableDecryption<G>
Converts this candidate decryption into a VerifiableDecryption
without verifying it.
This is only semantically correct if the data was verified in some other way.
Trait Implementations§
source§impl<G: Clone + Group> Clone for CandidateDecryption<G>
impl<G: Clone + Group> Clone for CandidateDecryption<G>
source§fn clone(&self) -> CandidateDecryption<G>
fn clone(&self) -> CandidateDecryption<G>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<'de, G: Group> Deserialize<'de> for CandidateDecryption<G>
impl<'de, G: Group> Deserialize<'de> for CandidateDecryption<G>
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<G: Group> From<VerifiableDecryption<G>> for CandidateDecryption<G>
impl<G: Group> From<VerifiableDecryption<G>> for CandidateDecryption<G>
source§fn from(decryption: VerifiableDecryption<G>) -> Self
fn from(decryption: VerifiableDecryption<G>) -> Self
Converts to this type from the input type.
source§impl<G: Group> Serialize for CandidateDecryption<G>
impl<G: Group> Serialize for CandidateDecryption<G>
impl<G: Copy + Group> Copy for CandidateDecryption<G>
Auto Trait Implementations§
impl<G> Freeze for CandidateDecryption<G>
impl<G> RefUnwindSafe for CandidateDecryption<G>
impl<G> Send for CandidateDecryption<G>
impl<G> Sync for CandidateDecryption<G>
impl<G> Unpin for CandidateDecryption<G>
impl<G> UnwindSafe for CandidateDecryption<G>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more