aboutsummaryrefslogtreecommitdiff
path: root/src/zklaim/zklaim_api.h
blob: 24197b06c2b60e48f783542e98f1961352b5c400 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
     This file is part of GNUnet.
     Copyright (C) 2013 GNUnet e.V.

     GNUnet is free software: you can redistribute it and/or modify it
     under the terms of the GNU Affero General Public License as published
     by the Free Software Foundation, either version 3 of the License,
     or (at your option) any later version.

     GNUnet is distributed in the hope that it will be useful, but
     WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Affero General Public License for more details.

     You should have received a copy of the GNU Affero General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
 * @author Martin Schanzenbach
 * @file zklaim/zklaim.h
 *
 * @brief Common type definitions for the zklaim
 *        service and API.
 */
#ifndef ZKLAIM_API_H
#define ZKLAIM_API_H

#include "gnunet_common.h"


GNUNET_NETWORK_STRUCT_BEGIN

/**
 * Answer from service to client about last operation;
 * GET_DEFAULT maybe answered with this message on failure;
 * CREATE and RENAME will always be answered with this message.
 */
struct ContextMessage
{
  /**
   * Type: #GNUNET_MESSAGE_TYPE_ZKLAIM_RESULT_CTX
   */
  struct GNUNET_MessageHeader header;

  /**
   * Length if the serialized context.
   */
  uint32_t ctx_len GNUNET_PACKED;

  /* followed by 0-terminated error message (on error) */

};



/**
 * Answer from service to client about last operation;
 * GET_DEFAULT maybe answered with this message on failure;
 * CREATE and RENAME will always be answered with this message.
 */
struct ResultCodeMessage
{
  /**
   * Type: #GNUNET_MESSAGE_TYPE_ZKLAIM_RESULT_CODE
   */
  struct GNUNET_MessageHeader header;

  /**
   * Status code for the last operation, in NBO.
   * (currently not used).
   */
  uint32_t result_code GNUNET_PACKED;

  /* followed by 0-terminated error message (on error) */

};

/**
 * Client requests issue of a credential.  Service
 * will respond with a context.
 */
struct LookupMessage
{
  /**
   * Type: #GNUNET_MESSAGE_TYPE_ZKLAIM_LOOKUP_CTX
   */
  struct GNUNET_MessageHeader header;

  /**
   * Number of bytes in name string including 0-termination, in NBO.
   */
  uint16_t name_len GNUNET_PACKED;

  /**
   * Always zero.
   */
  uint16_t reserved GNUNET_PACKED;

  /**
   * The private key
   */
  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;

  /* followed by 0-terminated identity name */

};


/**
 * Client requests creation of an identity.  Service
 * will respond with a result code.
 */
struct CreateRequestMessage
{
  /**
   * Type: #GNUNET_MESSAGE_TYPE_ZKLAIM_CREATE
   */
  struct GNUNET_MessageHeader header;

  /**
   * Number of bytes in name string including 0-termination, in NBO.
   */
  uint16_t name_len GNUNET_PACKED;

  /**
   * Number of bytes in attributes string including 0-termination, in NBO.
   */
  uint16_t attrs_len GNUNET_PACKED;

  /**
   * Always zero.
   */
  uint16_t reserved GNUNET_PACKED;

  /**
   * The private key
   */
  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;

  /* followed by 0-terminated identity name */

};

GNUNET_NETWORK_STRUCT_END

#endif