1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: 1d75807de20b87cd274e6073ef9c9392a34f7279 */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aes256gcm_is_available, 0, 0, _IS_BOOL, 0)
5 ZEND_END_ARG_INFO()
6 
7 #if defined(HAVE_AESGCM)
8 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_aes256gcm_decrypt, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
9 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
10 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
11 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
12 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
13 ZEND_END_ARG_INFO()
14 #endif
15 
16 #if defined(HAVE_AESGCM)
17 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aes256gcm_encrypt, 0, 4, IS_STRING, 0)
18 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
19 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
20 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
21 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
22 ZEND_END_ARG_INFO()
23 #endif
24 
25 #if defined(HAVE_AESGCM)
26 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aes256gcm_keygen, 0, 0, IS_STRING, 0)
27 ZEND_END_ARG_INFO()
28 #endif
29 
30 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_chacha20poly1305_decrypt, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
31 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
32 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
33 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
34 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
35 ZEND_END_ARG_INFO()
36 
37 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_chacha20poly1305_encrypt, 0, 4, IS_STRING, 0)
38 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
39 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
40 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
41 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
42 ZEND_END_ARG_INFO()
43 
44 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_chacha20poly1305_keygen, 0, 0, IS_STRING, 0)
45 ZEND_END_ARG_INFO()
46 
47 #define arginfo_sodium_crypto_aead_chacha20poly1305_ietf_decrypt arginfo_sodium_crypto_aead_chacha20poly1305_decrypt
48 
49 #define arginfo_sodium_crypto_aead_chacha20poly1305_ietf_encrypt arginfo_sodium_crypto_aead_chacha20poly1305_encrypt
50 
51 #define arginfo_sodium_crypto_aead_chacha20poly1305_ietf_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
52 
53 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
54 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_decrypt, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
55 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
56 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
57 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
58 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
59 ZEND_END_ARG_INFO()
60 #endif
61 
62 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
63 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_keygen, 0, 0, IS_STRING, 0)
64 ZEND_END_ARG_INFO()
65 #endif
66 
67 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
68 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_encrypt, 0, 4, IS_STRING, 0)
69 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
70 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
71 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
72 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
73 ZEND_END_ARG_INFO()
74 #endif
75 
76 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_auth, 0, 2, IS_STRING, 0)
77 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
78 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
79 ZEND_END_ARG_INFO()
80 
81 #define arginfo_sodium_crypto_auth_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
82 
83 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_auth_verify, 0, 3, _IS_BOOL, 0)
84 	ZEND_ARG_TYPE_INFO(0, mac, IS_STRING, 0)
85 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
86 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
87 ZEND_END_ARG_INFO()
88 
89 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box, 0, 3, IS_STRING, 0)
90 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
91 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
92 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
93 ZEND_END_ARG_INFO()
94 
95 #define arginfo_sodium_crypto_box_keypair arginfo_sodium_crypto_aead_chacha20poly1305_keygen
96 
97 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_seed_keypair, 0, 1, IS_STRING, 0)
98 	ZEND_ARG_TYPE_INFO(0, seed, IS_STRING, 0)
99 ZEND_END_ARG_INFO()
100 
101 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey, 0, 2, IS_STRING, 0)
102 	ZEND_ARG_TYPE_INFO(0, secret_key, IS_STRING, 0)
103 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
104 ZEND_END_ARG_INFO()
105 
106 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_box_open, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
107 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
108 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
109 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
110 ZEND_END_ARG_INFO()
111 
112 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_publickey, 0, 1, IS_STRING, 0)
113 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
114 ZEND_END_ARG_INFO()
115 
116 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_publickey_from_secretkey, 0, 1, IS_STRING, 0)
117 	ZEND_ARG_TYPE_INFO(0, secret_key, IS_STRING, 0)
118 ZEND_END_ARG_INFO()
119 
120 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_seal, 0, 2, IS_STRING, 0)
121 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
122 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
123 ZEND_END_ARG_INFO()
124 
125 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_box_seal_open, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
126 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
127 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
128 ZEND_END_ARG_INFO()
129 
130 #define arginfo_sodium_crypto_box_secretkey arginfo_sodium_crypto_box_publickey
131 
132 #define arginfo_sodium_crypto_kx_keypair arginfo_sodium_crypto_aead_chacha20poly1305_keygen
133 
134 #define arginfo_sodium_crypto_kx_publickey arginfo_sodium_crypto_box_publickey
135 
136 #define arginfo_sodium_crypto_kx_secretkey arginfo_sodium_crypto_box_publickey
137 
138 #define arginfo_sodium_crypto_kx_seed_keypair arginfo_sodium_crypto_box_seed_keypair
139 
140 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_kx_client_session_keys, 0, 2, IS_ARRAY, 0)
141 	ZEND_ARG_TYPE_INFO(0, client_key_pair, IS_STRING, 0)
142 	ZEND_ARG_TYPE_INFO(0, server_key, IS_STRING, 0)
143 ZEND_END_ARG_INFO()
144 
145 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_kx_server_session_keys, 0, 2, IS_ARRAY, 0)
146 	ZEND_ARG_TYPE_INFO(0, server_key_pair, IS_STRING, 0)
147 	ZEND_ARG_TYPE_INFO(0, client_key, IS_STRING, 0)
148 ZEND_END_ARG_INFO()
149 
150 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash, 0, 1, IS_STRING, 0)
151 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
152 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, key, IS_STRING, 0, "\"\"")
153 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "SODIUM_CRYPTO_GENERICHASH_BYTES")
154 ZEND_END_ARG_INFO()
155 
156 #define arginfo_sodium_crypto_generichash_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
157 
158 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash_init, 0, 0, IS_STRING, 0)
159 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, key, IS_STRING, 0, "\"\"")
160 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "SODIUM_CRYPTO_GENERICHASH_BYTES")
161 ZEND_END_ARG_INFO()
162 
163 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash_update, 0, 2, _IS_BOOL, 0)
164 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
165 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
166 ZEND_END_ARG_INFO()
167 
168 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash_final, 0, 1, IS_STRING, 0)
169 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
170 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "SODIUM_CRYPTO_GENERICHASH_BYTES")
171 ZEND_END_ARG_INFO()
172 
173 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_kdf_derive_from_key, 0, 4, IS_STRING, 0)
174 	ZEND_ARG_TYPE_INFO(0, subkey_length, IS_LONG, 0)
175 	ZEND_ARG_TYPE_INFO(0, subkey_id, IS_LONG, 0)
176 	ZEND_ARG_TYPE_INFO(0, context, IS_STRING, 0)
177 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
178 ZEND_END_ARG_INFO()
179 
180 #define arginfo_sodium_crypto_kdf_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
181 
182 #if defined(crypto_pwhash_SALTBYTES)
183 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash, 0, 5, IS_STRING, 0)
184 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
185 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
186 	ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0)
187 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
188 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
189 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, algo, IS_LONG, 0, "SODIUM_CRYPTO_PWHASH_ALG_DEFAULT")
190 ZEND_END_ARG_INFO()
191 #endif
192 
193 #if defined(crypto_pwhash_SALTBYTES)
194 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_str, 0, 3, IS_STRING, 0)
195 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
196 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
197 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
198 ZEND_END_ARG_INFO()
199 #endif
200 
201 #if defined(crypto_pwhash_SALTBYTES)
202 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_str_verify, 0, 2, _IS_BOOL, 0)
203 	ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
204 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
205 ZEND_END_ARG_INFO()
206 #endif
207 
208 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
209 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_str_needs_rehash, 0, 3, _IS_BOOL, 0)
210 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
211 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
212 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
213 ZEND_END_ARG_INFO()
214 #endif
215 
216 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
217 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_scryptsalsa208sha256, 0, 5, IS_STRING, 0)
218 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
219 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
220 	ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0)
221 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
222 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
223 ZEND_END_ARG_INFO()
224 #endif
225 
226 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
227 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str, 0, 3, IS_STRING, 0)
228 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
229 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
230 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
231 ZEND_END_ARG_INFO()
232 #endif
233 
234 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
235 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, 0, 2, _IS_BOOL, 0)
236 	ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
237 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
238 ZEND_END_ARG_INFO()
239 #endif
240 
241 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_scalarmult, 0, 2, IS_STRING, 0)
242 	ZEND_ARG_TYPE_INFO(0, n, IS_STRING, 0)
243 	ZEND_ARG_TYPE_INFO(0, p, IS_STRING, 0)
244 ZEND_END_ARG_INFO()
245 
246 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretbox, 0, 3, IS_STRING, 0)
247 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
248 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
249 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
250 ZEND_END_ARG_INFO()
251 
252 #define arginfo_sodium_crypto_secretbox_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
253 
254 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_secretbox_open, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
255 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
256 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
257 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
258 ZEND_END_ARG_INFO()
259 
260 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
261 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_keygen, 0, 0, IS_STRING, 0)
262 ZEND_END_ARG_INFO()
263 #endif
264 
265 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
266 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_push, 0, 1, IS_ARRAY, 0)
267 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
268 ZEND_END_ARG_INFO()
269 #endif
270 
271 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
272 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_push, 0, 2, IS_STRING, 0)
273 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
274 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
275 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_data, IS_STRING, 0, "\"\"")
276 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag, IS_LONG, 0, "SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE")
277 ZEND_END_ARG_INFO()
278 #endif
279 
280 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
281 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_pull, 0, 2, IS_STRING, 0)
282 	ZEND_ARG_TYPE_INFO(0, header, IS_STRING, 0)
283 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
284 ZEND_END_ARG_INFO()
285 #endif
286 
287 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
288 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_pull, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
289 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
290 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
291 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_data, IS_STRING, 0, "\"\"")
292 ZEND_END_ARG_INFO()
293 #endif
294 
295 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
296 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_rekey, 0, 1, IS_VOID, 0)
297 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
298 ZEND_END_ARG_INFO()
299 #endif
300 
301 #define arginfo_sodium_crypto_shorthash arginfo_sodium_crypto_auth
302 
303 #define arginfo_sodium_crypto_shorthash_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
304 
305 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_sign, 0, 2, IS_STRING, 0)
306 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
307 	ZEND_ARG_TYPE_INFO(0, secret_key, IS_STRING, 0)
308 ZEND_END_ARG_INFO()
309 
310 #define arginfo_sodium_crypto_sign_detached arginfo_sodium_crypto_sign
311 
312 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_sign_ed25519_pk_to_curve25519, 0, 1, IS_STRING, 0)
313 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
314 ZEND_END_ARG_INFO()
315 
316 #define arginfo_sodium_crypto_sign_ed25519_sk_to_curve25519 arginfo_sodium_crypto_box_publickey_from_secretkey
317 
318 #define arginfo_sodium_crypto_sign_keypair arginfo_sodium_crypto_aead_chacha20poly1305_keygen
319 
320 #define arginfo_sodium_crypto_sign_keypair_from_secretkey_and_publickey arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey
321 
322 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_sign_open, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
323 	ZEND_ARG_TYPE_INFO(0, signed_message, IS_STRING, 0)
324 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
325 ZEND_END_ARG_INFO()
326 
327 #define arginfo_sodium_crypto_sign_publickey arginfo_sodium_crypto_box_publickey
328 
329 #define arginfo_sodium_crypto_sign_secretkey arginfo_sodium_crypto_box_publickey
330 
331 #define arginfo_sodium_crypto_sign_publickey_from_secretkey arginfo_sodium_crypto_box_publickey_from_secretkey
332 
333 #define arginfo_sodium_crypto_sign_seed_keypair arginfo_sodium_crypto_box_seed_keypair
334 
335 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_sign_verify_detached, 0, 3, _IS_BOOL, 0)
336 	ZEND_ARG_TYPE_INFO(0, signature, IS_STRING, 0)
337 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
338 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
339 ZEND_END_ARG_INFO()
340 
341 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_stream, 0, 3, IS_STRING, 0)
342 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
343 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
344 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
345 ZEND_END_ARG_INFO()
346 
347 #define arginfo_sodium_crypto_stream_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
348 
349 #define arginfo_sodium_crypto_stream_xor arginfo_sodium_crypto_secretbox
350 
351 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_add, 0, 2, IS_VOID, 0)
352 	ZEND_ARG_TYPE_INFO(1, string1, IS_STRING, 0)
353 	ZEND_ARG_TYPE_INFO(0, string2, IS_STRING, 0)
354 ZEND_END_ARG_INFO()
355 
356 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_compare, 0, 2, IS_LONG, 0)
357 	ZEND_ARG_TYPE_INFO(0, string1, IS_STRING, 0)
358 	ZEND_ARG_TYPE_INFO(0, string2, IS_STRING, 0)
359 ZEND_END_ARG_INFO()
360 
361 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_increment, 0, 1, IS_VOID, 0)
362 	ZEND_ARG_TYPE_INFO(1, string, IS_STRING, 0)
363 ZEND_END_ARG_INFO()
364 
365 #define arginfo_sodium_memcmp arginfo_sodium_compare
366 
367 #define arginfo_sodium_memzero arginfo_sodium_increment
368 
369 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_pad, 0, 2, IS_STRING, 0)
370 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
371 	ZEND_ARG_TYPE_INFO(0, block_size, IS_LONG, 0)
372 ZEND_END_ARG_INFO()
373 
374 #define arginfo_sodium_unpad arginfo_sodium_pad
375 
376 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_bin2hex, 0, 1, IS_STRING, 0)
377 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
378 ZEND_END_ARG_INFO()
379 
380 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_hex2bin, 0, 1, IS_STRING, 0)
381 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
382 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ignore, IS_STRING, 0, "\"\"")
383 ZEND_END_ARG_INFO()
384 
385 #if defined(sodium_base64_VARIANT_ORIGINAL)
386 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_bin2base64, 0, 2, IS_STRING, 0)
387 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
388 	ZEND_ARG_TYPE_INFO(0, id, IS_LONG, 0)
389 ZEND_END_ARG_INFO()
390 #endif
391 
392 #if defined(sodium_base64_VARIANT_ORIGINAL)
393 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_base642bin, 0, 2, IS_STRING, 0)
394 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
395 	ZEND_ARG_TYPE_INFO(0, id, IS_LONG, 0)
396 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ignore, IS_STRING, 0, "\"\"")
397 ZEND_END_ARG_INFO()
398 #endif
399 
400 #define arginfo_sodium_crypto_scalarmult_base arginfo_sodium_crypto_box_publickey_from_secretkey
401 
402 
403 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_is_available);
404 #if defined(HAVE_AESGCM)
405 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_decrypt);
406 #endif
407 #if defined(HAVE_AESGCM)
408 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_encrypt);
409 #endif
410 #if defined(HAVE_AESGCM)
411 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_keygen);
412 #endif
413 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_decrypt);
414 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_encrypt);
415 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_keygen);
416 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_decrypt);
417 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_encrypt);
418 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_keygen);
419 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
420 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_decrypt);
421 #endif
422 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
423 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_keygen);
424 #endif
425 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
426 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_encrypt);
427 #endif
428 ZEND_FUNCTION(sodium_crypto_auth);
429 ZEND_FUNCTION(sodium_crypto_auth_keygen);
430 ZEND_FUNCTION(sodium_crypto_auth_verify);
431 ZEND_FUNCTION(sodium_crypto_box);
432 ZEND_FUNCTION(sodium_crypto_box_keypair);
433 ZEND_FUNCTION(sodium_crypto_box_seed_keypair);
434 ZEND_FUNCTION(sodium_crypto_box_keypair_from_secretkey_and_publickey);
435 ZEND_FUNCTION(sodium_crypto_box_open);
436 ZEND_FUNCTION(sodium_crypto_box_publickey);
437 ZEND_FUNCTION(sodium_crypto_box_publickey_from_secretkey);
438 ZEND_FUNCTION(sodium_crypto_box_seal);
439 ZEND_FUNCTION(sodium_crypto_box_seal_open);
440 ZEND_FUNCTION(sodium_crypto_box_secretkey);
441 ZEND_FUNCTION(sodium_crypto_kx_keypair);
442 ZEND_FUNCTION(sodium_crypto_kx_publickey);
443 ZEND_FUNCTION(sodium_crypto_kx_secretkey);
444 ZEND_FUNCTION(sodium_crypto_kx_seed_keypair);
445 ZEND_FUNCTION(sodium_crypto_kx_client_session_keys);
446 ZEND_FUNCTION(sodium_crypto_kx_server_session_keys);
447 ZEND_FUNCTION(sodium_crypto_generichash);
448 ZEND_FUNCTION(sodium_crypto_generichash_keygen);
449 ZEND_FUNCTION(sodium_crypto_generichash_init);
450 ZEND_FUNCTION(sodium_crypto_generichash_update);
451 ZEND_FUNCTION(sodium_crypto_generichash_final);
452 ZEND_FUNCTION(sodium_crypto_kdf_derive_from_key);
453 ZEND_FUNCTION(sodium_crypto_kdf_keygen);
454 #if defined(crypto_pwhash_SALTBYTES)
455 ZEND_FUNCTION(sodium_crypto_pwhash);
456 #endif
457 #if defined(crypto_pwhash_SALTBYTES)
458 ZEND_FUNCTION(sodium_crypto_pwhash_str);
459 #endif
460 #if defined(crypto_pwhash_SALTBYTES)
461 ZEND_FUNCTION(sodium_crypto_pwhash_str_verify);
462 #endif
463 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
464 ZEND_FUNCTION(sodium_crypto_pwhash_str_needs_rehash);
465 #endif
466 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
467 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256);
468 #endif
469 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
470 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str);
471 #endif
472 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
473 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify);
474 #endif
475 ZEND_FUNCTION(sodium_crypto_scalarmult);
476 ZEND_FUNCTION(sodium_crypto_secretbox);
477 ZEND_FUNCTION(sodium_crypto_secretbox_keygen);
478 ZEND_FUNCTION(sodium_crypto_secretbox_open);
479 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
480 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_keygen);
481 #endif
482 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
483 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_init_push);
484 #endif
485 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
486 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_push);
487 #endif
488 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
489 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_init_pull);
490 #endif
491 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
492 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_pull);
493 #endif
494 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
495 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_rekey);
496 #endif
497 ZEND_FUNCTION(sodium_crypto_shorthash);
498 ZEND_FUNCTION(sodium_crypto_shorthash_keygen);
499 ZEND_FUNCTION(sodium_crypto_sign);
500 ZEND_FUNCTION(sodium_crypto_sign_detached);
501 ZEND_FUNCTION(sodium_crypto_sign_ed25519_pk_to_curve25519);
502 ZEND_FUNCTION(sodium_crypto_sign_ed25519_sk_to_curve25519);
503 ZEND_FUNCTION(sodium_crypto_sign_keypair);
504 ZEND_FUNCTION(sodium_crypto_sign_keypair_from_secretkey_and_publickey);
505 ZEND_FUNCTION(sodium_crypto_sign_open);
506 ZEND_FUNCTION(sodium_crypto_sign_publickey);
507 ZEND_FUNCTION(sodium_crypto_sign_secretkey);
508 ZEND_FUNCTION(sodium_crypto_sign_publickey_from_secretkey);
509 ZEND_FUNCTION(sodium_crypto_sign_seed_keypair);
510 ZEND_FUNCTION(sodium_crypto_sign_verify_detached);
511 ZEND_FUNCTION(sodium_crypto_stream);
512 ZEND_FUNCTION(sodium_crypto_stream_keygen);
513 ZEND_FUNCTION(sodium_crypto_stream_xor);
514 ZEND_FUNCTION(sodium_add);
515 ZEND_FUNCTION(sodium_compare);
516 ZEND_FUNCTION(sodium_increment);
517 ZEND_FUNCTION(sodium_memcmp);
518 ZEND_FUNCTION(sodium_memzero);
519 ZEND_FUNCTION(sodium_pad);
520 ZEND_FUNCTION(sodium_unpad);
521 ZEND_FUNCTION(sodium_bin2hex);
522 ZEND_FUNCTION(sodium_hex2bin);
523 #if defined(sodium_base64_VARIANT_ORIGINAL)
524 ZEND_FUNCTION(sodium_bin2base64);
525 #endif
526 #if defined(sodium_base64_VARIANT_ORIGINAL)
527 ZEND_FUNCTION(sodium_base642bin);
528 #endif
529 
530 
531 static const zend_function_entry ext_functions[] = {
532 	ZEND_FE(sodium_crypto_aead_aes256gcm_is_available, arginfo_sodium_crypto_aead_aes256gcm_is_available)
533 #if defined(HAVE_AESGCM)
534 	ZEND_FE(sodium_crypto_aead_aes256gcm_decrypt, arginfo_sodium_crypto_aead_aes256gcm_decrypt)
535 #endif
536 #if defined(HAVE_AESGCM)
537 	ZEND_FE(sodium_crypto_aead_aes256gcm_encrypt, arginfo_sodium_crypto_aead_aes256gcm_encrypt)
538 #endif
539 #if defined(HAVE_AESGCM)
540 	ZEND_FE(sodium_crypto_aead_aes256gcm_keygen, arginfo_sodium_crypto_aead_aes256gcm_keygen)
541 #endif
542 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_decrypt, arginfo_sodium_crypto_aead_chacha20poly1305_decrypt)
543 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_encrypt, arginfo_sodium_crypto_aead_chacha20poly1305_encrypt)
544 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_keygen, arginfo_sodium_crypto_aead_chacha20poly1305_keygen)
545 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_decrypt, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_decrypt)
546 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_encrypt, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_encrypt)
547 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_keygen, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_keygen)
548 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
549 	ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_decrypt, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_decrypt)
550 #endif
551 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
552 	ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_keygen, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_keygen)
553 #endif
554 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
555 	ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_encrypt, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_encrypt)
556 #endif
557 	ZEND_FE(sodium_crypto_auth, arginfo_sodium_crypto_auth)
558 	ZEND_FE(sodium_crypto_auth_keygen, arginfo_sodium_crypto_auth_keygen)
559 	ZEND_FE(sodium_crypto_auth_verify, arginfo_sodium_crypto_auth_verify)
560 	ZEND_FE(sodium_crypto_box, arginfo_sodium_crypto_box)
561 	ZEND_FE(sodium_crypto_box_keypair, arginfo_sodium_crypto_box_keypair)
562 	ZEND_FE(sodium_crypto_box_seed_keypair, arginfo_sodium_crypto_box_seed_keypair)
563 	ZEND_FE(sodium_crypto_box_keypair_from_secretkey_and_publickey, arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey)
564 	ZEND_FE(sodium_crypto_box_open, arginfo_sodium_crypto_box_open)
565 	ZEND_FE(sodium_crypto_box_publickey, arginfo_sodium_crypto_box_publickey)
566 	ZEND_FE(sodium_crypto_box_publickey_from_secretkey, arginfo_sodium_crypto_box_publickey_from_secretkey)
567 	ZEND_FE(sodium_crypto_box_seal, arginfo_sodium_crypto_box_seal)
568 	ZEND_FE(sodium_crypto_box_seal_open, arginfo_sodium_crypto_box_seal_open)
569 	ZEND_FE(sodium_crypto_box_secretkey, arginfo_sodium_crypto_box_secretkey)
570 	ZEND_FE(sodium_crypto_kx_keypair, arginfo_sodium_crypto_kx_keypair)
571 	ZEND_FE(sodium_crypto_kx_publickey, arginfo_sodium_crypto_kx_publickey)
572 	ZEND_FE(sodium_crypto_kx_secretkey, arginfo_sodium_crypto_kx_secretkey)
573 	ZEND_FE(sodium_crypto_kx_seed_keypair, arginfo_sodium_crypto_kx_seed_keypair)
574 	ZEND_FE(sodium_crypto_kx_client_session_keys, arginfo_sodium_crypto_kx_client_session_keys)
575 	ZEND_FE(sodium_crypto_kx_server_session_keys, arginfo_sodium_crypto_kx_server_session_keys)
576 	ZEND_FE(sodium_crypto_generichash, arginfo_sodium_crypto_generichash)
577 	ZEND_FE(sodium_crypto_generichash_keygen, arginfo_sodium_crypto_generichash_keygen)
578 	ZEND_FE(sodium_crypto_generichash_init, arginfo_sodium_crypto_generichash_init)
579 	ZEND_FE(sodium_crypto_generichash_update, arginfo_sodium_crypto_generichash_update)
580 	ZEND_FE(sodium_crypto_generichash_final, arginfo_sodium_crypto_generichash_final)
581 	ZEND_FE(sodium_crypto_kdf_derive_from_key, arginfo_sodium_crypto_kdf_derive_from_key)
582 	ZEND_FE(sodium_crypto_kdf_keygen, arginfo_sodium_crypto_kdf_keygen)
583 #if defined(crypto_pwhash_SALTBYTES)
584 	ZEND_FE(sodium_crypto_pwhash, arginfo_sodium_crypto_pwhash)
585 #endif
586 #if defined(crypto_pwhash_SALTBYTES)
587 	ZEND_FE(sodium_crypto_pwhash_str, arginfo_sodium_crypto_pwhash_str)
588 #endif
589 #if defined(crypto_pwhash_SALTBYTES)
590 	ZEND_FE(sodium_crypto_pwhash_str_verify, arginfo_sodium_crypto_pwhash_str_verify)
591 #endif
592 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
593 	ZEND_FE(sodium_crypto_pwhash_str_needs_rehash, arginfo_sodium_crypto_pwhash_str_needs_rehash)
594 #endif
595 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
596 	ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256)
597 #endif
598 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
599 	ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str)
600 #endif
601 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
602 	ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str_verify)
603 #endif
604 	ZEND_FE(sodium_crypto_scalarmult, arginfo_sodium_crypto_scalarmult)
605 	ZEND_FE(sodium_crypto_secretbox, arginfo_sodium_crypto_secretbox)
606 	ZEND_FE(sodium_crypto_secretbox_keygen, arginfo_sodium_crypto_secretbox_keygen)
607 	ZEND_FE(sodium_crypto_secretbox_open, arginfo_sodium_crypto_secretbox_open)
608 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
609 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_keygen, arginfo_sodium_crypto_secretstream_xchacha20poly1305_keygen)
610 #endif
611 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
612 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_init_push, arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_push)
613 #endif
614 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
615 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_push, arginfo_sodium_crypto_secretstream_xchacha20poly1305_push)
616 #endif
617 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
618 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_init_pull, arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_pull)
619 #endif
620 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
621 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_pull, arginfo_sodium_crypto_secretstream_xchacha20poly1305_pull)
622 #endif
623 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
624 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_rekey, arginfo_sodium_crypto_secretstream_xchacha20poly1305_rekey)
625 #endif
626 	ZEND_FE(sodium_crypto_shorthash, arginfo_sodium_crypto_shorthash)
627 	ZEND_FE(sodium_crypto_shorthash_keygen, arginfo_sodium_crypto_shorthash_keygen)
628 	ZEND_FE(sodium_crypto_sign, arginfo_sodium_crypto_sign)
629 	ZEND_FE(sodium_crypto_sign_detached, arginfo_sodium_crypto_sign_detached)
630 	ZEND_FE(sodium_crypto_sign_ed25519_pk_to_curve25519, arginfo_sodium_crypto_sign_ed25519_pk_to_curve25519)
631 	ZEND_FE(sodium_crypto_sign_ed25519_sk_to_curve25519, arginfo_sodium_crypto_sign_ed25519_sk_to_curve25519)
632 	ZEND_FE(sodium_crypto_sign_keypair, arginfo_sodium_crypto_sign_keypair)
633 	ZEND_FE(sodium_crypto_sign_keypair_from_secretkey_and_publickey, arginfo_sodium_crypto_sign_keypair_from_secretkey_and_publickey)
634 	ZEND_FE(sodium_crypto_sign_open, arginfo_sodium_crypto_sign_open)
635 	ZEND_FE(sodium_crypto_sign_publickey, arginfo_sodium_crypto_sign_publickey)
636 	ZEND_FE(sodium_crypto_sign_secretkey, arginfo_sodium_crypto_sign_secretkey)
637 	ZEND_FE(sodium_crypto_sign_publickey_from_secretkey, arginfo_sodium_crypto_sign_publickey_from_secretkey)
638 	ZEND_FE(sodium_crypto_sign_seed_keypair, arginfo_sodium_crypto_sign_seed_keypair)
639 	ZEND_FE(sodium_crypto_sign_verify_detached, arginfo_sodium_crypto_sign_verify_detached)
640 	ZEND_FE(sodium_crypto_stream, arginfo_sodium_crypto_stream)
641 	ZEND_FE(sodium_crypto_stream_keygen, arginfo_sodium_crypto_stream_keygen)
642 	ZEND_FE(sodium_crypto_stream_xor, arginfo_sodium_crypto_stream_xor)
643 	ZEND_FE(sodium_add, arginfo_sodium_add)
644 	ZEND_FE(sodium_compare, arginfo_sodium_compare)
645 	ZEND_FE(sodium_increment, arginfo_sodium_increment)
646 	ZEND_FE(sodium_memcmp, arginfo_sodium_memcmp)
647 	ZEND_FE(sodium_memzero, arginfo_sodium_memzero)
648 	ZEND_FE(sodium_pad, arginfo_sodium_pad)
649 	ZEND_FE(sodium_unpad, arginfo_sodium_unpad)
650 	ZEND_FE(sodium_bin2hex, arginfo_sodium_bin2hex)
651 	ZEND_FE(sodium_hex2bin, arginfo_sodium_hex2bin)
652 #if defined(sodium_base64_VARIANT_ORIGINAL)
653 	ZEND_FE(sodium_bin2base64, arginfo_sodium_bin2base64)
654 #endif
655 #if defined(sodium_base64_VARIANT_ORIGINAL)
656 	ZEND_FE(sodium_base642bin, arginfo_sodium_base642bin)
657 #endif
658 	ZEND_FALIAS(sodium_crypto_scalarmult_base, sodium_crypto_box_publickey_from_secretkey, arginfo_sodium_crypto_scalarmult_base)
659 	ZEND_FE_END
660 };
661 
662 
663 static const zend_function_entry class_SodiumException_methods[] = {
664 	ZEND_FE_END
665 };
666