xref: /netbsd-src/sys/crypto/sodium/crypto_kx.h (revision a5b568d2b48c11c3ad18eebbe13a39088222eb4b)
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