GNUnet 0.21.1
KeygenSession Struct Reference

Session to establish a threshold-shared secret. More...

Collaboration diagram for KeygenSession:
[legend]

Data Fields

struct GNUNET_CONSENSUS_Handleconsensus
 Current consensus, used for both DKG rounds. More...
 
struct ClientStatecs
 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 KeygenPeerInfoinfo
 Information about all participating peers. More...
 
struct GNUNET_PeerIdentitypeers
 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...
 

Detailed Description

Session to establish a threshold-shared secret.

Definition at line 120 of file gnunet-service-secretsharing.c.

Field Documentation

◆ consensus

struct GNUNET_CONSENSUS_Handle* KeygenSession::consensus

◆ cs

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().

◆ presecret_polynomial

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().

◆ threshold

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().

◆ num_peers

◆ local_peer

unsigned int KeygenSession::local_peer

Index of the local peer.

Definition at line 158 of file gnunet-service-secretsharing.c.

◆ info

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().

◆ peers

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().

◆ session_id

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().

◆ paillier_private_key

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().

◆ deadline

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().

◆ start_time

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().

◆ local_peer_idx

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().

◆ my_share

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().

◆ public_key

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().


The documentation for this struct was generated from the following file: