GNUnet  0.11.x
secretsharing_protocol.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet
3  Copyright (C) 2012 GNUnet e.V.
4 
5  GNUnet is free software: you can redistribute it and/or modify it
6  under the terms of the GNU Affero General Public License as published
7  by the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  GNUnet is distributed in the hope that it will be useful, but
11  WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Affero General Public License for more details.
14 
15  You should have received a copy of the GNU Affero General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 
18  SPDX-License-Identifier: AGPL3.0-or-later
19  */
20 
21 
28 #ifndef GNUNET_SECRETSHARING_PROTOCOL_H
29 #define GNUNET_SECRETSHARING_PROTOCOL_H
30 
31 #include "platform.h"
32 #include "gnunet_common.h"
33 #include "gnunet_protocols.h"
34 #include "secretsharing.h"
35 
36 
38 
39 
44 {
66 };
67 
68 
70 {
75  /*
76  * Signature purpose for signing the keygen commit data.
77  */
83 
84  /* values follow */
85 };
86 
87 
93 {
94  /*
95  * Signature over rest of the message.
96  */
98  /*
99  * Signature purpose for signing the keygen commit data.
100  */
109  struct GNUNET_PeerIdentity peer;
113  struct GNUNET_SECRETSHARING_FieldElement partial_decryption;
128  struct GNUNET_SECRETSHARING_FieldElement nizk_response;
129 };
130 
131 
133 {
140  char t2[GNUNET_CRYPTO_PAILLIER_BITS * 2 / 8];
143 };
144 
146 
147 #endif
struct GNUNET_CRYPTO_EddsaSignature signature
Signature over the rest of the message.
struct GNUNET_PeerIdentity peer
Peer that inserts this element.
messages used for the secretsharing api
struct GNUNET_CRYPTO_PaillierPublicKey pubkey
Ephemeral paillier public key used by &#39;peer&#39; for this session.
Data of then element put in consensus for decrypting a value.
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32.
static struct GNUNET_ARM_Handle * h
Connection with ARM.
Definition: gnunet-arm.c:99
header of what an ECC signature signs this must be followed by "size - 8" bytes of the actual signed ...
static struct GNUNET_SECRETSHARING_Ciphertext ciphertext
struct GNUNET_HashCode commitment
Commitment of &#39;peer&#39; to its presecret.
A 512-bit hashcode.
struct GNUNET_CRYPTO_EccSignaturePurpose purpose
Signature purpose for signing the keygen commit data.
an ECC signature using EdDSA.
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32;.
The identity of the host (wraps the signing key of the peer).
#define GNUNET_PACKED
gcc-ism to get packed structs.
commonly used definitions; globals in this file are exempt from the rule that the module name ("commo...
#define GNUNET_CRYPTO_PAILLIER_BITS
Size of paillier plain texts and public keys.
Consensus element data used in the first round of key generation.
#define GNUNET_SECRETSHARING_ELGAMAL_BITS
Number of bits for secretsharing elements.