1# Copyright 2013-2019 Donald Stufft and individual contributors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15
16from nacl.bindings.crypto_aead import (
17 crypto_aead_aegis128l_ABYTES,
18 crypto_aead_aegis128l_decrypt,
19 crypto_aead_aegis128l_encrypt,
20 crypto_aead_aegis128l_KEYBYTES,
21 crypto_aead_aegis128l_MESSAGEBYTES_MAX,
22 crypto_aead_aegis128l_NPUBBYTES,
23 crypto_aead_aegis128l_NSECBYTES,
24 crypto_aead_aegis256_ABYTES,
25 crypto_aead_aegis256_decrypt,
26 crypto_aead_aegis256_encrypt,
27 crypto_aead_aegis256_KEYBYTES,
28 crypto_aead_aegis256_MESSAGEBYTES_MAX,
29 crypto_aead_aegis256_NPUBBYTES,
30 crypto_aead_aegis256_NSECBYTES,
31 crypto_aead_aes256gcm_ABYTES,
32 crypto_aead_aes256gcm_decrypt,
33 crypto_aead_aes256gcm_encrypt,
34 crypto_aead_aes256gcm_KEYBYTES,
35 crypto_aead_aes256gcm_MESSAGEBYTES_MAX,
36 crypto_aead_aes256gcm_NPUBBYTES,
37 crypto_aead_aes256gcm_NSECBYTES,
38 crypto_aead_chacha20poly1305_ABYTES,
39 crypto_aead_chacha20poly1305_decrypt,
40 crypto_aead_chacha20poly1305_encrypt,
41 crypto_aead_chacha20poly1305_ietf_ABYTES,
42 crypto_aead_chacha20poly1305_ietf_decrypt,
43 crypto_aead_chacha20poly1305_ietf_encrypt,
44 crypto_aead_chacha20poly1305_ietf_KEYBYTES,
45 crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX,
46 crypto_aead_chacha20poly1305_ietf_NPUBBYTES,
47 crypto_aead_chacha20poly1305_ietf_NSECBYTES,
48 crypto_aead_chacha20poly1305_KEYBYTES,
49 crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX,
50 crypto_aead_chacha20poly1305_NPUBBYTES,
51 crypto_aead_chacha20poly1305_NSECBYTES,
52 crypto_aead_xchacha20poly1305_ietf_ABYTES,
53 crypto_aead_xchacha20poly1305_ietf_decrypt,
54 crypto_aead_xchacha20poly1305_ietf_encrypt,
55 crypto_aead_xchacha20poly1305_ietf_KEYBYTES,
56 crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX,
57 crypto_aead_xchacha20poly1305_ietf_NPUBBYTES,
58 crypto_aead_xchacha20poly1305_ietf_NSECBYTES,
59)
60from nacl.bindings.crypto_box import (
61 crypto_box,
62 crypto_box_afternm,
63 crypto_box_beforenm,
64 crypto_box_BEFORENMBYTES,
65 crypto_box_BOXZEROBYTES,
66 crypto_box_easy,
67 crypto_box_easy_afternm,
68 crypto_box_keypair,
69 crypto_box_NONCEBYTES,
70 crypto_box_open,
71 crypto_box_open_afternm,
72 crypto_box_open_easy,
73 crypto_box_open_easy_afternm,
74 crypto_box_PUBLICKEYBYTES,
75 crypto_box_seal,
76 crypto_box_seal_open,
77 crypto_box_SEALBYTES,
78 crypto_box_SECRETKEYBYTES,
79 crypto_box_seed_keypair,
80 crypto_box_SEEDBYTES,
81 crypto_box_ZEROBYTES,
82)
83from nacl.bindings.crypto_core import (
84 crypto_core_ed25519_add,
85 crypto_core_ed25519_BYTES,
86 crypto_core_ed25519_from_uniform,
87 crypto_core_ed25519_is_valid_point,
88 crypto_core_ed25519_NONREDUCEDSCALARBYTES,
89 crypto_core_ed25519_scalar_add,
90 crypto_core_ed25519_scalar_complement,
91 crypto_core_ed25519_scalar_invert,
92 crypto_core_ed25519_scalar_mul,
93 crypto_core_ed25519_scalar_negate,
94 crypto_core_ed25519_scalar_reduce,
95 crypto_core_ed25519_scalar_sub,
96 crypto_core_ed25519_SCALARBYTES,
97 crypto_core_ed25519_sub,
98 has_crypto_core_ed25519,
99)
100from nacl.bindings.crypto_generichash import (
101 crypto_generichash_BYTES,
102 crypto_generichash_BYTES_MAX,
103 crypto_generichash_BYTES_MIN,
104 crypto_generichash_KEYBYTES,
105 crypto_generichash_KEYBYTES_MAX,
106 crypto_generichash_KEYBYTES_MIN,
107 crypto_generichash_PERSONALBYTES,
108 crypto_generichash_SALTBYTES,
109 crypto_generichash_STATEBYTES,
110)
111from nacl.bindings.crypto_generichash import (
112 generichash_blake2b_final as crypto_generichash_blake2b_final,
113)
114from nacl.bindings.crypto_generichash import (
115 generichash_blake2b_init as crypto_generichash_blake2b_init,
116)
117from nacl.bindings.crypto_generichash import (
118 generichash_blake2b_salt_personal as crypto_generichash_blake2b_salt_personal,
119)
120from nacl.bindings.crypto_generichash import (
121 generichash_blake2b_update as crypto_generichash_blake2b_update,
122)
123from nacl.bindings.crypto_hash import (
124 crypto_hash,
125 crypto_hash_BYTES,
126 crypto_hash_sha256,
127 crypto_hash_sha256_BYTES,
128 crypto_hash_sha512,
129 crypto_hash_sha512_BYTES,
130)
131from nacl.bindings.crypto_kx import (
132 crypto_kx_client_session_keys,
133 crypto_kx_keypair,
134 crypto_kx_PUBLIC_KEY_BYTES,
135 crypto_kx_SECRET_KEY_BYTES,
136 crypto_kx_SEED_BYTES,
137 crypto_kx_seed_keypair,
138 crypto_kx_server_session_keys,
139 crypto_kx_SESSION_KEY_BYTES,
140)
141from nacl.bindings.crypto_pwhash import (
142 crypto_pwhash_alg,
143 crypto_pwhash_ALG_ARGON2I13,
144 crypto_pwhash_ALG_ARGON2ID13,
145 crypto_pwhash_ALG_DEFAULT,
146 crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE,
147 crypto_pwhash_argon2i_MEMLIMIT_MAX,
148 crypto_pwhash_argon2i_MEMLIMIT_MIN,
149 crypto_pwhash_argon2i_MEMLIMIT_MODERATE,
150 crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE,
151 crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE,
152 crypto_pwhash_argon2i_OPSLIMIT_MAX,
153 crypto_pwhash_argon2i_OPSLIMIT_MIN,
154 crypto_pwhash_argon2i_OPSLIMIT_MODERATE,
155 crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE,
156 crypto_pwhash_argon2i_STRPREFIX,
157 crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE,
158 crypto_pwhash_argon2id_MEMLIMIT_MAX,
159 crypto_pwhash_argon2id_MEMLIMIT_MIN,
160 crypto_pwhash_argon2id_MEMLIMIT_MODERATE,
161 crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE,
162 crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE,
163 crypto_pwhash_argon2id_OPSLIMIT_MAX,
164 crypto_pwhash_argon2id_OPSLIMIT_MIN,
165 crypto_pwhash_argon2id_OPSLIMIT_MODERATE,
166 crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE,
167 crypto_pwhash_argon2id_STRPREFIX,
168 crypto_pwhash_BYTES_MAX,
169 crypto_pwhash_BYTES_MIN,
170 crypto_pwhash_PASSWD_MAX,
171 crypto_pwhash_PASSWD_MIN,
172 crypto_pwhash_SALTBYTES,
173 crypto_pwhash_scryptsalsa208sha256_BYTES_MAX,
174 crypto_pwhash_scryptsalsa208sha256_BYTES_MIN,
175 crypto_pwhash_scryptsalsa208sha256_ll,
176 crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE,
177 crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX,
178 crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN,
179 crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE,
180 crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE,
181 crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX,
182 crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN,
183 crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE,
184 crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX,
185 crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN,
186 crypto_pwhash_scryptsalsa208sha256_SALTBYTES,
187 crypto_pwhash_scryptsalsa208sha256_str,
188 crypto_pwhash_scryptsalsa208sha256_str_verify,
189 crypto_pwhash_scryptsalsa208sha256_STRBYTES,
190 crypto_pwhash_scryptsalsa208sha256_STRPREFIX,
191 crypto_pwhash_str_alg,
192 crypto_pwhash_str_verify,
193 crypto_pwhash_STRBYTES,
194 has_crypto_pwhash_scryptsalsa208sha256,
195 nacl_bindings_pick_scrypt_params,
196)
197from nacl.bindings.crypto_scalarmult import (
198 crypto_scalarmult,
199 crypto_scalarmult_base,
200 crypto_scalarmult_BYTES,
201 crypto_scalarmult_ed25519,
202 crypto_scalarmult_ed25519_base,
203 crypto_scalarmult_ed25519_base_noclamp,
204 crypto_scalarmult_ed25519_BYTES,
205 crypto_scalarmult_ed25519_noclamp,
206 crypto_scalarmult_ed25519_SCALARBYTES,
207 crypto_scalarmult_SCALARBYTES,
208 has_crypto_scalarmult_ed25519,
209)
210from nacl.bindings.crypto_secretbox import (
211 crypto_secretbox,
212 crypto_secretbox_BOXZEROBYTES,
213 crypto_secretbox_easy,
214 crypto_secretbox_KEYBYTES,
215 crypto_secretbox_MACBYTES,
216 crypto_secretbox_MESSAGEBYTES_MAX,
217 crypto_secretbox_NONCEBYTES,
218 crypto_secretbox_open,
219 crypto_secretbox_open_easy,
220 crypto_secretbox_ZEROBYTES,
221)
222from nacl.bindings.crypto_secretstream import (
223 crypto_secretstream_xchacha20poly1305_ABYTES,
224 crypto_secretstream_xchacha20poly1305_HEADERBYTES,
225 crypto_secretstream_xchacha20poly1305_init_pull,
226 crypto_secretstream_xchacha20poly1305_init_push,
227 crypto_secretstream_xchacha20poly1305_KEYBYTES,
228 crypto_secretstream_xchacha20poly1305_keygen,
229 crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX,
230 crypto_secretstream_xchacha20poly1305_pull,
231 crypto_secretstream_xchacha20poly1305_push,
232 crypto_secretstream_xchacha20poly1305_rekey,
233 crypto_secretstream_xchacha20poly1305_state,
234 crypto_secretstream_xchacha20poly1305_STATEBYTES,
235 crypto_secretstream_xchacha20poly1305_TAG_FINAL,
236 crypto_secretstream_xchacha20poly1305_TAG_MESSAGE,
237 crypto_secretstream_xchacha20poly1305_TAG_PUSH,
238 crypto_secretstream_xchacha20poly1305_TAG_REKEY,
239)
240from nacl.bindings.crypto_shorthash import (
241 BYTES as crypto_shorthash_siphash24_BYTES,
242)
243from nacl.bindings.crypto_shorthash import (
244 KEYBYTES as crypto_shorthash_siphash24_KEYBYTES,
245)
246from nacl.bindings.crypto_shorthash import (
247 XBYTES as crypto_shorthash_siphashx24_BYTES,
248)
249from nacl.bindings.crypto_shorthash import (
250 XKEYBYTES as crypto_shorthash_siphashx24_KEYBYTES,
251)
252from nacl.bindings.crypto_shorthash import (
253 crypto_shorthash_siphash24,
254 crypto_shorthash_siphashx24,
255 has_crypto_shorthash_siphashx24,
256)
257from nacl.bindings.crypto_sign import (
258 crypto_sign,
259 crypto_sign_BYTES,
260 crypto_sign_ed25519_pk_to_curve25519,
261 crypto_sign_ed25519_sk_to_curve25519,
262 crypto_sign_ed25519_sk_to_pk,
263 crypto_sign_ed25519_sk_to_seed,
264 crypto_sign_ed25519ph_final_create,
265 crypto_sign_ed25519ph_final_verify,
266 crypto_sign_ed25519ph_state,
267 crypto_sign_ed25519ph_STATEBYTES,
268 crypto_sign_ed25519ph_update,
269 crypto_sign_keypair,
270 crypto_sign_open,
271 crypto_sign_PUBLICKEYBYTES,
272 crypto_sign_SECRETKEYBYTES,
273 crypto_sign_seed_keypair,
274 crypto_sign_SEEDBYTES,
275)
276from nacl.bindings.randombytes import (
277 randombytes,
278 randombytes_buf_deterministic,
279)
280from nacl.bindings.sodium_core import sodium_init
281from nacl.bindings.utils import (
282 sodium_add,
283 sodium_increment,
284 sodium_memcmp,
285 sodium_pad,
286 sodium_unpad,
287)
288
289__all__ = [
290 "crypto_aead_aegis128l_ABYTES",
291 "crypto_aead_aegis128l_KEYBYTES",
292 "crypto_aead_aegis128l_MESSAGEBYTES_MAX",
293 "crypto_aead_aegis128l_NPUBBYTES",
294 "crypto_aead_aegis128l_NSECBYTES",
295 "crypto_aead_aegis128l_decrypt",
296 "crypto_aead_aegis128l_encrypt",
297 "crypto_aead_aegis256_ABYTES",
298 "crypto_aead_aegis256_KEYBYTES",
299 "crypto_aead_aegis256_MESSAGEBYTES_MAX",
300 "crypto_aead_aegis256_NPUBBYTES",
301 "crypto_aead_aegis256_NSECBYTES",
302 "crypto_aead_aegis256_decrypt",
303 "crypto_aead_aegis256_encrypt",
304 "crypto_aead_aes256gcm_ABYTES",
305 "crypto_aead_aes256gcm_KEYBYTES",
306 "crypto_aead_aes256gcm_MESSAGEBYTES_MAX",
307 "crypto_aead_aes256gcm_NPUBBYTES",
308 "crypto_aead_aes256gcm_NSECBYTES",
309 "crypto_aead_aes256gcm_decrypt",
310 "crypto_aead_aes256gcm_encrypt",
311 "crypto_aead_chacha20poly1305_ABYTES",
312 "crypto_aead_chacha20poly1305_KEYBYTES",
313 "crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX",
314 "crypto_aead_chacha20poly1305_NPUBBYTES",
315 "crypto_aead_chacha20poly1305_NSECBYTES",
316 "crypto_aead_chacha20poly1305_decrypt",
317 "crypto_aead_chacha20poly1305_encrypt",
318 "crypto_aead_chacha20poly1305_ietf_ABYTES",
319 "crypto_aead_chacha20poly1305_ietf_KEYBYTES",
320 "crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX",
321 "crypto_aead_chacha20poly1305_ietf_NPUBBYTES",
322 "crypto_aead_chacha20poly1305_ietf_NSECBYTES",
323 "crypto_aead_chacha20poly1305_ietf_decrypt",
324 "crypto_aead_chacha20poly1305_ietf_encrypt",
325 "crypto_aead_xchacha20poly1305_ietf_ABYTES",
326 "crypto_aead_xchacha20poly1305_ietf_KEYBYTES",
327 "crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX",
328 "crypto_aead_xchacha20poly1305_ietf_NPUBBYTES",
329 "crypto_aead_xchacha20poly1305_ietf_NSECBYTES",
330 "crypto_aead_xchacha20poly1305_ietf_decrypt",
331 "crypto_aead_xchacha20poly1305_ietf_encrypt",
332 "crypto_box",
333 "crypto_box_BEFORENMBYTES",
334 "crypto_box_BOXZEROBYTES",
335 "crypto_box_NONCEBYTES",
336 "crypto_box_PUBLICKEYBYTES",
337 "crypto_box_SEALBYTES",
338 "crypto_box_SECRETKEYBYTES",
339 "crypto_box_SEEDBYTES",
340 "crypto_box_ZEROBYTES",
341 "crypto_box_afternm",
342 "crypto_box_beforenm",
343 "crypto_box_easy",
344 "crypto_box_easy_afternm",
345 "crypto_box_keypair",
346 "crypto_box_open",
347 "crypto_box_open_afternm",
348 "crypto_box_open_easy",
349 "crypto_box_open_easy_afternm",
350 "crypto_box_seal",
351 "crypto_box_seal_open",
352 "crypto_box_seed_keypair",
353 "crypto_core_ed25519_BYTES",
354 "crypto_core_ed25519_NONREDUCEDSCALARBYTES",
355 "crypto_core_ed25519_SCALARBYTES",
356 "crypto_core_ed25519_UNIFORMBYTES",
357 "crypto_core_ed25519_add",
358 "crypto_core_ed25519_from_uniform",
359 "crypto_core_ed25519_is_valid_point",
360 "crypto_core_ed25519_scalar_add",
361 "crypto_core_ed25519_scalar_complement",
362 "crypto_core_ed25519_scalar_invert",
363 "crypto_core_ed25519_scalar_mul",
364 "crypto_core_ed25519_scalar_negate",
365 "crypto_core_ed25519_scalar_reduce",
366 "crypto_core_ed25519_scalar_sub",
367 "crypto_core_ed25519_sub",
368 "crypto_generichash_BYTES",
369 "crypto_generichash_BYTES_MAX",
370 "crypto_generichash_BYTES_MIN",
371 "crypto_generichash_KEYBYTES",
372 "crypto_generichash_KEYBYTES_MAX",
373 "crypto_generichash_KEYBYTES_MIN",
374 "crypto_generichash_PERSONALBYTES",
375 "crypto_generichash_SALTBYTES",
376 "crypto_generichash_STATEBYTES",
377 "crypto_generichash_blake2b_final",
378 "crypto_generichash_blake2b_init",
379 "crypto_generichash_blake2b_salt_personal",
380 "crypto_generichash_blake2b_update",
381 "crypto_hash",
382 "crypto_hash_BYTES",
383 "crypto_hash_sha256",
384 "crypto_hash_sha256_BYTES",
385 "crypto_hash_sha512",
386 "crypto_hash_sha512_BYTES",
387 "crypto_kx_PUBLIC_KEY_BYTES",
388 "crypto_kx_SECRET_KEY_BYTES",
389 "crypto_kx_SEED_BYTES",
390 "crypto_kx_SESSION_KEY_BYTES",
391 "crypto_kx_client_session_keys",
392 "crypto_kx_keypair",
393 "crypto_kx_seed_keypair",
394 "crypto_kx_server_session_keys",
395 "crypto_pwhash_ALG_ARGON2I13",
396 "crypto_pwhash_ALG_ARGON2ID13",
397 "crypto_pwhash_ALG_DEFAULT",
398 "crypto_pwhash_BYTES_MAX",
399 "crypto_pwhash_BYTES_MIN",
400 "crypto_pwhash_PASSWD_MAX",
401 "crypto_pwhash_PASSWD_MIN",
402 "crypto_pwhash_SALTBYTES",
403 "crypto_pwhash_STRBYTES",
404 "crypto_pwhash_alg",
405 "crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE",
406 "crypto_pwhash_argon2i_MEMLIMIT_MAX",
407 "crypto_pwhash_argon2i_MEMLIMIT_MIN",
408 "crypto_pwhash_argon2i_MEMLIMIT_MODERATE",
409 "crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE",
410 "crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE",
411 "crypto_pwhash_argon2i_OPSLIMIT_MAX",
412 "crypto_pwhash_argon2i_OPSLIMIT_MIN",
413 "crypto_pwhash_argon2i_OPSLIMIT_MODERATE",
414 "crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE",
415 "crypto_pwhash_argon2i_STRPREFIX",
416 "crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE",
417 "crypto_pwhash_argon2id_MEMLIMIT_MAX",
418 "crypto_pwhash_argon2id_MEMLIMIT_MIN",
419 "crypto_pwhash_argon2id_MEMLIMIT_MODERATE",
420 "crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE",
421 "crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE",
422 "crypto_pwhash_argon2id_OPSLIMIT_MAX",
423 "crypto_pwhash_argon2id_OPSLIMIT_MIN",
424 "crypto_pwhash_argon2id_OPSLIMIT_MODERATE",
425 "crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE",
426 "crypto_pwhash_argon2id_STRPREFIX",
427 "crypto_pwhash_scryptsalsa208sha256_BYTES_MAX",
428 "crypto_pwhash_scryptsalsa208sha256_BYTES_MIN",
429 "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE",
430 "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX",
431 "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN",
432 "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE",
433 "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE",
434 "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX",
435 "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN",
436 "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE",
437 "crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX",
438 "crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN",
439 "crypto_pwhash_scryptsalsa208sha256_SALTBYTES",
440 "crypto_pwhash_scryptsalsa208sha256_STRBYTES",
441 "crypto_pwhash_scryptsalsa208sha256_STRPREFIX",
442 "crypto_pwhash_scryptsalsa208sha256_ll",
443 "crypto_pwhash_scryptsalsa208sha256_str",
444 "crypto_pwhash_scryptsalsa208sha256_str_verify",
445 "crypto_pwhash_str_alg",
446 "crypto_pwhash_str_verify",
447 "crypto_scalarmult",
448 "crypto_scalarmult_BYTES",
449 "crypto_scalarmult_SCALARBYTES",
450 "crypto_scalarmult_base",
451 "crypto_scalarmult_ed25519",
452 "crypto_scalarmult_ed25519_BYTES",
453 "crypto_scalarmult_ed25519_SCALARBYTES",
454 "crypto_scalarmult_ed25519_base",
455 "crypto_scalarmult_ed25519_base_noclamp",
456 "crypto_scalarmult_ed25519_noclamp",
457 "crypto_secretbox",
458 "crypto_secretbox_BOXZEROBYTES",
459 "crypto_secretbox_KEYBYTES",
460 "crypto_secretbox_MACBYTES",
461 "crypto_secretbox_MESSAGEBYTES_MAX",
462 "crypto_secretbox_NONCEBYTES",
463 "crypto_secretbox_ZEROBYTES",
464 "crypto_secretbox_easy",
465 "crypto_secretbox_open",
466 "crypto_secretbox_open_easy",
467 "crypto_secretstream_xchacha20poly1305_ABYTES",
468 "crypto_secretstream_xchacha20poly1305_HEADERBYTES",
469 "crypto_secretstream_xchacha20poly1305_KEYBYTES",
470 "crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX",
471 "crypto_secretstream_xchacha20poly1305_STATEBYTES",
472 "crypto_secretstream_xchacha20poly1305_TAG_FINAL",
473 "crypto_secretstream_xchacha20poly1305_TAG_MESSAGE",
474 "crypto_secretstream_xchacha20poly1305_TAG_PUSH",
475 "crypto_secretstream_xchacha20poly1305_TAG_REKEY",
476 "crypto_secretstream_xchacha20poly1305_init_pull",
477 "crypto_secretstream_xchacha20poly1305_init_push",
478 "crypto_secretstream_xchacha20poly1305_keygen",
479 "crypto_secretstream_xchacha20poly1305_pull",
480 "crypto_secretstream_xchacha20poly1305_push",
481 "crypto_secretstream_xchacha20poly1305_rekey",
482 "crypto_secretstream_xchacha20poly1305_state",
483 "crypto_shorthash_siphash24",
484 "crypto_shorthash_siphash24_BYTES",
485 "crypto_shorthash_siphash24_KEYBYTES",
486 "crypto_shorthash_siphashx24",
487 "crypto_shorthash_siphashx24_BYTES",
488 "crypto_shorthash_siphashx24_KEYBYTES",
489 "crypto_sign",
490 "crypto_sign_BYTES",
491 "crypto_sign_PUBLICKEYBYTES",
492 "crypto_sign_SECRETKEYBYTES",
493 "crypto_sign_SEEDBYTES",
494 "crypto_sign_ed25519_pk_to_curve25519",
495 "crypto_sign_ed25519_sk_to_curve25519",
496 "crypto_sign_ed25519_sk_to_pk",
497 "crypto_sign_ed25519_sk_to_seed",
498 "crypto_sign_ed25519ph_STATEBYTES",
499 "crypto_sign_ed25519ph_final_create",
500 "crypto_sign_ed25519ph_final_verify",
501 "crypto_sign_ed25519ph_state",
502 "crypto_sign_ed25519ph_update",
503 "crypto_sign_keypair",
504 "crypto_sign_open",
505 "crypto_sign_seed_keypair",
506 "has_crypto_core_ed25519",
507 "has_crypto_pwhash_scryptsalsa208sha256",
508 "has_crypto_scalarmult_ed25519",
509 "has_crypto_shorthash_siphashx24",
510 "nacl_bindings_pick_scrypt_params",
511 "randombytes",
512 "randombytes_buf_deterministic",
513 "sodium_add",
514 "sodium_increment",
515 "sodium_init",
516 "sodium_memcmp",
517 "sodium_pad",
518 "sodium_unpad",
519]
520
521
522# Initialize Sodium
523sodium_init()