GNUnet debian-0.26.1
 
Loading...
Searching...
No Matches
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
67
68
70{
75 /*
76 * Signature purpose for signing the keygen commit data.
77 */
83
84 /* values follow */
85};
86
87
130
131
144
146
147#endif
commonly used definitions; globals in this file are exempt from the rule that the module name ("commo...
Constants for network protocols.
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32.
#define GNUNET_CRYPTO_PAILLIER_BITS
Size of paillier plain texts and public keys.
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;.
#define GNUNET_PACKED
gcc-ism to get packed structs.
#define GNUNET_SECRETSHARING_ELGAMAL_BITS
Number of bits for secretsharing elements.
messages used for the secretsharing api
an ECC signature using EdDSA.
header of what an ECC signature signs this must be followed by "size - 8" bytes of the actual signed ...
A 512-bit hashcode.
The identity of the host (wraps the signing key of the peer).
Data of then element put in consensus for decrypting a value.
struct GNUNET_CRYPTO_EddsaSignature signature
struct GNUNET_SECRETSHARING_FieldElement nizk_commit1
Commitment for the non-interactive zero knowledge proof.
struct GNUNET_CRYPTO_SignaturePurpose purpose
struct GNUNET_SECRETSHARING_FieldElement partial_decryption
Partial decryption, computed as .
struct GNUNET_PeerIdentity peer
Peer that inserts this element.
struct GNUNET_SECRETSHARING_Ciphertext ciphertext
Ciphertext we want to decrypt.
struct GNUNET_SECRETSHARING_FieldElement nizk_commit2
Commitment for the non-interactive zero knowledge proof.
struct GNUNET_SECRETSHARING_FieldElement nizk_response
Response to the challenge computed from the protocol transcript.
char t1[GNUNET_SECRETSHARING_ELGAMAL_BITS/8]
char z[GNUNET_SECRETSHARING_ELGAMAL_BITS/8]
char w[GNUNET_CRYPTO_PAILLIER_BITS/8]
struct GNUNET_CRYPTO_PaillierCiphertext c
char h[GNUNET_SECRETSHARING_ELGAMAL_BITS/8]
h = g^x, where x is the fairly encrypted secret.
char t2[GNUNET_CRYPTO_PAILLIER_BITS *2/8]
Consensus element data used in the first round of key generation.
struct GNUNET_PeerIdentity peer
Peer that inserts this element.
struct GNUNET_CRYPTO_SignaturePurpose purpose
Signature purpose for signing the keygen commit data.
struct GNUNET_HashCode commitment
Commitment of 'peer' to its presecret.
struct GNUNET_CRYPTO_PaillierPublicKey pubkey
Ephemeral paillier public key used by 'peer' for this session.
struct GNUNET_CRYPTO_EddsaSignature signature
Signature over the rest of the message.
struct GNUNET_CRYPTO_EddsaSignature signature
Signature over rest of the message.
struct GNUNET_CRYPTO_SignaturePurpose purpose
struct GNUNET_PeerIdentity peer
Peer that inserts this element.