Struct cryptoballot::Trustee [−][src]
pub struct Trustee { pub public_key: PublicKey, pub index: u8, pub num_trustees: usize, pub threshold: u8, }
Expand description
A group of trustees collectively create the encryption-key, decrypt votes, and run the mixnet.
Most elections will have a handful of trustees (between 3 and 30), with a quorum being set to about 2/3 the total number of trustees. Any quorum of trustees may decrypt the votes.
Fields
public_key: PublicKey
index: u8
num_trustees: usize
threshold: u8
Implementations
impl Trustee
[src]
impl Trustee
[src]pub fn from_election_tx(
election_tx: &ElectionTransaction,
pkey: PublicKey
) -> Self
[src]
election_tx: &ElectionTransaction,
pkey: PublicKey
) -> Self
pub fn new(index: u8, num_trustees: usize, threshold: u8) -> (Self, SecretKey)
[src]
pub fn new(index: u8, num_trustees: usize, threshold: u8) -> (Self, SecretKey)
[src]Create a new trustee
pub fn keygen_commitment(
&self,
sk: &SecretKey,
election_id: Identifier
) -> KeygenCommitment
[src]
&self,
sk: &SecretKey,
election_id: Identifier
) -> KeygenCommitment
pub fn generate_shares<R: Rng + CryptoRng>(
&self,
rng: &mut R,
sk: &SecretKey,
x25519_public_keys: &[(u8, PublicKey)],
election_id: Identifier,
commitments: &[(u8, KeygenCommitment)]
) -> IndexMap<u8, EncryptedShare>
[src]
&self,
rng: &mut R,
sk: &SecretKey,
x25519_public_keys: &[(u8, PublicKey)],
election_id: Identifier,
commitments: &[(u8, KeygenCommitment)]
) -> IndexMap<u8, EncryptedShare>
pub fn x25519_public_key(
&self,
sk: &SecretKey,
election_id: Identifier
) -> PublicKey
[src]
&self,
sk: &SecretKey,
election_id: Identifier
) -> PublicKey
pub fn generate_public_key(
&self,
sk: &SecretKey,
x25519_public_keys: &[(u8, PublicKey)],
commitments: &[(u8, KeygenCommitment)],
shares: &[(u8, EncryptedShare)],
election_id: Identifier
) -> Result<(ElGamalPublicKey, PubkeyProof), ValidationError>
[src]
&self,
sk: &SecretKey,
x25519_public_keys: &[(u8, PublicKey)],
commitments: &[(u8, KeygenCommitment)],
shares: &[(u8, EncryptedShare)],
election_id: Identifier
) -> Result<(ElGamalPublicKey, PubkeyProof), ValidationError>
pub fn partial_decrypt<R: Rng + CryptoRng>(
&self,
rng: &mut R,
sk: &SecretKey,
x25519_public_keys: &[(u8, PublicKey)],
commitments: &[(u8, KeygenCommitment)],
shares: &[(u8, EncryptedShare)],
encrypted_vote: &Ciphertext,
election_id: Identifier
) -> Result<DecryptShare, ValidationError>
[src]
&self,
rng: &mut R,
sk: &SecretKey,
x25519_public_keys: &[(u8, PublicKey)],
commitments: &[(u8, KeygenCommitment)],
shares: &[(u8, EncryptedShare)],
encrypted_vote: &Ciphertext,
election_id: Identifier
) -> Result<DecryptShare, ValidationError>
Trait Implementations
impl<'de> Deserialize<'de> for Trustee
[src]
impl<'de> Deserialize<'de> for Trustee
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Trustee
impl Send for Trustee
impl Sync for Trustee
impl Unpin for Trustee
impl UnwindSafe for Trustee
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Pointable for T
[src]
impl<T> Pointable for T
[src]impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,