Session to establish a threshold-shared secret. More...
Data Fields | |
struct GNUNET_CONSENSUS_Handle * | consensus |
Current consensus, used for both DKG rounds. More... | |
struct ClientState * | cs |
Which client is this for? More... | |
gcry_mpi_t * | presecret_polynomial |
Randomly generated coefficients of the polynomial for sharing our pre-secret, where 'preshares[0]' is our pre-secret. More... | |
unsigned int | threshold |
Minimum number of shares required to restore the secret. More... | |
unsigned int | num_peers |
Total number of peers. More... | |
unsigned int | local_peer |
Index of the local peer. More... | |
struct KeygenPeerInfo * | info |
Information about all participating peers. More... | |
struct GNUNET_PeerIdentity * | peers |
List of all peers involved in the secret sharing session. More... | |
struct GNUNET_HashCode | session_id |
Identifier for this session. More... | |
struct GNUNET_CRYPTO_PaillierPrivateKey | paillier_private_key |
Paillier private key of our peer. More... | |
struct GNUNET_TIME_Absolute | deadline |
When would we like the key to be established? More... | |
struct GNUNET_TIME_Absolute | start_time |
When does the DKG start? Necessary to compute fractions of the operation's desired time interval. More... | |
unsigned int | local_peer_idx |
Index of the local peer in the ordered list of peers in the session. More... | |
gcry_mpi_t | my_share |
Share of our peer. More... | |
gcry_mpi_t | public_key |
Public key, will be updated when a round2 element arrives. More... | |
Session to establish a threshold-shared secret.
Definition at line 120 of file gnunet-service-secretsharing.c.
struct GNUNET_CONSENSUS_Handle* KeygenSession::consensus |
Current consensus, used for both DKG rounds.
Definition at line 125 of file gnunet-service-secretsharing.c.
Referenced by handle_client_keygen(), insert_round1_element(), insert_round2_element(), keygen_round1_conclude(), keygen_round2_conclude(), and keygen_session_destroy().
struct ClientState* KeygenSession::cs |
Which client is this for?
Definition at line 130 of file gnunet-service-secretsharing.c.
Referenced by handle_client_keygen(), keygen_round2_conclude(), and keygen_session_destroy().
gcry_mpi_t* KeygenSession::presecret_polynomial |
Randomly generated coefficients of the polynomial for sharing our pre-secret, where 'preshares[0]' is our pre-secret.
Contains 'threshold' elements, thus represents a polynomial of degree 'threshold-1', which can be interpolated with 'threshold' data points.
The pre-secret-shares 'i=1,...,num_peers' are given by evaluating this polyomial at 'i' for share i.
Definition at line 141 of file gnunet-service-secretsharing.c.
Referenced by generate_presecret_polynomial(), insert_round1_element(), insert_round2_element(), and keygen_session_destroy().
unsigned int KeygenSession::threshold |
Minimum number of shares required to restore the secret.
Also the number of coefficients for the polynomial representing the sharing. Obviously, the polynomial then has degree threshold-1.
Definition at line 148 of file gnunet-service-secretsharing.c.
Referenced by generate_presecret_polynomial(), handle_client_keygen(), insert_round2_element(), keygen_round2_new_element(), and keygen_session_destroy().
unsigned int KeygenSession::num_peers |
Total number of peers.
Definition at line 153 of file gnunet-service-secretsharing.c.
Referenced by get_keygen_peer_info(), handle_client_keygen(), insert_round2_element(), keygen_reveal_get_exp_coeff(), keygen_round1_conclude(), keygen_round2_conclude(), keygen_round2_new_element(), and keygen_session_destroy().
unsigned int KeygenSession::local_peer |
Index of the local peer.
Definition at line 158 of file gnunet-service-secretsharing.c.
struct KeygenPeerInfo* KeygenSession::info |
Information about all participating peers.
Array of size 'num_peers'.
Definition at line 164 of file gnunet-service-secretsharing.c.
Referenced by get_keygen_peer_info(), handle_client_keygen(), insert_round1_element(), insert_round2_element(), keygen_round2_conclude(), keygen_round2_new_element(), and keygen_session_destroy().
struct GNUNET_PeerIdentity* KeygenSession::peers |
List of all peers involved in the secret sharing session.
Definition at line 169 of file gnunet-service-secretsharing.c.
Referenced by handle_client_keygen(), keygen_round1_conclude(), and keygen_session_destroy().
struct GNUNET_HashCode KeygenSession::session_id |
Identifier for this session.
Definition at line 174 of file gnunet-service-secretsharing.c.
Referenced by keygen_round1_conclude().
struct GNUNET_CRYPTO_PaillierPrivateKey KeygenSession::paillier_private_key |
Paillier private key of our peer.
Definition at line 179 of file gnunet-service-secretsharing.c.
Referenced by handle_client_keygen(), and keygen_round2_new_element().
struct GNUNET_TIME_Absolute KeygenSession::deadline |
When would we like the key to be established?
Definition at line 184 of file gnunet-service-secretsharing.c.
Referenced by handle_client_keygen(), and keygen_round1_conclude().
struct GNUNET_TIME_Absolute KeygenSession::start_time |
When does the DKG start? Necessary to compute fractions of the operation's desired time interval.
Definition at line 190 of file gnunet-service-secretsharing.c.
Referenced by keygen_round1_conclude().
unsigned int KeygenSession::local_peer_idx |
Index of the local peer in the ordered list of peers in the session.
Definition at line 196 of file gnunet-service-secretsharing.c.
Referenced by handle_client_keygen(), insert_round1_element(), insert_round2_element(), keygen_round2_conclude(), and keygen_round2_new_element().
gcry_mpi_t KeygenSession::my_share |
Share of our peer.
Once preshares from other peers are received, they will be added to 'my'share.
Definition at line 202 of file gnunet-service-secretsharing.c.
Referenced by keygen_round2_conclude(), keygen_round2_new_element(), and keygen_session_destroy().
gcry_mpi_t KeygenSession::public_key |
Public key, will be updated when a round2 element arrives.
Definition at line 207 of file gnunet-service-secretsharing.c.
Referenced by keygen_round2_conclude(), keygen_round2_new_element(), and keygen_session_destroy().