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