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