libsodium_sys/
sodium_bindings.rs

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