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: PublicKeyindex: u8num_trustees: usizethreshold: u8

Implementations

impl Trustee[src]

pub fn from_election_tx(
    election_tx: &ElectionTransaction,
    pkey: PublicKey
) -> Self
[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]

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]

pub fn x25519_public_key(
    &self,
    sk: &SecretKey,
    election_id: Identifier
) -> PublicKey
[src]

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]

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]

Trait Implementations

impl Clone for Trustee[src]

fn clone(&self) -> Trustee[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Default for Trustee[src]

fn default() -> Trustee[src]

Returns the “default value” for a type. Read more

impl<'de> Deserialize<'de> for Trustee[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

impl Serialize for Trustee[src]

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
    __S: Serializer
[src]

Serialize this value into the given Serde serializer. 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> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T[src]

pub const ALIGN: usize[src]

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize[src]

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T[src]

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T[src]

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)[src]

Drops the object pointed to by the given pointer. Read more

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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]

🔬 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, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]

pub fn vzip(self) -> V[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]