GNUnet  0.11.x
abd.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet
3  Copyright (C) 2012-2013 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  */
25 #ifndef ABD_H
26 #define ABD_H
27 
28 #include "gnunet_abd_service.h"
29 
31 
36 {
41 
46 
51 
56 
60  uint16_t resolution_algo;
61 
65  uint32_t id GNUNET_PACKED;
66 
67  /* Followed by the zero-terminated attribute */
68 };
69 
70 
75 {
80 
85 
90 
94  uint32_t d_count;
95 
100 
104  uint16_t resolution_algo;
105 
109  uint32_t id GNUNET_PACKED;
110 
111  /* Followed by the zero-terminated attribute and credentials to look up */
112 };
113 
114 
119 {
124 
128  uint32_t id GNUNET_PACKED;
129 
133  uint32_t del_found GNUNET_PACKED;
134 
138  uint32_t d_count GNUNET_PACKED;
139 
143  uint32_t c_count GNUNET_PACKED;
144 
145  /* followed by ad_count GNUNET_ABD_RecordData structs*/
146 };
147 
152 {
157 
161  uint32_t id GNUNET_PACKED;
162 
163  uint16_t is_bw GNUNET_PACKED;
164 
165  uint32_t size GNUNET_PACKED;
166 };
167 
169 {
174 
178  uint32_t subject_attribute_len GNUNET_PACKED;
179 };
180 
181 
183 {
188 
193 
198 
202  uint32_t subject_attribute_len GNUNET_PACKED;
203 };
204 
205 
207 {
208 
213 
218 
223 
228 
233 
238 
242 };
243 
245 {
246 
251 
256 
261 
266 
271 
276 
281 
285 };
286 
287 
289 
290 #endif
Message from client to Credential service to verify attributes.
Definition: abd.h:74
uint32_t issuer_attribute_len
Issuer attribute length.
Definition: abd.h:237
uint32_t purpose
What does this signature vouch for? This must contain a GNUNET_SIGNATURE_PURPOSE_XXX constant (from g...
uint16_t issuer_attribute_len
Length of the issuer attribute.
Definition: abd.h:99
uint16_t resolution_algo
Direction of the resolution algo.
Definition: abd.h:104
Message from ABD service to client: new results.
Definition: abd.h:118
struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key
Trust anchor.
Definition: abd.h:50
Message from client to Credential service to collect credentials.
Definition: abd.h:35
Private ECC key encoded for transmission.
Message from ABD service to client: new results.
Definition: abd.h:151
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32.
header of what an ECC signature signs this must be followed by "size - 8" bytes of the actual signed ...
uint16_t resolution_algo
Direction of the resolution algo.
Definition: abd.h:60
an ECC signature using ECDSA
static char * expiration
Credential TTL.
Definition: gnunet-abd.c:96
static unsigned int size
Size of the "table".
Definition: peer.c:67
struct GNUNET_MessageHeader header
Header of type GNUNET_MESSAGE_TYPE_ABD_VERIFY.
Definition: abd.h:40
uint32_t d_count
Number of delegates.
Definition: abd.h:94
struct GNUNET_CRYPTO_EcdsaPrivateKey subject_key
Subject public key.
Definition: abd.h:45
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32;.
#define GNUNET_PACKED
gcc-ism to get packed structs.
uint32_t subject_attribute_len
Issuer attribute length.
Definition: abd.h:280
Public ECC key (always for Curve25519) encoded in a format suitable for network transmission and ECDS...
uint16_t issuer_attribute_len
Length of the issuer attribute.
Definition: abd.h:55
uint32_t issuer_attribute_len
Issuer subject attribute length.
Definition: abd.h:275
Header for all communications.