consolidate reclaim attribute lib
[oweals/gnunet.git] / src / reclaim / 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 flag
43    */
44   uint32_t attribute_flag;
45
46   /**
47    * Attribute ID
48    */
49   struct GNUNET_RECLAIM_Identifier attribute_id;
50
51   /**
52    * Attestation ID
53    */
54   struct GNUNET_RECLAIM_Identifier attestation_id;
55
56   /**
57    * Name length
58    */
59   uint32_t name_len;
60
61   /**
62    * Data size
63    */
64   uint32_t data_size;
65
66   // followed by data_size Attribute value data
67 };
68
69 /**
70  * Serialized attestation claim
71  */
72 struct Attestation
73 {
74   /**
75    * Attestation type
76    */
77   uint32_t attestation_type;
78
79   /**
80    * Attestation flag
81    */
82   uint32_t attestation_flag;
83
84   /**
85    * Attestation ID
86    */
87   struct GNUNET_RECLAIM_Identifier attestation_id;
88
89   /**
90    * Name length
91    */
92   uint32_t name_len;
93
94   /**
95    * Data size
96    */
97   uint32_t data_size;
98
99   // followed by data_size Attestation value data
100 };
101
102 #endif