use NULL value in load_path_suffix to NOT load any files
[oweals/gnunet.git] / src / reclaim-attribute / reclaim_attribute.h
1 /*
2    This file is part of GNUnet.
3    Copyright (C) 2012-2015 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  * @author Martin Schanzenbach
22  * @file reclaim-attribute/reclaim_attribute.h
23  * @brief GNUnet reclaim identity attributes
24  *
25  */
26 #ifndef RECLAIM_ATTRIBUTE_H
27 #define RECLAIM_ATTRIBUTE_H
28
29 #include "gnunet_reclaim_service.h"
30
31 /**
32  * Serialized claim
33  */
34 struct Attribute
35 {
36   /**
37    * Attribute type
38    */
39   uint32_t attribute_type;
40
41   /**
42    * Attribute version
43    */
44   uint32_t attribute_version;
45
46   /**
47    * Attribute ID
48    */
49   uint64_t attribute_id;
50
51   /**
52    * Name length
53    */
54   uint32_t name_len;
55
56   /**
57    * Data size
58    */
59   uint32_t data_size;
60
61   // followed by data_size Attribute value data
62 };
63
64 /**
65  * Serialized attestation claim
66  */
67 struct Attestation
68 {
69   /**
70    * Attestation type
71    */
72   uint32_t attestation_type;
73
74   /**
75    * Attestation version
76    */
77   uint32_t attestation_version;
78
79   /**
80    * Attestation ID
81    */
82   uint64_t attestation_id;
83
84   /**
85    * Name length
86    */
87   uint32_t name_len;
88
89   /**
90    * Data size
91    */
92   uint32_t data_size;
93
94   // followed by data_size Attestation value data
95 };
96
97 /**
98  * Serialized attestation reference
99  */
100 struct Attestation_Reference
101 {
102   /**
103    * Reference ID
104    */
105   uint64_t reference_id;
106
107   /**
108    * The ID of the referenced attestation
109    */
110   uint64_t attestation_id;
111
112   /**
113    * Claim Name length
114    */
115   uint32_t name_len;
116
117     /**
118    * Length of the referenced value
119    */
120   uint32_t ref_value_len;
121
122
123   // followed by the name and referenced value
124 };
125
126 #endif