libsodium_sys/
sodium_bindings.rs

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