/*
This file is part of GNUnet.
- (C) 2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2013 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
struct GNUNET_SECRETSHARING_FieldElement
{
/**
- * Value of an element in <elgamal_g>.
+ * Value of an element in <elgamal_g>.
*/
unsigned char bits[GNUNET_SECRETSHARING_ELGAMAL_BITS / 8];
};
struct GNUNET_SECRETSHARING_DecryptResponseMessage
{
/**
- * Type: GNUNET_MESSAGE_TYPE_SECRETSHARING_CLIENT_DECRYPT_DONE
+ * Type: #GNUNET_MESSAGE_TYPE_SECRETSHARING_CLIENT_DECRYPT_DONE
*/
struct GNUNET_MessageHeader header;
* Zero if decryption failed, non-zero if decryption succeeded.
* If the decryption failed, plaintext is also zero.
*/
- uint32_t success;
+ uint32_t success GNUNET_PACKED;
/**
* Decrypted plaintext.
uint16_t my_peer;
/**
- * Public key. Must correspond to the product of
- * the homomorphic share commitments.
+ * Public key. Computed from the
+ * exponentiated coefficients.
*/
struct GNUNET_SECRETSHARING_PublicKey public_key;
struct GNUNET_SECRETSHARING_FieldElement my_share;
/**
- * Peer identities (includes 'my_peer')
+ * Peer identities (includes 'my_peer')
*/
struct GNUNET_PeerIdentity *peers;
/*
- * Homomorphic commitments to each peer's share (includes 'my_peer')
+ * For each peer, store elgamal_g to the peer's
+ * share.
*/
- struct GNUNET_SECRETSHARING_FieldElement *hom_share_commitments;
+ struct GNUNET_SECRETSHARING_FieldElement *sigmas;
/*
* Original indices of peers from the DKG round.