pub struct EncryptedDeck { /* private fields */ }Implementations§
Source§impl EncryptedDeck
1st shuffling phase
impl EncryptedDeck
1st shuffling phase
pub fn shuffle_encrypt<Rng: CryptoRng + RngCore>( &self, rsa_parameter: &RsaParameter, shuffle_rng: &mut Rng, ) -> (EncryptedDeck, Rsa)
Sourcepub fn is_shuffle_encrypt_invalid(&self, num_cards: u32) -> bool
pub fn is_shuffle_encrypt_invalid(&self, num_cards: u32) -> bool
returns true if the shuffle_encrypt deck is obviously tampered with, doesn’t catch all cases
Sourcepub fn is_shuffle_encrypt_valid(
&self,
key: &Rsa,
result: &EncryptedDeck,
) -> bool
pub fn is_shuffle_encrypt_valid( &self, key: &Rsa, result: &EncryptedDeck, ) -> bool
checks if the shuffle_encrypt mechanism was executed correctly and it can be reversed again
Source§impl EncryptedDeck
impl EncryptedDeck
Sourcepub fn encrypt_card_specific(
&self,
shuffle_key: &Rsa,
rsa_parameter: &RsaParameter,
) -> (EncryptedDeck, Vec<Rsa>)
pub fn encrypt_card_specific( &self, shuffle_key: &Rsa, rsa_parameter: &RsaParameter, ) -> (EncryptedDeck, Vec<Rsa>)
removes shuffling key from cards and encrypts each card with a unique random key returns the deck and all card specific keys
Sourcepub fn is_encrypt_card_specific_invalid(&self, num_cards: u32) -> bool
pub fn is_encrypt_card_specific_invalid(&self, num_cards: u32) -> bool
returns true if the shuffle_encrypt deck is obviously tampered with, doesn’t catch all cases
Sourcepub fn is_encrypt_card_specific_valid(
&self,
shuffle_key: &Rsa,
result: &EncryptedDeck,
keys: &[Rsa],
) -> bool
pub fn is_encrypt_card_specific_valid( &self, shuffle_key: &Rsa, result: &EncryptedDeck, keys: &[Rsa], ) -> bool
checks whether the encrypt_card_specific function was executed correctly needs to know the keys involved, so can only be called for peers after the game has ended and everyone published all their keys
Source§impl EncryptedDeck
impl EncryptedDeck
pub fn from_biguints(cards: Vec<BigUint>) -> Self
Sourcepub fn decrypt_card(
&self,
card_id: u32,
shuffle_id: Uuid,
own_key: &Rsa,
other_keys: &[Rsa],
) -> Option<u32>
pub fn decrypt_card( &self, card_id: u32, shuffle_id: Uuid, own_key: &Rsa, other_keys: &[Rsa], ) -> Option<u32>
Returns None on error. The caller has to check whether there are duplicate cards in the deck If there are duplicates the peer who put the first card specific keys on the deck tampered with the deck
§Panics
If card_id >= num_cards
pub fn get_cards(&self) -> Vec<BigUint>
Trait Implementations§
Source§impl Clone for EncryptedDeck
impl Clone for EncryptedDeck
Source§fn clone(&self) -> EncryptedDeck
fn clone(&self) -> EncryptedDeck
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more