xref: /PHP-8.2/ext/sodium/libsodium_arginfo.h (revision 1816403d)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: 89cbb449ee6146dc8d50ba4bb1e76f83444a2db2 */
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 #if defined(crypto_aead_aegis128l_KEYBYTES)
31 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_aegis128l_decrypt, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
32 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
33 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
34 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
35 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
36 ZEND_END_ARG_INFO()
37 #endif
38 
39 #if defined(crypto_aead_aegis128l_KEYBYTES)
40 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aegis128l_encrypt, 0, 4, IS_STRING, 0)
41 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
42 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
43 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
44 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
45 ZEND_END_ARG_INFO()
46 #endif
47 
48 #if defined(crypto_aead_aegis128l_KEYBYTES)
49 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aegis128l_keygen, 0, 0, IS_STRING, 0)
50 ZEND_END_ARG_INFO()
51 #endif
52 
53 #if defined(crypto_aead_aegis256_KEYBYTES)
54 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_aegis256_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_aegis256_KEYBYTES)
63 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aegis256_encrypt, 0, 4, IS_STRING, 0)
64 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
65 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
66 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
67 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
68 ZEND_END_ARG_INFO()
69 #endif
70 
71 #if defined(crypto_aead_aegis256_KEYBYTES)
72 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aegis256_keygen, 0, 0, IS_STRING, 0)
73 ZEND_END_ARG_INFO()
74 #endif
75 
76 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_chacha20poly1305_decrypt, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
77 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
78 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
79 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
80 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
81 ZEND_END_ARG_INFO()
82 
83 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_chacha20poly1305_encrypt, 0, 4, IS_STRING, 0)
84 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
85 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
86 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
87 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
88 ZEND_END_ARG_INFO()
89 
90 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_chacha20poly1305_keygen, 0, 0, IS_STRING, 0)
91 ZEND_END_ARG_INFO()
92 
93 #define arginfo_sodium_crypto_aead_chacha20poly1305_ietf_decrypt arginfo_sodium_crypto_aead_chacha20poly1305_decrypt
94 
95 #define arginfo_sodium_crypto_aead_chacha20poly1305_ietf_encrypt arginfo_sodium_crypto_aead_chacha20poly1305_encrypt
96 
97 #define arginfo_sodium_crypto_aead_chacha20poly1305_ietf_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
98 
99 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
100 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_decrypt, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
101 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
102 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
103 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
104 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
105 ZEND_END_ARG_INFO()
106 #endif
107 
108 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
109 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_keygen, 0, 0, IS_STRING, 0)
110 ZEND_END_ARG_INFO()
111 #endif
112 
113 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
114 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_encrypt, 0, 4, IS_STRING, 0)
115 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
116 	ZEND_ARG_TYPE_INFO(0, additional_data, IS_STRING, 0)
117 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
118 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
119 ZEND_END_ARG_INFO()
120 #endif
121 
122 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_auth, 0, 2, IS_STRING, 0)
123 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
124 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
125 ZEND_END_ARG_INFO()
126 
127 #define arginfo_sodium_crypto_auth_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
128 
129 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_auth_verify, 0, 3, _IS_BOOL, 0)
130 	ZEND_ARG_TYPE_INFO(0, mac, IS_STRING, 0)
131 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
132 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
133 ZEND_END_ARG_INFO()
134 
135 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box, 0, 3, IS_STRING, 0)
136 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
137 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
138 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
139 ZEND_END_ARG_INFO()
140 
141 #define arginfo_sodium_crypto_box_keypair arginfo_sodium_crypto_aead_chacha20poly1305_keygen
142 
143 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_seed_keypair, 0, 1, IS_STRING, 0)
144 	ZEND_ARG_TYPE_INFO(0, seed, IS_STRING, 0)
145 ZEND_END_ARG_INFO()
146 
147 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey, 0, 2, IS_STRING, 0)
148 	ZEND_ARG_TYPE_INFO(0, secret_key, IS_STRING, 0)
149 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
150 ZEND_END_ARG_INFO()
151 
152 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_box_open, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
153 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
154 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
155 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
156 ZEND_END_ARG_INFO()
157 
158 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_publickey, 0, 1, IS_STRING, 0)
159 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
160 ZEND_END_ARG_INFO()
161 
162 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_publickey_from_secretkey, 0, 1, IS_STRING, 0)
163 	ZEND_ARG_TYPE_INFO(0, secret_key, IS_STRING, 0)
164 ZEND_END_ARG_INFO()
165 
166 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_box_seal, 0, 2, IS_STRING, 0)
167 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
168 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
169 ZEND_END_ARG_INFO()
170 
171 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_box_seal_open, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
172 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
173 	ZEND_ARG_TYPE_INFO(0, key_pair, IS_STRING, 0)
174 ZEND_END_ARG_INFO()
175 
176 #define arginfo_sodium_crypto_box_secretkey arginfo_sodium_crypto_box_publickey
177 
178 #if defined(crypto_core_ristretto255_HASHBYTES)
179 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_core_ristretto255_add, 0, 2, IS_STRING, 0)
180 	ZEND_ARG_TYPE_INFO(0, p, IS_STRING, 0)
181 	ZEND_ARG_TYPE_INFO(0, q, IS_STRING, 0)
182 ZEND_END_ARG_INFO()
183 #endif
184 
185 #if defined(crypto_core_ristretto255_HASHBYTES)
186 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_core_ristretto255_from_hash, 0, 1, IS_STRING, 0)
187 	ZEND_ARG_TYPE_INFO(0, s, IS_STRING, 0)
188 ZEND_END_ARG_INFO()
189 #endif
190 
191 #if defined(crypto_core_ristretto255_HASHBYTES)
192 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_core_ristretto255_is_valid_point, 0, 1, _IS_BOOL, 0)
193 	ZEND_ARG_TYPE_INFO(0, s, IS_STRING, 0)
194 ZEND_END_ARG_INFO()
195 #endif
196 
197 #if defined(crypto_core_ristretto255_HASHBYTES)
198 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_core_ristretto255_random, 0, 0, IS_STRING, 0)
199 ZEND_END_ARG_INFO()
200 #endif
201 
202 #if defined(crypto_core_ristretto255_HASHBYTES)
203 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_core_ristretto255_scalar_add, 0, 2, IS_STRING, 0)
204 	ZEND_ARG_TYPE_INFO(0, x, IS_STRING, 0)
205 	ZEND_ARG_TYPE_INFO(0, y, IS_STRING, 0)
206 ZEND_END_ARG_INFO()
207 #endif
208 
209 #if defined(crypto_core_ristretto255_HASHBYTES)
210 #define arginfo_sodium_crypto_core_ristretto255_scalar_complement arginfo_sodium_crypto_core_ristretto255_from_hash
211 #endif
212 
213 #if defined(crypto_core_ristretto255_HASHBYTES)
214 #define arginfo_sodium_crypto_core_ristretto255_scalar_invert arginfo_sodium_crypto_core_ristretto255_from_hash
215 #endif
216 
217 #if defined(crypto_core_ristretto255_HASHBYTES)
218 #define arginfo_sodium_crypto_core_ristretto255_scalar_mul arginfo_sodium_crypto_core_ristretto255_scalar_add
219 #endif
220 
221 #if defined(crypto_core_ristretto255_HASHBYTES)
222 #define arginfo_sodium_crypto_core_ristretto255_scalar_negate arginfo_sodium_crypto_core_ristretto255_from_hash
223 #endif
224 
225 #if defined(crypto_core_ristretto255_HASHBYTES)
226 #define arginfo_sodium_crypto_core_ristretto255_scalar_random arginfo_sodium_crypto_core_ristretto255_random
227 #endif
228 
229 #if defined(crypto_core_ristretto255_HASHBYTES)
230 #define arginfo_sodium_crypto_core_ristretto255_scalar_reduce arginfo_sodium_crypto_core_ristretto255_from_hash
231 #endif
232 
233 #if defined(crypto_core_ristretto255_HASHBYTES)
234 #define arginfo_sodium_crypto_core_ristretto255_scalar_sub arginfo_sodium_crypto_core_ristretto255_scalar_add
235 #endif
236 
237 #if defined(crypto_core_ristretto255_HASHBYTES)
238 #define arginfo_sodium_crypto_core_ristretto255_sub arginfo_sodium_crypto_core_ristretto255_add
239 #endif
240 
241 #define arginfo_sodium_crypto_kx_keypair arginfo_sodium_crypto_aead_chacha20poly1305_keygen
242 
243 #define arginfo_sodium_crypto_kx_publickey arginfo_sodium_crypto_box_publickey
244 
245 #define arginfo_sodium_crypto_kx_secretkey arginfo_sodium_crypto_box_publickey
246 
247 #define arginfo_sodium_crypto_kx_seed_keypair arginfo_sodium_crypto_box_seed_keypair
248 
249 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_kx_client_session_keys, 0, 2, IS_ARRAY, 0)
250 	ZEND_ARG_TYPE_INFO(0, client_key_pair, IS_STRING, 0)
251 	ZEND_ARG_TYPE_INFO(0, server_key, IS_STRING, 0)
252 ZEND_END_ARG_INFO()
253 
254 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_kx_server_session_keys, 0, 2, IS_ARRAY, 0)
255 	ZEND_ARG_TYPE_INFO(0, server_key_pair, IS_STRING, 0)
256 	ZEND_ARG_TYPE_INFO(0, client_key, IS_STRING, 0)
257 ZEND_END_ARG_INFO()
258 
259 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash, 0, 1, IS_STRING, 0)
260 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
261 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, key, IS_STRING, 0, "\"\"")
262 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "SODIUM_CRYPTO_GENERICHASH_BYTES")
263 ZEND_END_ARG_INFO()
264 
265 #define arginfo_sodium_crypto_generichash_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
266 
267 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash_init, 0, 0, IS_STRING, 0)
268 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, key, IS_STRING, 0, "\"\"")
269 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "SODIUM_CRYPTO_GENERICHASH_BYTES")
270 ZEND_END_ARG_INFO()
271 
272 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash_update, 0, 2, IS_TRUE, 0)
273 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
274 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
275 ZEND_END_ARG_INFO()
276 
277 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_generichash_final, 0, 1, IS_STRING, 0)
278 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
279 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "SODIUM_CRYPTO_GENERICHASH_BYTES")
280 ZEND_END_ARG_INFO()
281 
282 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_kdf_derive_from_key, 0, 4, IS_STRING, 0)
283 	ZEND_ARG_TYPE_INFO(0, subkey_length, IS_LONG, 0)
284 	ZEND_ARG_TYPE_INFO(0, subkey_id, IS_LONG, 0)
285 	ZEND_ARG_TYPE_INFO(0, context, IS_STRING, 0)
286 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
287 ZEND_END_ARG_INFO()
288 
289 #define arginfo_sodium_crypto_kdf_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
290 
291 #if defined(crypto_pwhash_SALTBYTES)
292 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash, 0, 5, IS_STRING, 0)
293 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
294 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
295 	ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0)
296 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
297 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
298 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, algo, IS_LONG, 0, "SODIUM_CRYPTO_PWHASH_ALG_DEFAULT")
299 ZEND_END_ARG_INFO()
300 #endif
301 
302 #if defined(crypto_pwhash_SALTBYTES)
303 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_str, 0, 3, IS_STRING, 0)
304 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
305 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
306 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
307 ZEND_END_ARG_INFO()
308 #endif
309 
310 #if defined(crypto_pwhash_SALTBYTES)
311 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_str_verify, 0, 2, _IS_BOOL, 0)
312 	ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
313 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
314 ZEND_END_ARG_INFO()
315 #endif
316 
317 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
318 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_str_needs_rehash, 0, 3, _IS_BOOL, 0)
319 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
320 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
321 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
322 ZEND_END_ARG_INFO()
323 #endif
324 
325 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
326 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_scryptsalsa208sha256, 0, 5, IS_STRING, 0)
327 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
328 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
329 	ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0)
330 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
331 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
332 ZEND_END_ARG_INFO()
333 #endif
334 
335 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
336 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str, 0, 3, IS_STRING, 0)
337 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
338 	ZEND_ARG_TYPE_INFO(0, opslimit, IS_LONG, 0)
339 	ZEND_ARG_TYPE_INFO(0, memlimit, IS_LONG, 0)
340 ZEND_END_ARG_INFO()
341 #endif
342 
343 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
344 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, 0, 2, _IS_BOOL, 0)
345 	ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
346 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
347 ZEND_END_ARG_INFO()
348 #endif
349 
350 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_scalarmult, 0, 2, IS_STRING, 0)
351 	ZEND_ARG_TYPE_INFO(0, n, IS_STRING, 0)
352 	ZEND_ARG_TYPE_INFO(0, p, IS_STRING, 0)
353 ZEND_END_ARG_INFO()
354 
355 #if defined(crypto_core_ristretto255_HASHBYTES)
356 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_scalarmult_ristretto255, 0, 2, IS_STRING, 0)
357 	ZEND_ARG_TYPE_INFO(0, n, IS_STRING, 0)
358 	ZEND_ARG_TYPE_INFO(0, p, IS_STRING, 0)
359 ZEND_END_ARG_INFO()
360 #endif
361 
362 #if defined(crypto_core_ristretto255_HASHBYTES)
363 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_scalarmult_ristretto255_base, 0, 1, IS_STRING, 0)
364 	ZEND_ARG_TYPE_INFO(0, n, IS_STRING, 0)
365 ZEND_END_ARG_INFO()
366 #endif
367 
368 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretbox, 0, 3, IS_STRING, 0)
369 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
370 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
371 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
372 ZEND_END_ARG_INFO()
373 
374 #define arginfo_sodium_crypto_secretbox_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
375 
376 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_secretbox_open, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
377 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
378 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
379 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
380 ZEND_END_ARG_INFO()
381 
382 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
383 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_keygen, 0, 0, IS_STRING, 0)
384 ZEND_END_ARG_INFO()
385 #endif
386 
387 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
388 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_push, 0, 1, IS_ARRAY, 0)
389 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
390 ZEND_END_ARG_INFO()
391 #endif
392 
393 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
394 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_push, 0, 2, IS_STRING, 0)
395 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
396 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
397 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_data, IS_STRING, 0, "\"\"")
398 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag, IS_LONG, 0, "SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE")
399 ZEND_END_ARG_INFO()
400 #endif
401 
402 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
403 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_pull, 0, 2, IS_STRING, 0)
404 	ZEND_ARG_TYPE_INFO(0, header, IS_STRING, 0)
405 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
406 ZEND_END_ARG_INFO()
407 #endif
408 
409 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
410 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_pull, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
411 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
412 	ZEND_ARG_TYPE_INFO(0, ciphertext, IS_STRING, 0)
413 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_data, IS_STRING, 0, "\"\"")
414 ZEND_END_ARG_INFO()
415 #endif
416 
417 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
418 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_secretstream_xchacha20poly1305_rekey, 0, 1, IS_VOID, 0)
419 	ZEND_ARG_TYPE_INFO(1, state, IS_STRING, 0)
420 ZEND_END_ARG_INFO()
421 #endif
422 
423 #define arginfo_sodium_crypto_shorthash arginfo_sodium_crypto_auth
424 
425 #define arginfo_sodium_crypto_shorthash_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
426 
427 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_sign, 0, 2, IS_STRING, 0)
428 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
429 	ZEND_ARG_TYPE_INFO(0, secret_key, IS_STRING, 0)
430 ZEND_END_ARG_INFO()
431 
432 #define arginfo_sodium_crypto_sign_detached arginfo_sodium_crypto_sign
433 
434 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_sign_ed25519_pk_to_curve25519, 0, 1, IS_STRING, 0)
435 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
436 ZEND_END_ARG_INFO()
437 
438 #define arginfo_sodium_crypto_sign_ed25519_sk_to_curve25519 arginfo_sodium_crypto_box_publickey_from_secretkey
439 
440 #define arginfo_sodium_crypto_sign_keypair arginfo_sodium_crypto_aead_chacha20poly1305_keygen
441 
442 #define arginfo_sodium_crypto_sign_keypair_from_secretkey_and_publickey arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey
443 
444 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_sodium_crypto_sign_open, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
445 	ZEND_ARG_TYPE_INFO(0, signed_message, IS_STRING, 0)
446 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
447 ZEND_END_ARG_INFO()
448 
449 #define arginfo_sodium_crypto_sign_publickey arginfo_sodium_crypto_box_publickey
450 
451 #define arginfo_sodium_crypto_sign_secretkey arginfo_sodium_crypto_box_publickey
452 
453 #define arginfo_sodium_crypto_sign_publickey_from_secretkey arginfo_sodium_crypto_box_publickey_from_secretkey
454 
455 #define arginfo_sodium_crypto_sign_seed_keypair arginfo_sodium_crypto_box_seed_keypair
456 
457 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_sign_verify_detached, 0, 3, _IS_BOOL, 0)
458 	ZEND_ARG_TYPE_INFO(0, signature, IS_STRING, 0)
459 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
460 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
461 ZEND_END_ARG_INFO()
462 
463 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_stream, 0, 3, IS_STRING, 0)
464 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
465 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
466 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
467 ZEND_END_ARG_INFO()
468 
469 #define arginfo_sodium_crypto_stream_keygen arginfo_sodium_crypto_aead_chacha20poly1305_keygen
470 
471 #define arginfo_sodium_crypto_stream_xor arginfo_sodium_crypto_secretbox
472 
473 #if defined(crypto_stream_xchacha20_KEYBYTES)
474 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_stream_xchacha20, 0, 3, IS_STRING, 0)
475 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
476 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
477 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
478 ZEND_END_ARG_INFO()
479 #endif
480 
481 #if defined(crypto_stream_xchacha20_KEYBYTES)
482 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_stream_xchacha20_keygen, 0, 0, IS_STRING, 0)
483 ZEND_END_ARG_INFO()
484 #endif
485 
486 #if defined(crypto_stream_xchacha20_KEYBYTES)
487 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_stream_xchacha20_xor, 0, 3, IS_STRING, 0)
488 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
489 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
490 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
491 ZEND_END_ARG_INFO()
492 #endif
493 
494 #if defined(crypto_stream_xchacha20_KEYBYTES)
495 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_stream_xchacha20_xor_ic, 0, 4, IS_STRING, 0)
496 	ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
497 	ZEND_ARG_TYPE_INFO(0, nonce, IS_STRING, 0)
498 	ZEND_ARG_TYPE_INFO(0, counter, IS_LONG, 0)
499 	ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
500 ZEND_END_ARG_INFO()
501 #endif
502 
503 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_add, 0, 2, IS_VOID, 0)
504 	ZEND_ARG_TYPE_INFO(1, string1, IS_STRING, 0)
505 	ZEND_ARG_TYPE_INFO(0, string2, IS_STRING, 0)
506 ZEND_END_ARG_INFO()
507 
508 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_compare, 0, 2, IS_LONG, 0)
509 	ZEND_ARG_TYPE_INFO(0, string1, IS_STRING, 0)
510 	ZEND_ARG_TYPE_INFO(0, string2, IS_STRING, 0)
511 ZEND_END_ARG_INFO()
512 
513 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_increment, 0, 1, IS_VOID, 0)
514 	ZEND_ARG_TYPE_INFO(1, string, IS_STRING, 0)
515 ZEND_END_ARG_INFO()
516 
517 #define arginfo_sodium_memcmp arginfo_sodium_compare
518 
519 #define arginfo_sodium_memzero arginfo_sodium_increment
520 
521 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_pad, 0, 2, IS_STRING, 0)
522 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
523 	ZEND_ARG_TYPE_INFO(0, block_size, IS_LONG, 0)
524 ZEND_END_ARG_INFO()
525 
526 #define arginfo_sodium_unpad arginfo_sodium_pad
527 
528 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_bin2hex, 0, 1, IS_STRING, 0)
529 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
530 ZEND_END_ARG_INFO()
531 
532 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_hex2bin, 0, 1, IS_STRING, 0)
533 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
534 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ignore, IS_STRING, 0, "\"\"")
535 ZEND_END_ARG_INFO()
536 
537 #if defined(sodium_base64_VARIANT_ORIGINAL)
538 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_bin2base64, 0, 2, IS_STRING, 0)
539 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
540 	ZEND_ARG_TYPE_INFO(0, id, IS_LONG, 0)
541 ZEND_END_ARG_INFO()
542 #endif
543 
544 #if defined(sodium_base64_VARIANT_ORIGINAL)
545 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_base642bin, 0, 2, IS_STRING, 0)
546 	ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
547 	ZEND_ARG_TYPE_INFO(0, id, IS_LONG, 0)
548 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ignore, IS_STRING, 0, "\"\"")
549 ZEND_END_ARG_INFO()
550 #endif
551 
552 #define arginfo_sodium_crypto_scalarmult_base arginfo_sodium_crypto_box_publickey_from_secretkey
553 
554 
555 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_is_available);
556 #if defined(HAVE_AESGCM)
557 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_decrypt);
558 #endif
559 #if defined(HAVE_AESGCM)
560 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_encrypt);
561 #endif
562 #if defined(HAVE_AESGCM)
563 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_keygen);
564 #endif
565 #if defined(crypto_aead_aegis128l_KEYBYTES)
566 ZEND_FUNCTION(sodium_crypto_aead_aegis128l_decrypt);
567 #endif
568 #if defined(crypto_aead_aegis128l_KEYBYTES)
569 ZEND_FUNCTION(sodium_crypto_aead_aegis128l_encrypt);
570 #endif
571 #if defined(crypto_aead_aegis128l_KEYBYTES)
572 ZEND_FUNCTION(sodium_crypto_aead_aegis128l_keygen);
573 #endif
574 #if defined(crypto_aead_aegis256_KEYBYTES)
575 ZEND_FUNCTION(sodium_crypto_aead_aegis256_decrypt);
576 #endif
577 #if defined(crypto_aead_aegis256_KEYBYTES)
578 ZEND_FUNCTION(sodium_crypto_aead_aegis256_encrypt);
579 #endif
580 #if defined(crypto_aead_aegis256_KEYBYTES)
581 ZEND_FUNCTION(sodium_crypto_aead_aegis256_keygen);
582 #endif
583 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_decrypt);
584 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_encrypt);
585 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_keygen);
586 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_decrypt);
587 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_encrypt);
588 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_keygen);
589 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
590 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_decrypt);
591 #endif
592 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
593 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_keygen);
594 #endif
595 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
596 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_encrypt);
597 #endif
598 ZEND_FUNCTION(sodium_crypto_auth);
599 ZEND_FUNCTION(sodium_crypto_auth_keygen);
600 ZEND_FUNCTION(sodium_crypto_auth_verify);
601 ZEND_FUNCTION(sodium_crypto_box);
602 ZEND_FUNCTION(sodium_crypto_box_keypair);
603 ZEND_FUNCTION(sodium_crypto_box_seed_keypair);
604 ZEND_FUNCTION(sodium_crypto_box_keypair_from_secretkey_and_publickey);
605 ZEND_FUNCTION(sodium_crypto_box_open);
606 ZEND_FUNCTION(sodium_crypto_box_publickey);
607 ZEND_FUNCTION(sodium_crypto_box_publickey_from_secretkey);
608 ZEND_FUNCTION(sodium_crypto_box_seal);
609 ZEND_FUNCTION(sodium_crypto_box_seal_open);
610 ZEND_FUNCTION(sodium_crypto_box_secretkey);
611 #if defined(crypto_core_ristretto255_HASHBYTES)
612 ZEND_FUNCTION(sodium_crypto_core_ristretto255_add);
613 #endif
614 #if defined(crypto_core_ristretto255_HASHBYTES)
615 ZEND_FUNCTION(sodium_crypto_core_ristretto255_from_hash);
616 #endif
617 #if defined(crypto_core_ristretto255_HASHBYTES)
618 ZEND_FUNCTION(sodium_crypto_core_ristretto255_is_valid_point);
619 #endif
620 #if defined(crypto_core_ristretto255_HASHBYTES)
621 ZEND_FUNCTION(sodium_crypto_core_ristretto255_random);
622 #endif
623 #if defined(crypto_core_ristretto255_HASHBYTES)
624 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_add);
625 #endif
626 #if defined(crypto_core_ristretto255_HASHBYTES)
627 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_complement);
628 #endif
629 #if defined(crypto_core_ristretto255_HASHBYTES)
630 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_invert);
631 #endif
632 #if defined(crypto_core_ristretto255_HASHBYTES)
633 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_mul);
634 #endif
635 #if defined(crypto_core_ristretto255_HASHBYTES)
636 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_negate);
637 #endif
638 #if defined(crypto_core_ristretto255_HASHBYTES)
639 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_random);
640 #endif
641 #if defined(crypto_core_ristretto255_HASHBYTES)
642 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_reduce);
643 #endif
644 #if defined(crypto_core_ristretto255_HASHBYTES)
645 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_sub);
646 #endif
647 #if defined(crypto_core_ristretto255_HASHBYTES)
648 ZEND_FUNCTION(sodium_crypto_core_ristretto255_sub);
649 #endif
650 ZEND_FUNCTION(sodium_crypto_kx_keypair);
651 ZEND_FUNCTION(sodium_crypto_kx_publickey);
652 ZEND_FUNCTION(sodium_crypto_kx_secretkey);
653 ZEND_FUNCTION(sodium_crypto_kx_seed_keypair);
654 ZEND_FUNCTION(sodium_crypto_kx_client_session_keys);
655 ZEND_FUNCTION(sodium_crypto_kx_server_session_keys);
656 ZEND_FUNCTION(sodium_crypto_generichash);
657 ZEND_FUNCTION(sodium_crypto_generichash_keygen);
658 ZEND_FUNCTION(sodium_crypto_generichash_init);
659 ZEND_FUNCTION(sodium_crypto_generichash_update);
660 ZEND_FUNCTION(sodium_crypto_generichash_final);
661 ZEND_FUNCTION(sodium_crypto_kdf_derive_from_key);
662 ZEND_FUNCTION(sodium_crypto_kdf_keygen);
663 #if defined(crypto_pwhash_SALTBYTES)
664 ZEND_FUNCTION(sodium_crypto_pwhash);
665 #endif
666 #if defined(crypto_pwhash_SALTBYTES)
667 ZEND_FUNCTION(sodium_crypto_pwhash_str);
668 #endif
669 #if defined(crypto_pwhash_SALTBYTES)
670 ZEND_FUNCTION(sodium_crypto_pwhash_str_verify);
671 #endif
672 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
673 ZEND_FUNCTION(sodium_crypto_pwhash_str_needs_rehash);
674 #endif
675 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
676 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256);
677 #endif
678 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
679 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str);
680 #endif
681 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
682 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify);
683 #endif
684 ZEND_FUNCTION(sodium_crypto_scalarmult);
685 #if defined(crypto_core_ristretto255_HASHBYTES)
686 ZEND_FUNCTION(sodium_crypto_scalarmult_ristretto255);
687 #endif
688 #if defined(crypto_core_ristretto255_HASHBYTES)
689 ZEND_FUNCTION(sodium_crypto_scalarmult_ristretto255_base);
690 #endif
691 ZEND_FUNCTION(sodium_crypto_secretbox);
692 ZEND_FUNCTION(sodium_crypto_secretbox_keygen);
693 ZEND_FUNCTION(sodium_crypto_secretbox_open);
694 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
695 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_keygen);
696 #endif
697 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
698 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_init_push);
699 #endif
700 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
701 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_push);
702 #endif
703 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
704 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_init_pull);
705 #endif
706 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
707 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_pull);
708 #endif
709 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
710 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_rekey);
711 #endif
712 ZEND_FUNCTION(sodium_crypto_shorthash);
713 ZEND_FUNCTION(sodium_crypto_shorthash_keygen);
714 ZEND_FUNCTION(sodium_crypto_sign);
715 ZEND_FUNCTION(sodium_crypto_sign_detached);
716 ZEND_FUNCTION(sodium_crypto_sign_ed25519_pk_to_curve25519);
717 ZEND_FUNCTION(sodium_crypto_sign_ed25519_sk_to_curve25519);
718 ZEND_FUNCTION(sodium_crypto_sign_keypair);
719 ZEND_FUNCTION(sodium_crypto_sign_keypair_from_secretkey_and_publickey);
720 ZEND_FUNCTION(sodium_crypto_sign_open);
721 ZEND_FUNCTION(sodium_crypto_sign_publickey);
722 ZEND_FUNCTION(sodium_crypto_sign_secretkey);
723 ZEND_FUNCTION(sodium_crypto_sign_publickey_from_secretkey);
724 ZEND_FUNCTION(sodium_crypto_sign_seed_keypair);
725 ZEND_FUNCTION(sodium_crypto_sign_verify_detached);
726 ZEND_FUNCTION(sodium_crypto_stream);
727 ZEND_FUNCTION(sodium_crypto_stream_keygen);
728 ZEND_FUNCTION(sodium_crypto_stream_xor);
729 #if defined(crypto_stream_xchacha20_KEYBYTES)
730 ZEND_FUNCTION(sodium_crypto_stream_xchacha20);
731 #endif
732 #if defined(crypto_stream_xchacha20_KEYBYTES)
733 ZEND_FUNCTION(sodium_crypto_stream_xchacha20_keygen);
734 #endif
735 #if defined(crypto_stream_xchacha20_KEYBYTES)
736 ZEND_FUNCTION(sodium_crypto_stream_xchacha20_xor);
737 #endif
738 #if defined(crypto_stream_xchacha20_KEYBYTES)
739 ZEND_FUNCTION(sodium_crypto_stream_xchacha20_xor_ic);
740 #endif
741 ZEND_FUNCTION(sodium_add);
742 ZEND_FUNCTION(sodium_compare);
743 ZEND_FUNCTION(sodium_increment);
744 ZEND_FUNCTION(sodium_memcmp);
745 ZEND_FUNCTION(sodium_memzero);
746 ZEND_FUNCTION(sodium_pad);
747 ZEND_FUNCTION(sodium_unpad);
748 ZEND_FUNCTION(sodium_bin2hex);
749 ZEND_FUNCTION(sodium_hex2bin);
750 #if defined(sodium_base64_VARIANT_ORIGINAL)
751 ZEND_FUNCTION(sodium_bin2base64);
752 #endif
753 #if defined(sodium_base64_VARIANT_ORIGINAL)
754 ZEND_FUNCTION(sodium_base642bin);
755 #endif
756 
757 
758 static const zend_function_entry ext_functions[] = {
759 	ZEND_FE(sodium_crypto_aead_aes256gcm_is_available, arginfo_sodium_crypto_aead_aes256gcm_is_available)
760 #if defined(HAVE_AESGCM)
761 	ZEND_FE(sodium_crypto_aead_aes256gcm_decrypt, arginfo_sodium_crypto_aead_aes256gcm_decrypt)
762 #endif
763 #if defined(HAVE_AESGCM)
764 	ZEND_FE(sodium_crypto_aead_aes256gcm_encrypt, arginfo_sodium_crypto_aead_aes256gcm_encrypt)
765 #endif
766 #if defined(HAVE_AESGCM)
767 	ZEND_FE(sodium_crypto_aead_aes256gcm_keygen, arginfo_sodium_crypto_aead_aes256gcm_keygen)
768 #endif
769 #if defined(crypto_aead_aegis128l_KEYBYTES)
770 	ZEND_FE(sodium_crypto_aead_aegis128l_decrypt, arginfo_sodium_crypto_aead_aegis128l_decrypt)
771 #endif
772 #if defined(crypto_aead_aegis128l_KEYBYTES)
773 	ZEND_FE(sodium_crypto_aead_aegis128l_encrypt, arginfo_sodium_crypto_aead_aegis128l_encrypt)
774 #endif
775 #if defined(crypto_aead_aegis128l_KEYBYTES)
776 	ZEND_FE(sodium_crypto_aead_aegis128l_keygen, arginfo_sodium_crypto_aead_aegis128l_keygen)
777 #endif
778 #if defined(crypto_aead_aegis256_KEYBYTES)
779 	ZEND_FE(sodium_crypto_aead_aegis256_decrypt, arginfo_sodium_crypto_aead_aegis256_decrypt)
780 #endif
781 #if defined(crypto_aead_aegis256_KEYBYTES)
782 	ZEND_FE(sodium_crypto_aead_aegis256_encrypt, arginfo_sodium_crypto_aead_aegis256_encrypt)
783 #endif
784 #if defined(crypto_aead_aegis256_KEYBYTES)
785 	ZEND_FE(sodium_crypto_aead_aegis256_keygen, arginfo_sodium_crypto_aead_aegis256_keygen)
786 #endif
787 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_decrypt, arginfo_sodium_crypto_aead_chacha20poly1305_decrypt)
788 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_encrypt, arginfo_sodium_crypto_aead_chacha20poly1305_encrypt)
789 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_keygen, arginfo_sodium_crypto_aead_chacha20poly1305_keygen)
790 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_decrypt, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_decrypt)
791 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_encrypt, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_encrypt)
792 	ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_keygen, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_keygen)
793 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
794 	ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_decrypt, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_decrypt)
795 #endif
796 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
797 	ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_keygen, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_keygen)
798 #endif
799 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
800 	ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_encrypt, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_encrypt)
801 #endif
802 	ZEND_FE(sodium_crypto_auth, arginfo_sodium_crypto_auth)
803 	ZEND_FE(sodium_crypto_auth_keygen, arginfo_sodium_crypto_auth_keygen)
804 	ZEND_FE(sodium_crypto_auth_verify, arginfo_sodium_crypto_auth_verify)
805 	ZEND_FE(sodium_crypto_box, arginfo_sodium_crypto_box)
806 	ZEND_FE(sodium_crypto_box_keypair, arginfo_sodium_crypto_box_keypair)
807 	ZEND_FE(sodium_crypto_box_seed_keypair, arginfo_sodium_crypto_box_seed_keypair)
808 	ZEND_FE(sodium_crypto_box_keypair_from_secretkey_and_publickey, arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey)
809 	ZEND_FE(sodium_crypto_box_open, arginfo_sodium_crypto_box_open)
810 	ZEND_FE(sodium_crypto_box_publickey, arginfo_sodium_crypto_box_publickey)
811 	ZEND_FE(sodium_crypto_box_publickey_from_secretkey, arginfo_sodium_crypto_box_publickey_from_secretkey)
812 	ZEND_FE(sodium_crypto_box_seal, arginfo_sodium_crypto_box_seal)
813 	ZEND_FE(sodium_crypto_box_seal_open, arginfo_sodium_crypto_box_seal_open)
814 	ZEND_FE(sodium_crypto_box_secretkey, arginfo_sodium_crypto_box_secretkey)
815 #if defined(crypto_core_ristretto255_HASHBYTES)
816 	ZEND_FE(sodium_crypto_core_ristretto255_add, arginfo_sodium_crypto_core_ristretto255_add)
817 #endif
818 #if defined(crypto_core_ristretto255_HASHBYTES)
819 	ZEND_FE(sodium_crypto_core_ristretto255_from_hash, arginfo_sodium_crypto_core_ristretto255_from_hash)
820 #endif
821 #if defined(crypto_core_ristretto255_HASHBYTES)
822 	ZEND_FE(sodium_crypto_core_ristretto255_is_valid_point, arginfo_sodium_crypto_core_ristretto255_is_valid_point)
823 #endif
824 #if defined(crypto_core_ristretto255_HASHBYTES)
825 	ZEND_FE(sodium_crypto_core_ristretto255_random, arginfo_sodium_crypto_core_ristretto255_random)
826 #endif
827 #if defined(crypto_core_ristretto255_HASHBYTES)
828 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_add, arginfo_sodium_crypto_core_ristretto255_scalar_add)
829 #endif
830 #if defined(crypto_core_ristretto255_HASHBYTES)
831 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_complement, arginfo_sodium_crypto_core_ristretto255_scalar_complement)
832 #endif
833 #if defined(crypto_core_ristretto255_HASHBYTES)
834 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_invert, arginfo_sodium_crypto_core_ristretto255_scalar_invert)
835 #endif
836 #if defined(crypto_core_ristretto255_HASHBYTES)
837 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_mul, arginfo_sodium_crypto_core_ristretto255_scalar_mul)
838 #endif
839 #if defined(crypto_core_ristretto255_HASHBYTES)
840 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_negate, arginfo_sodium_crypto_core_ristretto255_scalar_negate)
841 #endif
842 #if defined(crypto_core_ristretto255_HASHBYTES)
843 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_random, arginfo_sodium_crypto_core_ristretto255_scalar_random)
844 #endif
845 #if defined(crypto_core_ristretto255_HASHBYTES)
846 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_reduce, arginfo_sodium_crypto_core_ristretto255_scalar_reduce)
847 #endif
848 #if defined(crypto_core_ristretto255_HASHBYTES)
849 	ZEND_FE(sodium_crypto_core_ristretto255_scalar_sub, arginfo_sodium_crypto_core_ristretto255_scalar_sub)
850 #endif
851 #if defined(crypto_core_ristretto255_HASHBYTES)
852 	ZEND_FE(sodium_crypto_core_ristretto255_sub, arginfo_sodium_crypto_core_ristretto255_sub)
853 #endif
854 	ZEND_FE(sodium_crypto_kx_keypair, arginfo_sodium_crypto_kx_keypair)
855 	ZEND_FE(sodium_crypto_kx_publickey, arginfo_sodium_crypto_kx_publickey)
856 	ZEND_FE(sodium_crypto_kx_secretkey, arginfo_sodium_crypto_kx_secretkey)
857 	ZEND_FE(sodium_crypto_kx_seed_keypair, arginfo_sodium_crypto_kx_seed_keypair)
858 	ZEND_FE(sodium_crypto_kx_client_session_keys, arginfo_sodium_crypto_kx_client_session_keys)
859 	ZEND_FE(sodium_crypto_kx_server_session_keys, arginfo_sodium_crypto_kx_server_session_keys)
860 	ZEND_FE(sodium_crypto_generichash, arginfo_sodium_crypto_generichash)
861 	ZEND_FE(sodium_crypto_generichash_keygen, arginfo_sodium_crypto_generichash_keygen)
862 	ZEND_FE(sodium_crypto_generichash_init, arginfo_sodium_crypto_generichash_init)
863 	ZEND_FE(sodium_crypto_generichash_update, arginfo_sodium_crypto_generichash_update)
864 	ZEND_FE(sodium_crypto_generichash_final, arginfo_sodium_crypto_generichash_final)
865 	ZEND_FE(sodium_crypto_kdf_derive_from_key, arginfo_sodium_crypto_kdf_derive_from_key)
866 	ZEND_FE(sodium_crypto_kdf_keygen, arginfo_sodium_crypto_kdf_keygen)
867 #if defined(crypto_pwhash_SALTBYTES)
868 	ZEND_FE(sodium_crypto_pwhash, arginfo_sodium_crypto_pwhash)
869 #endif
870 #if defined(crypto_pwhash_SALTBYTES)
871 	ZEND_FE(sodium_crypto_pwhash_str, arginfo_sodium_crypto_pwhash_str)
872 #endif
873 #if defined(crypto_pwhash_SALTBYTES)
874 	ZEND_FE(sodium_crypto_pwhash_str_verify, arginfo_sodium_crypto_pwhash_str_verify)
875 #endif
876 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
877 	ZEND_FE(sodium_crypto_pwhash_str_needs_rehash, arginfo_sodium_crypto_pwhash_str_needs_rehash)
878 #endif
879 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
880 	ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256)
881 #endif
882 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
883 	ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str)
884 #endif
885 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
886 	ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str_verify)
887 #endif
888 	ZEND_FE(sodium_crypto_scalarmult, arginfo_sodium_crypto_scalarmult)
889 #if defined(crypto_core_ristretto255_HASHBYTES)
890 	ZEND_FE(sodium_crypto_scalarmult_ristretto255, arginfo_sodium_crypto_scalarmult_ristretto255)
891 #endif
892 #if defined(crypto_core_ristretto255_HASHBYTES)
893 	ZEND_FE(sodium_crypto_scalarmult_ristretto255_base, arginfo_sodium_crypto_scalarmult_ristretto255_base)
894 #endif
895 	ZEND_FE(sodium_crypto_secretbox, arginfo_sodium_crypto_secretbox)
896 	ZEND_FE(sodium_crypto_secretbox_keygen, arginfo_sodium_crypto_secretbox_keygen)
897 	ZEND_FE(sodium_crypto_secretbox_open, arginfo_sodium_crypto_secretbox_open)
898 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
899 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_keygen, arginfo_sodium_crypto_secretstream_xchacha20poly1305_keygen)
900 #endif
901 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
902 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_init_push, arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_push)
903 #endif
904 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
905 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_push, arginfo_sodium_crypto_secretstream_xchacha20poly1305_push)
906 #endif
907 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
908 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_init_pull, arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_pull)
909 #endif
910 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
911 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_pull, arginfo_sodium_crypto_secretstream_xchacha20poly1305_pull)
912 #endif
913 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
914 	ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_rekey, arginfo_sodium_crypto_secretstream_xchacha20poly1305_rekey)
915 #endif
916 	ZEND_FE(sodium_crypto_shorthash, arginfo_sodium_crypto_shorthash)
917 	ZEND_FE(sodium_crypto_shorthash_keygen, arginfo_sodium_crypto_shorthash_keygen)
918 	ZEND_FE(sodium_crypto_sign, arginfo_sodium_crypto_sign)
919 	ZEND_FE(sodium_crypto_sign_detached, arginfo_sodium_crypto_sign_detached)
920 	ZEND_FE(sodium_crypto_sign_ed25519_pk_to_curve25519, arginfo_sodium_crypto_sign_ed25519_pk_to_curve25519)
921 	ZEND_FE(sodium_crypto_sign_ed25519_sk_to_curve25519, arginfo_sodium_crypto_sign_ed25519_sk_to_curve25519)
922 	ZEND_FE(sodium_crypto_sign_keypair, arginfo_sodium_crypto_sign_keypair)
923 	ZEND_FE(sodium_crypto_sign_keypair_from_secretkey_and_publickey, arginfo_sodium_crypto_sign_keypair_from_secretkey_and_publickey)
924 	ZEND_FE(sodium_crypto_sign_open, arginfo_sodium_crypto_sign_open)
925 	ZEND_FE(sodium_crypto_sign_publickey, arginfo_sodium_crypto_sign_publickey)
926 	ZEND_FE(sodium_crypto_sign_secretkey, arginfo_sodium_crypto_sign_secretkey)
927 	ZEND_FE(sodium_crypto_sign_publickey_from_secretkey, arginfo_sodium_crypto_sign_publickey_from_secretkey)
928 	ZEND_FE(sodium_crypto_sign_seed_keypair, arginfo_sodium_crypto_sign_seed_keypair)
929 	ZEND_FE(sodium_crypto_sign_verify_detached, arginfo_sodium_crypto_sign_verify_detached)
930 	ZEND_FE(sodium_crypto_stream, arginfo_sodium_crypto_stream)
931 	ZEND_FE(sodium_crypto_stream_keygen, arginfo_sodium_crypto_stream_keygen)
932 	ZEND_FE(sodium_crypto_stream_xor, arginfo_sodium_crypto_stream_xor)
933 #if defined(crypto_stream_xchacha20_KEYBYTES)
934 	ZEND_FE(sodium_crypto_stream_xchacha20, arginfo_sodium_crypto_stream_xchacha20)
935 #endif
936 #if defined(crypto_stream_xchacha20_KEYBYTES)
937 	ZEND_FE(sodium_crypto_stream_xchacha20_keygen, arginfo_sodium_crypto_stream_xchacha20_keygen)
938 #endif
939 #if defined(crypto_stream_xchacha20_KEYBYTES)
940 	ZEND_FE(sodium_crypto_stream_xchacha20_xor, arginfo_sodium_crypto_stream_xchacha20_xor)
941 #endif
942 #if defined(crypto_stream_xchacha20_KEYBYTES)
943 	ZEND_FE(sodium_crypto_stream_xchacha20_xor_ic, arginfo_sodium_crypto_stream_xchacha20_xor_ic)
944 #endif
945 	ZEND_FE(sodium_add, arginfo_sodium_add)
946 	ZEND_FE(sodium_compare, arginfo_sodium_compare)
947 	ZEND_FE(sodium_increment, arginfo_sodium_increment)
948 	ZEND_FE(sodium_memcmp, arginfo_sodium_memcmp)
949 	ZEND_FE(sodium_memzero, arginfo_sodium_memzero)
950 	ZEND_FE(sodium_pad, arginfo_sodium_pad)
951 	ZEND_FE(sodium_unpad, arginfo_sodium_unpad)
952 	ZEND_FE(sodium_bin2hex, arginfo_sodium_bin2hex)
953 	ZEND_FE(sodium_hex2bin, arginfo_sodium_hex2bin)
954 #if defined(sodium_base64_VARIANT_ORIGINAL)
955 	ZEND_FE(sodium_bin2base64, arginfo_sodium_bin2base64)
956 #endif
957 #if defined(sodium_base64_VARIANT_ORIGINAL)
958 	ZEND_FE(sodium_base642bin, arginfo_sodium_base642bin)
959 #endif
960 	ZEND_FALIAS(sodium_crypto_scalarmult_base, sodium_crypto_box_publickey_from_secretkey, arginfo_sodium_crypto_scalarmult_base)
961 	ZEND_FE_END
962 };
963 
964 
965 static const zend_function_entry class_SodiumException_methods[] = {
966 	ZEND_FE_END
967 };
968 
register_libsodium_symbols(int module_number)969 static void register_libsodium_symbols(int module_number)
970 {
971 	REGISTER_STRING_CONSTANT("SODIUM_LIBRARY_VERSION", SODIUM_LIBRARY_VERSION(), CONST_PERSISTENT);
972 	REGISTER_LONG_CONSTANT("SODIUM_LIBRARY_MAJOR_VERSION", sodium_library_version_major(), CONST_PERSISTENT);
973 	REGISTER_LONG_CONSTANT("SODIUM_LIBRARY_MINOR_VERSION", sodium_library_version_minor(), CONST_PERSISTENT);
974 #if defined(HAVE_AESGCM)
975 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES", crypto_aead_aes256gcm_KEYBYTES, CONST_PERSISTENT);
976 #endif
977 #if defined(HAVE_AESGCM)
978 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES", crypto_aead_aes256gcm_NSECBYTES, CONST_PERSISTENT);
979 #endif
980 #if defined(HAVE_AESGCM)
981 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES", crypto_aead_aes256gcm_NPUBBYTES, CONST_PERSISTENT);
982 #endif
983 #if defined(HAVE_AESGCM)
984 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES", crypto_aead_aes256gcm_ABYTES, CONST_PERSISTENT);
985 #endif
986 #if defined(crypto_aead_aegis128l_KEYBYTES)
987 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES", crypto_aead_aegis128l_KEYBYTES, CONST_PERSISTENT);
988 #endif
989 #if defined(crypto_aead_aegis128l_KEYBYTES)
990 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES", crypto_aead_aegis128l_NSECBYTES, CONST_PERSISTENT);
991 #endif
992 #if defined(crypto_aead_aegis128l_KEYBYTES)
993 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES", crypto_aead_aegis128l_NPUBBYTES, CONST_PERSISTENT);
994 #endif
995 #if defined(crypto_aead_aegis128l_KEYBYTES)
996 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_ABYTES", crypto_aead_aegis128l_ABYTES, CONST_PERSISTENT);
997 #endif
998 #if defined(crypto_aead_aegis256_KEYBYTES)
999 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES", crypto_aead_aegis256_KEYBYTES, CONST_PERSISTENT);
1000 #endif
1001 #if defined(crypto_aead_aegis256_KEYBYTES)
1002 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES", crypto_aead_aegis256_NSECBYTES, CONST_PERSISTENT);
1003 #endif
1004 #if defined(crypto_aead_aegis256_KEYBYTES)
1005 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES", crypto_aead_aegis256_NPUBBYTES, CONST_PERSISTENT);
1006 #endif
1007 #if defined(crypto_aead_aegis256_KEYBYTES)
1008 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES", crypto_aead_aegis256_ABYTES, CONST_PERSISTENT);
1009 #endif
1010 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES", crypto_aead_chacha20poly1305_KEYBYTES, CONST_PERSISTENT);
1011 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES", crypto_aead_chacha20poly1305_NSECBYTES, CONST_PERSISTENT);
1012 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES", crypto_aead_chacha20poly1305_NPUBBYTES, CONST_PERSISTENT);
1013 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES", crypto_aead_chacha20poly1305_ABYTES, CONST_PERSISTENT);
1014 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES", crypto_aead_chacha20poly1305_IETF_KEYBYTES, CONST_PERSISTENT);
1015 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES", crypto_aead_chacha20poly1305_IETF_NSECBYTES, CONST_PERSISTENT);
1016 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES", crypto_aead_chacha20poly1305_IETF_NPUBBYTES, CONST_PERSISTENT);
1017 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES", crypto_aead_chacha20poly1305_IETF_ABYTES, CONST_PERSISTENT);
1018 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1019 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES", crypto_aead_xchacha20poly1305_IETF_KEYBYTES, CONST_PERSISTENT);
1020 #endif
1021 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1022 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NSECBYTES", crypto_aead_xchacha20poly1305_IETF_NSECBYTES, CONST_PERSISTENT);
1023 #endif
1024 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1025 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES", crypto_aead_xchacha20poly1305_IETF_NPUBBYTES, CONST_PERSISTENT);
1026 #endif
1027 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1028 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES", crypto_aead_xchacha20poly1305_IETF_ABYTES, CONST_PERSISTENT);
1029 #endif
1030 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AUTH_BYTES", crypto_auth_BYTES, CONST_PERSISTENT);
1031 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AUTH_KEYBYTES", crypto_auth_KEYBYTES, CONST_PERSISTENT);
1032 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_SEALBYTES", crypto_box_SEALBYTES, CONST_PERSISTENT);
1033 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_SECRETKEYBYTES", crypto_box_SECRETKEYBYTES, CONST_PERSISTENT);
1034 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_PUBLICKEYBYTES", crypto_box_PUBLICKEYBYTES, CONST_PERSISTENT);
1035 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_KEYPAIRBYTES", SODIUM_CRYPTO_BOX_KEYPAIRBYTES(), CONST_PERSISTENT);
1036 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_MACBYTES", crypto_box_MACBYTES, CONST_PERSISTENT);
1037 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_NONCEBYTES", crypto_box_NONCEBYTES, CONST_PERSISTENT);
1038 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_SEEDBYTES", crypto_box_SEEDBYTES, CONST_PERSISTENT);
1039 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_BYTES_MIN", crypto_kdf_BYTES_MIN, CONST_PERSISTENT);
1040 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_BYTES_MAX", crypto_kdf_BYTES_MAX, CONST_PERSISTENT);
1041 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_CONTEXTBYTES", crypto_kdf_CONTEXTBYTES, CONST_PERSISTENT);
1042 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_KEYBYTES", crypto_kdf_KEYBYTES, CONST_PERSISTENT);
1043 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_SEEDBYTES", crypto_kx_SEEDBYTES, CONST_PERSISTENT);
1044 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_SESSIONKEYBYTES", crypto_kx_SESSIONKEYBYTES, CONST_PERSISTENT);
1045 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_PUBLICKEYBYTES", crypto_kx_PUBLICKEYBYTES, CONST_PERSISTENT);
1046 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_SECRETKEYBYTES", crypto_kx_SECRETKEYBYTES, CONST_PERSISTENT);
1047 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_KEYPAIRBYTES", SODIUM_CRYPTO_KX_KEYPAIRBYTES(), CONST_PERSISTENT);
1048 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1049 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES", crypto_secretstream_xchacha20poly1305_ABYTES, CONST_PERSISTENT);
1050 #endif
1051 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1052 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES", crypto_secretstream_xchacha20poly1305_HEADERBYTES, CONST_PERSISTENT);
1053 #endif
1054 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1055 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_KEYBYTES", crypto_secretstream_xchacha20poly1305_KEYBYTES, CONST_PERSISTENT);
1056 #endif
1057 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1058 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX", crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX, CONST_PERSISTENT);
1059 #endif
1060 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1061 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE", crypto_secretstream_xchacha20poly1305_TAG_MESSAGE, CONST_PERSISTENT);
1062 #endif
1063 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1064 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH", crypto_secretstream_xchacha20poly1305_TAG_PUSH, CONST_PERSISTENT);
1065 #endif
1066 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1067 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY", crypto_secretstream_xchacha20poly1305_TAG_REKEY, CONST_PERSISTENT);
1068 #endif
1069 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1070 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL", crypto_secretstream_xchacha20poly1305_TAG_FINAL, CONST_PERSISTENT);
1071 #endif
1072 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_BYTES", crypto_generichash_BYTES, CONST_PERSISTENT);
1073 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_BYTES_MIN", crypto_generichash_BYTES_MIN, CONST_PERSISTENT);
1074 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_BYTES_MAX", crypto_generichash_BYTES_MAX, CONST_PERSISTENT);
1075 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_KEYBYTES", crypto_generichash_KEYBYTES, CONST_PERSISTENT);
1076 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN", crypto_generichash_KEYBYTES_MIN, CONST_PERSISTENT);
1077 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX", crypto_generichash_KEYBYTES_MAX, CONST_PERSISTENT);
1078 #if defined(crypto_pwhash_SALTBYTES)
1079 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13", crypto_pwhash_ALG_ARGON2I13, CONST_PERSISTENT);
1080 #endif
1081 #if defined(crypto_pwhash_SALTBYTES) && defined(crypto_pwhash_ALG_ARGON2ID13)
1082 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13", crypto_pwhash_ALG_ARGON2ID13, CONST_PERSISTENT);
1083 #endif
1084 #if defined(crypto_pwhash_SALTBYTES)
1085 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_ALG_DEFAULT", crypto_pwhash_ALG_DEFAULT, CONST_PERSISTENT);
1086 #endif
1087 #if defined(crypto_pwhash_SALTBYTES)
1088 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SALTBYTES", crypto_pwhash_SALTBYTES, CONST_PERSISTENT);
1089 #endif
1090 #if defined(crypto_pwhash_SALTBYTES)
1091 	REGISTER_STRING_CONSTANT("SODIUM_CRYPTO_PWHASH_STRPREFIX", crypto_pwhash_STRPREFIX, CONST_PERSISTENT);
1092 #endif
1093 #if defined(crypto_pwhash_SALTBYTES)
1094 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE", crypto_pwhash_opslimit_interactive(), CONST_PERSISTENT);
1095 #endif
1096 #if defined(crypto_pwhash_SALTBYTES)
1097 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE", crypto_pwhash_memlimit_interactive(), CONST_PERSISTENT);
1098 #endif
1099 #if defined(crypto_pwhash_SALTBYTES)
1100 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE", crypto_pwhash_opslimit_moderate(), CONST_PERSISTENT);
1101 #endif
1102 #if defined(crypto_pwhash_SALTBYTES)
1103 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE", crypto_pwhash_memlimit_moderate(), CONST_PERSISTENT);
1104 #endif
1105 #if defined(crypto_pwhash_SALTBYTES)
1106 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE", crypto_pwhash_opslimit_sensitive(), CONST_PERSISTENT);
1107 #endif
1108 #if defined(crypto_pwhash_SALTBYTES)
1109 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE", crypto_pwhash_memlimit_sensitive(), CONST_PERSISTENT);
1110 #endif
1111 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1112 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES", crypto_pwhash_scryptsalsa208sha256_SALTBYTES, CONST_PERSISTENT);
1113 #endif
1114 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1115 	REGISTER_STRING_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX", crypto_pwhash_scryptsalsa208sha256_STRPREFIX, CONST_PERSISTENT);
1116 #endif
1117 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1118 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE", crypto_pwhash_scryptsalsa208sha256_opslimit_interactive(), CONST_PERSISTENT);
1119 #endif
1120 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1121 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE", crypto_pwhash_scryptsalsa208sha256_memlimit_interactive(), CONST_PERSISTENT);
1122 #endif
1123 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1124 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE", crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(), CONST_PERSISTENT);
1125 #endif
1126 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1127 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE", crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(), CONST_PERSISTENT);
1128 #endif
1129 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_BYTES", crypto_scalarmult_BYTES, CONST_PERSISTENT);
1130 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_SCALARBYTES", crypto_scalarmult_SCALARBYTES, CONST_PERSISTENT);
1131 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SHORTHASH_BYTES", crypto_shorthash_BYTES, CONST_PERSISTENT);
1132 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SHORTHASH_KEYBYTES", crypto_shorthash_KEYBYTES, CONST_PERSISTENT);
1133 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETBOX_KEYBYTES", crypto_secretbox_KEYBYTES, CONST_PERSISTENT);
1134 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETBOX_MACBYTES", crypto_secretbox_MACBYTES, CONST_PERSISTENT);
1135 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETBOX_NONCEBYTES", crypto_secretbox_NONCEBYTES, CONST_PERSISTENT);
1136 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_BYTES", crypto_sign_BYTES, CONST_PERSISTENT);
1137 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_SEEDBYTES", crypto_sign_SEEDBYTES, CONST_PERSISTENT);
1138 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES", crypto_sign_PUBLICKEYBYTES, CONST_PERSISTENT);
1139 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_SECRETKEYBYTES", crypto_sign_SECRETKEYBYTES, CONST_PERSISTENT);
1140 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_KEYPAIRBYTES", SODIUM_CRYPTO_SIGN_KEYPAIRBYTES(), CONST_PERSISTENT);
1141 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_NONCEBYTES", crypto_stream_NONCEBYTES, CONST_PERSISTENT);
1142 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_KEYBYTES", crypto_stream_KEYBYTES, CONST_PERSISTENT);
1143 #if defined(crypto_stream_xchacha20_KEYBYTES)
1144 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES", crypto_stream_xchacha20_NONCEBYTES, CONST_PERSISTENT);
1145 #endif
1146 #if defined(crypto_stream_xchacha20_KEYBYTES)
1147 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES", crypto_stream_xchacha20_KEYBYTES, CONST_PERSISTENT);
1148 #endif
1149 #if defined(sodium_base64_VARIANT_ORIGINAL)
1150 	REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_ORIGINAL", sodium_base64_VARIANT_ORIGINAL, CONST_PERSISTENT);
1151 #endif
1152 #if defined(sodium_base64_VARIANT_ORIGINAL)
1153 	REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING", sodium_base64_VARIANT_ORIGINAL_NO_PADDING, CONST_PERSISTENT);
1154 #endif
1155 #if defined(sodium_base64_VARIANT_ORIGINAL)
1156 	REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_URLSAFE", sodium_base64_VARIANT_URLSAFE, CONST_PERSISTENT);
1157 #endif
1158 #if defined(sodium_base64_VARIANT_ORIGINAL)
1159 	REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING", sodium_base64_VARIANT_URLSAFE_NO_PADDING, CONST_PERSISTENT);
1160 #endif
1161 #if defined(crypto_core_ristretto255_HASHBYTES)
1162 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES", crypto_scalarmult_ristretto255_BYTES, CONST_PERSISTENT);
1163 #endif
1164 #if defined(crypto_core_ristretto255_HASHBYTES)
1165 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES", crypto_scalarmult_ristretto255_SCALARBYTES, CONST_PERSISTENT);
1166 #endif
1167 #if defined(crypto_core_ristretto255_HASHBYTES)
1168 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES", crypto_core_ristretto255_BYTES, CONST_PERSISTENT);
1169 #endif
1170 #if defined(crypto_core_ristretto255_HASHBYTES)
1171 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES", crypto_core_ristretto255_HASHBYTES, CONST_PERSISTENT);
1172 #endif
1173 #if defined(crypto_core_ristretto255_HASHBYTES)
1174 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES", crypto_core_ristretto255_SCALARBYTES, CONST_PERSISTENT);
1175 #endif
1176 #if defined(crypto_core_ristretto255_HASHBYTES)
1177 	REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES", crypto_core_ristretto255_NONREDUCEDSCALARBYTES, CONST_PERSISTENT);
1178 #endif
1179 
1180 #if defined(HAVE_AESGCM)
1181 
1182 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aes256gcm_decrypt", sizeof("sodium_crypto_aead_aes256gcm_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1183 #endif
1184 #if defined(HAVE_AESGCM)
1185 
1186 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aes256gcm_encrypt", sizeof("sodium_crypto_aead_aes256gcm_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1187 
1188 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aes256gcm_encrypt", sizeof("sodium_crypto_aead_aes256gcm_encrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1189 #endif
1190 #if defined(crypto_aead_aegis128l_KEYBYTES)
1191 
1192 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aegis128l_decrypt", sizeof("sodium_crypto_aead_aegis128l_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1193 #endif
1194 #if defined(crypto_aead_aegis128l_KEYBYTES)
1195 
1196 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aegis128l_encrypt", sizeof("sodium_crypto_aead_aegis128l_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1197 
1198 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aegis128l_encrypt", sizeof("sodium_crypto_aead_aegis128l_encrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1199 #endif
1200 #if defined(crypto_aead_aegis256_KEYBYTES)
1201 
1202 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aegis256_decrypt", sizeof("sodium_crypto_aead_aegis256_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1203 #endif
1204 #if defined(crypto_aead_aegis256_KEYBYTES)
1205 
1206 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aegis256_encrypt", sizeof("sodium_crypto_aead_aegis256_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1207 
1208 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_aegis256_encrypt", sizeof("sodium_crypto_aead_aegis256_encrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1209 #endif
1210 
1211 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_chacha20poly1305_decrypt", sizeof("sodium_crypto_aead_chacha20poly1305_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1212 
1213 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_chacha20poly1305_encrypt", sizeof("sodium_crypto_aead_chacha20poly1305_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1214 
1215 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_chacha20poly1305_encrypt", sizeof("sodium_crypto_aead_chacha20poly1305_encrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1216 
1217 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_chacha20poly1305_ietf_decrypt", sizeof("sodium_crypto_aead_chacha20poly1305_ietf_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1218 
1219 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_chacha20poly1305_ietf_encrypt", sizeof("sodium_crypto_aead_chacha20poly1305_ietf_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1220 
1221 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_chacha20poly1305_ietf_encrypt", sizeof("sodium_crypto_aead_chacha20poly1305_ietf_encrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1222 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1223 
1224 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_xchacha20poly1305_ietf_decrypt", sizeof("sodium_crypto_aead_xchacha20poly1305_ietf_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1225 #endif
1226 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1227 
1228 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_xchacha20poly1305_ietf_encrypt", sizeof("sodium_crypto_aead_xchacha20poly1305_ietf_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1229 
1230 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_aead_xchacha20poly1305_ietf_encrypt", sizeof("sodium_crypto_aead_xchacha20poly1305_ietf_encrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1231 #endif
1232 
1233 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_auth", sizeof("sodium_crypto_auth") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1234 
1235 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_auth_verify", sizeof("sodium_crypto_auth_verify") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1236 
1237 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box", sizeof("sodium_crypto_box") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1238 
1239 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box", sizeof("sodium_crypto_box") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1240 
1241 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_seed_keypair", sizeof("sodium_crypto_box_seed_keypair") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1242 
1243 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_keypair_from_secretkey_and_publickey", sizeof("sodium_crypto_box_keypair_from_secretkey_and_publickey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1244 
1245 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_open", sizeof("sodium_crypto_box_open") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1246 
1247 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_publickey", sizeof("sodium_crypto_box_publickey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1248 
1249 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_publickey_from_secretkey", sizeof("sodium_crypto_box_publickey_from_secretkey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1250 
1251 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_seal", sizeof("sodium_crypto_box_seal") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1252 
1253 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_seal_open", sizeof("sodium_crypto_box_seal_open") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1254 
1255 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_box_secretkey", sizeof("sodium_crypto_box_secretkey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1256 
1257 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_kx_publickey", sizeof("sodium_crypto_kx_publickey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1258 
1259 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_kx_secretkey", sizeof("sodium_crypto_kx_secretkey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1260 
1261 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_kx_seed_keypair", sizeof("sodium_crypto_kx_seed_keypair") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1262 
1263 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_kx_client_session_keys", sizeof("sodium_crypto_kx_client_session_keys") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1264 
1265 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_kx_server_session_keys", sizeof("sodium_crypto_kx_server_session_keys") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1266 
1267 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_generichash", sizeof("sodium_crypto_generichash") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1268 
1269 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_generichash_init", sizeof("sodium_crypto_generichash_init") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1270 
1271 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_kdf_derive_from_key", sizeof("sodium_crypto_kdf_derive_from_key") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1272 #if defined(crypto_pwhash_SALTBYTES)
1273 
1274 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_pwhash", sizeof("sodium_crypto_pwhash") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1275 #endif
1276 #if defined(crypto_pwhash_SALTBYTES)
1277 
1278 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_pwhash_str", sizeof("sodium_crypto_pwhash_str") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1279 #endif
1280 #if defined(crypto_pwhash_SALTBYTES)
1281 
1282 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_pwhash_str_verify", sizeof("sodium_crypto_pwhash_str_verify") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1283 #endif
1284 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1285 
1286 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_pwhash_scryptsalsa208sha256", sizeof("sodium_crypto_pwhash_scryptsalsa208sha256") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1287 #endif
1288 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1289 
1290 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_pwhash_scryptsalsa208sha256_str", sizeof("sodium_crypto_pwhash_scryptsalsa208sha256_str") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1291 #endif
1292 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1293 
1294 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_pwhash_scryptsalsa208sha256_str_verify", sizeof("sodium_crypto_pwhash_scryptsalsa208sha256_str_verify") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1295 #endif
1296 
1297 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_secretbox", sizeof("sodium_crypto_secretbox") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1298 
1299 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_secretbox", sizeof("sodium_crypto_secretbox") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1300 
1301 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_secretbox_open", sizeof("sodium_crypto_secretbox_open") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1302 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1303 
1304 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_secretstream_xchacha20poly1305_init_push", sizeof("sodium_crypto_secretstream_xchacha20poly1305_init_push") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1305 #endif
1306 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1307 
1308 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_secretstream_xchacha20poly1305_push", sizeof("sodium_crypto_secretstream_xchacha20poly1305_push") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1309 #endif
1310 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1311 
1312 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_secretstream_xchacha20poly1305_init_pull", sizeof("sodium_crypto_secretstream_xchacha20poly1305_init_pull") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1313 #endif
1314 
1315 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_shorthash", sizeof("sodium_crypto_shorthash") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1316 
1317 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign", sizeof("sodium_crypto_sign") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1318 
1319 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_detached", sizeof("sodium_crypto_sign_detached") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1320 
1321 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_ed25519_sk_to_curve25519", sizeof("sodium_crypto_sign_ed25519_sk_to_curve25519") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1322 
1323 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_keypair_from_secretkey_and_publickey", sizeof("sodium_crypto_sign_keypair_from_secretkey_and_publickey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1324 
1325 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_publickey", sizeof("sodium_crypto_sign_publickey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1326 
1327 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_secretkey", sizeof("sodium_crypto_sign_secretkey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1328 
1329 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_publickey_from_secretkey", sizeof("sodium_crypto_sign_publickey_from_secretkey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1330 
1331 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_sign_seed_keypair", sizeof("sodium_crypto_sign_seed_keypair") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1332 
1333 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream", sizeof("sodium_crypto_stream") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1334 
1335 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xor", sizeof("sodium_crypto_stream_xor") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1336 
1337 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xor", sizeof("sodium_crypto_stream_xor") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1338 #if defined(crypto_stream_xchacha20_KEYBYTES)
1339 
1340 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xchacha20", sizeof("sodium_crypto_stream_xchacha20") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1341 #endif
1342 #if defined(crypto_stream_xchacha20_KEYBYTES)
1343 
1344 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xchacha20_xor", sizeof("sodium_crypto_stream_xchacha20_xor") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1345 
1346 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xchacha20_xor", sizeof("sodium_crypto_stream_xchacha20_xor") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1347 #endif
1348 #if defined(crypto_stream_xchacha20_KEYBYTES)
1349 
1350 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xchacha20_xor_ic", sizeof("sodium_crypto_stream_xchacha20_xor_ic") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1351 
1352 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_stream_xchacha20_xor_ic", sizeof("sodium_crypto_stream_xchacha20_xor_ic") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1353 #endif
1354 
1355 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_compare", sizeof("sodium_compare") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1356 
1357 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_compare", sizeof("sodium_compare") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1358 
1359 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_memcmp", sizeof("sodium_memcmp") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1360 
1361 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_memcmp", sizeof("sodium_memcmp") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1362 
1363 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_memzero", sizeof("sodium_memzero") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1364 
1365 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_pad", sizeof("sodium_pad") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1366 
1367 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_unpad", sizeof("sodium_unpad") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1368 
1369 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_bin2hex", sizeof("sodium_bin2hex") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1370 
1371 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_hex2bin", sizeof("sodium_hex2bin") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1372 #if defined(sodium_base64_VARIANT_ORIGINAL)
1373 
1374 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_bin2base64", sizeof("sodium_bin2base64") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1375 #endif
1376 #if defined(sodium_base64_VARIANT_ORIGINAL)
1377 
1378 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_base642bin", sizeof("sodium_base642bin") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1379 #endif
1380 
1381 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "sodium_crypto_scalarmult_base", sizeof("sodium_crypto_scalarmult_base") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
1382 }
1383 
register_class_SodiumException(zend_class_entry * class_entry_Exception)1384 static zend_class_entry *register_class_SodiumException(zend_class_entry *class_entry_Exception)
1385 {
1386 	zend_class_entry ce, *class_entry;
1387 
1388 	INIT_CLASS_ENTRY(ce, "SodiumException", class_SodiumException_methods);
1389 	class_entry = zend_register_internal_class_ex(&ce, class_entry_Exception);
1390 
1391 	return class_entry;
1392 }
1393