Skip to main content

libsodium_sys/
sodium_bindings.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub const SODIUM_VERSION_STRING: &[u8; 7] = b"1.0.22\0";
4pub const SODIUM_LIBRARY_VERSION_MAJOR: u32 = 26;
5pub const SODIUM_LIBRARY_VERSION_MINOR: u32 = 4;
6pub const crypto_aead_aegis128l_KEYBYTES: u32 = 16;
7pub const crypto_aead_aegis128l_NSECBYTES: u32 = 0;
8pub const crypto_aead_aegis128l_NPUBBYTES: u32 = 16;
9pub const crypto_aead_aegis128l_ABYTES: u32 = 32;
10pub const crypto_aead_aegis256_KEYBYTES: u32 = 32;
11pub const crypto_aead_aegis256_NSECBYTES: u32 = 0;
12pub const crypto_aead_aegis256_NPUBBYTES: u32 = 32;
13pub const crypto_aead_aegis256_ABYTES: u32 = 32;
14pub const crypto_aead_aes256gcm_KEYBYTES: u32 = 32;
15pub const crypto_aead_aes256gcm_NSECBYTES: u32 = 0;
16pub const crypto_aead_aes256gcm_NPUBBYTES: u32 = 12;
17pub const crypto_aead_aes256gcm_ABYTES: u32 = 16;
18pub const crypto_aead_chacha20poly1305_ietf_KEYBYTES: u32 = 32;
19pub const crypto_aead_chacha20poly1305_ietf_NSECBYTES: u32 = 0;
20pub const crypto_aead_chacha20poly1305_ietf_NPUBBYTES: u32 = 12;
21pub const crypto_aead_chacha20poly1305_ietf_ABYTES: u32 = 16;
22pub const crypto_aead_chacha20poly1305_KEYBYTES: u32 = 32;
23pub const crypto_aead_chacha20poly1305_NSECBYTES: u32 = 0;
24pub const crypto_aead_chacha20poly1305_NPUBBYTES: u32 = 8;
25pub const crypto_aead_chacha20poly1305_ABYTES: u32 = 16;
26pub const crypto_aead_chacha20poly1305_IETF_KEYBYTES: u32 = 32;
27pub const crypto_aead_chacha20poly1305_IETF_NSECBYTES: u32 = 0;
28pub const crypto_aead_chacha20poly1305_IETF_NPUBBYTES: u32 = 12;
29pub const crypto_aead_chacha20poly1305_IETF_ABYTES: u32 = 16;
30pub const crypto_aead_xchacha20poly1305_ietf_KEYBYTES: u32 = 32;
31pub const crypto_aead_xchacha20poly1305_ietf_NSECBYTES: u32 = 0;
32pub const crypto_aead_xchacha20poly1305_ietf_NPUBBYTES: u32 = 24;
33pub const crypto_aead_xchacha20poly1305_ietf_ABYTES: u32 = 16;
34pub const crypto_aead_xchacha20poly1305_IETF_KEYBYTES: u32 = 32;
35pub const crypto_aead_xchacha20poly1305_IETF_NSECBYTES: u32 = 0;
36pub const crypto_aead_xchacha20poly1305_IETF_NPUBBYTES: u32 = 24;
37pub const crypto_aead_xchacha20poly1305_IETF_ABYTES: u32 = 16;
38pub const crypto_hash_sha512_BYTES: u32 = 64;
39pub const crypto_auth_hmacsha512_BYTES: u32 = 64;
40pub const crypto_auth_hmacsha512_KEYBYTES: u32 = 32;
41pub const crypto_auth_hmacsha512256_BYTES: u32 = 32;
42pub const crypto_auth_hmacsha512256_KEYBYTES: u32 = 32;
43pub const crypto_auth_BYTES: u32 = 32;
44pub const crypto_auth_KEYBYTES: u32 = 32;
45pub const crypto_auth_PRIMITIVE: &[u8; 14] = b"hmacsha512256\0";
46pub const crypto_hash_sha256_BYTES: u32 = 32;
47pub const crypto_auth_hmacsha256_BYTES: u32 = 32;
48pub const crypto_auth_hmacsha256_KEYBYTES: u32 = 32;
49pub const crypto_stream_xsalsa20_KEYBYTES: u32 = 32;
50pub const crypto_stream_xsalsa20_NONCEBYTES: u32 = 24;
51pub const crypto_box_curve25519xsalsa20poly1305_SEEDBYTES: u32 = 32;
52pub const crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES: u32 = 32;
53pub const crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES: u32 = 32;
54pub const crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES: u32 = 32;
55pub const crypto_box_curve25519xsalsa20poly1305_NONCEBYTES: u32 = 24;
56pub const crypto_box_curve25519xsalsa20poly1305_MACBYTES: u32 = 16;
57pub const crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES: u32 = 16;
58pub const crypto_box_curve25519xsalsa20poly1305_ZEROBYTES: u32 = 32;
59pub const crypto_box_SEEDBYTES: u32 = 32;
60pub const crypto_box_PUBLICKEYBYTES: u32 = 32;
61pub const crypto_box_SECRETKEYBYTES: u32 = 32;
62pub const crypto_box_NONCEBYTES: u32 = 24;
63pub const crypto_box_MACBYTES: u32 = 16;
64pub const crypto_box_PRIMITIVE: &[u8; 27] = b"curve25519xsalsa20poly1305\0";
65pub const crypto_box_BEFORENMBYTES: u32 = 32;
66pub const crypto_box_SEALBYTES: u32 = 48;
67pub const crypto_box_ZEROBYTES: u32 = 32;
68pub const crypto_box_BOXZEROBYTES: u32 = 16;
69pub const crypto_core_hchacha20_OUTPUTBYTES: u32 = 32;
70pub const crypto_core_hchacha20_INPUTBYTES: u32 = 16;
71pub const crypto_core_hchacha20_KEYBYTES: u32 = 32;
72pub const crypto_core_hchacha20_CONSTBYTES: u32 = 16;
73pub const crypto_core_hsalsa20_OUTPUTBYTES: u32 = 32;
74pub const crypto_core_hsalsa20_INPUTBYTES: u32 = 16;
75pub const crypto_core_hsalsa20_KEYBYTES: u32 = 32;
76pub const crypto_core_hsalsa20_CONSTBYTES: u32 = 16;
77pub const crypto_core_salsa20_OUTPUTBYTES: u32 = 64;
78pub const crypto_core_salsa20_INPUTBYTES: u32 = 16;
79pub const crypto_core_salsa20_KEYBYTES: u32 = 32;
80pub const crypto_core_salsa20_CONSTBYTES: u32 = 16;
81pub const crypto_core_salsa2012_OUTPUTBYTES: u32 = 64;
82pub const crypto_core_salsa2012_INPUTBYTES: u32 = 16;
83pub const crypto_core_salsa2012_KEYBYTES: u32 = 32;
84pub const crypto_core_salsa2012_CONSTBYTES: u32 = 16;
85pub const crypto_core_salsa208_OUTPUTBYTES: u32 = 64;
86pub const crypto_core_salsa208_INPUTBYTES: u32 = 16;
87pub const crypto_core_salsa208_KEYBYTES: u32 = 32;
88pub const crypto_core_salsa208_CONSTBYTES: u32 = 16;
89pub const crypto_generichash_blake2b_BYTES_MIN: u32 = 16;
90pub const crypto_generichash_blake2b_BYTES_MAX: u32 = 64;
91pub const crypto_generichash_blake2b_BYTES: u32 = 32;
92pub const crypto_generichash_blake2b_KEYBYTES_MIN: u32 = 16;
93pub const crypto_generichash_blake2b_KEYBYTES_MAX: u32 = 64;
94pub const crypto_generichash_blake2b_KEYBYTES: u32 = 32;
95pub const crypto_generichash_blake2b_SALTBYTES: u32 = 16;
96pub const crypto_generichash_blake2b_PERSONALBYTES: u32 = 16;
97pub const crypto_generichash_BYTES_MIN: u32 = 16;
98pub const crypto_generichash_BYTES_MAX: u32 = 64;
99pub const crypto_generichash_BYTES: u32 = 32;
100pub const crypto_generichash_KEYBYTES_MIN: u32 = 16;
101pub const crypto_generichash_KEYBYTES_MAX: u32 = 64;
102pub const crypto_generichash_KEYBYTES: u32 = 32;
103pub const crypto_generichash_PRIMITIVE: &[u8; 8] = b"blake2b\0";
104pub const crypto_hash_BYTES: u32 = 64;
105pub const crypto_hash_PRIMITIVE: &[u8; 7] = b"sha512\0";
106pub const crypto_hash_sha3256_BYTES: u32 = 32;
107pub const crypto_hash_sha3512_BYTES: u32 = 64;
108pub const crypto_ipcrypt_BYTES: u32 = 16;
109pub const crypto_ipcrypt_KEYBYTES: u32 = 16;
110pub const crypto_ipcrypt_ND_KEYBYTES: u32 = 16;
111pub const crypto_ipcrypt_ND_TWEAKBYTES: u32 = 8;
112pub const crypto_ipcrypt_ND_INPUTBYTES: u32 = 16;
113pub const crypto_ipcrypt_ND_OUTPUTBYTES: u32 = 24;
114pub const crypto_ipcrypt_NDX_KEYBYTES: u32 = 32;
115pub const crypto_ipcrypt_NDX_TWEAKBYTES: u32 = 16;
116pub const crypto_ipcrypt_NDX_INPUTBYTES: u32 = 16;
117pub const crypto_ipcrypt_NDX_OUTPUTBYTES: u32 = 32;
118pub const crypto_ipcrypt_PFX_KEYBYTES: u32 = 32;
119pub const crypto_ipcrypt_PFX_BYTES: u32 = 16;
120pub const crypto_kdf_blake2b_BYTES_MIN: u32 = 16;
121pub const crypto_kdf_blake2b_BYTES_MAX: u32 = 64;
122pub const crypto_kdf_blake2b_CONTEXTBYTES: u32 = 8;
123pub const crypto_kdf_blake2b_KEYBYTES: u32 = 32;
124pub const crypto_kdf_BYTES_MIN: u32 = 16;
125pub const crypto_kdf_BYTES_MAX: u32 = 64;
126pub const crypto_kdf_CONTEXTBYTES: u32 = 8;
127pub const crypto_kdf_KEYBYTES: u32 = 32;
128pub const crypto_kdf_PRIMITIVE: &[u8; 8] = b"blake2b\0";
129pub const crypto_kdf_hkdf_sha256_KEYBYTES: u32 = 32;
130pub const crypto_kdf_hkdf_sha256_BYTES_MIN: u32 = 0;
131pub const crypto_kdf_hkdf_sha256_BYTES_MAX: u32 = 8160;
132pub const crypto_kdf_hkdf_sha512_KEYBYTES: u32 = 64;
133pub const crypto_kdf_hkdf_sha512_BYTES_MIN: u32 = 0;
134pub const crypto_kdf_hkdf_sha512_BYTES_MAX: u32 = 16320;
135pub const crypto_kem_xwing_PUBLICKEYBYTES: u32 = 1216;
136pub const crypto_kem_xwing_SECRETKEYBYTES: u32 = 32;
137pub const crypto_kem_xwing_CIPHERTEXTBYTES: u32 = 1120;
138pub const crypto_kem_xwing_SHAREDSECRETBYTES: u32 = 32;
139pub const crypto_kem_xwing_SEEDBYTES: u32 = 32;
140pub const crypto_kem_PUBLICKEYBYTES: u32 = 1216;
141pub const crypto_kem_SECRETKEYBYTES: u32 = 32;
142pub const crypto_kem_CIPHERTEXTBYTES: u32 = 1120;
143pub const crypto_kem_SHAREDSECRETBYTES: u32 = 32;
144pub const crypto_kem_SEEDBYTES: u32 = 32;
145pub const crypto_kem_PRIMITIVE: &[u8; 6] = b"xwing\0";
146pub const crypto_kem_mlkem768_PUBLICKEYBYTES: u32 = 1184;
147pub const crypto_kem_mlkem768_SECRETKEYBYTES: u32 = 2400;
148pub const crypto_kem_mlkem768_CIPHERTEXTBYTES: u32 = 1088;
149pub const crypto_kem_mlkem768_SHAREDSECRETBYTES: u32 = 32;
150pub const crypto_kem_mlkem768_SEEDBYTES: u32 = 64;
151pub const crypto_kx_PUBLICKEYBYTES: u32 = 32;
152pub const crypto_kx_SECRETKEYBYTES: u32 = 32;
153pub const crypto_kx_SEEDBYTES: u32 = 32;
154pub const crypto_kx_SESSIONKEYBYTES: u32 = 32;
155pub const crypto_kx_PRIMITIVE: &[u8; 14] = b"x25519blake2b\0";
156pub const crypto_onetimeauth_poly1305_BYTES: u32 = 16;
157pub const crypto_onetimeauth_poly1305_KEYBYTES: u32 = 32;
158pub const crypto_onetimeauth_BYTES: u32 = 16;
159pub const crypto_onetimeauth_KEYBYTES: u32 = 32;
160pub const crypto_onetimeauth_PRIMITIVE: &[u8; 9] = b"poly1305\0";
161pub const crypto_pwhash_argon2i_ALG_ARGON2I13: u32 = 1;
162pub const crypto_pwhash_argon2i_BYTES_MIN: u32 = 16;
163pub const crypto_pwhash_argon2i_PASSWD_MIN: u32 = 0;
164pub const crypto_pwhash_argon2i_PASSWD_MAX: u32 = 4294967295;
165pub const crypto_pwhash_argon2i_SALTBYTES: u32 = 16;
166pub const crypto_pwhash_argon2i_STRBYTES: u32 = 128;
167pub const crypto_pwhash_argon2i_STRPREFIX: &[u8; 10] = b"$argon2i$\0";
168pub const crypto_pwhash_argon2i_OPSLIMIT_MIN: u32 = 3;
169pub const crypto_pwhash_argon2i_OPSLIMIT_MAX: u32 = 4294967295;
170pub const crypto_pwhash_argon2i_MEMLIMIT_MIN: u32 = 8192;
171pub const crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE: u32 = 4;
172pub const crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE: u32 = 33554432;
173pub const crypto_pwhash_argon2i_OPSLIMIT_MODERATE: u32 = 6;
174pub const crypto_pwhash_argon2i_MEMLIMIT_MODERATE: u32 = 134217728;
175pub const crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE: u32 = 8;
176pub const crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE: u32 = 536870912;
177pub const crypto_pwhash_argon2id_ALG_ARGON2ID13: u32 = 2;
178pub const crypto_pwhash_argon2id_BYTES_MIN: u32 = 16;
179pub const crypto_pwhash_argon2id_PASSWD_MIN: u32 = 0;
180pub const crypto_pwhash_argon2id_PASSWD_MAX: u32 = 4294967295;
181pub const crypto_pwhash_argon2id_SALTBYTES: u32 = 16;
182pub const crypto_pwhash_argon2id_STRBYTES: u32 = 128;
183pub const crypto_pwhash_argon2id_STRPREFIX: &[u8; 11] = b"$argon2id$\0";
184pub const crypto_pwhash_argon2id_OPSLIMIT_MIN: u32 = 1;
185pub const crypto_pwhash_argon2id_OPSLIMIT_MAX: u32 = 4294967295;
186pub const crypto_pwhash_argon2id_MEMLIMIT_MIN: u32 = 8192;
187pub const crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE: u32 = 2;
188pub const crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE: u32 = 67108864;
189pub const crypto_pwhash_argon2id_OPSLIMIT_MODERATE: u32 = 3;
190pub const crypto_pwhash_argon2id_MEMLIMIT_MODERATE: u32 = 268435456;
191pub const crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE: u32 = 4;
192pub const crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE: u32 = 1073741824;
193pub const crypto_pwhash_ALG_ARGON2I13: u32 = 1;
194pub const crypto_pwhash_ALG_ARGON2ID13: u32 = 2;
195pub const crypto_pwhash_ALG_DEFAULT: u32 = 2;
196pub const crypto_pwhash_BYTES_MIN: u32 = 16;
197pub const crypto_pwhash_PASSWD_MIN: u32 = 0;
198pub const crypto_pwhash_PASSWD_MAX: u32 = 4294967295;
199pub const crypto_pwhash_SALTBYTES: u32 = 16;
200pub const crypto_pwhash_STRBYTES: u32 = 128;
201pub const crypto_pwhash_STRPREFIX: &[u8; 11] = b"$argon2id$\0";
202pub const crypto_pwhash_OPSLIMIT_MIN: u32 = 1;
203pub const crypto_pwhash_OPSLIMIT_MAX: u32 = 4294967295;
204pub const crypto_pwhash_MEMLIMIT_MIN: u32 = 8192;
205pub const crypto_pwhash_OPSLIMIT_INTERACTIVE: u32 = 2;
206pub const crypto_pwhash_MEMLIMIT_INTERACTIVE: u32 = 67108864;
207pub const crypto_pwhash_OPSLIMIT_MODERATE: u32 = 3;
208pub const crypto_pwhash_MEMLIMIT_MODERATE: u32 = 268435456;
209pub const crypto_pwhash_OPSLIMIT_SENSITIVE: u32 = 4;
210pub const crypto_pwhash_MEMLIMIT_SENSITIVE: u32 = 1073741824;
211pub const crypto_pwhash_PRIMITIVE: &[u8; 17] = b"argon2id,argon2i\0";
212pub const crypto_scalarmult_curve25519_BYTES: u32 = 32;
213pub const crypto_scalarmult_curve25519_SCALARBYTES: u32 = 32;
214pub const crypto_scalarmult_BYTES: u32 = 32;
215pub const crypto_scalarmult_SCALARBYTES: u32 = 32;
216pub const crypto_scalarmult_PRIMITIVE: &[u8; 11] = b"curve25519\0";
217pub const crypto_secretbox_xsalsa20poly1305_KEYBYTES: u32 = 32;
218pub const crypto_secretbox_xsalsa20poly1305_NONCEBYTES: u32 = 24;
219pub const crypto_secretbox_xsalsa20poly1305_MACBYTES: u32 = 16;
220pub const crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES: u32 = 16;
221pub const crypto_secretbox_xsalsa20poly1305_ZEROBYTES: u32 = 32;
222pub const crypto_secretbox_KEYBYTES: u32 = 32;
223pub const crypto_secretbox_NONCEBYTES: u32 = 24;
224pub const crypto_secretbox_MACBYTES: u32 = 16;
225pub const crypto_secretbox_PRIMITIVE: &[u8; 17] = b"xsalsa20poly1305\0";
226pub const crypto_secretbox_ZEROBYTES: u32 = 32;
227pub const crypto_secretbox_BOXZEROBYTES: u32 = 16;
228pub const crypto_stream_chacha20_KEYBYTES: u32 = 32;
229pub const crypto_stream_chacha20_NONCEBYTES: u32 = 8;
230pub const crypto_stream_chacha20_ietf_KEYBYTES: u32 = 32;
231pub const crypto_stream_chacha20_ietf_NONCEBYTES: u32 = 12;
232pub const crypto_stream_chacha20_IETF_KEYBYTES: u32 = 32;
233pub const crypto_stream_chacha20_IETF_NONCEBYTES: u32 = 12;
234pub const crypto_secretstream_xchacha20poly1305_ABYTES: u32 = 17;
235pub const crypto_secretstream_xchacha20poly1305_HEADERBYTES: u32 = 24;
236pub const crypto_secretstream_xchacha20poly1305_KEYBYTES: u32 = 32;
237pub const crypto_secretstream_xchacha20poly1305_TAG_MESSAGE: u32 = 0;
238pub const crypto_secretstream_xchacha20poly1305_TAG_PUSH: u32 = 1;
239pub const crypto_secretstream_xchacha20poly1305_TAG_REKEY: u32 = 2;
240pub const crypto_secretstream_xchacha20poly1305_TAG_FINAL: u32 = 3;
241pub const crypto_shorthash_siphash24_BYTES: u32 = 8;
242pub const crypto_shorthash_siphash24_KEYBYTES: u32 = 16;
243pub const crypto_shorthash_siphashx24_BYTES: u32 = 16;
244pub const crypto_shorthash_siphashx24_KEYBYTES: u32 = 16;
245pub const crypto_shorthash_BYTES: u32 = 8;
246pub const crypto_shorthash_KEYBYTES: u32 = 16;
247pub const crypto_shorthash_PRIMITIVE: &[u8; 10] = b"siphash24\0";
248pub const crypto_sign_ed25519_BYTES: u32 = 64;
249pub const crypto_sign_ed25519_SEEDBYTES: u32 = 32;
250pub const crypto_sign_ed25519_PUBLICKEYBYTES: u32 = 32;
251pub const crypto_sign_ed25519_SECRETKEYBYTES: u32 = 64;
252pub const crypto_sign_BYTES: u32 = 64;
253pub const crypto_sign_SEEDBYTES: u32 = 32;
254pub const crypto_sign_PUBLICKEYBYTES: u32 = 32;
255pub const crypto_sign_SECRETKEYBYTES: u32 = 64;
256pub const crypto_sign_PRIMITIVE: &[u8; 8] = b"ed25519\0";
257pub const crypto_stream_KEYBYTES: u32 = 32;
258pub const crypto_stream_NONCEBYTES: u32 = 24;
259pub const crypto_stream_PRIMITIVE: &[u8; 9] = b"xsalsa20\0";
260pub const crypto_stream_salsa20_KEYBYTES: u32 = 32;
261pub const crypto_stream_salsa20_NONCEBYTES: u32 = 8;
262pub const crypto_verify_16_BYTES: u32 = 16;
263pub const crypto_verify_32_BYTES: u32 = 32;
264pub const crypto_verify_64_BYTES: u32 = 64;
265pub const crypto_xof_shake128_BLOCKBYTES: u32 = 168;
266pub const crypto_xof_shake128_STATEBYTES: u32 = 256;
267pub const crypto_xof_shake128_DOMAIN_STANDARD: u32 = 31;
268pub const crypto_xof_shake256_BLOCKBYTES: u32 = 136;
269pub const crypto_xof_shake256_STATEBYTES: u32 = 256;
270pub const crypto_xof_shake256_DOMAIN_STANDARD: u32 = 31;
271pub const crypto_xof_turboshake128_BLOCKBYTES: u32 = 168;
272pub const crypto_xof_turboshake128_STATEBYTES: u32 = 256;
273pub const crypto_xof_turboshake128_DOMAIN_STANDARD: u32 = 31;
274pub const crypto_xof_turboshake256_BLOCKBYTES: u32 = 136;
275pub const crypto_xof_turboshake256_STATEBYTES: u32 = 256;
276pub const crypto_xof_turboshake256_DOMAIN_STANDARD: u32 = 31;
277pub const randombytes_SEEDBYTES: u32 = 32;
278pub const sodium_base64_VARIANT_ORIGINAL: u32 = 1;
279pub const sodium_base64_VARIANT_ORIGINAL_NO_PADDING: u32 = 3;
280pub const sodium_base64_VARIANT_URLSAFE: u32 = 5;
281pub const sodium_base64_VARIANT_URLSAFE_NO_PADDING: u32 = 7;
282pub const crypto_stream_xchacha20_KEYBYTES: u32 = 32;
283pub const crypto_stream_xchacha20_NONCEBYTES: u32 = 24;
284pub const crypto_box_curve25519xchacha20poly1305_SEEDBYTES: u32 = 32;
285pub const crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES: u32 = 32;
286pub const crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES: u32 = 32;
287pub const crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES: u32 = 32;
288pub const crypto_box_curve25519xchacha20poly1305_NONCEBYTES: u32 = 24;
289pub const crypto_box_curve25519xchacha20poly1305_MACBYTES: u32 = 16;
290pub const crypto_box_curve25519xchacha20poly1305_SEALBYTES: u32 = 48;
291pub const crypto_core_ed25519_BYTES: u32 = 32;
292pub const crypto_core_ed25519_UNIFORMBYTES: u32 = 32;
293pub const crypto_core_ed25519_HASHBYTES: u32 = 64;
294pub const crypto_core_ed25519_SCALARBYTES: u32 = 32;
295pub const crypto_core_ed25519_NONREDUCEDSCALARBYTES: u32 = 64;
296pub const crypto_core_ristretto255_BYTES: u32 = 32;
297pub const crypto_core_ristretto255_HASHBYTES: u32 = 64;
298pub const crypto_core_ristretto255_SCALARBYTES: u32 = 32;
299pub const crypto_core_ristretto255_NONREDUCEDSCALARBYTES: u32 = 64;
300pub const crypto_pwhash_scryptsalsa208sha256_BYTES_MIN: u32 = 16;
301pub const crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN: u32 = 0;
302pub const crypto_pwhash_scryptsalsa208sha256_SALTBYTES: u32 = 32;
303pub const crypto_pwhash_scryptsalsa208sha256_STRBYTES: u32 = 102;
304pub const crypto_pwhash_scryptsalsa208sha256_STRPREFIX: &[u8; 4] = b"$7$\0";
305pub const crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN: u32 = 32768;
306pub const crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX: u32 = 4294967295;
307pub const crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN: u32 = 16777216;
308pub const crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE: u32 = 524288;
309pub const crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE: u32 = 16777216;
310pub const crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE: u32 = 33554432;
311pub const crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE: u32 = 1073741824;
312pub const crypto_scalarmult_ed25519_BYTES: u32 = 32;
313pub const crypto_scalarmult_ed25519_SCALARBYTES: u32 = 32;
314pub const crypto_scalarmult_ristretto255_BYTES: u32 = 32;
315pub const crypto_scalarmult_ristretto255_SCALARBYTES: u32 = 32;
316pub const crypto_secretbox_xchacha20poly1305_KEYBYTES: u32 = 32;
317pub const crypto_secretbox_xchacha20poly1305_NONCEBYTES: u32 = 24;
318pub const crypto_secretbox_xchacha20poly1305_MACBYTES: u32 = 16;
319pub const crypto_stream_salsa2012_KEYBYTES: u32 = 32;
320pub const crypto_stream_salsa2012_NONCEBYTES: u32 = 8;
321pub const crypto_stream_salsa208_KEYBYTES: u32 = 32;
322pub const crypto_stream_salsa208_NONCEBYTES: u32 = 8;
323unsafe extern "C" {
324    pub fn sodium_version_string() -> *const libc::c_char;
325}
326unsafe extern "C" {
327    pub fn sodium_library_version_major() -> libc::c_int;
328}
329unsafe extern "C" {
330    pub fn sodium_library_version_minor() -> libc::c_int;
331}
332unsafe extern "C" {
333    pub fn sodium_library_minimal() -> libc::c_int;
334}
335unsafe extern "C" {
336    pub fn sodium_init() -> libc::c_int;
337}
338unsafe extern "C" {
339    pub fn sodium_set_misuse_handler(
340        handler: ::core::option::Option<unsafe extern "C" fn()>,
341    ) -> libc::c_int;
342}
343unsafe extern "C" {
344    pub fn sodium_misuse() -> !;
345}
346unsafe extern "C" {
347    pub fn crypto_aead_aegis128l_keybytes() -> usize;
348}
349unsafe extern "C" {
350    pub fn crypto_aead_aegis128l_nsecbytes() -> usize;
351}
352unsafe extern "C" {
353    pub fn crypto_aead_aegis128l_npubbytes() -> usize;
354}
355unsafe extern "C" {
356    pub fn crypto_aead_aegis128l_abytes() -> usize;
357}
358unsafe extern "C" {
359    pub fn crypto_aead_aegis128l_messagebytes_max() -> usize;
360}
361unsafe extern "C" {
362    pub fn crypto_aead_aegis128l_encrypt(
363        c: *mut libc::c_uchar,
364        clen_p: *mut libc::c_ulonglong,
365        m: *const libc::c_uchar,
366        mlen: libc::c_ulonglong,
367        ad: *const libc::c_uchar,
368        adlen: libc::c_ulonglong,
369        nsec: *const libc::c_uchar,
370        npub: *const libc::c_uchar,
371        k: *const libc::c_uchar,
372    ) -> libc::c_int;
373}
374unsafe extern "C" {
375    pub fn crypto_aead_aegis128l_decrypt(
376        m: *mut libc::c_uchar,
377        mlen_p: *mut libc::c_ulonglong,
378        nsec: *mut libc::c_uchar,
379        c: *const libc::c_uchar,
380        clen: libc::c_ulonglong,
381        ad: *const libc::c_uchar,
382        adlen: libc::c_ulonglong,
383        npub: *const libc::c_uchar,
384        k: *const libc::c_uchar,
385    ) -> libc::c_int;
386}
387unsafe extern "C" {
388    pub fn crypto_aead_aegis128l_encrypt_detached(
389        c: *mut libc::c_uchar,
390        mac: *mut libc::c_uchar,
391        maclen_p: *mut libc::c_ulonglong,
392        m: *const libc::c_uchar,
393        mlen: libc::c_ulonglong,
394        ad: *const libc::c_uchar,
395        adlen: libc::c_ulonglong,
396        nsec: *const libc::c_uchar,
397        npub: *const libc::c_uchar,
398        k: *const libc::c_uchar,
399    ) -> libc::c_int;
400}
401unsafe extern "C" {
402    pub fn crypto_aead_aegis128l_decrypt_detached(
403        m: *mut libc::c_uchar,
404        nsec: *mut libc::c_uchar,
405        c: *const libc::c_uchar,
406        clen: libc::c_ulonglong,
407        mac: *const libc::c_uchar,
408        ad: *const libc::c_uchar,
409        adlen: libc::c_ulonglong,
410        npub: *const libc::c_uchar,
411        k: *const libc::c_uchar,
412    ) -> libc::c_int;
413}
414unsafe extern "C" {
415    pub fn crypto_aead_aegis128l_keygen(k: *mut libc::c_uchar);
416}
417unsafe extern "C" {
418    pub fn crypto_aead_aegis256_keybytes() -> usize;
419}
420unsafe extern "C" {
421    pub fn crypto_aead_aegis256_nsecbytes() -> usize;
422}
423unsafe extern "C" {
424    pub fn crypto_aead_aegis256_npubbytes() -> usize;
425}
426unsafe extern "C" {
427    pub fn crypto_aead_aegis256_abytes() -> usize;
428}
429unsafe extern "C" {
430    pub fn crypto_aead_aegis256_messagebytes_max() -> usize;
431}
432unsafe extern "C" {
433    pub fn crypto_aead_aegis256_encrypt(
434        c: *mut libc::c_uchar,
435        clen_p: *mut libc::c_ulonglong,
436        m: *const libc::c_uchar,
437        mlen: libc::c_ulonglong,
438        ad: *const libc::c_uchar,
439        adlen: libc::c_ulonglong,
440        nsec: *const libc::c_uchar,
441        npub: *const libc::c_uchar,
442        k: *const libc::c_uchar,
443    ) -> libc::c_int;
444}
445unsafe extern "C" {
446    pub fn crypto_aead_aegis256_decrypt(
447        m: *mut libc::c_uchar,
448        mlen_p: *mut libc::c_ulonglong,
449        nsec: *mut libc::c_uchar,
450        c: *const libc::c_uchar,
451        clen: libc::c_ulonglong,
452        ad: *const libc::c_uchar,
453        adlen: libc::c_ulonglong,
454        npub: *const libc::c_uchar,
455        k: *const libc::c_uchar,
456    ) -> libc::c_int;
457}
458unsafe extern "C" {
459    pub fn crypto_aead_aegis256_encrypt_detached(
460        c: *mut libc::c_uchar,
461        mac: *mut libc::c_uchar,
462        maclen_p: *mut libc::c_ulonglong,
463        m: *const libc::c_uchar,
464        mlen: libc::c_ulonglong,
465        ad: *const libc::c_uchar,
466        adlen: libc::c_ulonglong,
467        nsec: *const libc::c_uchar,
468        npub: *const libc::c_uchar,
469        k: *const libc::c_uchar,
470    ) -> libc::c_int;
471}
472unsafe extern "C" {
473    pub fn crypto_aead_aegis256_decrypt_detached(
474        m: *mut libc::c_uchar,
475        nsec: *mut libc::c_uchar,
476        c: *const libc::c_uchar,
477        clen: libc::c_ulonglong,
478        mac: *const libc::c_uchar,
479        ad: *const libc::c_uchar,
480        adlen: libc::c_ulonglong,
481        npub: *const libc::c_uchar,
482        k: *const libc::c_uchar,
483    ) -> libc::c_int;
484}
485unsafe extern "C" {
486    pub fn crypto_aead_aegis256_keygen(k: *mut libc::c_uchar);
487}
488unsafe extern "C" {
489    pub fn crypto_aead_aes256gcm_is_available() -> libc::c_int;
490}
491unsafe extern "C" {
492    pub fn crypto_aead_aes256gcm_keybytes() -> usize;
493}
494unsafe extern "C" {
495    pub fn crypto_aead_aes256gcm_nsecbytes() -> usize;
496}
497unsafe extern "C" {
498    pub fn crypto_aead_aes256gcm_npubbytes() -> usize;
499}
500unsafe extern "C" {
501    pub fn crypto_aead_aes256gcm_abytes() -> usize;
502}
503unsafe extern "C" {
504    pub fn crypto_aead_aes256gcm_messagebytes_max() -> usize;
505}
506#[repr(C)]
507#[repr(align(16))]
508#[derive(Debug, Copy, Clone)]
509pub struct crypto_aead_aes256gcm_state_ {
510    pub opaque: [libc::c_uchar; 512usize],
511}
512pub type crypto_aead_aes256gcm_state = crypto_aead_aes256gcm_state_;
513unsafe extern "C" {
514    pub fn crypto_aead_aes256gcm_statebytes() -> usize;
515}
516unsafe extern "C" {
517    pub fn crypto_aead_aes256gcm_encrypt(
518        c: *mut libc::c_uchar,
519        clen_p: *mut libc::c_ulonglong,
520        m: *const libc::c_uchar,
521        mlen: libc::c_ulonglong,
522        ad: *const libc::c_uchar,
523        adlen: libc::c_ulonglong,
524        nsec: *const libc::c_uchar,
525        npub: *const libc::c_uchar,
526        k: *const libc::c_uchar,
527    ) -> libc::c_int;
528}
529unsafe extern "C" {
530    pub fn crypto_aead_aes256gcm_decrypt(
531        m: *mut libc::c_uchar,
532        mlen_p: *mut libc::c_ulonglong,
533        nsec: *mut libc::c_uchar,
534        c: *const libc::c_uchar,
535        clen: libc::c_ulonglong,
536        ad: *const libc::c_uchar,
537        adlen: libc::c_ulonglong,
538        npub: *const libc::c_uchar,
539        k: *const libc::c_uchar,
540    ) -> libc::c_int;
541}
542unsafe extern "C" {
543    pub fn crypto_aead_aes256gcm_encrypt_detached(
544        c: *mut libc::c_uchar,
545        mac: *mut libc::c_uchar,
546        maclen_p: *mut libc::c_ulonglong,
547        m: *const libc::c_uchar,
548        mlen: libc::c_ulonglong,
549        ad: *const libc::c_uchar,
550        adlen: libc::c_ulonglong,
551        nsec: *const libc::c_uchar,
552        npub: *const libc::c_uchar,
553        k: *const libc::c_uchar,
554    ) -> libc::c_int;
555}
556unsafe extern "C" {
557    pub fn crypto_aead_aes256gcm_decrypt_detached(
558        m: *mut libc::c_uchar,
559        nsec: *mut libc::c_uchar,
560        c: *const libc::c_uchar,
561        clen: libc::c_ulonglong,
562        mac: *const libc::c_uchar,
563        ad: *const libc::c_uchar,
564        adlen: libc::c_ulonglong,
565        npub: *const libc::c_uchar,
566        k: *const libc::c_uchar,
567    ) -> libc::c_int;
568}
569unsafe extern "C" {
570    pub fn crypto_aead_aes256gcm_beforenm(
571        ctx_: *mut crypto_aead_aes256gcm_state,
572        k: *const libc::c_uchar,
573    ) -> libc::c_int;
574}
575unsafe extern "C" {
576    pub fn crypto_aead_aes256gcm_encrypt_afternm(
577        c: *mut libc::c_uchar,
578        clen_p: *mut libc::c_ulonglong,
579        m: *const libc::c_uchar,
580        mlen: libc::c_ulonglong,
581        ad: *const libc::c_uchar,
582        adlen: libc::c_ulonglong,
583        nsec: *const libc::c_uchar,
584        npub: *const libc::c_uchar,
585        ctx_: *const crypto_aead_aes256gcm_state,
586    ) -> libc::c_int;
587}
588unsafe extern "C" {
589    pub fn crypto_aead_aes256gcm_decrypt_afternm(
590        m: *mut libc::c_uchar,
591        mlen_p: *mut libc::c_ulonglong,
592        nsec: *mut libc::c_uchar,
593        c: *const libc::c_uchar,
594        clen: libc::c_ulonglong,
595        ad: *const libc::c_uchar,
596        adlen: libc::c_ulonglong,
597        npub: *const libc::c_uchar,
598        ctx_: *const crypto_aead_aes256gcm_state,
599    ) -> libc::c_int;
600}
601unsafe extern "C" {
602    pub fn crypto_aead_aes256gcm_encrypt_detached_afternm(
603        c: *mut libc::c_uchar,
604        mac: *mut libc::c_uchar,
605        maclen_p: *mut libc::c_ulonglong,
606        m: *const libc::c_uchar,
607        mlen: libc::c_ulonglong,
608        ad: *const libc::c_uchar,
609        adlen: libc::c_ulonglong,
610        nsec: *const libc::c_uchar,
611        npub: *const libc::c_uchar,
612        ctx_: *const crypto_aead_aes256gcm_state,
613    ) -> libc::c_int;
614}
615unsafe extern "C" {
616    pub fn crypto_aead_aes256gcm_decrypt_detached_afternm(
617        m: *mut libc::c_uchar,
618        nsec: *mut libc::c_uchar,
619        c: *const libc::c_uchar,
620        clen: libc::c_ulonglong,
621        mac: *const libc::c_uchar,
622        ad: *const libc::c_uchar,
623        adlen: libc::c_ulonglong,
624        npub: *const libc::c_uchar,
625        ctx_: *const crypto_aead_aes256gcm_state,
626    ) -> libc::c_int;
627}
628unsafe extern "C" {
629    pub fn crypto_aead_aes256gcm_keygen(k: *mut libc::c_uchar);
630}
631unsafe extern "C" {
632    pub fn crypto_aead_chacha20poly1305_ietf_keybytes() -> usize;
633}
634unsafe extern "C" {
635    pub fn crypto_aead_chacha20poly1305_ietf_nsecbytes() -> usize;
636}
637unsafe extern "C" {
638    pub fn crypto_aead_chacha20poly1305_ietf_npubbytes() -> usize;
639}
640unsafe extern "C" {
641    pub fn crypto_aead_chacha20poly1305_ietf_abytes() -> usize;
642}
643unsafe extern "C" {
644    pub fn crypto_aead_chacha20poly1305_ietf_messagebytes_max() -> usize;
645}
646unsafe extern "C" {
647    pub fn crypto_aead_chacha20poly1305_ietf_encrypt(
648        c: *mut libc::c_uchar,
649        clen_p: *mut libc::c_ulonglong,
650        m: *const libc::c_uchar,
651        mlen: libc::c_ulonglong,
652        ad: *const libc::c_uchar,
653        adlen: libc::c_ulonglong,
654        nsec: *const libc::c_uchar,
655        npub: *const libc::c_uchar,
656        k: *const libc::c_uchar,
657    ) -> libc::c_int;
658}
659unsafe extern "C" {
660    pub fn crypto_aead_chacha20poly1305_ietf_decrypt(
661        m: *mut libc::c_uchar,
662        mlen_p: *mut libc::c_ulonglong,
663        nsec: *mut libc::c_uchar,
664        c: *const libc::c_uchar,
665        clen: libc::c_ulonglong,
666        ad: *const libc::c_uchar,
667        adlen: libc::c_ulonglong,
668        npub: *const libc::c_uchar,
669        k: *const libc::c_uchar,
670    ) -> libc::c_int;
671}
672unsafe extern "C" {
673    pub fn crypto_aead_chacha20poly1305_ietf_encrypt_detached(
674        c: *mut libc::c_uchar,
675        mac: *mut libc::c_uchar,
676        maclen_p: *mut libc::c_ulonglong,
677        m: *const libc::c_uchar,
678        mlen: libc::c_ulonglong,
679        ad: *const libc::c_uchar,
680        adlen: libc::c_ulonglong,
681        nsec: *const libc::c_uchar,
682        npub: *const libc::c_uchar,
683        k: *const libc::c_uchar,
684    ) -> libc::c_int;
685}
686unsafe extern "C" {
687    pub fn crypto_aead_chacha20poly1305_ietf_decrypt_detached(
688        m: *mut libc::c_uchar,
689        nsec: *mut libc::c_uchar,
690        c: *const libc::c_uchar,
691        clen: libc::c_ulonglong,
692        mac: *const libc::c_uchar,
693        ad: *const libc::c_uchar,
694        adlen: libc::c_ulonglong,
695        npub: *const libc::c_uchar,
696        k: *const libc::c_uchar,
697    ) -> libc::c_int;
698}
699unsafe extern "C" {
700    pub fn crypto_aead_chacha20poly1305_ietf_keygen(k: *mut libc::c_uchar);
701}
702unsafe extern "C" {
703    pub fn crypto_aead_chacha20poly1305_keybytes() -> usize;
704}
705unsafe extern "C" {
706    pub fn crypto_aead_chacha20poly1305_nsecbytes() -> usize;
707}
708unsafe extern "C" {
709    pub fn crypto_aead_chacha20poly1305_npubbytes() -> usize;
710}
711unsafe extern "C" {
712    pub fn crypto_aead_chacha20poly1305_abytes() -> usize;
713}
714unsafe extern "C" {
715    pub fn crypto_aead_chacha20poly1305_messagebytes_max() -> usize;
716}
717unsafe extern "C" {
718    pub fn crypto_aead_chacha20poly1305_encrypt(
719        c: *mut libc::c_uchar,
720        clen_p: *mut libc::c_ulonglong,
721        m: *const libc::c_uchar,
722        mlen: libc::c_ulonglong,
723        ad: *const libc::c_uchar,
724        adlen: libc::c_ulonglong,
725        nsec: *const libc::c_uchar,
726        npub: *const libc::c_uchar,
727        k: *const libc::c_uchar,
728    ) -> libc::c_int;
729}
730unsafe extern "C" {
731    pub fn crypto_aead_chacha20poly1305_decrypt(
732        m: *mut libc::c_uchar,
733        mlen_p: *mut libc::c_ulonglong,
734        nsec: *mut libc::c_uchar,
735        c: *const libc::c_uchar,
736        clen: libc::c_ulonglong,
737        ad: *const libc::c_uchar,
738        adlen: libc::c_ulonglong,
739        npub: *const libc::c_uchar,
740        k: *const libc::c_uchar,
741    ) -> libc::c_int;
742}
743unsafe extern "C" {
744    pub fn crypto_aead_chacha20poly1305_encrypt_detached(
745        c: *mut libc::c_uchar,
746        mac: *mut libc::c_uchar,
747        maclen_p: *mut libc::c_ulonglong,
748        m: *const libc::c_uchar,
749        mlen: libc::c_ulonglong,
750        ad: *const libc::c_uchar,
751        adlen: libc::c_ulonglong,
752        nsec: *const libc::c_uchar,
753        npub: *const libc::c_uchar,
754        k: *const libc::c_uchar,
755    ) -> libc::c_int;
756}
757unsafe extern "C" {
758    pub fn crypto_aead_chacha20poly1305_decrypt_detached(
759        m: *mut libc::c_uchar,
760        nsec: *mut libc::c_uchar,
761        c: *const libc::c_uchar,
762        clen: libc::c_ulonglong,
763        mac: *const libc::c_uchar,
764        ad: *const libc::c_uchar,
765        adlen: libc::c_ulonglong,
766        npub: *const libc::c_uchar,
767        k: *const libc::c_uchar,
768    ) -> libc::c_int;
769}
770unsafe extern "C" {
771    pub fn crypto_aead_chacha20poly1305_keygen(k: *mut libc::c_uchar);
772}
773unsafe extern "C" {
774    pub fn crypto_aead_xchacha20poly1305_ietf_keybytes() -> usize;
775}
776unsafe extern "C" {
777    pub fn crypto_aead_xchacha20poly1305_ietf_nsecbytes() -> usize;
778}
779unsafe extern "C" {
780    pub fn crypto_aead_xchacha20poly1305_ietf_npubbytes() -> usize;
781}
782unsafe extern "C" {
783    pub fn crypto_aead_xchacha20poly1305_ietf_abytes() -> usize;
784}
785unsafe extern "C" {
786    pub fn crypto_aead_xchacha20poly1305_ietf_messagebytes_max() -> usize;
787}
788unsafe extern "C" {
789    pub fn crypto_aead_xchacha20poly1305_ietf_encrypt(
790        c: *mut libc::c_uchar,
791        clen_p: *mut libc::c_ulonglong,
792        m: *const libc::c_uchar,
793        mlen: libc::c_ulonglong,
794        ad: *const libc::c_uchar,
795        adlen: libc::c_ulonglong,
796        nsec: *const libc::c_uchar,
797        npub: *const libc::c_uchar,
798        k: *const libc::c_uchar,
799    ) -> libc::c_int;
800}
801unsafe extern "C" {
802    pub fn crypto_aead_xchacha20poly1305_ietf_decrypt(
803        m: *mut libc::c_uchar,
804        mlen_p: *mut libc::c_ulonglong,
805        nsec: *mut libc::c_uchar,
806        c: *const libc::c_uchar,
807        clen: libc::c_ulonglong,
808        ad: *const libc::c_uchar,
809        adlen: libc::c_ulonglong,
810        npub: *const libc::c_uchar,
811        k: *const libc::c_uchar,
812    ) -> libc::c_int;
813}
814unsafe extern "C" {
815    pub fn crypto_aead_xchacha20poly1305_ietf_encrypt_detached(
816        c: *mut libc::c_uchar,
817        mac: *mut libc::c_uchar,
818        maclen_p: *mut libc::c_ulonglong,
819        m: *const libc::c_uchar,
820        mlen: libc::c_ulonglong,
821        ad: *const libc::c_uchar,
822        adlen: libc::c_ulonglong,
823        nsec: *const libc::c_uchar,
824        npub: *const libc::c_uchar,
825        k: *const libc::c_uchar,
826    ) -> libc::c_int;
827}
828unsafe extern "C" {
829    pub fn crypto_aead_xchacha20poly1305_ietf_decrypt_detached(
830        m: *mut libc::c_uchar,
831        nsec: *mut libc::c_uchar,
832        c: *const libc::c_uchar,
833        clen: libc::c_ulonglong,
834        mac: *const libc::c_uchar,
835        ad: *const libc::c_uchar,
836        adlen: libc::c_ulonglong,
837        npub: *const libc::c_uchar,
838        k: *const libc::c_uchar,
839    ) -> libc::c_int;
840}
841unsafe extern "C" {
842    pub fn crypto_aead_xchacha20poly1305_ietf_keygen(k: *mut libc::c_uchar);
843}
844#[repr(C)]
845#[derive(Debug, Copy, Clone)]
846pub struct crypto_hash_sha512_state {
847    pub state: [u64; 8usize],
848    pub count: [u64; 2usize],
849    pub buf: [u8; 128usize],
850}
851unsafe extern "C" {
852    pub fn crypto_hash_sha512_statebytes() -> usize;
853}
854unsafe extern "C" {
855    pub fn crypto_hash_sha512_bytes() -> usize;
856}
857unsafe extern "C" {
858    pub fn crypto_hash_sha512(
859        out: *mut libc::c_uchar,
860        in_: *const libc::c_uchar,
861        inlen: libc::c_ulonglong,
862    ) -> libc::c_int;
863}
864unsafe extern "C" {
865    pub fn crypto_hash_sha512_init(state: *mut crypto_hash_sha512_state) -> libc::c_int;
866}
867unsafe extern "C" {
868    pub fn crypto_hash_sha512_update(
869        state: *mut crypto_hash_sha512_state,
870        in_: *const libc::c_uchar,
871        inlen: libc::c_ulonglong,
872    ) -> libc::c_int;
873}
874unsafe extern "C" {
875    pub fn crypto_hash_sha512_final(
876        state: *mut crypto_hash_sha512_state,
877        out: *mut libc::c_uchar,
878    ) -> libc::c_int;
879}
880unsafe extern "C" {
881    pub fn crypto_auth_hmacsha512_bytes() -> usize;
882}
883unsafe extern "C" {
884    pub fn crypto_auth_hmacsha512_keybytes() -> usize;
885}
886unsafe extern "C" {
887    pub fn crypto_auth_hmacsha512(
888        out: *mut libc::c_uchar,
889        in_: *const libc::c_uchar,
890        inlen: libc::c_ulonglong,
891        k: *const libc::c_uchar,
892    ) -> libc::c_int;
893}
894unsafe extern "C" {
895    pub fn crypto_auth_hmacsha512_verify(
896        h: *const libc::c_uchar,
897        in_: *const libc::c_uchar,
898        inlen: libc::c_ulonglong,
899        k: *const libc::c_uchar,
900    ) -> libc::c_int;
901}
902#[repr(C)]
903#[derive(Debug, Copy, Clone)]
904pub struct crypto_auth_hmacsha512_state {
905    pub ictx: crypto_hash_sha512_state,
906    pub octx: crypto_hash_sha512_state,
907}
908unsafe extern "C" {
909    pub fn crypto_auth_hmacsha512_statebytes() -> usize;
910}
911unsafe extern "C" {
912    pub fn crypto_auth_hmacsha512_init(
913        state: *mut crypto_auth_hmacsha512_state,
914        key: *const libc::c_uchar,
915        keylen: usize,
916    ) -> libc::c_int;
917}
918unsafe extern "C" {
919    pub fn crypto_auth_hmacsha512_update(
920        state: *mut crypto_auth_hmacsha512_state,
921        in_: *const libc::c_uchar,
922        inlen: libc::c_ulonglong,
923    ) -> libc::c_int;
924}
925unsafe extern "C" {
926    pub fn crypto_auth_hmacsha512_final(
927        state: *mut crypto_auth_hmacsha512_state,
928        out: *mut libc::c_uchar,
929    ) -> libc::c_int;
930}
931unsafe extern "C" {
932    pub fn crypto_auth_hmacsha512_keygen(k: *mut libc::c_uchar);
933}
934unsafe extern "C" {
935    pub fn crypto_auth_hmacsha512256_bytes() -> usize;
936}
937unsafe extern "C" {
938    pub fn crypto_auth_hmacsha512256_keybytes() -> usize;
939}
940unsafe extern "C" {
941    pub fn crypto_auth_hmacsha512256(
942        out: *mut libc::c_uchar,
943        in_: *const libc::c_uchar,
944        inlen: libc::c_ulonglong,
945        k: *const libc::c_uchar,
946    ) -> libc::c_int;
947}
948unsafe extern "C" {
949    pub fn crypto_auth_hmacsha512256_verify(
950        h: *const libc::c_uchar,
951        in_: *const libc::c_uchar,
952        inlen: libc::c_ulonglong,
953        k: *const libc::c_uchar,
954    ) -> libc::c_int;
955}
956pub type crypto_auth_hmacsha512256_state = crypto_auth_hmacsha512_state;
957unsafe extern "C" {
958    pub fn crypto_auth_hmacsha512256_statebytes() -> usize;
959}
960unsafe extern "C" {
961    pub fn crypto_auth_hmacsha512256_init(
962        state: *mut crypto_auth_hmacsha512256_state,
963        key: *const libc::c_uchar,
964        keylen: usize,
965    ) -> libc::c_int;
966}
967unsafe extern "C" {
968    pub fn crypto_auth_hmacsha512256_update(
969        state: *mut crypto_auth_hmacsha512256_state,
970        in_: *const libc::c_uchar,
971        inlen: libc::c_ulonglong,
972    ) -> libc::c_int;
973}
974unsafe extern "C" {
975    pub fn crypto_auth_hmacsha512256_final(
976        state: *mut crypto_auth_hmacsha512256_state,
977        out: *mut libc::c_uchar,
978    ) -> libc::c_int;
979}
980unsafe extern "C" {
981    pub fn crypto_auth_hmacsha512256_keygen(k: *mut libc::c_uchar);
982}
983unsafe extern "C" {
984    pub fn crypto_auth_bytes() -> usize;
985}
986unsafe extern "C" {
987    pub fn crypto_auth_keybytes() -> usize;
988}
989unsafe extern "C" {
990    pub fn crypto_auth_primitive() -> *const libc::c_char;
991}
992unsafe extern "C" {
993    pub fn crypto_auth(
994        out: *mut libc::c_uchar,
995        in_: *const libc::c_uchar,
996        inlen: libc::c_ulonglong,
997        k: *const libc::c_uchar,
998    ) -> libc::c_int;
999}
1000unsafe extern "C" {
1001    pub fn crypto_auth_verify(
1002        h: *const libc::c_uchar,
1003        in_: *const libc::c_uchar,
1004        inlen: libc::c_ulonglong,
1005        k: *const libc::c_uchar,
1006    ) -> libc::c_int;
1007}
1008unsafe extern "C" {
1009    pub fn crypto_auth_keygen(k: *mut libc::c_uchar);
1010}
1011#[repr(C)]
1012#[derive(Debug, Copy, Clone)]
1013pub struct crypto_hash_sha256_state {
1014    pub state: [u32; 8usize],
1015    pub count: u64,
1016    pub buf: [u8; 64usize],
1017}
1018unsafe extern "C" {
1019    pub fn crypto_hash_sha256_statebytes() -> usize;
1020}
1021unsafe extern "C" {
1022    pub fn crypto_hash_sha256_bytes() -> usize;
1023}
1024unsafe extern "C" {
1025    pub fn crypto_hash_sha256(
1026        out: *mut libc::c_uchar,
1027        in_: *const libc::c_uchar,
1028        inlen: libc::c_ulonglong,
1029    ) -> libc::c_int;
1030}
1031unsafe extern "C" {
1032    pub fn crypto_hash_sha256_init(state: *mut crypto_hash_sha256_state) -> libc::c_int;
1033}
1034unsafe extern "C" {
1035    pub fn crypto_hash_sha256_update(
1036        state: *mut crypto_hash_sha256_state,
1037        in_: *const libc::c_uchar,
1038        inlen: libc::c_ulonglong,
1039    ) -> libc::c_int;
1040}
1041unsafe extern "C" {
1042    pub fn crypto_hash_sha256_final(
1043        state: *mut crypto_hash_sha256_state,
1044        out: *mut libc::c_uchar,
1045    ) -> libc::c_int;
1046}
1047unsafe extern "C" {
1048    pub fn crypto_auth_hmacsha256_bytes() -> usize;
1049}
1050unsafe extern "C" {
1051    pub fn crypto_auth_hmacsha256_keybytes() -> usize;
1052}
1053unsafe extern "C" {
1054    pub fn crypto_auth_hmacsha256(
1055        out: *mut libc::c_uchar,
1056        in_: *const libc::c_uchar,
1057        inlen: libc::c_ulonglong,
1058        k: *const libc::c_uchar,
1059    ) -> libc::c_int;
1060}
1061unsafe extern "C" {
1062    pub fn crypto_auth_hmacsha256_verify(
1063        h: *const libc::c_uchar,
1064        in_: *const libc::c_uchar,
1065        inlen: libc::c_ulonglong,
1066        k: *const libc::c_uchar,
1067    ) -> libc::c_int;
1068}
1069#[repr(C)]
1070#[derive(Debug, Copy, Clone)]
1071pub struct crypto_auth_hmacsha256_state {
1072    pub ictx: crypto_hash_sha256_state,
1073    pub octx: crypto_hash_sha256_state,
1074}
1075unsafe extern "C" {
1076    pub fn crypto_auth_hmacsha256_statebytes() -> usize;
1077}
1078unsafe extern "C" {
1079    pub fn crypto_auth_hmacsha256_init(
1080        state: *mut crypto_auth_hmacsha256_state,
1081        key: *const libc::c_uchar,
1082        keylen: usize,
1083    ) -> libc::c_int;
1084}
1085unsafe extern "C" {
1086    pub fn crypto_auth_hmacsha256_update(
1087        state: *mut crypto_auth_hmacsha256_state,
1088        in_: *const libc::c_uchar,
1089        inlen: libc::c_ulonglong,
1090    ) -> libc::c_int;
1091}
1092unsafe extern "C" {
1093    pub fn crypto_auth_hmacsha256_final(
1094        state: *mut crypto_auth_hmacsha256_state,
1095        out: *mut libc::c_uchar,
1096    ) -> libc::c_int;
1097}
1098unsafe extern "C" {
1099    pub fn crypto_auth_hmacsha256_keygen(k: *mut libc::c_uchar);
1100}
1101unsafe extern "C" {
1102    pub fn crypto_stream_xsalsa20_keybytes() -> usize;
1103}
1104unsafe extern "C" {
1105    pub fn crypto_stream_xsalsa20_noncebytes() -> usize;
1106}
1107unsafe extern "C" {
1108    pub fn crypto_stream_xsalsa20_messagebytes_max() -> usize;
1109}
1110unsafe extern "C" {
1111    pub fn crypto_stream_xsalsa20(
1112        c: *mut libc::c_uchar,
1113        clen: libc::c_ulonglong,
1114        n: *const libc::c_uchar,
1115        k: *const libc::c_uchar,
1116    ) -> libc::c_int;
1117}
1118unsafe extern "C" {
1119    pub fn crypto_stream_xsalsa20_xor(
1120        c: *mut libc::c_uchar,
1121        m: *const libc::c_uchar,
1122        mlen: libc::c_ulonglong,
1123        n: *const libc::c_uchar,
1124        k: *const libc::c_uchar,
1125    ) -> libc::c_int;
1126}
1127unsafe extern "C" {
1128    pub fn crypto_stream_xsalsa20_xor_ic(
1129        c: *mut libc::c_uchar,
1130        m: *const libc::c_uchar,
1131        mlen: libc::c_ulonglong,
1132        n: *const libc::c_uchar,
1133        ic: u64,
1134        k: *const libc::c_uchar,
1135    ) -> libc::c_int;
1136}
1137unsafe extern "C" {
1138    pub fn crypto_stream_xsalsa20_keygen(k: *mut libc::c_uchar);
1139}
1140unsafe extern "C" {
1141    pub fn crypto_box_curve25519xsalsa20poly1305_seedbytes() -> usize;
1142}
1143unsafe extern "C" {
1144    pub fn crypto_box_curve25519xsalsa20poly1305_publickeybytes() -> usize;
1145}
1146unsafe extern "C" {
1147    pub fn crypto_box_curve25519xsalsa20poly1305_secretkeybytes() -> usize;
1148}
1149unsafe extern "C" {
1150    pub fn crypto_box_curve25519xsalsa20poly1305_beforenmbytes() -> usize;
1151}
1152unsafe extern "C" {
1153    pub fn crypto_box_curve25519xsalsa20poly1305_noncebytes() -> usize;
1154}
1155unsafe extern "C" {
1156    pub fn crypto_box_curve25519xsalsa20poly1305_macbytes() -> usize;
1157}
1158unsafe extern "C" {
1159    pub fn crypto_box_curve25519xsalsa20poly1305_messagebytes_max() -> usize;
1160}
1161unsafe extern "C" {
1162    pub fn crypto_box_curve25519xsalsa20poly1305_seed_keypair(
1163        pk: *mut libc::c_uchar,
1164        sk: *mut libc::c_uchar,
1165        seed: *const libc::c_uchar,
1166    ) -> libc::c_int;
1167}
1168unsafe extern "C" {
1169    pub fn crypto_box_curve25519xsalsa20poly1305_keypair(
1170        pk: *mut libc::c_uchar,
1171        sk: *mut libc::c_uchar,
1172    ) -> libc::c_int;
1173}
1174unsafe extern "C" {
1175    pub fn crypto_box_curve25519xsalsa20poly1305_beforenm(
1176        k: *mut libc::c_uchar,
1177        pk: *const libc::c_uchar,
1178        sk: *const libc::c_uchar,
1179    ) -> libc::c_int;
1180}
1181unsafe extern "C" {
1182    pub fn crypto_box_curve25519xsalsa20poly1305_boxzerobytes() -> usize;
1183}
1184unsafe extern "C" {
1185    pub fn crypto_box_curve25519xsalsa20poly1305_zerobytes() -> usize;
1186}
1187unsafe extern "C" {
1188    pub fn crypto_box_curve25519xsalsa20poly1305(
1189        c: *mut libc::c_uchar,
1190        m: *const libc::c_uchar,
1191        mlen: libc::c_ulonglong,
1192        n: *const libc::c_uchar,
1193        pk: *const libc::c_uchar,
1194        sk: *const libc::c_uchar,
1195    ) -> libc::c_int;
1196}
1197unsafe extern "C" {
1198    pub fn crypto_box_curve25519xsalsa20poly1305_open(
1199        m: *mut libc::c_uchar,
1200        c: *const libc::c_uchar,
1201        clen: libc::c_ulonglong,
1202        n: *const libc::c_uchar,
1203        pk: *const libc::c_uchar,
1204        sk: *const libc::c_uchar,
1205    ) -> libc::c_int;
1206}
1207unsafe extern "C" {
1208    pub fn crypto_box_curve25519xsalsa20poly1305_afternm(
1209        c: *mut libc::c_uchar,
1210        m: *const libc::c_uchar,
1211        mlen: libc::c_ulonglong,
1212        n: *const libc::c_uchar,
1213        k: *const libc::c_uchar,
1214    ) -> libc::c_int;
1215}
1216unsafe extern "C" {
1217    pub fn crypto_box_curve25519xsalsa20poly1305_open_afternm(
1218        m: *mut libc::c_uchar,
1219        c: *const libc::c_uchar,
1220        clen: libc::c_ulonglong,
1221        n: *const libc::c_uchar,
1222        k: *const libc::c_uchar,
1223    ) -> libc::c_int;
1224}
1225unsafe extern "C" {
1226    pub fn crypto_box_seedbytes() -> usize;
1227}
1228unsafe extern "C" {
1229    pub fn crypto_box_publickeybytes() -> usize;
1230}
1231unsafe extern "C" {
1232    pub fn crypto_box_secretkeybytes() -> usize;
1233}
1234unsafe extern "C" {
1235    pub fn crypto_box_noncebytes() -> usize;
1236}
1237unsafe extern "C" {
1238    pub fn crypto_box_macbytes() -> usize;
1239}
1240unsafe extern "C" {
1241    pub fn crypto_box_messagebytes_max() -> usize;
1242}
1243unsafe extern "C" {
1244    pub fn crypto_box_primitive() -> *const libc::c_char;
1245}
1246unsafe extern "C" {
1247    pub fn crypto_box_seed_keypair(
1248        pk: *mut libc::c_uchar,
1249        sk: *mut libc::c_uchar,
1250        seed: *const libc::c_uchar,
1251    ) -> libc::c_int;
1252}
1253unsafe extern "C" {
1254    pub fn crypto_box_keypair(pk: *mut libc::c_uchar, sk: *mut libc::c_uchar) -> libc::c_int;
1255}
1256unsafe extern "C" {
1257    pub fn crypto_box_easy(
1258        c: *mut libc::c_uchar,
1259        m: *const libc::c_uchar,
1260        mlen: libc::c_ulonglong,
1261        n: *const libc::c_uchar,
1262        pk: *const libc::c_uchar,
1263        sk: *const libc::c_uchar,
1264    ) -> libc::c_int;
1265}
1266unsafe extern "C" {
1267    pub fn crypto_box_open_easy(
1268        m: *mut libc::c_uchar,
1269        c: *const libc::c_uchar,
1270        clen: libc::c_ulonglong,
1271        n: *const libc::c_uchar,
1272        pk: *const libc::c_uchar,
1273        sk: *const libc::c_uchar,
1274    ) -> libc::c_int;
1275}
1276unsafe extern "C" {
1277    pub fn crypto_box_detached(
1278        c: *mut libc::c_uchar,
1279        mac: *mut libc::c_uchar,
1280        m: *const libc::c_uchar,
1281        mlen: libc::c_ulonglong,
1282        n: *const libc::c_uchar,
1283        pk: *const libc::c_uchar,
1284        sk: *const libc::c_uchar,
1285    ) -> libc::c_int;
1286}
1287unsafe extern "C" {
1288    pub fn crypto_box_open_detached(
1289        m: *mut libc::c_uchar,
1290        c: *const libc::c_uchar,
1291        mac: *const libc::c_uchar,
1292        clen: libc::c_ulonglong,
1293        n: *const libc::c_uchar,
1294        pk: *const libc::c_uchar,
1295        sk: *const libc::c_uchar,
1296    ) -> libc::c_int;
1297}
1298unsafe extern "C" {
1299    pub fn crypto_box_beforenmbytes() -> usize;
1300}
1301unsafe extern "C" {
1302    pub fn crypto_box_beforenm(
1303        k: *mut libc::c_uchar,
1304        pk: *const libc::c_uchar,
1305        sk: *const libc::c_uchar,
1306    ) -> libc::c_int;
1307}
1308unsafe extern "C" {
1309    pub fn crypto_box_easy_afternm(
1310        c: *mut libc::c_uchar,
1311        m: *const libc::c_uchar,
1312        mlen: libc::c_ulonglong,
1313        n: *const libc::c_uchar,
1314        k: *const libc::c_uchar,
1315    ) -> libc::c_int;
1316}
1317unsafe extern "C" {
1318    pub fn crypto_box_open_easy_afternm(
1319        m: *mut libc::c_uchar,
1320        c: *const libc::c_uchar,
1321        clen: libc::c_ulonglong,
1322        n: *const libc::c_uchar,
1323        k: *const libc::c_uchar,
1324    ) -> libc::c_int;
1325}
1326unsafe extern "C" {
1327    pub fn crypto_box_detached_afternm(
1328        c: *mut libc::c_uchar,
1329        mac: *mut libc::c_uchar,
1330        m: *const libc::c_uchar,
1331        mlen: libc::c_ulonglong,
1332        n: *const libc::c_uchar,
1333        k: *const libc::c_uchar,
1334    ) -> libc::c_int;
1335}
1336unsafe extern "C" {
1337    pub fn crypto_box_open_detached_afternm(
1338        m: *mut libc::c_uchar,
1339        c: *const libc::c_uchar,
1340        mac: *const libc::c_uchar,
1341        clen: libc::c_ulonglong,
1342        n: *const libc::c_uchar,
1343        k: *const libc::c_uchar,
1344    ) -> libc::c_int;
1345}
1346unsafe extern "C" {
1347    pub fn crypto_box_sealbytes() -> usize;
1348}
1349unsafe extern "C" {
1350    pub fn crypto_box_seal(
1351        c: *mut libc::c_uchar,
1352        m: *const libc::c_uchar,
1353        mlen: libc::c_ulonglong,
1354        pk: *const libc::c_uchar,
1355    ) -> libc::c_int;
1356}
1357unsafe extern "C" {
1358    pub fn crypto_box_seal_open(
1359        m: *mut libc::c_uchar,
1360        c: *const libc::c_uchar,
1361        clen: libc::c_ulonglong,
1362        pk: *const libc::c_uchar,
1363        sk: *const libc::c_uchar,
1364    ) -> libc::c_int;
1365}
1366unsafe extern "C" {
1367    pub fn crypto_box_zerobytes() -> usize;
1368}
1369unsafe extern "C" {
1370    pub fn crypto_box_boxzerobytes() -> usize;
1371}
1372unsafe extern "C" {
1373    pub fn crypto_box(
1374        c: *mut libc::c_uchar,
1375        m: *const libc::c_uchar,
1376        mlen: libc::c_ulonglong,
1377        n: *const libc::c_uchar,
1378        pk: *const libc::c_uchar,
1379        sk: *const libc::c_uchar,
1380    ) -> libc::c_int;
1381}
1382unsafe extern "C" {
1383    pub fn crypto_box_open(
1384        m: *mut libc::c_uchar,
1385        c: *const libc::c_uchar,
1386        clen: libc::c_ulonglong,
1387        n: *const libc::c_uchar,
1388        pk: *const libc::c_uchar,
1389        sk: *const libc::c_uchar,
1390    ) -> libc::c_int;
1391}
1392unsafe extern "C" {
1393    pub fn crypto_box_afternm(
1394        c: *mut libc::c_uchar,
1395        m: *const libc::c_uchar,
1396        mlen: libc::c_ulonglong,
1397        n: *const libc::c_uchar,
1398        k: *const libc::c_uchar,
1399    ) -> libc::c_int;
1400}
1401unsafe extern "C" {
1402    pub fn crypto_box_open_afternm(
1403        m: *mut libc::c_uchar,
1404        c: *const libc::c_uchar,
1405        clen: libc::c_ulonglong,
1406        n: *const libc::c_uchar,
1407        k: *const libc::c_uchar,
1408    ) -> libc::c_int;
1409}
1410unsafe extern "C" {
1411    pub fn crypto_core_hchacha20_outputbytes() -> usize;
1412}
1413unsafe extern "C" {
1414    pub fn crypto_core_hchacha20_inputbytes() -> usize;
1415}
1416unsafe extern "C" {
1417    pub fn crypto_core_hchacha20_keybytes() -> usize;
1418}
1419unsafe extern "C" {
1420    pub fn crypto_core_hchacha20_constbytes() -> usize;
1421}
1422unsafe extern "C" {
1423    pub fn crypto_core_hchacha20(
1424        out: *mut libc::c_uchar,
1425        in_: *const libc::c_uchar,
1426        k: *const libc::c_uchar,
1427        c: *const libc::c_uchar,
1428    ) -> libc::c_int;
1429}
1430unsafe extern "C" {
1431    pub fn crypto_core_hsalsa20_outputbytes() -> usize;
1432}
1433unsafe extern "C" {
1434    pub fn crypto_core_hsalsa20_inputbytes() -> usize;
1435}
1436unsafe extern "C" {
1437    pub fn crypto_core_hsalsa20_keybytes() -> usize;
1438}
1439unsafe extern "C" {
1440    pub fn crypto_core_hsalsa20_constbytes() -> usize;
1441}
1442unsafe extern "C" {
1443    pub fn crypto_core_hsalsa20(
1444        out: *mut libc::c_uchar,
1445        in_: *const libc::c_uchar,
1446        k: *const libc::c_uchar,
1447        c: *const libc::c_uchar,
1448    ) -> libc::c_int;
1449}
1450#[repr(C)]
1451#[repr(align(16))]
1452#[derive(Debug, Copy, Clone)]
1453pub struct crypto_core_keccak1600_state {
1454    pub opaque: [libc::c_uchar; 224usize],
1455}
1456unsafe extern "C" {
1457    pub fn crypto_core_keccak1600_statebytes() -> usize;
1458}
1459unsafe extern "C" {
1460    pub fn crypto_core_keccak1600_init(state: *mut crypto_core_keccak1600_state);
1461}
1462unsafe extern "C" {
1463    pub fn crypto_core_keccak1600_xor_bytes(
1464        state: *mut crypto_core_keccak1600_state,
1465        bytes: *const libc::c_uchar,
1466        offset: usize,
1467        length: usize,
1468    );
1469}
1470unsafe extern "C" {
1471    pub fn crypto_core_keccak1600_extract_bytes(
1472        state: *const crypto_core_keccak1600_state,
1473        bytes: *mut libc::c_uchar,
1474        offset: usize,
1475        length: usize,
1476    );
1477}
1478unsafe extern "C" {
1479    pub fn crypto_core_keccak1600_permute_24(state: *mut crypto_core_keccak1600_state);
1480}
1481unsafe extern "C" {
1482    pub fn crypto_core_keccak1600_permute_12(state: *mut crypto_core_keccak1600_state);
1483}
1484unsafe extern "C" {
1485    pub fn crypto_core_salsa20_outputbytes() -> usize;
1486}
1487unsafe extern "C" {
1488    pub fn crypto_core_salsa20_inputbytes() -> usize;
1489}
1490unsafe extern "C" {
1491    pub fn crypto_core_salsa20_keybytes() -> usize;
1492}
1493unsafe extern "C" {
1494    pub fn crypto_core_salsa20_constbytes() -> usize;
1495}
1496unsafe extern "C" {
1497    pub fn crypto_core_salsa20(
1498        out: *mut libc::c_uchar,
1499        in_: *const libc::c_uchar,
1500        k: *const libc::c_uchar,
1501        c: *const libc::c_uchar,
1502    ) -> libc::c_int;
1503}
1504unsafe extern "C" {
1505    pub fn crypto_core_salsa2012_outputbytes() -> usize;
1506}
1507unsafe extern "C" {
1508    pub fn crypto_core_salsa2012_inputbytes() -> usize;
1509}
1510unsafe extern "C" {
1511    pub fn crypto_core_salsa2012_keybytes() -> usize;
1512}
1513unsafe extern "C" {
1514    pub fn crypto_core_salsa2012_constbytes() -> usize;
1515}
1516unsafe extern "C" {
1517    pub fn crypto_core_salsa2012(
1518        out: *mut libc::c_uchar,
1519        in_: *const libc::c_uchar,
1520        k: *const libc::c_uchar,
1521        c: *const libc::c_uchar,
1522    ) -> libc::c_int;
1523}
1524unsafe extern "C" {
1525    pub fn crypto_core_salsa208_outputbytes() -> usize;
1526}
1527unsafe extern "C" {
1528    pub fn crypto_core_salsa208_inputbytes() -> usize;
1529}
1530unsafe extern "C" {
1531    pub fn crypto_core_salsa208_keybytes() -> usize;
1532}
1533unsafe extern "C" {
1534    pub fn crypto_core_salsa208_constbytes() -> usize;
1535}
1536unsafe extern "C" {
1537    pub fn crypto_core_salsa208(
1538        out: *mut libc::c_uchar,
1539        in_: *const libc::c_uchar,
1540        k: *const libc::c_uchar,
1541        c: *const libc::c_uchar,
1542    ) -> libc::c_int;
1543}
1544#[repr(C)]
1545#[repr(align(64))]
1546#[derive(Debug, Copy, Clone)]
1547pub struct crypto_generichash_blake2b_state {
1548    pub opaque: [libc::c_uchar; 384usize],
1549}
1550unsafe extern "C" {
1551    pub fn crypto_generichash_blake2b_bytes_min() -> usize;
1552}
1553unsafe extern "C" {
1554    pub fn crypto_generichash_blake2b_bytes_max() -> usize;
1555}
1556unsafe extern "C" {
1557    pub fn crypto_generichash_blake2b_bytes() -> usize;
1558}
1559unsafe extern "C" {
1560    pub fn crypto_generichash_blake2b_keybytes_min() -> usize;
1561}
1562unsafe extern "C" {
1563    pub fn crypto_generichash_blake2b_keybytes_max() -> usize;
1564}
1565unsafe extern "C" {
1566    pub fn crypto_generichash_blake2b_keybytes() -> usize;
1567}
1568unsafe extern "C" {
1569    pub fn crypto_generichash_blake2b_saltbytes() -> usize;
1570}
1571unsafe extern "C" {
1572    pub fn crypto_generichash_blake2b_personalbytes() -> usize;
1573}
1574unsafe extern "C" {
1575    pub fn crypto_generichash_blake2b_statebytes() -> usize;
1576}
1577unsafe extern "C" {
1578    pub fn crypto_generichash_blake2b(
1579        out: *mut libc::c_uchar,
1580        outlen: usize,
1581        in_: *const libc::c_uchar,
1582        inlen: libc::c_ulonglong,
1583        key: *const libc::c_uchar,
1584        keylen: usize,
1585    ) -> libc::c_int;
1586}
1587unsafe extern "C" {
1588    pub fn crypto_generichash_blake2b_salt_personal(
1589        out: *mut libc::c_uchar,
1590        outlen: usize,
1591        in_: *const libc::c_uchar,
1592        inlen: libc::c_ulonglong,
1593        key: *const libc::c_uchar,
1594        keylen: usize,
1595        salt: *const libc::c_uchar,
1596        personal: *const libc::c_uchar,
1597    ) -> libc::c_int;
1598}
1599unsafe extern "C" {
1600    pub fn crypto_generichash_blake2b_init(
1601        state: *mut crypto_generichash_blake2b_state,
1602        key: *const libc::c_uchar,
1603        keylen: usize,
1604        outlen: usize,
1605    ) -> libc::c_int;
1606}
1607unsafe extern "C" {
1608    pub fn crypto_generichash_blake2b_init_salt_personal(
1609        state: *mut crypto_generichash_blake2b_state,
1610        key: *const libc::c_uchar,
1611        keylen: usize,
1612        outlen: usize,
1613        salt: *const libc::c_uchar,
1614        personal: *const libc::c_uchar,
1615    ) -> libc::c_int;
1616}
1617unsafe extern "C" {
1618    pub fn crypto_generichash_blake2b_update(
1619        state: *mut crypto_generichash_blake2b_state,
1620        in_: *const libc::c_uchar,
1621        inlen: libc::c_ulonglong,
1622    ) -> libc::c_int;
1623}
1624unsafe extern "C" {
1625    pub fn crypto_generichash_blake2b_final(
1626        state: *mut crypto_generichash_blake2b_state,
1627        out: *mut libc::c_uchar,
1628        outlen: usize,
1629    ) -> libc::c_int;
1630}
1631unsafe extern "C" {
1632    pub fn crypto_generichash_blake2b_keygen(k: *mut libc::c_uchar);
1633}
1634unsafe extern "C" {
1635    pub fn crypto_generichash_bytes_min() -> usize;
1636}
1637unsafe extern "C" {
1638    pub fn crypto_generichash_bytes_max() -> usize;
1639}
1640unsafe extern "C" {
1641    pub fn crypto_generichash_bytes() -> usize;
1642}
1643unsafe extern "C" {
1644    pub fn crypto_generichash_keybytes_min() -> usize;
1645}
1646unsafe extern "C" {
1647    pub fn crypto_generichash_keybytes_max() -> usize;
1648}
1649unsafe extern "C" {
1650    pub fn crypto_generichash_keybytes() -> usize;
1651}
1652unsafe extern "C" {
1653    pub fn crypto_generichash_primitive() -> *const libc::c_char;
1654}
1655pub type crypto_generichash_state = crypto_generichash_blake2b_state;
1656unsafe extern "C" {
1657    pub fn crypto_generichash_statebytes() -> usize;
1658}
1659unsafe extern "C" {
1660    pub fn crypto_generichash(
1661        out: *mut libc::c_uchar,
1662        outlen: usize,
1663        in_: *const libc::c_uchar,
1664        inlen: libc::c_ulonglong,
1665        key: *const libc::c_uchar,
1666        keylen: usize,
1667    ) -> libc::c_int;
1668}
1669unsafe extern "C" {
1670    pub fn crypto_generichash_init(
1671        state: *mut crypto_generichash_state,
1672        key: *const libc::c_uchar,
1673        keylen: usize,
1674        outlen: usize,
1675    ) -> libc::c_int;
1676}
1677unsafe extern "C" {
1678    pub fn crypto_generichash_update(
1679        state: *mut crypto_generichash_state,
1680        in_: *const libc::c_uchar,
1681        inlen: libc::c_ulonglong,
1682    ) -> libc::c_int;
1683}
1684unsafe extern "C" {
1685    pub fn crypto_generichash_final(
1686        state: *mut crypto_generichash_state,
1687        out: *mut libc::c_uchar,
1688        outlen: usize,
1689    ) -> libc::c_int;
1690}
1691unsafe extern "C" {
1692    pub fn crypto_generichash_keygen(k: *mut libc::c_uchar);
1693}
1694unsafe extern "C" {
1695    pub fn crypto_hash_bytes() -> usize;
1696}
1697unsafe extern "C" {
1698    pub fn crypto_hash(
1699        out: *mut libc::c_uchar,
1700        in_: *const libc::c_uchar,
1701        inlen: libc::c_ulonglong,
1702    ) -> libc::c_int;
1703}
1704unsafe extern "C" {
1705    pub fn crypto_hash_primitive() -> *const libc::c_char;
1706}
1707#[repr(C)]
1708#[repr(align(16))]
1709#[derive(Debug, Copy, Clone)]
1710pub struct crypto_hash_sha3256_state {
1711    pub opaque: [libc::c_uchar; 256usize],
1712}
1713unsafe extern "C" {
1714    pub fn crypto_hash_sha3256_statebytes() -> usize;
1715}
1716unsafe extern "C" {
1717    pub fn crypto_hash_sha3256_bytes() -> usize;
1718}
1719unsafe extern "C" {
1720    pub fn crypto_hash_sha3256(
1721        out: *mut libc::c_uchar,
1722        in_: *const libc::c_uchar,
1723        inlen: libc::c_ulonglong,
1724    ) -> libc::c_int;
1725}
1726unsafe extern "C" {
1727    pub fn crypto_hash_sha3256_init(state: *mut crypto_hash_sha3256_state) -> libc::c_int;
1728}
1729unsafe extern "C" {
1730    pub fn crypto_hash_sha3256_update(
1731        state: *mut crypto_hash_sha3256_state,
1732        in_: *const libc::c_uchar,
1733        inlen: libc::c_ulonglong,
1734    ) -> libc::c_int;
1735}
1736unsafe extern "C" {
1737    pub fn crypto_hash_sha3256_final(
1738        state: *mut crypto_hash_sha3256_state,
1739        out: *mut libc::c_uchar,
1740    ) -> libc::c_int;
1741}
1742#[repr(C)]
1743#[repr(align(16))]
1744#[derive(Debug, Copy, Clone)]
1745pub struct crypto_hash_sha3512_state {
1746    pub opaque: [libc::c_uchar; 256usize],
1747}
1748unsafe extern "C" {
1749    pub fn crypto_hash_sha3512_statebytes() -> usize;
1750}
1751unsafe extern "C" {
1752    pub fn crypto_hash_sha3512_bytes() -> usize;
1753}
1754unsafe extern "C" {
1755    pub fn crypto_hash_sha3512(
1756        out: *mut libc::c_uchar,
1757        in_: *const libc::c_uchar,
1758        inlen: libc::c_ulonglong,
1759    ) -> libc::c_int;
1760}
1761unsafe extern "C" {
1762    pub fn crypto_hash_sha3512_init(state: *mut crypto_hash_sha3512_state) -> libc::c_int;
1763}
1764unsafe extern "C" {
1765    pub fn crypto_hash_sha3512_update(
1766        state: *mut crypto_hash_sha3512_state,
1767        in_: *const libc::c_uchar,
1768        inlen: libc::c_ulonglong,
1769    ) -> libc::c_int;
1770}
1771unsafe extern "C" {
1772    pub fn crypto_hash_sha3512_final(
1773        state: *mut crypto_hash_sha3512_state,
1774        out: *mut libc::c_uchar,
1775    ) -> libc::c_int;
1776}
1777unsafe extern "C" {
1778    pub fn crypto_ipcrypt_bytes() -> usize;
1779}
1780unsafe extern "C" {
1781    pub fn crypto_ipcrypt_keybytes() -> usize;
1782}
1783unsafe extern "C" {
1784    pub fn crypto_ipcrypt_nd_keybytes() -> usize;
1785}
1786unsafe extern "C" {
1787    pub fn crypto_ipcrypt_nd_tweakbytes() -> usize;
1788}
1789unsafe extern "C" {
1790    pub fn crypto_ipcrypt_nd_inputbytes() -> usize;
1791}
1792unsafe extern "C" {
1793    pub fn crypto_ipcrypt_nd_outputbytes() -> usize;
1794}
1795unsafe extern "C" {
1796    pub fn crypto_ipcrypt_ndx_keybytes() -> usize;
1797}
1798unsafe extern "C" {
1799    pub fn crypto_ipcrypt_ndx_tweakbytes() -> usize;
1800}
1801unsafe extern "C" {
1802    pub fn crypto_ipcrypt_ndx_inputbytes() -> usize;
1803}
1804unsafe extern "C" {
1805    pub fn crypto_ipcrypt_ndx_outputbytes() -> usize;
1806}
1807unsafe extern "C" {
1808    pub fn crypto_ipcrypt_pfx_keybytes() -> usize;
1809}
1810unsafe extern "C" {
1811    pub fn crypto_ipcrypt_pfx_bytes() -> usize;
1812}
1813unsafe extern "C" {
1814    pub fn crypto_ipcrypt_keygen(k: *mut libc::c_uchar);
1815}
1816unsafe extern "C" {
1817    pub fn crypto_ipcrypt_nd_keygen(k: *mut libc::c_uchar);
1818}
1819unsafe extern "C" {
1820    pub fn crypto_ipcrypt_ndx_keygen(k: *mut libc::c_uchar);
1821}
1822unsafe extern "C" {
1823    pub fn crypto_ipcrypt_pfx_keygen(k: *mut libc::c_uchar);
1824}
1825unsafe extern "C" {
1826    pub fn crypto_ipcrypt_encrypt(
1827        out: *mut libc::c_uchar,
1828        in_: *const libc::c_uchar,
1829        k: *const libc::c_uchar,
1830    );
1831}
1832unsafe extern "C" {
1833    pub fn crypto_ipcrypt_decrypt(
1834        out: *mut libc::c_uchar,
1835        in_: *const libc::c_uchar,
1836        k: *const libc::c_uchar,
1837    );
1838}
1839unsafe extern "C" {
1840    pub fn crypto_ipcrypt_nd_encrypt(
1841        out: *mut libc::c_uchar,
1842        in_: *const libc::c_uchar,
1843        t: *const libc::c_uchar,
1844        k: *const libc::c_uchar,
1845    );
1846}
1847unsafe extern "C" {
1848    pub fn crypto_ipcrypt_nd_decrypt(
1849        out: *mut libc::c_uchar,
1850        in_: *const libc::c_uchar,
1851        k: *const libc::c_uchar,
1852    );
1853}
1854unsafe extern "C" {
1855    pub fn crypto_ipcrypt_ndx_encrypt(
1856        out: *mut libc::c_uchar,
1857        in_: *const libc::c_uchar,
1858        t: *const libc::c_uchar,
1859        k: *const libc::c_uchar,
1860    );
1861}
1862unsafe extern "C" {
1863    pub fn crypto_ipcrypt_ndx_decrypt(
1864        out: *mut libc::c_uchar,
1865        in_: *const libc::c_uchar,
1866        k: *const libc::c_uchar,
1867    );
1868}
1869unsafe extern "C" {
1870    pub fn crypto_ipcrypt_pfx_encrypt(
1871        out: *mut libc::c_uchar,
1872        in_: *const libc::c_uchar,
1873        k: *const libc::c_uchar,
1874    );
1875}
1876unsafe extern "C" {
1877    pub fn crypto_ipcrypt_pfx_decrypt(
1878        out: *mut libc::c_uchar,
1879        in_: *const libc::c_uchar,
1880        k: *const libc::c_uchar,
1881    );
1882}
1883unsafe extern "C" {
1884    pub fn crypto_kdf_blake2b_bytes_min() -> usize;
1885}
1886unsafe extern "C" {
1887    pub fn crypto_kdf_blake2b_bytes_max() -> usize;
1888}
1889unsafe extern "C" {
1890    pub fn crypto_kdf_blake2b_contextbytes() -> usize;
1891}
1892unsafe extern "C" {
1893    pub fn crypto_kdf_blake2b_keybytes() -> usize;
1894}
1895unsafe extern "C" {
1896    pub fn crypto_kdf_blake2b_derive_from_key(
1897        subkey: *mut libc::c_uchar,
1898        subkey_len: usize,
1899        subkey_id: u64,
1900        ctx: *const libc::c_char,
1901        key: *const libc::c_uchar,
1902    ) -> libc::c_int;
1903}
1904unsafe extern "C" {
1905    pub fn crypto_kdf_bytes_min() -> usize;
1906}
1907unsafe extern "C" {
1908    pub fn crypto_kdf_bytes_max() -> usize;
1909}
1910unsafe extern "C" {
1911    pub fn crypto_kdf_contextbytes() -> usize;
1912}
1913unsafe extern "C" {
1914    pub fn crypto_kdf_keybytes() -> usize;
1915}
1916unsafe extern "C" {
1917    pub fn crypto_kdf_primitive() -> *const libc::c_char;
1918}
1919unsafe extern "C" {
1920    pub fn crypto_kdf_derive_from_key(
1921        subkey: *mut libc::c_uchar,
1922        subkey_len: usize,
1923        subkey_id: u64,
1924        ctx: *const libc::c_char,
1925        key: *const libc::c_uchar,
1926    ) -> libc::c_int;
1927}
1928unsafe extern "C" {
1929    pub fn crypto_kdf_keygen(k: *mut libc::c_uchar);
1930}
1931unsafe extern "C" {
1932    pub fn crypto_kdf_hkdf_sha256_keybytes() -> usize;
1933}
1934unsafe extern "C" {
1935    pub fn crypto_kdf_hkdf_sha256_bytes_min() -> usize;
1936}
1937unsafe extern "C" {
1938    pub fn crypto_kdf_hkdf_sha256_bytes_max() -> usize;
1939}
1940unsafe extern "C" {
1941    pub fn crypto_kdf_hkdf_sha256_extract(
1942        prk: *mut libc::c_uchar,
1943        salt: *const libc::c_uchar,
1944        salt_len: usize,
1945        ikm: *const libc::c_uchar,
1946        ikm_len: usize,
1947    ) -> libc::c_int;
1948}
1949unsafe extern "C" {
1950    pub fn crypto_kdf_hkdf_sha256_keygen(prk: *mut libc::c_uchar);
1951}
1952unsafe extern "C" {
1953    pub fn crypto_kdf_hkdf_sha256_expand(
1954        out: *mut libc::c_uchar,
1955        out_len: usize,
1956        ctx: *const libc::c_char,
1957        ctx_len: usize,
1958        prk: *const libc::c_uchar,
1959    ) -> libc::c_int;
1960}
1961#[repr(C)]
1962#[derive(Debug, Copy, Clone)]
1963pub struct crypto_kdf_hkdf_sha256_state {
1964    pub st: crypto_auth_hmacsha256_state,
1965}
1966unsafe extern "C" {
1967    pub fn crypto_kdf_hkdf_sha256_statebytes() -> usize;
1968}
1969unsafe extern "C" {
1970    pub fn crypto_kdf_hkdf_sha256_extract_init(
1971        state: *mut crypto_kdf_hkdf_sha256_state,
1972        salt: *const libc::c_uchar,
1973        salt_len: usize,
1974    ) -> libc::c_int;
1975}
1976unsafe extern "C" {
1977    pub fn crypto_kdf_hkdf_sha256_extract_update(
1978        state: *mut crypto_kdf_hkdf_sha256_state,
1979        ikm: *const libc::c_uchar,
1980        ikm_len: usize,
1981    ) -> libc::c_int;
1982}
1983unsafe extern "C" {
1984    pub fn crypto_kdf_hkdf_sha256_extract_final(
1985        state: *mut crypto_kdf_hkdf_sha256_state,
1986        prk: *mut libc::c_uchar,
1987    ) -> libc::c_int;
1988}
1989unsafe extern "C" {
1990    pub fn crypto_kdf_hkdf_sha512_keybytes() -> usize;
1991}
1992unsafe extern "C" {
1993    pub fn crypto_kdf_hkdf_sha512_bytes_min() -> usize;
1994}
1995unsafe extern "C" {
1996    pub fn crypto_kdf_hkdf_sha512_bytes_max() -> usize;
1997}
1998unsafe extern "C" {
1999    pub fn crypto_kdf_hkdf_sha512_extract(
2000        prk: *mut libc::c_uchar,
2001        salt: *const libc::c_uchar,
2002        salt_len: usize,
2003        ikm: *const libc::c_uchar,
2004        ikm_len: usize,
2005    ) -> libc::c_int;
2006}
2007unsafe extern "C" {
2008    pub fn crypto_kdf_hkdf_sha512_keygen(prk: *mut libc::c_uchar);
2009}
2010unsafe extern "C" {
2011    pub fn crypto_kdf_hkdf_sha512_expand(
2012        out: *mut libc::c_uchar,
2013        out_len: usize,
2014        ctx: *const libc::c_char,
2015        ctx_len: usize,
2016        prk: *const libc::c_uchar,
2017    ) -> libc::c_int;
2018}
2019#[repr(C)]
2020#[derive(Debug, Copy, Clone)]
2021pub struct crypto_kdf_hkdf_sha512_state {
2022    pub st: crypto_auth_hmacsha512_state,
2023}
2024unsafe extern "C" {
2025    pub fn crypto_kdf_hkdf_sha512_statebytes() -> usize;
2026}
2027unsafe extern "C" {
2028    pub fn crypto_kdf_hkdf_sha512_extract_init(
2029        state: *mut crypto_kdf_hkdf_sha512_state,
2030        salt: *const libc::c_uchar,
2031        salt_len: usize,
2032    ) -> libc::c_int;
2033}
2034unsafe extern "C" {
2035    pub fn crypto_kdf_hkdf_sha512_extract_update(
2036        state: *mut crypto_kdf_hkdf_sha512_state,
2037        ikm: *const libc::c_uchar,
2038        ikm_len: usize,
2039    ) -> libc::c_int;
2040}
2041unsafe extern "C" {
2042    pub fn crypto_kdf_hkdf_sha512_extract_final(
2043        state: *mut crypto_kdf_hkdf_sha512_state,
2044        prk: *mut libc::c_uchar,
2045    ) -> libc::c_int;
2046}
2047unsafe extern "C" {
2048    pub fn crypto_kem_xwing_publickeybytes() -> usize;
2049}
2050unsafe extern "C" {
2051    pub fn crypto_kem_xwing_secretkeybytes() -> usize;
2052}
2053unsafe extern "C" {
2054    pub fn crypto_kem_xwing_ciphertextbytes() -> usize;
2055}
2056unsafe extern "C" {
2057    pub fn crypto_kem_xwing_sharedsecretbytes() -> usize;
2058}
2059unsafe extern "C" {
2060    pub fn crypto_kem_xwing_seedbytes() -> usize;
2061}
2062unsafe extern "C" {
2063    pub fn crypto_kem_xwing_seed_keypair(
2064        pk: *mut libc::c_uchar,
2065        sk: *mut libc::c_uchar,
2066        seed: *const libc::c_uchar,
2067    ) -> libc::c_int;
2068}
2069unsafe extern "C" {
2070    pub fn crypto_kem_xwing_keypair(pk: *mut libc::c_uchar, sk: *mut libc::c_uchar) -> libc::c_int;
2071}
2072unsafe extern "C" {
2073    pub fn crypto_kem_xwing_enc(
2074        ct: *mut libc::c_uchar,
2075        ss: *mut libc::c_uchar,
2076        pk: *const libc::c_uchar,
2077    ) -> libc::c_int;
2078}
2079unsafe extern "C" {
2080    pub fn crypto_kem_xwing_enc_deterministic(
2081        ct: *mut libc::c_uchar,
2082        ss: *mut libc::c_uchar,
2083        pk: *const libc::c_uchar,
2084        seed: *const libc::c_uchar,
2085    ) -> libc::c_int;
2086}
2087unsafe extern "C" {
2088    pub fn crypto_kem_xwing_dec(
2089        ss: *mut libc::c_uchar,
2090        ct: *const libc::c_uchar,
2091        sk: *const libc::c_uchar,
2092    ) -> libc::c_int;
2093}
2094unsafe extern "C" {
2095    pub fn crypto_kem_publickeybytes() -> usize;
2096}
2097unsafe extern "C" {
2098    pub fn crypto_kem_secretkeybytes() -> usize;
2099}
2100unsafe extern "C" {
2101    pub fn crypto_kem_ciphertextbytes() -> usize;
2102}
2103unsafe extern "C" {
2104    pub fn crypto_kem_sharedsecretbytes() -> usize;
2105}
2106unsafe extern "C" {
2107    pub fn crypto_kem_seedbytes() -> usize;
2108}
2109unsafe extern "C" {
2110    pub fn crypto_kem_primitive() -> *const libc::c_char;
2111}
2112unsafe extern "C" {
2113    pub fn crypto_kem_seed_keypair(
2114        pk: *mut libc::c_uchar,
2115        sk: *mut libc::c_uchar,
2116        seed: *const libc::c_uchar,
2117    ) -> libc::c_int;
2118}
2119unsafe extern "C" {
2120    pub fn crypto_kem_keypair(pk: *mut libc::c_uchar, sk: *mut libc::c_uchar) -> libc::c_int;
2121}
2122unsafe extern "C" {
2123    pub fn crypto_kem_enc(
2124        ct: *mut libc::c_uchar,
2125        ss: *mut libc::c_uchar,
2126        pk: *const libc::c_uchar,
2127    ) -> libc::c_int;
2128}
2129unsafe extern "C" {
2130    pub fn crypto_kem_dec(
2131        ss: *mut libc::c_uchar,
2132        ct: *const libc::c_uchar,
2133        sk: *const libc::c_uchar,
2134    ) -> libc::c_int;
2135}
2136unsafe extern "C" {
2137    pub fn crypto_kem_mlkem768_publickeybytes() -> usize;
2138}
2139unsafe extern "C" {
2140    pub fn crypto_kem_mlkem768_secretkeybytes() -> usize;
2141}
2142unsafe extern "C" {
2143    pub fn crypto_kem_mlkem768_ciphertextbytes() -> usize;
2144}
2145unsafe extern "C" {
2146    pub fn crypto_kem_mlkem768_sharedsecretbytes() -> usize;
2147}
2148unsafe extern "C" {
2149    pub fn crypto_kem_mlkem768_seedbytes() -> usize;
2150}
2151unsafe extern "C" {
2152    pub fn crypto_kem_mlkem768_seed_keypair(
2153        pk: *mut libc::c_uchar,
2154        sk: *mut libc::c_uchar,
2155        seed: *const libc::c_uchar,
2156    ) -> libc::c_int;
2157}
2158unsafe extern "C" {
2159    pub fn crypto_kem_mlkem768_keypair(
2160        pk: *mut libc::c_uchar,
2161        sk: *mut libc::c_uchar,
2162    ) -> libc::c_int;
2163}
2164unsafe extern "C" {
2165    pub fn crypto_kem_mlkem768_enc(
2166        ct: *mut libc::c_uchar,
2167        ss: *mut libc::c_uchar,
2168        pk: *const libc::c_uchar,
2169    ) -> libc::c_int;
2170}
2171unsafe extern "C" {
2172    pub fn crypto_kem_mlkem768_enc_deterministic(
2173        ct: *mut libc::c_uchar,
2174        ss: *mut libc::c_uchar,
2175        pk: *const libc::c_uchar,
2176        seed: *const libc::c_uchar,
2177    ) -> libc::c_int;
2178}
2179unsafe extern "C" {
2180    pub fn crypto_kem_mlkem768_dec(
2181        ss: *mut libc::c_uchar,
2182        ct: *const libc::c_uchar,
2183        sk: *const libc::c_uchar,
2184    ) -> libc::c_int;
2185}
2186unsafe extern "C" {
2187    pub fn crypto_kx_publickeybytes() -> usize;
2188}
2189unsafe extern "C" {
2190    pub fn crypto_kx_secretkeybytes() -> usize;
2191}
2192unsafe extern "C" {
2193    pub fn crypto_kx_seedbytes() -> usize;
2194}
2195unsafe extern "C" {
2196    pub fn crypto_kx_sessionkeybytes() -> usize;
2197}
2198unsafe extern "C" {
2199    pub fn crypto_kx_primitive() -> *const libc::c_char;
2200}
2201unsafe extern "C" {
2202    pub fn crypto_kx_seed_keypair(
2203        pk: *mut libc::c_uchar,
2204        sk: *mut libc::c_uchar,
2205        seed: *const libc::c_uchar,
2206    ) -> libc::c_int;
2207}
2208unsafe extern "C" {
2209    pub fn crypto_kx_keypair(pk: *mut libc::c_uchar, sk: *mut libc::c_uchar) -> libc::c_int;
2210}
2211unsafe extern "C" {
2212    pub fn crypto_kx_client_session_keys(
2213        rx: *mut libc::c_uchar,
2214        tx: *mut libc::c_uchar,
2215        client_pk: *const libc::c_uchar,
2216        client_sk: *const libc::c_uchar,
2217        server_pk: *const libc::c_uchar,
2218    ) -> libc::c_int;
2219}
2220unsafe extern "C" {
2221    pub fn crypto_kx_server_session_keys(
2222        rx: *mut libc::c_uchar,
2223        tx: *mut libc::c_uchar,
2224        server_pk: *const libc::c_uchar,
2225        server_sk: *const libc::c_uchar,
2226        client_pk: *const libc::c_uchar,
2227    ) -> libc::c_int;
2228}
2229#[repr(C)]
2230#[repr(align(16))]
2231#[derive(Debug, Copy, Clone)]
2232pub struct crypto_onetimeauth_poly1305_state {
2233    pub opaque: [libc::c_uchar; 256usize],
2234}
2235unsafe extern "C" {
2236    pub fn crypto_onetimeauth_poly1305_statebytes() -> usize;
2237}
2238unsafe extern "C" {
2239    pub fn crypto_onetimeauth_poly1305_bytes() -> usize;
2240}
2241unsafe extern "C" {
2242    pub fn crypto_onetimeauth_poly1305_keybytes() -> usize;
2243}
2244unsafe extern "C" {
2245    pub fn crypto_onetimeauth_poly1305(
2246        out: *mut libc::c_uchar,
2247        in_: *const libc::c_uchar,
2248        inlen: libc::c_ulonglong,
2249        k: *const libc::c_uchar,
2250    ) -> libc::c_int;
2251}
2252unsafe extern "C" {
2253    pub fn crypto_onetimeauth_poly1305_verify(
2254        h: *const libc::c_uchar,
2255        in_: *const libc::c_uchar,
2256        inlen: libc::c_ulonglong,
2257        k: *const libc::c_uchar,
2258    ) -> libc::c_int;
2259}
2260unsafe extern "C" {
2261    pub fn crypto_onetimeauth_poly1305_init(
2262        state: *mut crypto_onetimeauth_poly1305_state,
2263        key: *const libc::c_uchar,
2264    ) -> libc::c_int;
2265}
2266unsafe extern "C" {
2267    pub fn crypto_onetimeauth_poly1305_update(
2268        state: *mut crypto_onetimeauth_poly1305_state,
2269        in_: *const libc::c_uchar,
2270        inlen: libc::c_ulonglong,
2271    ) -> libc::c_int;
2272}
2273unsafe extern "C" {
2274    pub fn crypto_onetimeauth_poly1305_final(
2275        state: *mut crypto_onetimeauth_poly1305_state,
2276        out: *mut libc::c_uchar,
2277    ) -> libc::c_int;
2278}
2279unsafe extern "C" {
2280    pub fn crypto_onetimeauth_poly1305_keygen(k: *mut libc::c_uchar);
2281}
2282pub type crypto_onetimeauth_state = crypto_onetimeauth_poly1305_state;
2283unsafe extern "C" {
2284    pub fn crypto_onetimeauth_statebytes() -> usize;
2285}
2286unsafe extern "C" {
2287    pub fn crypto_onetimeauth_bytes() -> usize;
2288}
2289unsafe extern "C" {
2290    pub fn crypto_onetimeauth_keybytes() -> usize;
2291}
2292unsafe extern "C" {
2293    pub fn crypto_onetimeauth_primitive() -> *const libc::c_char;
2294}
2295unsafe extern "C" {
2296    pub fn crypto_onetimeauth(
2297        out: *mut libc::c_uchar,
2298        in_: *const libc::c_uchar,
2299        inlen: libc::c_ulonglong,
2300        k: *const libc::c_uchar,
2301    ) -> libc::c_int;
2302}
2303unsafe extern "C" {
2304    pub fn crypto_onetimeauth_verify(
2305        h: *const libc::c_uchar,
2306        in_: *const libc::c_uchar,
2307        inlen: libc::c_ulonglong,
2308        k: *const libc::c_uchar,
2309    ) -> libc::c_int;
2310}
2311unsafe extern "C" {
2312    pub fn crypto_onetimeauth_init(
2313        state: *mut crypto_onetimeauth_state,
2314        key: *const libc::c_uchar,
2315    ) -> libc::c_int;
2316}
2317unsafe extern "C" {
2318    pub fn crypto_onetimeauth_update(
2319        state: *mut crypto_onetimeauth_state,
2320        in_: *const libc::c_uchar,
2321        inlen: libc::c_ulonglong,
2322    ) -> libc::c_int;
2323}
2324unsafe extern "C" {
2325    pub fn crypto_onetimeauth_final(
2326        state: *mut crypto_onetimeauth_state,
2327        out: *mut libc::c_uchar,
2328    ) -> libc::c_int;
2329}
2330unsafe extern "C" {
2331    pub fn crypto_onetimeauth_keygen(k: *mut libc::c_uchar);
2332}
2333unsafe extern "C" {
2334    pub fn crypto_pwhash_argon2i_alg_argon2i13() -> libc::c_int;
2335}
2336unsafe extern "C" {
2337    pub fn crypto_pwhash_argon2i_bytes_min() -> usize;
2338}
2339unsafe extern "C" {
2340    pub fn crypto_pwhash_argon2i_bytes_max() -> usize;
2341}
2342unsafe extern "C" {
2343    pub fn crypto_pwhash_argon2i_passwd_min() -> usize;
2344}
2345unsafe extern "C" {
2346    pub fn crypto_pwhash_argon2i_passwd_max() -> usize;
2347}
2348unsafe extern "C" {
2349    pub fn crypto_pwhash_argon2i_saltbytes() -> usize;
2350}
2351unsafe extern "C" {
2352    pub fn crypto_pwhash_argon2i_strbytes() -> usize;
2353}
2354unsafe extern "C" {
2355    pub fn crypto_pwhash_argon2i_strprefix() -> *const libc::c_char;
2356}
2357unsafe extern "C" {
2358    pub fn crypto_pwhash_argon2i_opslimit_min() -> usize;
2359}
2360unsafe extern "C" {
2361    pub fn crypto_pwhash_argon2i_opslimit_max() -> usize;
2362}
2363unsafe extern "C" {
2364    pub fn crypto_pwhash_argon2i_memlimit_min() -> usize;
2365}
2366unsafe extern "C" {
2367    pub fn crypto_pwhash_argon2i_memlimit_max() -> usize;
2368}
2369unsafe extern "C" {
2370    pub fn crypto_pwhash_argon2i_opslimit_interactive() -> usize;
2371}
2372unsafe extern "C" {
2373    pub fn crypto_pwhash_argon2i_memlimit_interactive() -> usize;
2374}
2375unsafe extern "C" {
2376    pub fn crypto_pwhash_argon2i_opslimit_moderate() -> usize;
2377}
2378unsafe extern "C" {
2379    pub fn crypto_pwhash_argon2i_memlimit_moderate() -> usize;
2380}
2381unsafe extern "C" {
2382    pub fn crypto_pwhash_argon2i_opslimit_sensitive() -> usize;
2383}
2384unsafe extern "C" {
2385    pub fn crypto_pwhash_argon2i_memlimit_sensitive() -> usize;
2386}
2387unsafe extern "C" {
2388    pub fn crypto_pwhash_argon2i(
2389        out: *mut libc::c_uchar,
2390        outlen: libc::c_ulonglong,
2391        passwd: *const libc::c_char,
2392        passwdlen: libc::c_ulonglong,
2393        salt: *const libc::c_uchar,
2394        opslimit: libc::c_ulonglong,
2395        memlimit: usize,
2396        alg: libc::c_int,
2397    ) -> libc::c_int;
2398}
2399unsafe extern "C" {
2400    pub fn crypto_pwhash_argon2i_str(
2401        out: *mut libc::c_char,
2402        passwd: *const libc::c_char,
2403        passwdlen: libc::c_ulonglong,
2404        opslimit: libc::c_ulonglong,
2405        memlimit: usize,
2406    ) -> libc::c_int;
2407}
2408unsafe extern "C" {
2409    pub fn crypto_pwhash_argon2i_str_verify(
2410        str_: *const libc::c_char,
2411        passwd: *const libc::c_char,
2412        passwdlen: libc::c_ulonglong,
2413    ) -> libc::c_int;
2414}
2415unsafe extern "C" {
2416    pub fn crypto_pwhash_argon2i_str_needs_rehash(
2417        str_: *const libc::c_char,
2418        opslimit: libc::c_ulonglong,
2419        memlimit: usize,
2420    ) -> libc::c_int;
2421}
2422unsafe extern "C" {
2423    pub fn crypto_pwhash_argon2id_alg_argon2id13() -> libc::c_int;
2424}
2425unsafe extern "C" {
2426    pub fn crypto_pwhash_argon2id_bytes_min() -> usize;
2427}
2428unsafe extern "C" {
2429    pub fn crypto_pwhash_argon2id_bytes_max() -> usize;
2430}
2431unsafe extern "C" {
2432    pub fn crypto_pwhash_argon2id_passwd_min() -> usize;
2433}
2434unsafe extern "C" {
2435    pub fn crypto_pwhash_argon2id_passwd_max() -> usize;
2436}
2437unsafe extern "C" {
2438    pub fn crypto_pwhash_argon2id_saltbytes() -> usize;
2439}
2440unsafe extern "C" {
2441    pub fn crypto_pwhash_argon2id_strbytes() -> usize;
2442}
2443unsafe extern "C" {
2444    pub fn crypto_pwhash_argon2id_strprefix() -> *const libc::c_char;
2445}
2446unsafe extern "C" {
2447    pub fn crypto_pwhash_argon2id_opslimit_min() -> usize;
2448}
2449unsafe extern "C" {
2450    pub fn crypto_pwhash_argon2id_opslimit_max() -> usize;
2451}
2452unsafe extern "C" {
2453    pub fn crypto_pwhash_argon2id_memlimit_min() -> usize;
2454}
2455unsafe extern "C" {
2456    pub fn crypto_pwhash_argon2id_memlimit_max() -> usize;
2457}
2458unsafe extern "C" {
2459    pub fn crypto_pwhash_argon2id_opslimit_interactive() -> usize;
2460}
2461unsafe extern "C" {
2462    pub fn crypto_pwhash_argon2id_memlimit_interactive() -> usize;
2463}
2464unsafe extern "C" {
2465    pub fn crypto_pwhash_argon2id_opslimit_moderate() -> usize;
2466}
2467unsafe extern "C" {
2468    pub fn crypto_pwhash_argon2id_memlimit_moderate() -> usize;
2469}
2470unsafe extern "C" {
2471    pub fn crypto_pwhash_argon2id_opslimit_sensitive() -> usize;
2472}
2473unsafe extern "C" {
2474    pub fn crypto_pwhash_argon2id_memlimit_sensitive() -> usize;
2475}
2476unsafe extern "C" {
2477    pub fn crypto_pwhash_argon2id(
2478        out: *mut libc::c_uchar,
2479        outlen: libc::c_ulonglong,
2480        passwd: *const libc::c_char,
2481        passwdlen: libc::c_ulonglong,
2482        salt: *const libc::c_uchar,
2483        opslimit: libc::c_ulonglong,
2484        memlimit: usize,
2485        alg: libc::c_int,
2486    ) -> libc::c_int;
2487}
2488unsafe extern "C" {
2489    pub fn crypto_pwhash_argon2id_str(
2490        out: *mut libc::c_char,
2491        passwd: *const libc::c_char,
2492        passwdlen: libc::c_ulonglong,
2493        opslimit: libc::c_ulonglong,
2494        memlimit: usize,
2495    ) -> libc::c_int;
2496}
2497unsafe extern "C" {
2498    pub fn crypto_pwhash_argon2id_str_verify(
2499        str_: *const libc::c_char,
2500        passwd: *const libc::c_char,
2501        passwdlen: libc::c_ulonglong,
2502    ) -> libc::c_int;
2503}
2504unsafe extern "C" {
2505    pub fn crypto_pwhash_argon2id_str_needs_rehash(
2506        str_: *const libc::c_char,
2507        opslimit: libc::c_ulonglong,
2508        memlimit: usize,
2509    ) -> libc::c_int;
2510}
2511unsafe extern "C" {
2512    pub fn crypto_pwhash_alg_argon2i13() -> libc::c_int;
2513}
2514unsafe extern "C" {
2515    pub fn crypto_pwhash_alg_argon2id13() -> libc::c_int;
2516}
2517unsafe extern "C" {
2518    pub fn crypto_pwhash_alg_default() -> libc::c_int;
2519}
2520unsafe extern "C" {
2521    pub fn crypto_pwhash_bytes_min() -> usize;
2522}
2523unsafe extern "C" {
2524    pub fn crypto_pwhash_bytes_max() -> usize;
2525}
2526unsafe extern "C" {
2527    pub fn crypto_pwhash_passwd_min() -> usize;
2528}
2529unsafe extern "C" {
2530    pub fn crypto_pwhash_passwd_max() -> usize;
2531}
2532unsafe extern "C" {
2533    pub fn crypto_pwhash_saltbytes() -> usize;
2534}
2535unsafe extern "C" {
2536    pub fn crypto_pwhash_strbytes() -> usize;
2537}
2538unsafe extern "C" {
2539    pub fn crypto_pwhash_strprefix() -> *const libc::c_char;
2540}
2541unsafe extern "C" {
2542    pub fn crypto_pwhash_opslimit_min() -> usize;
2543}
2544unsafe extern "C" {
2545    pub fn crypto_pwhash_opslimit_max() -> usize;
2546}
2547unsafe extern "C" {
2548    pub fn crypto_pwhash_memlimit_min() -> usize;
2549}
2550unsafe extern "C" {
2551    pub fn crypto_pwhash_memlimit_max() -> usize;
2552}
2553unsafe extern "C" {
2554    pub fn crypto_pwhash_opslimit_interactive() -> usize;
2555}
2556unsafe extern "C" {
2557    pub fn crypto_pwhash_memlimit_interactive() -> usize;
2558}
2559unsafe extern "C" {
2560    pub fn crypto_pwhash_opslimit_moderate() -> usize;
2561}
2562unsafe extern "C" {
2563    pub fn crypto_pwhash_memlimit_moderate() -> usize;
2564}
2565unsafe extern "C" {
2566    pub fn crypto_pwhash_opslimit_sensitive() -> usize;
2567}
2568unsafe extern "C" {
2569    pub fn crypto_pwhash_memlimit_sensitive() -> usize;
2570}
2571unsafe extern "C" {
2572    pub fn crypto_pwhash(
2573        out: *mut libc::c_uchar,
2574        outlen: libc::c_ulonglong,
2575        passwd: *const libc::c_char,
2576        passwdlen: libc::c_ulonglong,
2577        salt: *const libc::c_uchar,
2578        opslimit: libc::c_ulonglong,
2579        memlimit: usize,
2580        alg: libc::c_int,
2581    ) -> libc::c_int;
2582}
2583unsafe extern "C" {
2584    pub fn crypto_pwhash_str(
2585        out: *mut libc::c_char,
2586        passwd: *const libc::c_char,
2587        passwdlen: libc::c_ulonglong,
2588        opslimit: libc::c_ulonglong,
2589        memlimit: usize,
2590    ) -> libc::c_int;
2591}
2592unsafe extern "C" {
2593    pub fn crypto_pwhash_str_alg(
2594        out: *mut libc::c_char,
2595        passwd: *const libc::c_char,
2596        passwdlen: libc::c_ulonglong,
2597        opslimit: libc::c_ulonglong,
2598        memlimit: usize,
2599        alg: libc::c_int,
2600    ) -> libc::c_int;
2601}
2602unsafe extern "C" {
2603    pub fn crypto_pwhash_str_verify(
2604        str_: *const libc::c_char,
2605        passwd: *const libc::c_char,
2606        passwdlen: libc::c_ulonglong,
2607    ) -> libc::c_int;
2608}
2609unsafe extern "C" {
2610    pub fn crypto_pwhash_str_needs_rehash(
2611        str_: *const libc::c_char,
2612        opslimit: libc::c_ulonglong,
2613        memlimit: usize,
2614    ) -> libc::c_int;
2615}
2616unsafe extern "C" {
2617    pub fn crypto_pwhash_primitive() -> *const libc::c_char;
2618}
2619unsafe extern "C" {
2620    pub fn crypto_scalarmult_curve25519_bytes() -> usize;
2621}
2622unsafe extern "C" {
2623    pub fn crypto_scalarmult_curve25519_scalarbytes() -> usize;
2624}
2625unsafe extern "C" {
2626    pub fn crypto_scalarmult_curve25519(
2627        q: *mut libc::c_uchar,
2628        n: *const libc::c_uchar,
2629        p: *const libc::c_uchar,
2630    ) -> libc::c_int;
2631}
2632unsafe extern "C" {
2633    pub fn crypto_scalarmult_curve25519_base(
2634        q: *mut libc::c_uchar,
2635        n: *const libc::c_uchar,
2636    ) -> libc::c_int;
2637}
2638unsafe extern "C" {
2639    pub fn crypto_scalarmult_bytes() -> usize;
2640}
2641unsafe extern "C" {
2642    pub fn crypto_scalarmult_scalarbytes() -> usize;
2643}
2644unsafe extern "C" {
2645    pub fn crypto_scalarmult_primitive() -> *const libc::c_char;
2646}
2647unsafe extern "C" {
2648    pub fn crypto_scalarmult_base(q: *mut libc::c_uchar, n: *const libc::c_uchar) -> libc::c_int;
2649}
2650unsafe extern "C" {
2651    pub fn crypto_scalarmult(
2652        q: *mut libc::c_uchar,
2653        n: *const libc::c_uchar,
2654        p: *const libc::c_uchar,
2655    ) -> libc::c_int;
2656}
2657unsafe extern "C" {
2658    pub fn crypto_secretbox_xsalsa20poly1305_keybytes() -> usize;
2659}
2660unsafe extern "C" {
2661    pub fn crypto_secretbox_xsalsa20poly1305_noncebytes() -> usize;
2662}
2663unsafe extern "C" {
2664    pub fn crypto_secretbox_xsalsa20poly1305_macbytes() -> usize;
2665}
2666unsafe extern "C" {
2667    pub fn crypto_secretbox_xsalsa20poly1305_messagebytes_max() -> usize;
2668}
2669unsafe extern "C" {
2670    pub fn crypto_secretbox_xsalsa20poly1305(
2671        c: *mut libc::c_uchar,
2672        m: *const libc::c_uchar,
2673        mlen: libc::c_ulonglong,
2674        n: *const libc::c_uchar,
2675        k: *const libc::c_uchar,
2676    ) -> libc::c_int;
2677}
2678unsafe extern "C" {
2679    pub fn crypto_secretbox_xsalsa20poly1305_open(
2680        m: *mut libc::c_uchar,
2681        c: *const libc::c_uchar,
2682        clen: libc::c_ulonglong,
2683        n: *const libc::c_uchar,
2684        k: *const libc::c_uchar,
2685    ) -> libc::c_int;
2686}
2687unsafe extern "C" {
2688    pub fn crypto_secretbox_xsalsa20poly1305_keygen(k: *mut libc::c_uchar);
2689}
2690unsafe extern "C" {
2691    pub fn crypto_secretbox_xsalsa20poly1305_boxzerobytes() -> usize;
2692}
2693unsafe extern "C" {
2694    pub fn crypto_secretbox_xsalsa20poly1305_zerobytes() -> usize;
2695}
2696unsafe extern "C" {
2697    pub fn crypto_secretbox_keybytes() -> usize;
2698}
2699unsafe extern "C" {
2700    pub fn crypto_secretbox_noncebytes() -> usize;
2701}
2702unsafe extern "C" {
2703    pub fn crypto_secretbox_macbytes() -> usize;
2704}
2705unsafe extern "C" {
2706    pub fn crypto_secretbox_primitive() -> *const libc::c_char;
2707}
2708unsafe extern "C" {
2709    pub fn crypto_secretbox_messagebytes_max() -> usize;
2710}
2711unsafe extern "C" {
2712    pub fn crypto_secretbox_easy(
2713        c: *mut libc::c_uchar,
2714        m: *const libc::c_uchar,
2715        mlen: libc::c_ulonglong,
2716        n: *const libc::c_uchar,
2717        k: *const libc::c_uchar,
2718    ) -> libc::c_int;
2719}
2720unsafe extern "C" {
2721    pub fn crypto_secretbox_open_easy(
2722        m: *mut libc::c_uchar,
2723        c: *const libc::c_uchar,
2724        clen: libc::c_ulonglong,
2725        n: *const libc::c_uchar,
2726        k: *const libc::c_uchar,
2727    ) -> libc::c_int;
2728}
2729unsafe extern "C" {
2730    pub fn crypto_secretbox_detached(
2731        c: *mut libc::c_uchar,
2732        mac: *mut libc::c_uchar,
2733        m: *const libc::c_uchar,
2734        mlen: libc::c_ulonglong,
2735        n: *const libc::c_uchar,
2736        k: *const libc::c_uchar,
2737    ) -> libc::c_int;
2738}
2739unsafe extern "C" {
2740    pub fn crypto_secretbox_open_detached(
2741        m: *mut libc::c_uchar,
2742        c: *const libc::c_uchar,
2743        mac: *const libc::c_uchar,
2744        clen: libc::c_ulonglong,
2745        n: *const libc::c_uchar,
2746        k: *const libc::c_uchar,
2747    ) -> libc::c_int;
2748}
2749unsafe extern "C" {
2750    pub fn crypto_secretbox_keygen(k: *mut libc::c_uchar);
2751}
2752unsafe extern "C" {
2753    pub fn crypto_secretbox_zerobytes() -> usize;
2754}
2755unsafe extern "C" {
2756    pub fn crypto_secretbox_boxzerobytes() -> usize;
2757}
2758unsafe extern "C" {
2759    pub fn crypto_secretbox(
2760        c: *mut libc::c_uchar,
2761        m: *const libc::c_uchar,
2762        mlen: libc::c_ulonglong,
2763        n: *const libc::c_uchar,
2764        k: *const libc::c_uchar,
2765    ) -> libc::c_int;
2766}
2767unsafe extern "C" {
2768    pub fn crypto_secretbox_open(
2769        m: *mut libc::c_uchar,
2770        c: *const libc::c_uchar,
2771        clen: libc::c_ulonglong,
2772        n: *const libc::c_uchar,
2773        k: *const libc::c_uchar,
2774    ) -> libc::c_int;
2775}
2776unsafe extern "C" {
2777    pub fn crypto_stream_chacha20_keybytes() -> usize;
2778}
2779unsafe extern "C" {
2780    pub fn crypto_stream_chacha20_noncebytes() -> usize;
2781}
2782unsafe extern "C" {
2783    pub fn crypto_stream_chacha20_messagebytes_max() -> usize;
2784}
2785unsafe extern "C" {
2786    pub fn crypto_stream_chacha20(
2787        c: *mut libc::c_uchar,
2788        clen: libc::c_ulonglong,
2789        n: *const libc::c_uchar,
2790        k: *const libc::c_uchar,
2791    ) -> libc::c_int;
2792}
2793unsafe extern "C" {
2794    pub fn crypto_stream_chacha20_xor(
2795        c: *mut libc::c_uchar,
2796        m: *const libc::c_uchar,
2797        mlen: libc::c_ulonglong,
2798        n: *const libc::c_uchar,
2799        k: *const libc::c_uchar,
2800    ) -> libc::c_int;
2801}
2802unsafe extern "C" {
2803    pub fn crypto_stream_chacha20_xor_ic(
2804        c: *mut libc::c_uchar,
2805        m: *const libc::c_uchar,
2806        mlen: libc::c_ulonglong,
2807        n: *const libc::c_uchar,
2808        ic: u64,
2809        k: *const libc::c_uchar,
2810    ) -> libc::c_int;
2811}
2812unsafe extern "C" {
2813    pub fn crypto_stream_chacha20_keygen(k: *mut libc::c_uchar);
2814}
2815unsafe extern "C" {
2816    pub fn crypto_stream_chacha20_ietf_keybytes() -> usize;
2817}
2818unsafe extern "C" {
2819    pub fn crypto_stream_chacha20_ietf_noncebytes() -> usize;
2820}
2821unsafe extern "C" {
2822    pub fn crypto_stream_chacha20_ietf_messagebytes_max() -> usize;
2823}
2824unsafe extern "C" {
2825    pub fn crypto_stream_chacha20_ietf(
2826        c: *mut libc::c_uchar,
2827        clen: libc::c_ulonglong,
2828        n: *const libc::c_uchar,
2829        k: *const libc::c_uchar,
2830    ) -> libc::c_int;
2831}
2832unsafe extern "C" {
2833    pub fn crypto_stream_chacha20_ietf_xor(
2834        c: *mut libc::c_uchar,
2835        m: *const libc::c_uchar,
2836        mlen: libc::c_ulonglong,
2837        n: *const libc::c_uchar,
2838        k: *const libc::c_uchar,
2839    ) -> libc::c_int;
2840}
2841unsafe extern "C" {
2842    pub fn crypto_stream_chacha20_ietf_xor_ic(
2843        c: *mut libc::c_uchar,
2844        m: *const libc::c_uchar,
2845        mlen: libc::c_ulonglong,
2846        n: *const libc::c_uchar,
2847        ic: u32,
2848        k: *const libc::c_uchar,
2849    ) -> libc::c_int;
2850}
2851unsafe extern "C" {
2852    pub fn crypto_stream_chacha20_ietf_keygen(k: *mut libc::c_uchar);
2853}
2854unsafe extern "C" {
2855    pub fn crypto_secretstream_xchacha20poly1305_abytes() -> usize;
2856}
2857unsafe extern "C" {
2858    pub fn crypto_secretstream_xchacha20poly1305_headerbytes() -> usize;
2859}
2860unsafe extern "C" {
2861    pub fn crypto_secretstream_xchacha20poly1305_keybytes() -> usize;
2862}
2863unsafe extern "C" {
2864    pub fn crypto_secretstream_xchacha20poly1305_messagebytes_max() -> usize;
2865}
2866unsafe extern "C" {
2867    pub fn crypto_secretstream_xchacha20poly1305_tag_message() -> libc::c_uchar;
2868}
2869unsafe extern "C" {
2870    pub fn crypto_secretstream_xchacha20poly1305_tag_push() -> libc::c_uchar;
2871}
2872unsafe extern "C" {
2873    pub fn crypto_secretstream_xchacha20poly1305_tag_rekey() -> libc::c_uchar;
2874}
2875unsafe extern "C" {
2876    pub fn crypto_secretstream_xchacha20poly1305_tag_final() -> libc::c_uchar;
2877}
2878#[repr(C)]
2879#[derive(Debug, Copy, Clone)]
2880pub struct crypto_secretstream_xchacha20poly1305_state {
2881    pub k: [libc::c_uchar; 32usize],
2882    pub nonce: [libc::c_uchar; 12usize],
2883    pub _pad: [libc::c_uchar; 8usize],
2884}
2885unsafe extern "C" {
2886    pub fn crypto_secretstream_xchacha20poly1305_statebytes() -> usize;
2887}
2888unsafe extern "C" {
2889    pub fn crypto_secretstream_xchacha20poly1305_keygen(k: *mut libc::c_uchar);
2890}
2891unsafe extern "C" {
2892    pub fn crypto_secretstream_xchacha20poly1305_init_push(
2893        state: *mut crypto_secretstream_xchacha20poly1305_state,
2894        header: *mut libc::c_uchar,
2895        k: *const libc::c_uchar,
2896    ) -> libc::c_int;
2897}
2898unsafe extern "C" {
2899    pub fn crypto_secretstream_xchacha20poly1305_push(
2900        state: *mut crypto_secretstream_xchacha20poly1305_state,
2901        c: *mut libc::c_uchar,
2902        clen_p: *mut libc::c_ulonglong,
2903        m: *const libc::c_uchar,
2904        mlen: libc::c_ulonglong,
2905        ad: *const libc::c_uchar,
2906        adlen: libc::c_ulonglong,
2907        tag: libc::c_uchar,
2908    ) -> libc::c_int;
2909}
2910unsafe extern "C" {
2911    pub fn crypto_secretstream_xchacha20poly1305_init_pull(
2912        state: *mut crypto_secretstream_xchacha20poly1305_state,
2913        header: *const libc::c_uchar,
2914        k: *const libc::c_uchar,
2915    ) -> libc::c_int;
2916}
2917unsafe extern "C" {
2918    pub fn crypto_secretstream_xchacha20poly1305_pull(
2919        state: *mut crypto_secretstream_xchacha20poly1305_state,
2920        m: *mut libc::c_uchar,
2921        mlen_p: *mut libc::c_ulonglong,
2922        tag_p: *mut libc::c_uchar,
2923        c: *const libc::c_uchar,
2924        clen: libc::c_ulonglong,
2925        ad: *const libc::c_uchar,
2926        adlen: libc::c_ulonglong,
2927    ) -> libc::c_int;
2928}
2929unsafe extern "C" {
2930    pub fn crypto_secretstream_xchacha20poly1305_rekey(
2931        state: *mut crypto_secretstream_xchacha20poly1305_state,
2932    );
2933}
2934unsafe extern "C" {
2935    pub fn crypto_shorthash_siphash24_bytes() -> usize;
2936}
2937unsafe extern "C" {
2938    pub fn crypto_shorthash_siphash24_keybytes() -> usize;
2939}
2940unsafe extern "C" {
2941    pub fn crypto_shorthash_siphash24(
2942        out: *mut libc::c_uchar,
2943        in_: *const libc::c_uchar,
2944        inlen: libc::c_ulonglong,
2945        k: *const libc::c_uchar,
2946    ) -> libc::c_int;
2947}
2948unsafe extern "C" {
2949    pub fn crypto_shorthash_siphashx24_bytes() -> usize;
2950}
2951unsafe extern "C" {
2952    pub fn crypto_shorthash_siphashx24_keybytes() -> usize;
2953}
2954unsafe extern "C" {
2955    pub fn crypto_shorthash_siphashx24(
2956        out: *mut libc::c_uchar,
2957        in_: *const libc::c_uchar,
2958        inlen: libc::c_ulonglong,
2959        k: *const libc::c_uchar,
2960    ) -> libc::c_int;
2961}
2962unsafe extern "C" {
2963    pub fn crypto_shorthash_bytes() -> usize;
2964}
2965unsafe extern "C" {
2966    pub fn crypto_shorthash_keybytes() -> usize;
2967}
2968unsafe extern "C" {
2969    pub fn crypto_shorthash_primitive() -> *const libc::c_char;
2970}
2971unsafe extern "C" {
2972    pub fn crypto_shorthash(
2973        out: *mut libc::c_uchar,
2974        in_: *const libc::c_uchar,
2975        inlen: libc::c_ulonglong,
2976        k: *const libc::c_uchar,
2977    ) -> libc::c_int;
2978}
2979unsafe extern "C" {
2980    pub fn crypto_shorthash_keygen(k: *mut libc::c_uchar);
2981}
2982#[repr(C)]
2983#[derive(Debug, Copy, Clone)]
2984pub struct crypto_sign_ed25519ph_state {
2985    pub hs: crypto_hash_sha512_state,
2986}
2987unsafe extern "C" {
2988    pub fn crypto_sign_ed25519ph_statebytes() -> usize;
2989}
2990unsafe extern "C" {
2991    pub fn crypto_sign_ed25519_bytes() -> usize;
2992}
2993unsafe extern "C" {
2994    pub fn crypto_sign_ed25519_seedbytes() -> usize;
2995}
2996unsafe extern "C" {
2997    pub fn crypto_sign_ed25519_publickeybytes() -> usize;
2998}
2999unsafe extern "C" {
3000    pub fn crypto_sign_ed25519_secretkeybytes() -> usize;
3001}
3002unsafe extern "C" {
3003    pub fn crypto_sign_ed25519_messagebytes_max() -> usize;
3004}
3005unsafe extern "C" {
3006    pub fn crypto_sign_ed25519(
3007        sm: *mut libc::c_uchar,
3008        smlen_p: *mut libc::c_ulonglong,
3009        m: *const libc::c_uchar,
3010        mlen: libc::c_ulonglong,
3011        sk: *const libc::c_uchar,
3012    ) -> libc::c_int;
3013}
3014unsafe extern "C" {
3015    pub fn crypto_sign_ed25519_open(
3016        m: *mut libc::c_uchar,
3017        mlen_p: *mut libc::c_ulonglong,
3018        sm: *const libc::c_uchar,
3019        smlen: libc::c_ulonglong,
3020        pk: *const libc::c_uchar,
3021    ) -> libc::c_int;
3022}
3023unsafe extern "C" {
3024    pub fn crypto_sign_ed25519_detached(
3025        sig: *mut libc::c_uchar,
3026        siglen_p: *mut libc::c_ulonglong,
3027        m: *const libc::c_uchar,
3028        mlen: libc::c_ulonglong,
3029        sk: *const libc::c_uchar,
3030    ) -> libc::c_int;
3031}
3032unsafe extern "C" {
3033    pub fn crypto_sign_ed25519_verify_detached(
3034        sig: *const libc::c_uchar,
3035        m: *const libc::c_uchar,
3036        mlen: libc::c_ulonglong,
3037        pk: *const libc::c_uchar,
3038    ) -> libc::c_int;
3039}
3040unsafe extern "C" {
3041    pub fn crypto_sign_ed25519_keypair(
3042        pk: *mut libc::c_uchar,
3043        sk: *mut libc::c_uchar,
3044    ) -> libc::c_int;
3045}
3046unsafe extern "C" {
3047    pub fn crypto_sign_ed25519_seed_keypair(
3048        pk: *mut libc::c_uchar,
3049        sk: *mut libc::c_uchar,
3050        seed: *const libc::c_uchar,
3051    ) -> libc::c_int;
3052}
3053unsafe extern "C" {
3054    pub fn crypto_sign_ed25519_pk_to_curve25519(
3055        curve25519_pk: *mut libc::c_uchar,
3056        ed25519_pk: *const libc::c_uchar,
3057    ) -> libc::c_int;
3058}
3059unsafe extern "C" {
3060    pub fn crypto_sign_ed25519_sk_to_curve25519(
3061        curve25519_sk: *mut libc::c_uchar,
3062        ed25519_sk: *const libc::c_uchar,
3063    ) -> libc::c_int;
3064}
3065unsafe extern "C" {
3066    pub fn crypto_sign_ed25519_sk_to_seed(
3067        seed: *mut libc::c_uchar,
3068        sk: *const libc::c_uchar,
3069    ) -> libc::c_int;
3070}
3071unsafe extern "C" {
3072    pub fn crypto_sign_ed25519_sk_to_pk(
3073        pk: *mut libc::c_uchar,
3074        sk: *const libc::c_uchar,
3075    ) -> libc::c_int;
3076}
3077unsafe extern "C" {
3078    pub fn crypto_sign_ed25519ph_init(state: *mut crypto_sign_ed25519ph_state) -> libc::c_int;
3079}
3080unsafe extern "C" {
3081    pub fn crypto_sign_ed25519ph_update(
3082        state: *mut crypto_sign_ed25519ph_state,
3083        m: *const libc::c_uchar,
3084        mlen: libc::c_ulonglong,
3085    ) -> libc::c_int;
3086}
3087unsafe extern "C" {
3088    pub fn crypto_sign_ed25519ph_final_create(
3089        state: *mut crypto_sign_ed25519ph_state,
3090        sig: *mut libc::c_uchar,
3091        siglen_p: *mut libc::c_ulonglong,
3092        sk: *const libc::c_uchar,
3093    ) -> libc::c_int;
3094}
3095unsafe extern "C" {
3096    pub fn crypto_sign_ed25519ph_final_verify(
3097        state: *mut crypto_sign_ed25519ph_state,
3098        sig: *const libc::c_uchar,
3099        pk: *const libc::c_uchar,
3100    ) -> libc::c_int;
3101}
3102pub type crypto_sign_state = crypto_sign_ed25519ph_state;
3103unsafe extern "C" {
3104    pub fn crypto_sign_statebytes() -> usize;
3105}
3106unsafe extern "C" {
3107    pub fn crypto_sign_bytes() -> usize;
3108}
3109unsafe extern "C" {
3110    pub fn crypto_sign_seedbytes() -> usize;
3111}
3112unsafe extern "C" {
3113    pub fn crypto_sign_publickeybytes() -> usize;
3114}
3115unsafe extern "C" {
3116    pub fn crypto_sign_secretkeybytes() -> usize;
3117}
3118unsafe extern "C" {
3119    pub fn crypto_sign_messagebytes_max() -> usize;
3120}
3121unsafe extern "C" {
3122    pub fn crypto_sign_primitive() -> *const libc::c_char;
3123}
3124unsafe extern "C" {
3125    pub fn crypto_sign_seed_keypair(
3126        pk: *mut libc::c_uchar,
3127        sk: *mut libc::c_uchar,
3128        seed: *const libc::c_uchar,
3129    ) -> libc::c_int;
3130}
3131unsafe extern "C" {
3132    pub fn crypto_sign_keypair(pk: *mut libc::c_uchar, sk: *mut libc::c_uchar) -> libc::c_int;
3133}
3134unsafe extern "C" {
3135    pub fn crypto_sign(
3136        sm: *mut libc::c_uchar,
3137        smlen_p: *mut libc::c_ulonglong,
3138        m: *const libc::c_uchar,
3139        mlen: libc::c_ulonglong,
3140        sk: *const libc::c_uchar,
3141    ) -> libc::c_int;
3142}
3143unsafe extern "C" {
3144    pub fn crypto_sign_open(
3145        m: *mut libc::c_uchar,
3146        mlen_p: *mut libc::c_ulonglong,
3147        sm: *const libc::c_uchar,
3148        smlen: libc::c_ulonglong,
3149        pk: *const libc::c_uchar,
3150    ) -> libc::c_int;
3151}
3152unsafe extern "C" {
3153    pub fn crypto_sign_detached(
3154        sig: *mut libc::c_uchar,
3155        siglen_p: *mut libc::c_ulonglong,
3156        m: *const libc::c_uchar,
3157        mlen: libc::c_ulonglong,
3158        sk: *const libc::c_uchar,
3159    ) -> libc::c_int;
3160}
3161unsafe extern "C" {
3162    pub fn crypto_sign_verify_detached(
3163        sig: *const libc::c_uchar,
3164        m: *const libc::c_uchar,
3165        mlen: libc::c_ulonglong,
3166        pk: *const libc::c_uchar,
3167    ) -> libc::c_int;
3168}
3169unsafe extern "C" {
3170    pub fn crypto_sign_init(state: *mut crypto_sign_state) -> libc::c_int;
3171}
3172unsafe extern "C" {
3173    pub fn crypto_sign_update(
3174        state: *mut crypto_sign_state,
3175        m: *const libc::c_uchar,
3176        mlen: libc::c_ulonglong,
3177    ) -> libc::c_int;
3178}
3179unsafe extern "C" {
3180    pub fn crypto_sign_final_create(
3181        state: *mut crypto_sign_state,
3182        sig: *mut libc::c_uchar,
3183        siglen_p: *mut libc::c_ulonglong,
3184        sk: *const libc::c_uchar,
3185    ) -> libc::c_int;
3186}
3187unsafe extern "C" {
3188    pub fn crypto_sign_final_verify(
3189        state: *mut crypto_sign_state,
3190        sig: *const libc::c_uchar,
3191        pk: *const libc::c_uchar,
3192    ) -> libc::c_int;
3193}
3194unsafe extern "C" {
3195    pub fn crypto_stream_keybytes() -> usize;
3196}
3197unsafe extern "C" {
3198    pub fn crypto_stream_noncebytes() -> usize;
3199}
3200unsafe extern "C" {
3201    pub fn crypto_stream_messagebytes_max() -> usize;
3202}
3203unsafe extern "C" {
3204    pub fn crypto_stream_primitive() -> *const libc::c_char;
3205}
3206unsafe extern "C" {
3207    pub fn crypto_stream(
3208        c: *mut libc::c_uchar,
3209        clen: libc::c_ulonglong,
3210        n: *const libc::c_uchar,
3211        k: *const libc::c_uchar,
3212    ) -> libc::c_int;
3213}
3214unsafe extern "C" {
3215    pub fn crypto_stream_xor(
3216        c: *mut libc::c_uchar,
3217        m: *const libc::c_uchar,
3218        mlen: libc::c_ulonglong,
3219        n: *const libc::c_uchar,
3220        k: *const libc::c_uchar,
3221    ) -> libc::c_int;
3222}
3223unsafe extern "C" {
3224    pub fn crypto_stream_keygen(k: *mut libc::c_uchar);
3225}
3226unsafe extern "C" {
3227    pub fn crypto_stream_salsa20_keybytes() -> usize;
3228}
3229unsafe extern "C" {
3230    pub fn crypto_stream_salsa20_noncebytes() -> usize;
3231}
3232unsafe extern "C" {
3233    pub fn crypto_stream_salsa20_messagebytes_max() -> usize;
3234}
3235unsafe extern "C" {
3236    pub fn crypto_stream_salsa20(
3237        c: *mut libc::c_uchar,
3238        clen: libc::c_ulonglong,
3239        n: *const libc::c_uchar,
3240        k: *const libc::c_uchar,
3241    ) -> libc::c_int;
3242}
3243unsafe extern "C" {
3244    pub fn crypto_stream_salsa20_xor(
3245        c: *mut libc::c_uchar,
3246        m: *const libc::c_uchar,
3247        mlen: libc::c_ulonglong,
3248        n: *const libc::c_uchar,
3249        k: *const libc::c_uchar,
3250    ) -> libc::c_int;
3251}
3252unsafe extern "C" {
3253    pub fn crypto_stream_salsa20_xor_ic(
3254        c: *mut libc::c_uchar,
3255        m: *const libc::c_uchar,
3256        mlen: libc::c_ulonglong,
3257        n: *const libc::c_uchar,
3258        ic: u64,
3259        k: *const libc::c_uchar,
3260    ) -> libc::c_int;
3261}
3262unsafe extern "C" {
3263    pub fn crypto_stream_salsa20_keygen(k: *mut libc::c_uchar);
3264}
3265unsafe extern "C" {
3266    pub fn crypto_verify_16_bytes() -> usize;
3267}
3268unsafe extern "C" {
3269    pub fn crypto_verify_16(x: *const libc::c_uchar, y: *const libc::c_uchar) -> libc::c_int;
3270}
3271unsafe extern "C" {
3272    pub fn crypto_verify_32_bytes() -> usize;
3273}
3274unsafe extern "C" {
3275    pub fn crypto_verify_32(x: *const libc::c_uchar, y: *const libc::c_uchar) -> libc::c_int;
3276}
3277unsafe extern "C" {
3278    pub fn crypto_verify_64_bytes() -> usize;
3279}
3280unsafe extern "C" {
3281    pub fn crypto_verify_64(x: *const libc::c_uchar, y: *const libc::c_uchar) -> libc::c_int;
3282}
3283unsafe extern "C" {
3284    pub fn crypto_xof_shake128_blockbytes() -> usize;
3285}
3286unsafe extern "C" {
3287    pub fn crypto_xof_shake128_statebytes() -> usize;
3288}
3289unsafe extern "C" {
3290    pub fn crypto_xof_shake128_domain_standard() -> libc::c_uchar;
3291}
3292#[repr(C)]
3293#[repr(align(16))]
3294#[derive(Debug, Copy, Clone)]
3295pub struct crypto_xof_shake128_state {
3296    pub opaque: [libc::c_uchar; 256usize],
3297}
3298unsafe extern "C" {
3299    pub fn crypto_xof_shake128(
3300        out: *mut libc::c_uchar,
3301        outlen: usize,
3302        in_: *const libc::c_uchar,
3303        inlen: libc::c_ulonglong,
3304    ) -> libc::c_int;
3305}
3306unsafe extern "C" {
3307    pub fn crypto_xof_shake128_init(state: *mut crypto_xof_shake128_state) -> libc::c_int;
3308}
3309unsafe extern "C" {
3310    pub fn crypto_xof_shake128_init_with_domain(
3311        state: *mut crypto_xof_shake128_state,
3312        domain: libc::c_uchar,
3313    ) -> libc::c_int;
3314}
3315unsafe extern "C" {
3316    pub fn crypto_xof_shake128_update(
3317        state: *mut crypto_xof_shake128_state,
3318        in_: *const libc::c_uchar,
3319        inlen: libc::c_ulonglong,
3320    ) -> libc::c_int;
3321}
3322unsafe extern "C" {
3323    pub fn crypto_xof_shake128_squeeze(
3324        state: *mut crypto_xof_shake128_state,
3325        out: *mut libc::c_uchar,
3326        outlen: usize,
3327    ) -> libc::c_int;
3328}
3329unsafe extern "C" {
3330    pub fn crypto_xof_shake256_blockbytes() -> usize;
3331}
3332unsafe extern "C" {
3333    pub fn crypto_xof_shake256_statebytes() -> usize;
3334}
3335unsafe extern "C" {
3336    pub fn crypto_xof_shake256_domain_standard() -> libc::c_uchar;
3337}
3338#[repr(C)]
3339#[repr(align(16))]
3340#[derive(Debug, Copy, Clone)]
3341pub struct crypto_xof_shake256_state {
3342    pub opaque: [libc::c_uchar; 256usize],
3343}
3344unsafe extern "C" {
3345    pub fn crypto_xof_shake256(
3346        out: *mut libc::c_uchar,
3347        outlen: usize,
3348        in_: *const libc::c_uchar,
3349        inlen: libc::c_ulonglong,
3350    ) -> libc::c_int;
3351}
3352unsafe extern "C" {
3353    pub fn crypto_xof_shake256_init(state: *mut crypto_xof_shake256_state) -> libc::c_int;
3354}
3355unsafe extern "C" {
3356    pub fn crypto_xof_shake256_init_with_domain(
3357        state: *mut crypto_xof_shake256_state,
3358        domain: libc::c_uchar,
3359    ) -> libc::c_int;
3360}
3361unsafe extern "C" {
3362    pub fn crypto_xof_shake256_update(
3363        state: *mut crypto_xof_shake256_state,
3364        in_: *const libc::c_uchar,
3365        inlen: libc::c_ulonglong,
3366    ) -> libc::c_int;
3367}
3368unsafe extern "C" {
3369    pub fn crypto_xof_shake256_squeeze(
3370        state: *mut crypto_xof_shake256_state,
3371        out: *mut libc::c_uchar,
3372        outlen: usize,
3373    ) -> libc::c_int;
3374}
3375unsafe extern "C" {
3376    pub fn crypto_xof_turboshake128_blockbytes() -> usize;
3377}
3378unsafe extern "C" {
3379    pub fn crypto_xof_turboshake128_statebytes() -> usize;
3380}
3381unsafe extern "C" {
3382    pub fn crypto_xof_turboshake128_domain_standard() -> libc::c_uchar;
3383}
3384#[repr(C)]
3385#[repr(align(16))]
3386#[derive(Debug, Copy, Clone)]
3387pub struct crypto_xof_turboshake128_state {
3388    pub opaque: [libc::c_uchar; 256usize],
3389}
3390unsafe extern "C" {
3391    pub fn crypto_xof_turboshake128(
3392        out: *mut libc::c_uchar,
3393        outlen: usize,
3394        in_: *const libc::c_uchar,
3395        inlen: libc::c_ulonglong,
3396    ) -> libc::c_int;
3397}
3398unsafe extern "C" {
3399    pub fn crypto_xof_turboshake128_init(state: *mut crypto_xof_turboshake128_state)
3400        -> libc::c_int;
3401}
3402unsafe extern "C" {
3403    pub fn crypto_xof_turboshake128_init_with_domain(
3404        state: *mut crypto_xof_turboshake128_state,
3405        domain: libc::c_uchar,
3406    ) -> libc::c_int;
3407}
3408unsafe extern "C" {
3409    pub fn crypto_xof_turboshake128_update(
3410        state: *mut crypto_xof_turboshake128_state,
3411        in_: *const libc::c_uchar,
3412        inlen: libc::c_ulonglong,
3413    ) -> libc::c_int;
3414}
3415unsafe extern "C" {
3416    pub fn crypto_xof_turboshake128_squeeze(
3417        state: *mut crypto_xof_turboshake128_state,
3418        out: *mut libc::c_uchar,
3419        outlen: usize,
3420    ) -> libc::c_int;
3421}
3422unsafe extern "C" {
3423    pub fn crypto_xof_turboshake256_blockbytes() -> usize;
3424}
3425unsafe extern "C" {
3426    pub fn crypto_xof_turboshake256_statebytes() -> usize;
3427}
3428unsafe extern "C" {
3429    pub fn crypto_xof_turboshake256_domain_standard() -> libc::c_uchar;
3430}
3431#[repr(C)]
3432#[repr(align(16))]
3433#[derive(Debug, Copy, Clone)]
3434pub struct crypto_xof_turboshake256_state {
3435    pub opaque: [libc::c_uchar; 256usize],
3436}
3437unsafe extern "C" {
3438    pub fn crypto_xof_turboshake256(
3439        out: *mut libc::c_uchar,
3440        outlen: usize,
3441        in_: *const libc::c_uchar,
3442        inlen: libc::c_ulonglong,
3443    ) -> libc::c_int;
3444}
3445unsafe extern "C" {
3446    pub fn crypto_xof_turboshake256_init(state: *mut crypto_xof_turboshake256_state)
3447        -> libc::c_int;
3448}
3449unsafe extern "C" {
3450    pub fn crypto_xof_turboshake256_init_with_domain(
3451        state: *mut crypto_xof_turboshake256_state,
3452        domain: libc::c_uchar,
3453    ) -> libc::c_int;
3454}
3455unsafe extern "C" {
3456    pub fn crypto_xof_turboshake256_update(
3457        state: *mut crypto_xof_turboshake256_state,
3458        in_: *const libc::c_uchar,
3459        inlen: libc::c_ulonglong,
3460    ) -> libc::c_int;
3461}
3462unsafe extern "C" {
3463    pub fn crypto_xof_turboshake256_squeeze(
3464        state: *mut crypto_xof_turboshake256_state,
3465        out: *mut libc::c_uchar,
3466        outlen: usize,
3467    ) -> libc::c_int;
3468}
3469#[repr(C)]
3470#[derive(Debug, Copy, Clone)]
3471pub struct randombytes_implementation {
3472    pub implementation_name: ::core::option::Option<unsafe extern "C" fn() -> *const libc::c_char>,
3473    pub random: ::core::option::Option<unsafe extern "C" fn() -> u32>,
3474    pub stir: ::core::option::Option<unsafe extern "C" fn()>,
3475    pub uniform: ::core::option::Option<unsafe extern "C" fn(upper_bound: u32) -> u32>,
3476    pub buf: ::core::option::Option<unsafe extern "C" fn(buf: *mut libc::c_void, size: usize)>,
3477    pub close: ::core::option::Option<unsafe extern "C" fn() -> libc::c_int>,
3478}
3479unsafe extern "C" {
3480    pub fn randombytes_seedbytes() -> usize;
3481}
3482unsafe extern "C" {
3483    pub fn randombytes_buf(buf: *mut libc::c_void, size: usize);
3484}
3485unsafe extern "C" {
3486    pub fn randombytes_buf_deterministic(
3487        buf: *mut libc::c_void,
3488        size: usize,
3489        seed: *const libc::c_uchar,
3490    );
3491}
3492unsafe extern "C" {
3493    pub fn randombytes_random() -> u32;
3494}
3495unsafe extern "C" {
3496    pub fn randombytes_uniform(upper_bound: u32) -> u32;
3497}
3498unsafe extern "C" {
3499    pub fn randombytes_stir();
3500}
3501unsafe extern "C" {
3502    pub fn randombytes_close() -> libc::c_int;
3503}
3504unsafe extern "C" {
3505    pub fn randombytes_set_implementation(impl_: *const randombytes_implementation) -> libc::c_int;
3506}
3507unsafe extern "C" {
3508    pub fn randombytes_implementation_name() -> *const libc::c_char;
3509}
3510unsafe extern "C" {
3511    pub static mut randombytes_internal_implementation: randombytes_implementation;
3512}
3513unsafe extern "C" {
3514    pub static mut randombytes_sysrandom_implementation: randombytes_implementation;
3515}
3516unsafe extern "C" {
3517    pub fn sodium_runtime_has_neon() -> libc::c_int;
3518}
3519unsafe extern "C" {
3520    pub fn sodium_runtime_has_armcrypto() -> libc::c_int;
3521}
3522unsafe extern "C" {
3523    pub fn sodium_runtime_has_sse2() -> libc::c_int;
3524}
3525unsafe extern "C" {
3526    pub fn sodium_runtime_has_sse3() -> libc::c_int;
3527}
3528unsafe extern "C" {
3529    pub fn sodium_runtime_has_ssse3() -> libc::c_int;
3530}
3531unsafe extern "C" {
3532    pub fn sodium_runtime_has_sse41() -> libc::c_int;
3533}
3534unsafe extern "C" {
3535    pub fn sodium_runtime_has_avx() -> libc::c_int;
3536}
3537unsafe extern "C" {
3538    pub fn sodium_runtime_has_avx2() -> libc::c_int;
3539}
3540unsafe extern "C" {
3541    pub fn sodium_runtime_has_avx512f() -> libc::c_int;
3542}
3543unsafe extern "C" {
3544    pub fn sodium_runtime_has_pclmul() -> libc::c_int;
3545}
3546unsafe extern "C" {
3547    pub fn sodium_runtime_has_aesni() -> libc::c_int;
3548}
3549unsafe extern "C" {
3550    pub fn sodium_runtime_has_rdrand() -> libc::c_int;
3551}
3552unsafe extern "C" {
3553    pub fn sodium_memzero(pnt: *mut libc::c_void, len: usize);
3554}
3555unsafe extern "C" {
3556    pub fn sodium_stackzero(len: usize);
3557}
3558unsafe extern "C" {
3559    pub fn sodium_memcmp(
3560        b1_: *const libc::c_void,
3561        b2_: *const libc::c_void,
3562        len: usize,
3563    ) -> libc::c_int;
3564}
3565unsafe extern "C" {
3566    pub fn sodium_compare(
3567        b1_: *const libc::c_uchar,
3568        b2_: *const libc::c_uchar,
3569        len: usize,
3570    ) -> libc::c_int;
3571}
3572unsafe extern "C" {
3573    pub fn sodium_is_zero(n: *const libc::c_uchar, nlen: usize) -> libc::c_int;
3574}
3575unsafe extern "C" {
3576    pub fn sodium_increment(n: *mut libc::c_uchar, nlen: usize);
3577}
3578unsafe extern "C" {
3579    pub fn sodium_add(a: *mut libc::c_uchar, b: *const libc::c_uchar, len: usize);
3580}
3581unsafe extern "C" {
3582    pub fn sodium_sub(a: *mut libc::c_uchar, b: *const libc::c_uchar, len: usize);
3583}
3584unsafe extern "C" {
3585    pub fn sodium_bin2hex(
3586        hex: *mut libc::c_char,
3587        hex_maxlen: usize,
3588        bin: *const libc::c_uchar,
3589        bin_len: usize,
3590    ) -> *mut libc::c_char;
3591}
3592unsafe extern "C" {
3593    pub fn sodium_hex2bin(
3594        bin: *mut libc::c_uchar,
3595        bin_maxlen: usize,
3596        hex: *const libc::c_char,
3597        hex_len: usize,
3598        ignore: *const libc::c_char,
3599        bin_len: *mut usize,
3600        hex_end: *mut *const libc::c_char,
3601    ) -> libc::c_int;
3602}
3603unsafe extern "C" {
3604    pub fn sodium_base64_encoded_len(bin_len: usize, variant: libc::c_int) -> usize;
3605}
3606unsafe extern "C" {
3607    pub fn sodium_bin2base64(
3608        b64: *mut libc::c_char,
3609        b64_maxlen: usize,
3610        bin: *const libc::c_uchar,
3611        bin_len: usize,
3612        variant: libc::c_int,
3613    ) -> *mut libc::c_char;
3614}
3615unsafe extern "C" {
3616    pub fn sodium_base642bin(
3617        bin: *mut libc::c_uchar,
3618        bin_maxlen: usize,
3619        b64: *const libc::c_char,
3620        b64_len: usize,
3621        ignore: *const libc::c_char,
3622        bin_len: *mut usize,
3623        b64_end: *mut *const libc::c_char,
3624        variant: libc::c_int,
3625    ) -> libc::c_int;
3626}
3627unsafe extern "C" {
3628    pub fn sodium_ip2bin(
3629        bin: *mut libc::c_uchar,
3630        ip: *const libc::c_char,
3631        ip_len_: usize,
3632    ) -> libc::c_int;
3633}
3634unsafe extern "C" {
3635    pub fn sodium_bin2ip(
3636        ip: *mut libc::c_char,
3637        ip_maxlen: usize,
3638        bin: *const libc::c_uchar,
3639    ) -> *mut libc::c_char;
3640}
3641unsafe extern "C" {
3642    pub fn sodium_mlock(addr: *mut libc::c_void, len: usize) -> libc::c_int;
3643}
3644unsafe extern "C" {
3645    pub fn sodium_munlock(addr: *mut libc::c_void, len: usize) -> libc::c_int;
3646}
3647unsafe extern "C" {
3648    pub fn sodium_malloc(size: usize) -> *mut libc::c_void;
3649}
3650unsafe extern "C" {
3651    pub fn sodium_allocarray(count: usize, size: usize) -> *mut libc::c_void;
3652}
3653unsafe extern "C" {
3654    pub fn sodium_free(ptr: *mut libc::c_void);
3655}
3656unsafe extern "C" {
3657    pub fn sodium_mprotect_noaccess(ptr: *mut libc::c_void) -> libc::c_int;
3658}
3659unsafe extern "C" {
3660    pub fn sodium_mprotect_readonly(ptr: *mut libc::c_void) -> libc::c_int;
3661}
3662unsafe extern "C" {
3663    pub fn sodium_mprotect_readwrite(ptr: *mut libc::c_void) -> libc::c_int;
3664}
3665unsafe extern "C" {
3666    pub fn sodium_pad(
3667        padded_buflen_p: *mut usize,
3668        buf: *mut libc::c_uchar,
3669        unpadded_buflen: usize,
3670        blocksize: usize,
3671        max_buflen: usize,
3672    ) -> libc::c_int;
3673}
3674unsafe extern "C" {
3675    pub fn sodium_unpad(
3676        unpadded_buflen_p: *mut usize,
3677        buf: *const libc::c_uchar,
3678        padded_buflen: usize,
3679        blocksize: usize,
3680    ) -> libc::c_int;
3681}
3682unsafe extern "C" {
3683    pub fn crypto_stream_xchacha20_keybytes() -> usize;
3684}
3685unsafe extern "C" {
3686    pub fn crypto_stream_xchacha20_noncebytes() -> usize;
3687}
3688unsafe extern "C" {
3689    pub fn crypto_stream_xchacha20_messagebytes_max() -> usize;
3690}
3691unsafe extern "C" {
3692    pub fn crypto_stream_xchacha20(
3693        c: *mut libc::c_uchar,
3694        clen: libc::c_ulonglong,
3695        n: *const libc::c_uchar,
3696        k: *const libc::c_uchar,
3697    ) -> libc::c_int;
3698}
3699unsafe extern "C" {
3700    pub fn crypto_stream_xchacha20_xor(
3701        c: *mut libc::c_uchar,
3702        m: *const libc::c_uchar,
3703        mlen: libc::c_ulonglong,
3704        n: *const libc::c_uchar,
3705        k: *const libc::c_uchar,
3706    ) -> libc::c_int;
3707}
3708unsafe extern "C" {
3709    pub fn crypto_stream_xchacha20_xor_ic(
3710        c: *mut libc::c_uchar,
3711        m: *const libc::c_uchar,
3712        mlen: libc::c_ulonglong,
3713        n: *const libc::c_uchar,
3714        ic: u64,
3715        k: *const libc::c_uchar,
3716    ) -> libc::c_int;
3717}
3718unsafe extern "C" {
3719    pub fn crypto_stream_xchacha20_keygen(k: *mut libc::c_uchar);
3720}
3721unsafe extern "C" {
3722    pub fn crypto_box_curve25519xchacha20poly1305_seedbytes() -> usize;
3723}
3724unsafe extern "C" {
3725    pub fn crypto_box_curve25519xchacha20poly1305_publickeybytes() -> usize;
3726}
3727unsafe extern "C" {
3728    pub fn crypto_box_curve25519xchacha20poly1305_secretkeybytes() -> usize;
3729}
3730unsafe extern "C" {
3731    pub fn crypto_box_curve25519xchacha20poly1305_beforenmbytes() -> usize;
3732}
3733unsafe extern "C" {
3734    pub fn crypto_box_curve25519xchacha20poly1305_noncebytes() -> usize;
3735}
3736unsafe extern "C" {
3737    pub fn crypto_box_curve25519xchacha20poly1305_macbytes() -> usize;
3738}
3739unsafe extern "C" {
3740    pub fn crypto_box_curve25519xchacha20poly1305_messagebytes_max() -> usize;
3741}
3742unsafe extern "C" {
3743    pub fn crypto_box_curve25519xchacha20poly1305_seed_keypair(
3744        pk: *mut libc::c_uchar,
3745        sk: *mut libc::c_uchar,
3746        seed: *const libc::c_uchar,
3747    ) -> libc::c_int;
3748}
3749unsafe extern "C" {
3750    pub fn crypto_box_curve25519xchacha20poly1305_keypair(
3751        pk: *mut libc::c_uchar,
3752        sk: *mut libc::c_uchar,
3753    ) -> libc::c_int;
3754}
3755unsafe extern "C" {
3756    pub fn crypto_box_curve25519xchacha20poly1305_easy(
3757        c: *mut libc::c_uchar,
3758        m: *const libc::c_uchar,
3759        mlen: libc::c_ulonglong,
3760        n: *const libc::c_uchar,
3761        pk: *const libc::c_uchar,
3762        sk: *const libc::c_uchar,
3763    ) -> libc::c_int;
3764}
3765unsafe extern "C" {
3766    pub fn crypto_box_curve25519xchacha20poly1305_open_easy(
3767        m: *mut libc::c_uchar,
3768        c: *const libc::c_uchar,
3769        clen: libc::c_ulonglong,
3770        n: *const libc::c_uchar,
3771        pk: *const libc::c_uchar,
3772        sk: *const libc::c_uchar,
3773    ) -> libc::c_int;
3774}
3775unsafe extern "C" {
3776    pub fn crypto_box_curve25519xchacha20poly1305_detached(
3777        c: *mut libc::c_uchar,
3778        mac: *mut libc::c_uchar,
3779        m: *const libc::c_uchar,
3780        mlen: libc::c_ulonglong,
3781        n: *const libc::c_uchar,
3782        pk: *const libc::c_uchar,
3783        sk: *const libc::c_uchar,
3784    ) -> libc::c_int;
3785}
3786unsafe extern "C" {
3787    pub fn crypto_box_curve25519xchacha20poly1305_open_detached(
3788        m: *mut libc::c_uchar,
3789        c: *const libc::c_uchar,
3790        mac: *const libc::c_uchar,
3791        clen: libc::c_ulonglong,
3792        n: *const libc::c_uchar,
3793        pk: *const libc::c_uchar,
3794        sk: *const libc::c_uchar,
3795    ) -> libc::c_int;
3796}
3797unsafe extern "C" {
3798    pub fn crypto_box_curve25519xchacha20poly1305_beforenm(
3799        k: *mut libc::c_uchar,
3800        pk: *const libc::c_uchar,
3801        sk: *const libc::c_uchar,
3802    ) -> libc::c_int;
3803}
3804unsafe extern "C" {
3805    pub fn crypto_box_curve25519xchacha20poly1305_easy_afternm(
3806        c: *mut libc::c_uchar,
3807        m: *const libc::c_uchar,
3808        mlen: libc::c_ulonglong,
3809        n: *const libc::c_uchar,
3810        k: *const libc::c_uchar,
3811    ) -> libc::c_int;
3812}
3813unsafe extern "C" {
3814    pub fn crypto_box_curve25519xchacha20poly1305_open_easy_afternm(
3815        m: *mut libc::c_uchar,
3816        c: *const libc::c_uchar,
3817        clen: libc::c_ulonglong,
3818        n: *const libc::c_uchar,
3819        k: *const libc::c_uchar,
3820    ) -> libc::c_int;
3821}
3822unsafe extern "C" {
3823    pub fn crypto_box_curve25519xchacha20poly1305_detached_afternm(
3824        c: *mut libc::c_uchar,
3825        mac: *mut libc::c_uchar,
3826        m: *const libc::c_uchar,
3827        mlen: libc::c_ulonglong,
3828        n: *const libc::c_uchar,
3829        k: *const libc::c_uchar,
3830    ) -> libc::c_int;
3831}
3832unsafe extern "C" {
3833    pub fn crypto_box_curve25519xchacha20poly1305_open_detached_afternm(
3834        m: *mut libc::c_uchar,
3835        c: *const libc::c_uchar,
3836        mac: *const libc::c_uchar,
3837        clen: libc::c_ulonglong,
3838        n: *const libc::c_uchar,
3839        k: *const libc::c_uchar,
3840    ) -> libc::c_int;
3841}
3842unsafe extern "C" {
3843    pub fn crypto_box_curve25519xchacha20poly1305_sealbytes() -> usize;
3844}
3845unsafe extern "C" {
3846    pub fn crypto_box_curve25519xchacha20poly1305_seal(
3847        c: *mut libc::c_uchar,
3848        m: *const libc::c_uchar,
3849        mlen: libc::c_ulonglong,
3850        pk: *const libc::c_uchar,
3851    ) -> libc::c_int;
3852}
3853unsafe extern "C" {
3854    pub fn crypto_box_curve25519xchacha20poly1305_seal_open(
3855        m: *mut libc::c_uchar,
3856        c: *const libc::c_uchar,
3857        clen: libc::c_ulonglong,
3858        pk: *const libc::c_uchar,
3859        sk: *const libc::c_uchar,
3860    ) -> libc::c_int;
3861}
3862unsafe extern "C" {
3863    pub fn crypto_core_ed25519_bytes() -> usize;
3864}
3865unsafe extern "C" {
3866    pub fn crypto_core_ed25519_uniformbytes() -> usize;
3867}
3868unsafe extern "C" {
3869    pub fn crypto_core_ed25519_hashbytes() -> usize;
3870}
3871unsafe extern "C" {
3872    pub fn crypto_core_ed25519_scalarbytes() -> usize;
3873}
3874unsafe extern "C" {
3875    pub fn crypto_core_ed25519_nonreducedscalarbytes() -> usize;
3876}
3877unsafe extern "C" {
3878    pub fn crypto_core_ed25519_is_valid_point(p: *const libc::c_uchar) -> libc::c_int;
3879}
3880unsafe extern "C" {
3881    pub fn crypto_core_ed25519_add(
3882        r: *mut libc::c_uchar,
3883        p: *const libc::c_uchar,
3884        q: *const libc::c_uchar,
3885    ) -> libc::c_int;
3886}
3887unsafe extern "C" {
3888    pub fn crypto_core_ed25519_sub(
3889        r: *mut libc::c_uchar,
3890        p: *const libc::c_uchar,
3891        q: *const libc::c_uchar,
3892    ) -> libc::c_int;
3893}
3894unsafe extern "C" {
3895    pub fn crypto_core_ed25519_from_uniform(
3896        p: *mut libc::c_uchar,
3897        r: *const libc::c_uchar,
3898    ) -> libc::c_int;
3899}
3900unsafe extern "C" {
3901    pub fn crypto_core_ed25519_from_hash(
3902        p: *mut libc::c_uchar,
3903        h: *const libc::c_uchar,
3904    ) -> libc::c_int;
3905}
3906unsafe extern "C" {
3907    pub fn crypto_core_ed25519_random(p: *mut libc::c_uchar);
3908}
3909unsafe extern "C" {
3910    pub fn crypto_core_ed25519_scalar_random(r: *mut libc::c_uchar);
3911}
3912unsafe extern "C" {
3913    pub fn crypto_core_ed25519_scalar_invert(
3914        recip: *mut libc::c_uchar,
3915        s: *const libc::c_uchar,
3916    ) -> libc::c_int;
3917}
3918unsafe extern "C" {
3919    pub fn crypto_core_ed25519_scalar_negate(neg: *mut libc::c_uchar, s: *const libc::c_uchar);
3920}
3921unsafe extern "C" {
3922    pub fn crypto_core_ed25519_scalar_complement(comp: *mut libc::c_uchar, s: *const libc::c_uchar);
3923}
3924unsafe extern "C" {
3925    pub fn crypto_core_ed25519_scalar_add(
3926        z: *mut libc::c_uchar,
3927        x: *const libc::c_uchar,
3928        y: *const libc::c_uchar,
3929    );
3930}
3931unsafe extern "C" {
3932    pub fn crypto_core_ed25519_scalar_sub(
3933        z: *mut libc::c_uchar,
3934        x: *const libc::c_uchar,
3935        y: *const libc::c_uchar,
3936    );
3937}
3938unsafe extern "C" {
3939    pub fn crypto_core_ed25519_scalar_mul(
3940        z: *mut libc::c_uchar,
3941        x: *const libc::c_uchar,
3942        y: *const libc::c_uchar,
3943    );
3944}
3945unsafe extern "C" {
3946    pub fn crypto_core_ed25519_scalar_reduce(r: *mut libc::c_uchar, s: *const libc::c_uchar);
3947}
3948unsafe extern "C" {
3949    pub fn crypto_core_ristretto255_bytes() -> usize;
3950}
3951unsafe extern "C" {
3952    pub fn crypto_core_ristretto255_hashbytes() -> usize;
3953}
3954unsafe extern "C" {
3955    pub fn crypto_core_ristretto255_scalarbytes() -> usize;
3956}
3957unsafe extern "C" {
3958    pub fn crypto_core_ristretto255_nonreducedscalarbytes() -> usize;
3959}
3960unsafe extern "C" {
3961    pub fn crypto_core_ristretto255_is_valid_point(p: *const libc::c_uchar) -> libc::c_int;
3962}
3963unsafe extern "C" {
3964    pub fn crypto_core_ristretto255_add(
3965        r: *mut libc::c_uchar,
3966        p: *const libc::c_uchar,
3967        q: *const libc::c_uchar,
3968    ) -> libc::c_int;
3969}
3970unsafe extern "C" {
3971    pub fn crypto_core_ristretto255_sub(
3972        r: *mut libc::c_uchar,
3973        p: *const libc::c_uchar,
3974        q: *const libc::c_uchar,
3975    ) -> libc::c_int;
3976}
3977unsafe extern "C" {
3978    pub fn crypto_core_ristretto255_from_hash(
3979        p: *mut libc::c_uchar,
3980        r: *const libc::c_uchar,
3981    ) -> libc::c_int;
3982}
3983unsafe extern "C" {
3984    pub fn crypto_core_ristretto255_random(p: *mut libc::c_uchar);
3985}
3986unsafe extern "C" {
3987    pub fn crypto_core_ristretto255_scalar_random(r: *mut libc::c_uchar);
3988}
3989unsafe extern "C" {
3990    pub fn crypto_core_ristretto255_scalar_invert(
3991        recip: *mut libc::c_uchar,
3992        s: *const libc::c_uchar,
3993    ) -> libc::c_int;
3994}
3995unsafe extern "C" {
3996    pub fn crypto_core_ristretto255_scalar_negate(neg: *mut libc::c_uchar, s: *const libc::c_uchar);
3997}
3998unsafe extern "C" {
3999    pub fn crypto_core_ristretto255_scalar_complement(
4000        comp: *mut libc::c_uchar,
4001        s: *const libc::c_uchar,
4002    );
4003}
4004unsafe extern "C" {
4005    pub fn crypto_core_ristretto255_scalar_add(
4006        z: *mut libc::c_uchar,
4007        x: *const libc::c_uchar,
4008        y: *const libc::c_uchar,
4009    );
4010}
4011unsafe extern "C" {
4012    pub fn crypto_core_ristretto255_scalar_sub(
4013        z: *mut libc::c_uchar,
4014        x: *const libc::c_uchar,
4015        y: *const libc::c_uchar,
4016    );
4017}
4018unsafe extern "C" {
4019    pub fn crypto_core_ristretto255_scalar_mul(
4020        z: *mut libc::c_uchar,
4021        x: *const libc::c_uchar,
4022        y: *const libc::c_uchar,
4023    );
4024}
4025unsafe extern "C" {
4026    pub fn crypto_core_ristretto255_scalar_reduce(r: *mut libc::c_uchar, s: *const libc::c_uchar);
4027}
4028unsafe extern "C" {
4029    pub fn crypto_pwhash_scryptsalsa208sha256_bytes_min() -> usize;
4030}
4031unsafe extern "C" {
4032    pub fn crypto_pwhash_scryptsalsa208sha256_bytes_max() -> usize;
4033}
4034unsafe extern "C" {
4035    pub fn crypto_pwhash_scryptsalsa208sha256_passwd_min() -> usize;
4036}
4037unsafe extern "C" {
4038    pub fn crypto_pwhash_scryptsalsa208sha256_passwd_max() -> usize;
4039}
4040unsafe extern "C" {
4041    pub fn crypto_pwhash_scryptsalsa208sha256_saltbytes() -> usize;
4042}
4043unsafe extern "C" {
4044    pub fn crypto_pwhash_scryptsalsa208sha256_strbytes() -> usize;
4045}
4046unsafe extern "C" {
4047    pub fn crypto_pwhash_scryptsalsa208sha256_strprefix() -> *const libc::c_char;
4048}
4049unsafe extern "C" {
4050    pub fn crypto_pwhash_scryptsalsa208sha256_opslimit_min() -> usize;
4051}
4052unsafe extern "C" {
4053    pub fn crypto_pwhash_scryptsalsa208sha256_opslimit_max() -> usize;
4054}
4055unsafe extern "C" {
4056    pub fn crypto_pwhash_scryptsalsa208sha256_memlimit_min() -> usize;
4057}
4058unsafe extern "C" {
4059    pub fn crypto_pwhash_scryptsalsa208sha256_memlimit_max() -> usize;
4060}
4061unsafe extern "C" {
4062    pub fn crypto_pwhash_scryptsalsa208sha256_opslimit_interactive() -> usize;
4063}
4064unsafe extern "C" {
4065    pub fn crypto_pwhash_scryptsalsa208sha256_memlimit_interactive() -> usize;
4066}
4067unsafe extern "C" {
4068    pub fn crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive() -> usize;
4069}
4070unsafe extern "C" {
4071    pub fn crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive() -> usize;
4072}
4073unsafe extern "C" {
4074    pub fn crypto_pwhash_scryptsalsa208sha256(
4075        out: *mut libc::c_uchar,
4076        outlen: libc::c_ulonglong,
4077        passwd: *const libc::c_char,
4078        passwdlen: libc::c_ulonglong,
4079        salt: *const libc::c_uchar,
4080        opslimit: libc::c_ulonglong,
4081        memlimit: usize,
4082    ) -> libc::c_int;
4083}
4084unsafe extern "C" {
4085    pub fn crypto_pwhash_scryptsalsa208sha256_str(
4086        out: *mut libc::c_char,
4087        passwd: *const libc::c_char,
4088        passwdlen: libc::c_ulonglong,
4089        opslimit: libc::c_ulonglong,
4090        memlimit: usize,
4091    ) -> libc::c_int;
4092}
4093unsafe extern "C" {
4094    pub fn crypto_pwhash_scryptsalsa208sha256_str_verify(
4095        str_: *const libc::c_char,
4096        passwd: *const libc::c_char,
4097        passwdlen: libc::c_ulonglong,
4098    ) -> libc::c_int;
4099}
4100unsafe extern "C" {
4101    pub fn crypto_pwhash_scryptsalsa208sha256_ll(
4102        passwd: *const u8,
4103        passwdlen: usize,
4104        salt: *const u8,
4105        saltlen: usize,
4106        N: u64,
4107        r: u32,
4108        p: u32,
4109        buf: *mut u8,
4110        buflen: usize,
4111    ) -> libc::c_int;
4112}
4113unsafe extern "C" {
4114    pub fn crypto_pwhash_scryptsalsa208sha256_str_needs_rehash(
4115        str_: *const libc::c_char,
4116        opslimit: libc::c_ulonglong,
4117        memlimit: usize,
4118    ) -> libc::c_int;
4119}
4120unsafe extern "C" {
4121    pub fn crypto_scalarmult_ed25519_bytes() -> usize;
4122}
4123unsafe extern "C" {
4124    pub fn crypto_scalarmult_ed25519_scalarbytes() -> usize;
4125}
4126unsafe extern "C" {
4127    pub fn crypto_scalarmult_ed25519(
4128        q: *mut libc::c_uchar,
4129        n: *const libc::c_uchar,
4130        p: *const libc::c_uchar,
4131    ) -> libc::c_int;
4132}
4133unsafe extern "C" {
4134    pub fn crypto_scalarmult_ed25519_noclamp(
4135        q: *mut libc::c_uchar,
4136        n: *const libc::c_uchar,
4137        p: *const libc::c_uchar,
4138    ) -> libc::c_int;
4139}
4140unsafe extern "C" {
4141    pub fn crypto_scalarmult_ed25519_base(
4142        q: *mut libc::c_uchar,
4143        n: *const libc::c_uchar,
4144    ) -> libc::c_int;
4145}
4146unsafe extern "C" {
4147    pub fn crypto_scalarmult_ed25519_base_noclamp(
4148        q: *mut libc::c_uchar,
4149        n: *const libc::c_uchar,
4150    ) -> libc::c_int;
4151}
4152unsafe extern "C" {
4153    pub fn crypto_scalarmult_ristretto255_bytes() -> usize;
4154}
4155unsafe extern "C" {
4156    pub fn crypto_scalarmult_ristretto255_scalarbytes() -> usize;
4157}
4158unsafe extern "C" {
4159    pub fn crypto_scalarmult_ristretto255(
4160        q: *mut libc::c_uchar,
4161        n: *const libc::c_uchar,
4162        p: *const libc::c_uchar,
4163    ) -> libc::c_int;
4164}
4165unsafe extern "C" {
4166    pub fn crypto_scalarmult_ristretto255_base(
4167        q: *mut libc::c_uchar,
4168        n: *const libc::c_uchar,
4169    ) -> libc::c_int;
4170}
4171unsafe extern "C" {
4172    pub fn crypto_secretbox_xchacha20poly1305_keybytes() -> usize;
4173}
4174unsafe extern "C" {
4175    pub fn crypto_secretbox_xchacha20poly1305_noncebytes() -> usize;
4176}
4177unsafe extern "C" {
4178    pub fn crypto_secretbox_xchacha20poly1305_macbytes() -> usize;
4179}
4180unsafe extern "C" {
4181    pub fn crypto_secretbox_xchacha20poly1305_messagebytes_max() -> usize;
4182}
4183unsafe extern "C" {
4184    pub fn crypto_secretbox_xchacha20poly1305_easy(
4185        c: *mut libc::c_uchar,
4186        m: *const libc::c_uchar,
4187        mlen: libc::c_ulonglong,
4188        n: *const libc::c_uchar,
4189        k: *const libc::c_uchar,
4190    ) -> libc::c_int;
4191}
4192unsafe extern "C" {
4193    pub fn crypto_secretbox_xchacha20poly1305_open_easy(
4194        m: *mut libc::c_uchar,
4195        c: *const libc::c_uchar,
4196        clen: libc::c_ulonglong,
4197        n: *const libc::c_uchar,
4198        k: *const libc::c_uchar,
4199    ) -> libc::c_int;
4200}
4201unsafe extern "C" {
4202    pub fn crypto_secretbox_xchacha20poly1305_detached(
4203        c: *mut libc::c_uchar,
4204        mac: *mut libc::c_uchar,
4205        m: *const libc::c_uchar,
4206        mlen: libc::c_ulonglong,
4207        n: *const libc::c_uchar,
4208        k: *const libc::c_uchar,
4209    ) -> libc::c_int;
4210}
4211unsafe extern "C" {
4212    pub fn crypto_secretbox_xchacha20poly1305_open_detached(
4213        m: *mut libc::c_uchar,
4214        c: *const libc::c_uchar,
4215        mac: *const libc::c_uchar,
4216        clen: libc::c_ulonglong,
4217        n: *const libc::c_uchar,
4218        k: *const libc::c_uchar,
4219    ) -> libc::c_int;
4220}
4221unsafe extern "C" {
4222    pub fn crypto_stream_salsa2012_keybytes() -> usize;
4223}
4224unsafe extern "C" {
4225    pub fn crypto_stream_salsa2012_noncebytes() -> usize;
4226}
4227unsafe extern "C" {
4228    pub fn crypto_stream_salsa2012_messagebytes_max() -> usize;
4229}
4230unsafe extern "C" {
4231    pub fn crypto_stream_salsa2012(
4232        c: *mut libc::c_uchar,
4233        clen: libc::c_ulonglong,
4234        n: *const libc::c_uchar,
4235        k: *const libc::c_uchar,
4236    ) -> libc::c_int;
4237}
4238unsafe extern "C" {
4239    pub fn crypto_stream_salsa2012_xor(
4240        c: *mut libc::c_uchar,
4241        m: *const libc::c_uchar,
4242        mlen: libc::c_ulonglong,
4243        n: *const libc::c_uchar,
4244        k: *const libc::c_uchar,
4245    ) -> libc::c_int;
4246}
4247unsafe extern "C" {
4248    pub fn crypto_stream_salsa2012_keygen(k: *mut libc::c_uchar);
4249}
4250unsafe extern "C" {
4251    pub fn crypto_stream_salsa208_keybytes() -> usize;
4252}
4253unsafe extern "C" {
4254    pub fn crypto_stream_salsa208_noncebytes() -> usize;
4255}
4256unsafe extern "C" {
4257    pub fn crypto_stream_salsa208_messagebytes_max() -> usize;
4258}
4259unsafe extern "C" {
4260    pub fn crypto_stream_salsa208(
4261        c: *mut libc::c_uchar,
4262        clen: libc::c_ulonglong,
4263        n: *const libc::c_uchar,
4264        k: *const libc::c_uchar,
4265    ) -> libc::c_int;
4266}
4267unsafe extern "C" {
4268    pub fn crypto_stream_salsa208_xor(
4269        c: *mut libc::c_uchar,
4270        m: *const libc::c_uchar,
4271        mlen: libc::c_ulonglong,
4272        n: *const libc::c_uchar,
4273        k: *const libc::c_uchar,
4274    ) -> libc::c_int;
4275}
4276unsafe extern "C" {
4277    pub fn crypto_stream_salsa208_keygen(k: *mut libc::c_uchar);
4278}