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