crypto_kx.h revision 1.1 1 #ifndef crypto_kx_H
2 #define crypto_kx_H
3
4 #if 0
5 #include <stddef.h>
6 #endif
7 #include "export.h"
8
9 #ifdef __cplusplus
10 # ifdef __GNUC__
11 # pragma GCC diagnostic ignored "-Wlong-long"
12 # endif
13 extern "C" {
14 #endif
15
16 #define crypto_kx_PUBLICKEYBYTES 32
17 SODIUM_EXPORT
18 size_t crypto_kx_publickeybytes(void);
19
20 #define crypto_kx_SECRETKEYBYTES 32
21 SODIUM_EXPORT
22 size_t crypto_kx_secretkeybytes(void);
23
24 #define crypto_kx_SEEDBYTES 32
25 SODIUM_EXPORT
26 size_t crypto_kx_seedbytes(void);
27
28 #define crypto_kx_SESSIONKEYBYTES 32
29 SODIUM_EXPORT
30 size_t crypto_kx_sessionkeybytes(void);
31
32 #define crypto_kx_PRIMITIVE "x25519blake2b"
33 SODIUM_EXPORT
34 const char *crypto_kx_primitive(void);
35
36 SODIUM_EXPORT
37 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
38 unsigned char sk[crypto_kx_SECRETKEYBYTES],
39 const unsigned char seed[crypto_kx_SEEDBYTES]);
40
41 SODIUM_EXPORT
42 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
43 unsigned char sk[crypto_kx_SECRETKEYBYTES]);
44
45 SODIUM_EXPORT
46 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
47 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
48 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
49 const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
50 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
51 __attribute__ ((warn_unused_result));
52
53 SODIUM_EXPORT
54 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
55 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
56 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
57 const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
58 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
59 __attribute__ ((warn_unused_result));
60
61 #ifdef __cplusplus
62 }
63 #endif
64
65 #endif
66 #ifndef crypto_kx_H
67 #define crypto_kx_H
68
69 #if 0
70 #include <stddef.h>
71 #endif
72 #include "export.h"
73
74 #ifdef __cplusplus
75 # ifdef __GNUC__
76 # pragma GCC diagnostic ignored "-Wlong-long"
77 # endif
78 extern "C" {
79 #endif
80
81 #define crypto_kx_PUBLICKEYBYTES 32
82 SODIUM_EXPORT
83 size_t crypto_kx_publickeybytes(void);
84
85 #define crypto_kx_SECRETKEYBYTES 32
86 SODIUM_EXPORT
87 size_t crypto_kx_secretkeybytes(void);
88
89 #define crypto_kx_SEEDBYTES 32
90 SODIUM_EXPORT
91 size_t crypto_kx_seedbytes(void);
92
93 #define crypto_kx_SESSIONKEYBYTES 32
94 SODIUM_EXPORT
95 size_t crypto_kx_sessionkeybytes(void);
96
97 #define crypto_kx_PRIMITIVE "x25519blake2b"
98 SODIUM_EXPORT
99 const char *crypto_kx_primitive(void);
100
101 SODIUM_EXPORT
102 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
103 unsigned char sk[crypto_kx_SECRETKEYBYTES],
104 const unsigned char seed[crypto_kx_SEEDBYTES]);
105
106 SODIUM_EXPORT
107 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
108 unsigned char sk[crypto_kx_SECRETKEYBYTES]);
109
110 SODIUM_EXPORT
111 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
112 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
113 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
114 const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
115 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
116 __attribute__ ((warn_unused_result));
117
118 SODIUM_EXPORT
119 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
120 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
121 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
122 const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
123 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
124 __attribute__ ((warn_unused_result));
125
126 #ifdef __cplusplus
127 }
128 #endif
129
130 #endif
131 #ifndef crypto_kx_H
132 #define crypto_kx_H
133
134 #if 0
135 #include <stddef.h>
136 #endif
137 #include "export.h"
138
139 #ifdef __cplusplus
140 # ifdef __GNUC__
141 # pragma GCC diagnostic ignored "-Wlong-long"
142 # endif
143 extern "C" {
144 #endif
145
146 #define crypto_kx_PUBLICKEYBYTES 32
147 SODIUM_EXPORT
148 size_t crypto_kx_publickeybytes(void);
149
150 #define crypto_kx_SECRETKEYBYTES 32
151 SODIUM_EXPORT
152 size_t crypto_kx_secretkeybytes(void);
153
154 #define crypto_kx_SEEDBYTES 32
155 SODIUM_EXPORT
156 size_t crypto_kx_seedbytes(void);
157
158 #define crypto_kx_SESSIONKEYBYTES 32
159 SODIUM_EXPORT
160 size_t crypto_kx_sessionkeybytes(void);
161
162 #define crypto_kx_PRIMITIVE "x25519blake2b"
163 SODIUM_EXPORT
164 const char *crypto_kx_primitive(void);
165
166 SODIUM_EXPORT
167 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
168 unsigned char sk[crypto_kx_SECRETKEYBYTES],
169 const unsigned char seed[crypto_kx_SEEDBYTES]);
170
171 SODIUM_EXPORT
172 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
173 unsigned char sk[crypto_kx_SECRETKEYBYTES]);
174
175 SODIUM_EXPORT
176 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
177 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
178 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
179 const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
180 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
181 __attribute__ ((warn_unused_result));
182
183 SODIUM_EXPORT
184 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
185 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
186 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
187 const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
188 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
189 __attribute__ ((warn_unused_result));
190
191 #ifdef __cplusplus
192 }
193 #endif
194
195 #endif
196 #ifndef crypto_kx_H
197 #define crypto_kx_H
198
199 #if 0
200 #include <stddef.h>
201 #endif
202 #include "export.h"
203
204 #ifdef __cplusplus
205 # ifdef __GNUC__
206 # pragma GCC diagnostic ignored "-Wlong-long"
207 # endif
208 extern "C" {
209 #endif
210
211 #define crypto_kx_PUBLICKEYBYTES 32
212 SODIUM_EXPORT
213 size_t crypto_kx_publickeybytes(void);
214
215 #define crypto_kx_SECRETKEYBYTES 32
216 SODIUM_EXPORT
217 size_t crypto_kx_secretkeybytes(void);
218
219 #define crypto_kx_SEEDBYTES 32
220 SODIUM_EXPORT
221 size_t crypto_kx_seedbytes(void);
222
223 #define crypto_kx_SESSIONKEYBYTES 32
224 SODIUM_EXPORT
225 size_t crypto_kx_sessionkeybytes(void);
226
227 #define crypto_kx_PRIMITIVE "x25519blake2b"
228 SODIUM_EXPORT
229 const char *crypto_kx_primitive(void);
230
231 SODIUM_EXPORT
232 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
233 unsigned char sk[crypto_kx_SECRETKEYBYTES],
234 const unsigned char seed[crypto_kx_SEEDBYTES]);
235
236 SODIUM_EXPORT
237 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
238 unsigned char sk[crypto_kx_SECRETKEYBYTES]);
239
240 SODIUM_EXPORT
241 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
242 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
243 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
244 const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
245 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
246 __attribute__ ((warn_unused_result));
247
248 SODIUM_EXPORT
249 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
250 unsigned char tx[crypto_kx_SESSIONKEYBYTES],
251 const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
252 const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
253 const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
254 __attribute__ ((warn_unused_result));
255
256 #ifdef __cplusplus
257 }
258 #endif
259
260 #endif
261