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 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_is_available);
555 #if defined(HAVE_AESGCM)
556 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_decrypt);
557 #endif
558 #if defined(HAVE_AESGCM)
559 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_encrypt);
560 #endif
561 #if defined(HAVE_AESGCM)
562 ZEND_FUNCTION(sodium_crypto_aead_aes256gcm_keygen);
563 #endif
564 #if defined(crypto_aead_aegis128l_KEYBYTES)
565 ZEND_FUNCTION(sodium_crypto_aead_aegis128l_decrypt);
566 #endif
567 #if defined(crypto_aead_aegis128l_KEYBYTES)
568 ZEND_FUNCTION(sodium_crypto_aead_aegis128l_encrypt);
569 #endif
570 #if defined(crypto_aead_aegis128l_KEYBYTES)
571 ZEND_FUNCTION(sodium_crypto_aead_aegis128l_keygen);
572 #endif
573 #if defined(crypto_aead_aegis256_KEYBYTES)
574 ZEND_FUNCTION(sodium_crypto_aead_aegis256_decrypt);
575 #endif
576 #if defined(crypto_aead_aegis256_KEYBYTES)
577 ZEND_FUNCTION(sodium_crypto_aead_aegis256_encrypt);
578 #endif
579 #if defined(crypto_aead_aegis256_KEYBYTES)
580 ZEND_FUNCTION(sodium_crypto_aead_aegis256_keygen);
581 #endif
582 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_decrypt);
583 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_encrypt);
584 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_keygen);
585 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_decrypt);
586 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_encrypt);
587 ZEND_FUNCTION(sodium_crypto_aead_chacha20poly1305_ietf_keygen);
588 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
589 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_decrypt);
590 #endif
591 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
592 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_keygen);
593 #endif
594 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
595 ZEND_FUNCTION(sodium_crypto_aead_xchacha20poly1305_ietf_encrypt);
596 #endif
597 ZEND_FUNCTION(sodium_crypto_auth);
598 ZEND_FUNCTION(sodium_crypto_auth_keygen);
599 ZEND_FUNCTION(sodium_crypto_auth_verify);
600 ZEND_FUNCTION(sodium_crypto_box);
601 ZEND_FUNCTION(sodium_crypto_box_keypair);
602 ZEND_FUNCTION(sodium_crypto_box_seed_keypair);
603 ZEND_FUNCTION(sodium_crypto_box_keypair_from_secretkey_and_publickey);
604 ZEND_FUNCTION(sodium_crypto_box_open);
605 ZEND_FUNCTION(sodium_crypto_box_publickey);
606 ZEND_FUNCTION(sodium_crypto_box_publickey_from_secretkey);
607 ZEND_FUNCTION(sodium_crypto_box_seal);
608 ZEND_FUNCTION(sodium_crypto_box_seal_open);
609 ZEND_FUNCTION(sodium_crypto_box_secretkey);
610 #if defined(crypto_core_ristretto255_HASHBYTES)
611 ZEND_FUNCTION(sodium_crypto_core_ristretto255_add);
612 #endif
613 #if defined(crypto_core_ristretto255_HASHBYTES)
614 ZEND_FUNCTION(sodium_crypto_core_ristretto255_from_hash);
615 #endif
616 #if defined(crypto_core_ristretto255_HASHBYTES)
617 ZEND_FUNCTION(sodium_crypto_core_ristretto255_is_valid_point);
618 #endif
619 #if defined(crypto_core_ristretto255_HASHBYTES)
620 ZEND_FUNCTION(sodium_crypto_core_ristretto255_random);
621 #endif
622 #if defined(crypto_core_ristretto255_HASHBYTES)
623 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_add);
624 #endif
625 #if defined(crypto_core_ristretto255_HASHBYTES)
626 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_complement);
627 #endif
628 #if defined(crypto_core_ristretto255_HASHBYTES)
629 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_invert);
630 #endif
631 #if defined(crypto_core_ristretto255_HASHBYTES)
632 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_mul);
633 #endif
634 #if defined(crypto_core_ristretto255_HASHBYTES)
635 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_negate);
636 #endif
637 #if defined(crypto_core_ristretto255_HASHBYTES)
638 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_random);
639 #endif
640 #if defined(crypto_core_ristretto255_HASHBYTES)
641 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_reduce);
642 #endif
643 #if defined(crypto_core_ristretto255_HASHBYTES)
644 ZEND_FUNCTION(sodium_crypto_core_ristretto255_scalar_sub);
645 #endif
646 #if defined(crypto_core_ristretto255_HASHBYTES)
647 ZEND_FUNCTION(sodium_crypto_core_ristretto255_sub);
648 #endif
649 ZEND_FUNCTION(sodium_crypto_kx_keypair);
650 ZEND_FUNCTION(sodium_crypto_kx_publickey);
651 ZEND_FUNCTION(sodium_crypto_kx_secretkey);
652 ZEND_FUNCTION(sodium_crypto_kx_seed_keypair);
653 ZEND_FUNCTION(sodium_crypto_kx_client_session_keys);
654 ZEND_FUNCTION(sodium_crypto_kx_server_session_keys);
655 ZEND_FUNCTION(sodium_crypto_generichash);
656 ZEND_FUNCTION(sodium_crypto_generichash_keygen);
657 ZEND_FUNCTION(sodium_crypto_generichash_init);
658 ZEND_FUNCTION(sodium_crypto_generichash_update);
659 ZEND_FUNCTION(sodium_crypto_generichash_final);
660 ZEND_FUNCTION(sodium_crypto_kdf_derive_from_key);
661 ZEND_FUNCTION(sodium_crypto_kdf_keygen);
662 #if defined(crypto_pwhash_SALTBYTES)
663 ZEND_FUNCTION(sodium_crypto_pwhash);
664 #endif
665 #if defined(crypto_pwhash_SALTBYTES)
666 ZEND_FUNCTION(sodium_crypto_pwhash_str);
667 #endif
668 #if defined(crypto_pwhash_SALTBYTES)
669 ZEND_FUNCTION(sodium_crypto_pwhash_str_verify);
670 #endif
671 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
672 ZEND_FUNCTION(sodium_crypto_pwhash_str_needs_rehash);
673 #endif
674 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
675 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256);
676 #endif
677 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
678 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str);
679 #endif
680 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
681 ZEND_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify);
682 #endif
683 ZEND_FUNCTION(sodium_crypto_scalarmult);
684 #if defined(crypto_core_ristretto255_HASHBYTES)
685 ZEND_FUNCTION(sodium_crypto_scalarmult_ristretto255);
686 #endif
687 #if defined(crypto_core_ristretto255_HASHBYTES)
688 ZEND_FUNCTION(sodium_crypto_scalarmult_ristretto255_base);
689 #endif
690 ZEND_FUNCTION(sodium_crypto_secretbox);
691 ZEND_FUNCTION(sodium_crypto_secretbox_keygen);
692 ZEND_FUNCTION(sodium_crypto_secretbox_open);
693 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
694 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_keygen);
695 #endif
696 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
697 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_init_push);
698 #endif
699 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
700 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_push);
701 #endif
702 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
703 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_init_pull);
704 #endif
705 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
706 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_pull);
707 #endif
708 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
709 ZEND_FUNCTION(sodium_crypto_secretstream_xchacha20poly1305_rekey);
710 #endif
711 ZEND_FUNCTION(sodium_crypto_shorthash);
712 ZEND_FUNCTION(sodium_crypto_shorthash_keygen);
713 ZEND_FUNCTION(sodium_crypto_sign);
714 ZEND_FUNCTION(sodium_crypto_sign_detached);
715 ZEND_FUNCTION(sodium_crypto_sign_ed25519_pk_to_curve25519);
716 ZEND_FUNCTION(sodium_crypto_sign_ed25519_sk_to_curve25519);
717 ZEND_FUNCTION(sodium_crypto_sign_keypair);
718 ZEND_FUNCTION(sodium_crypto_sign_keypair_from_secretkey_and_publickey);
719 ZEND_FUNCTION(sodium_crypto_sign_open);
720 ZEND_FUNCTION(sodium_crypto_sign_publickey);
721 ZEND_FUNCTION(sodium_crypto_sign_secretkey);
722 ZEND_FUNCTION(sodium_crypto_sign_publickey_from_secretkey);
723 ZEND_FUNCTION(sodium_crypto_sign_seed_keypair);
724 ZEND_FUNCTION(sodium_crypto_sign_verify_detached);
725 ZEND_FUNCTION(sodium_crypto_stream);
726 ZEND_FUNCTION(sodium_crypto_stream_keygen);
727 ZEND_FUNCTION(sodium_crypto_stream_xor);
728 #if defined(crypto_stream_xchacha20_KEYBYTES)
729 ZEND_FUNCTION(sodium_crypto_stream_xchacha20);
730 #endif
731 #if defined(crypto_stream_xchacha20_KEYBYTES)
732 ZEND_FUNCTION(sodium_crypto_stream_xchacha20_keygen);
733 #endif
734 #if defined(crypto_stream_xchacha20_KEYBYTES)
735 ZEND_FUNCTION(sodium_crypto_stream_xchacha20_xor);
736 #endif
737 #if defined(crypto_stream_xchacha20_KEYBYTES)
738 ZEND_FUNCTION(sodium_crypto_stream_xchacha20_xor_ic);
739 #endif
740 ZEND_FUNCTION(sodium_add);
741 ZEND_FUNCTION(sodium_compare);
742 ZEND_FUNCTION(sodium_increment);
743 ZEND_FUNCTION(sodium_memcmp);
744 ZEND_FUNCTION(sodium_memzero);
745 ZEND_FUNCTION(sodium_pad);
746 ZEND_FUNCTION(sodium_unpad);
747 ZEND_FUNCTION(sodium_bin2hex);
748 ZEND_FUNCTION(sodium_hex2bin);
749 #if defined(sodium_base64_VARIANT_ORIGINAL)
750 ZEND_FUNCTION(sodium_bin2base64);
751 #endif
752 #if defined(sodium_base64_VARIANT_ORIGINAL)
753 ZEND_FUNCTION(sodium_base642bin);
754 #endif
755
756 static const zend_function_entry ext_functions[] = {
757 ZEND_FE(sodium_crypto_aead_aes256gcm_is_available, arginfo_sodium_crypto_aead_aes256gcm_is_available)
758 #if defined(HAVE_AESGCM)
759 ZEND_FE(sodium_crypto_aead_aes256gcm_decrypt, arginfo_sodium_crypto_aead_aes256gcm_decrypt)
760 #endif
761 #if defined(HAVE_AESGCM)
762 ZEND_FE(sodium_crypto_aead_aes256gcm_encrypt, arginfo_sodium_crypto_aead_aes256gcm_encrypt)
763 #endif
764 #if defined(HAVE_AESGCM)
765 ZEND_FE(sodium_crypto_aead_aes256gcm_keygen, arginfo_sodium_crypto_aead_aes256gcm_keygen)
766 #endif
767 #if defined(crypto_aead_aegis128l_KEYBYTES)
768 ZEND_FE(sodium_crypto_aead_aegis128l_decrypt, arginfo_sodium_crypto_aead_aegis128l_decrypt)
769 #endif
770 #if defined(crypto_aead_aegis128l_KEYBYTES)
771 ZEND_FE(sodium_crypto_aead_aegis128l_encrypt, arginfo_sodium_crypto_aead_aegis128l_encrypt)
772 #endif
773 #if defined(crypto_aead_aegis128l_KEYBYTES)
774 ZEND_FE(sodium_crypto_aead_aegis128l_keygen, arginfo_sodium_crypto_aead_aegis128l_keygen)
775 #endif
776 #if defined(crypto_aead_aegis256_KEYBYTES)
777 ZEND_FE(sodium_crypto_aead_aegis256_decrypt, arginfo_sodium_crypto_aead_aegis256_decrypt)
778 #endif
779 #if defined(crypto_aead_aegis256_KEYBYTES)
780 ZEND_FE(sodium_crypto_aead_aegis256_encrypt, arginfo_sodium_crypto_aead_aegis256_encrypt)
781 #endif
782 #if defined(crypto_aead_aegis256_KEYBYTES)
783 ZEND_FE(sodium_crypto_aead_aegis256_keygen, arginfo_sodium_crypto_aead_aegis256_keygen)
784 #endif
785 ZEND_FE(sodium_crypto_aead_chacha20poly1305_decrypt, arginfo_sodium_crypto_aead_chacha20poly1305_decrypt)
786 ZEND_FE(sodium_crypto_aead_chacha20poly1305_encrypt, arginfo_sodium_crypto_aead_chacha20poly1305_encrypt)
787 ZEND_FE(sodium_crypto_aead_chacha20poly1305_keygen, arginfo_sodium_crypto_aead_chacha20poly1305_keygen)
788 ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_decrypt, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_decrypt)
789 ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_encrypt, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_encrypt)
790 ZEND_FE(sodium_crypto_aead_chacha20poly1305_ietf_keygen, arginfo_sodium_crypto_aead_chacha20poly1305_ietf_keygen)
791 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
792 ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_decrypt, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_decrypt)
793 #endif
794 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
795 ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_keygen, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_keygen)
796 #endif
797 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
798 ZEND_FE(sodium_crypto_aead_xchacha20poly1305_ietf_encrypt, arginfo_sodium_crypto_aead_xchacha20poly1305_ietf_encrypt)
799 #endif
800 ZEND_FE(sodium_crypto_auth, arginfo_sodium_crypto_auth)
801 ZEND_FE(sodium_crypto_auth_keygen, arginfo_sodium_crypto_auth_keygen)
802 ZEND_FE(sodium_crypto_auth_verify, arginfo_sodium_crypto_auth_verify)
803 ZEND_FE(sodium_crypto_box, arginfo_sodium_crypto_box)
804 ZEND_FE(sodium_crypto_box_keypair, arginfo_sodium_crypto_box_keypair)
805 ZEND_FE(sodium_crypto_box_seed_keypair, arginfo_sodium_crypto_box_seed_keypair)
806 ZEND_FE(sodium_crypto_box_keypair_from_secretkey_and_publickey, arginfo_sodium_crypto_box_keypair_from_secretkey_and_publickey)
807 ZEND_FE(sodium_crypto_box_open, arginfo_sodium_crypto_box_open)
808 ZEND_FE(sodium_crypto_box_publickey, arginfo_sodium_crypto_box_publickey)
809 ZEND_FE(sodium_crypto_box_publickey_from_secretkey, arginfo_sodium_crypto_box_publickey_from_secretkey)
810 ZEND_FE(sodium_crypto_box_seal, arginfo_sodium_crypto_box_seal)
811 ZEND_FE(sodium_crypto_box_seal_open, arginfo_sodium_crypto_box_seal_open)
812 ZEND_FE(sodium_crypto_box_secretkey, arginfo_sodium_crypto_box_secretkey)
813 #if defined(crypto_core_ristretto255_HASHBYTES)
814 ZEND_FE(sodium_crypto_core_ristretto255_add, arginfo_sodium_crypto_core_ristretto255_add)
815 #endif
816 #if defined(crypto_core_ristretto255_HASHBYTES)
817 ZEND_FE(sodium_crypto_core_ristretto255_from_hash, arginfo_sodium_crypto_core_ristretto255_from_hash)
818 #endif
819 #if defined(crypto_core_ristretto255_HASHBYTES)
820 ZEND_FE(sodium_crypto_core_ristretto255_is_valid_point, arginfo_sodium_crypto_core_ristretto255_is_valid_point)
821 #endif
822 #if defined(crypto_core_ristretto255_HASHBYTES)
823 ZEND_FE(sodium_crypto_core_ristretto255_random, arginfo_sodium_crypto_core_ristretto255_random)
824 #endif
825 #if defined(crypto_core_ristretto255_HASHBYTES)
826 ZEND_FE(sodium_crypto_core_ristretto255_scalar_add, arginfo_sodium_crypto_core_ristretto255_scalar_add)
827 #endif
828 #if defined(crypto_core_ristretto255_HASHBYTES)
829 ZEND_FE(sodium_crypto_core_ristretto255_scalar_complement, arginfo_sodium_crypto_core_ristretto255_scalar_complement)
830 #endif
831 #if defined(crypto_core_ristretto255_HASHBYTES)
832 ZEND_FE(sodium_crypto_core_ristretto255_scalar_invert, arginfo_sodium_crypto_core_ristretto255_scalar_invert)
833 #endif
834 #if defined(crypto_core_ristretto255_HASHBYTES)
835 ZEND_FE(sodium_crypto_core_ristretto255_scalar_mul, arginfo_sodium_crypto_core_ristretto255_scalar_mul)
836 #endif
837 #if defined(crypto_core_ristretto255_HASHBYTES)
838 ZEND_FE(sodium_crypto_core_ristretto255_scalar_negate, arginfo_sodium_crypto_core_ristretto255_scalar_negate)
839 #endif
840 #if defined(crypto_core_ristretto255_HASHBYTES)
841 ZEND_FE(sodium_crypto_core_ristretto255_scalar_random, arginfo_sodium_crypto_core_ristretto255_scalar_random)
842 #endif
843 #if defined(crypto_core_ristretto255_HASHBYTES)
844 ZEND_FE(sodium_crypto_core_ristretto255_scalar_reduce, arginfo_sodium_crypto_core_ristretto255_scalar_reduce)
845 #endif
846 #if defined(crypto_core_ristretto255_HASHBYTES)
847 ZEND_FE(sodium_crypto_core_ristretto255_scalar_sub, arginfo_sodium_crypto_core_ristretto255_scalar_sub)
848 #endif
849 #if defined(crypto_core_ristretto255_HASHBYTES)
850 ZEND_FE(sodium_crypto_core_ristretto255_sub, arginfo_sodium_crypto_core_ristretto255_sub)
851 #endif
852 ZEND_FE(sodium_crypto_kx_keypair, arginfo_sodium_crypto_kx_keypair)
853 ZEND_FE(sodium_crypto_kx_publickey, arginfo_sodium_crypto_kx_publickey)
854 ZEND_FE(sodium_crypto_kx_secretkey, arginfo_sodium_crypto_kx_secretkey)
855 ZEND_FE(sodium_crypto_kx_seed_keypair, arginfo_sodium_crypto_kx_seed_keypair)
856 ZEND_FE(sodium_crypto_kx_client_session_keys, arginfo_sodium_crypto_kx_client_session_keys)
857 ZEND_FE(sodium_crypto_kx_server_session_keys, arginfo_sodium_crypto_kx_server_session_keys)
858 ZEND_FE(sodium_crypto_generichash, arginfo_sodium_crypto_generichash)
859 ZEND_FE(sodium_crypto_generichash_keygen, arginfo_sodium_crypto_generichash_keygen)
860 ZEND_FE(sodium_crypto_generichash_init, arginfo_sodium_crypto_generichash_init)
861 ZEND_FE(sodium_crypto_generichash_update, arginfo_sodium_crypto_generichash_update)
862 ZEND_FE(sodium_crypto_generichash_final, arginfo_sodium_crypto_generichash_final)
863 ZEND_FE(sodium_crypto_kdf_derive_from_key, arginfo_sodium_crypto_kdf_derive_from_key)
864 ZEND_FE(sodium_crypto_kdf_keygen, arginfo_sodium_crypto_kdf_keygen)
865 #if defined(crypto_pwhash_SALTBYTES)
866 ZEND_FE(sodium_crypto_pwhash, arginfo_sodium_crypto_pwhash)
867 #endif
868 #if defined(crypto_pwhash_SALTBYTES)
869 ZEND_FE(sodium_crypto_pwhash_str, arginfo_sodium_crypto_pwhash_str)
870 #endif
871 #if defined(crypto_pwhash_SALTBYTES)
872 ZEND_FE(sodium_crypto_pwhash_str_verify, arginfo_sodium_crypto_pwhash_str_verify)
873 #endif
874 #if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
875 ZEND_FE(sodium_crypto_pwhash_str_needs_rehash, arginfo_sodium_crypto_pwhash_str_needs_rehash)
876 #endif
877 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
878 ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256)
879 #endif
880 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
881 ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str)
882 #endif
883 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
884 ZEND_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, arginfo_sodium_crypto_pwhash_scryptsalsa208sha256_str_verify)
885 #endif
886 ZEND_FE(sodium_crypto_scalarmult, arginfo_sodium_crypto_scalarmult)
887 #if defined(crypto_core_ristretto255_HASHBYTES)
888 ZEND_FE(sodium_crypto_scalarmult_ristretto255, arginfo_sodium_crypto_scalarmult_ristretto255)
889 #endif
890 #if defined(crypto_core_ristretto255_HASHBYTES)
891 ZEND_FE(sodium_crypto_scalarmult_ristretto255_base, arginfo_sodium_crypto_scalarmult_ristretto255_base)
892 #endif
893 ZEND_FE(sodium_crypto_secretbox, arginfo_sodium_crypto_secretbox)
894 ZEND_FE(sodium_crypto_secretbox_keygen, arginfo_sodium_crypto_secretbox_keygen)
895 ZEND_FE(sodium_crypto_secretbox_open, arginfo_sodium_crypto_secretbox_open)
896 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
897 ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_keygen, arginfo_sodium_crypto_secretstream_xchacha20poly1305_keygen)
898 #endif
899 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
900 ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_init_push, arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_push)
901 #endif
902 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
903 ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_push, arginfo_sodium_crypto_secretstream_xchacha20poly1305_push)
904 #endif
905 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
906 ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_init_pull, arginfo_sodium_crypto_secretstream_xchacha20poly1305_init_pull)
907 #endif
908 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
909 ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_pull, arginfo_sodium_crypto_secretstream_xchacha20poly1305_pull)
910 #endif
911 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
912 ZEND_FE(sodium_crypto_secretstream_xchacha20poly1305_rekey, arginfo_sodium_crypto_secretstream_xchacha20poly1305_rekey)
913 #endif
914 ZEND_FE(sodium_crypto_shorthash, arginfo_sodium_crypto_shorthash)
915 ZEND_FE(sodium_crypto_shorthash_keygen, arginfo_sodium_crypto_shorthash_keygen)
916 ZEND_FE(sodium_crypto_sign, arginfo_sodium_crypto_sign)
917 ZEND_FE(sodium_crypto_sign_detached, arginfo_sodium_crypto_sign_detached)
918 ZEND_FE(sodium_crypto_sign_ed25519_pk_to_curve25519, arginfo_sodium_crypto_sign_ed25519_pk_to_curve25519)
919 ZEND_FE(sodium_crypto_sign_ed25519_sk_to_curve25519, arginfo_sodium_crypto_sign_ed25519_sk_to_curve25519)
920 ZEND_FE(sodium_crypto_sign_keypair, arginfo_sodium_crypto_sign_keypair)
921 ZEND_FE(sodium_crypto_sign_keypair_from_secretkey_and_publickey, arginfo_sodium_crypto_sign_keypair_from_secretkey_and_publickey)
922 ZEND_FE(sodium_crypto_sign_open, arginfo_sodium_crypto_sign_open)
923 ZEND_FE(sodium_crypto_sign_publickey, arginfo_sodium_crypto_sign_publickey)
924 ZEND_FE(sodium_crypto_sign_secretkey, arginfo_sodium_crypto_sign_secretkey)
925 ZEND_FE(sodium_crypto_sign_publickey_from_secretkey, arginfo_sodium_crypto_sign_publickey_from_secretkey)
926 ZEND_FE(sodium_crypto_sign_seed_keypair, arginfo_sodium_crypto_sign_seed_keypair)
927 ZEND_FE(sodium_crypto_sign_verify_detached, arginfo_sodium_crypto_sign_verify_detached)
928 ZEND_FE(sodium_crypto_stream, arginfo_sodium_crypto_stream)
929 ZEND_FE(sodium_crypto_stream_keygen, arginfo_sodium_crypto_stream_keygen)
930 ZEND_FE(sodium_crypto_stream_xor, arginfo_sodium_crypto_stream_xor)
931 #if defined(crypto_stream_xchacha20_KEYBYTES)
932 ZEND_FE(sodium_crypto_stream_xchacha20, arginfo_sodium_crypto_stream_xchacha20)
933 #endif
934 #if defined(crypto_stream_xchacha20_KEYBYTES)
935 ZEND_FE(sodium_crypto_stream_xchacha20_keygen, arginfo_sodium_crypto_stream_xchacha20_keygen)
936 #endif
937 #if defined(crypto_stream_xchacha20_KEYBYTES)
938 ZEND_FE(sodium_crypto_stream_xchacha20_xor, arginfo_sodium_crypto_stream_xchacha20_xor)
939 #endif
940 #if defined(crypto_stream_xchacha20_KEYBYTES)
941 ZEND_FE(sodium_crypto_stream_xchacha20_xor_ic, arginfo_sodium_crypto_stream_xchacha20_xor_ic)
942 #endif
943 ZEND_FE(sodium_add, arginfo_sodium_add)
944 ZEND_FE(sodium_compare, arginfo_sodium_compare)
945 ZEND_FE(sodium_increment, arginfo_sodium_increment)
946 ZEND_FE(sodium_memcmp, arginfo_sodium_memcmp)
947 ZEND_FE(sodium_memzero, arginfo_sodium_memzero)
948 ZEND_FE(sodium_pad, arginfo_sodium_pad)
949 ZEND_FE(sodium_unpad, arginfo_sodium_unpad)
950 ZEND_FE(sodium_bin2hex, arginfo_sodium_bin2hex)
951 ZEND_FE(sodium_hex2bin, arginfo_sodium_hex2bin)
952 #if defined(sodium_base64_VARIANT_ORIGINAL)
953 ZEND_FE(sodium_bin2base64, arginfo_sodium_bin2base64)
954 #endif
955 #if defined(sodium_base64_VARIANT_ORIGINAL)
956 ZEND_FE(sodium_base642bin, arginfo_sodium_base642bin)
957 #endif
958 ZEND_RAW_FENTRY("sodium_crypto_scalarmult_base", zif_sodium_crypto_box_publickey_from_secretkey, arginfo_sodium_crypto_scalarmult_base, 0, NULL, NULL)
959 ZEND_FE_END
960 };
961
962 static const zend_function_entry class_SodiumException_methods[] = {
963 ZEND_FE_END
964 };
965
register_libsodium_symbols(int module_number)966 static void register_libsodium_symbols(int module_number)
967 {
968 REGISTER_STRING_CONSTANT("SODIUM_LIBRARY_VERSION", SODIUM_LIBRARY_VERSION(), CONST_PERSISTENT);
969 REGISTER_LONG_CONSTANT("SODIUM_LIBRARY_MAJOR_VERSION", sodium_library_version_major(), CONST_PERSISTENT);
970 REGISTER_LONG_CONSTANT("SODIUM_LIBRARY_MINOR_VERSION", sodium_library_version_minor(), CONST_PERSISTENT);
971 #if defined(HAVE_AESGCM)
972 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES", crypto_aead_aes256gcm_KEYBYTES, CONST_PERSISTENT);
973 #endif
974 #if defined(HAVE_AESGCM)
975 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES", crypto_aead_aes256gcm_NSECBYTES, CONST_PERSISTENT);
976 #endif
977 #if defined(HAVE_AESGCM)
978 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES", crypto_aead_aes256gcm_NPUBBYTES, CONST_PERSISTENT);
979 #endif
980 #if defined(HAVE_AESGCM)
981 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES", crypto_aead_aes256gcm_ABYTES, CONST_PERSISTENT);
982 #endif
983 #if defined(crypto_aead_aegis128l_KEYBYTES)
984 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES", crypto_aead_aegis128l_KEYBYTES, CONST_PERSISTENT);
985 #endif
986 #if defined(crypto_aead_aegis128l_KEYBYTES)
987 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES", crypto_aead_aegis128l_NSECBYTES, CONST_PERSISTENT);
988 #endif
989 #if defined(crypto_aead_aegis128l_KEYBYTES)
990 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES", crypto_aead_aegis128l_NPUBBYTES, CONST_PERSISTENT);
991 #endif
992 #if defined(crypto_aead_aegis128l_KEYBYTES)
993 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS128L_ABYTES", crypto_aead_aegis128l_ABYTES, CONST_PERSISTENT);
994 #endif
995 #if defined(crypto_aead_aegis256_KEYBYTES)
996 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES", crypto_aead_aegis256_KEYBYTES, CONST_PERSISTENT);
997 #endif
998 #if defined(crypto_aead_aegis256_KEYBYTES)
999 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES", crypto_aead_aegis256_NSECBYTES, CONST_PERSISTENT);
1000 #endif
1001 #if defined(crypto_aead_aegis256_KEYBYTES)
1002 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES", crypto_aead_aegis256_NPUBBYTES, CONST_PERSISTENT);
1003 #endif
1004 #if defined(crypto_aead_aegis256_KEYBYTES)
1005 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES", crypto_aead_aegis256_ABYTES, CONST_PERSISTENT);
1006 #endif
1007 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES", crypto_aead_chacha20poly1305_KEYBYTES, CONST_PERSISTENT);
1008 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES", crypto_aead_chacha20poly1305_NSECBYTES, CONST_PERSISTENT);
1009 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES", crypto_aead_chacha20poly1305_NPUBBYTES, CONST_PERSISTENT);
1010 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES", crypto_aead_chacha20poly1305_ABYTES, CONST_PERSISTENT);
1011 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES", crypto_aead_chacha20poly1305_IETF_KEYBYTES, CONST_PERSISTENT);
1012 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES", crypto_aead_chacha20poly1305_IETF_NSECBYTES, CONST_PERSISTENT);
1013 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES", crypto_aead_chacha20poly1305_IETF_NPUBBYTES, CONST_PERSISTENT);
1014 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES", crypto_aead_chacha20poly1305_IETF_ABYTES, CONST_PERSISTENT);
1015 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1016 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES", crypto_aead_xchacha20poly1305_IETF_KEYBYTES, CONST_PERSISTENT);
1017 #endif
1018 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1019 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NSECBYTES", crypto_aead_xchacha20poly1305_IETF_NSECBYTES, CONST_PERSISTENT);
1020 #endif
1021 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1022 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES", crypto_aead_xchacha20poly1305_IETF_NPUBBYTES, CONST_PERSISTENT);
1023 #endif
1024 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1025 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES", crypto_aead_xchacha20poly1305_IETF_ABYTES, CONST_PERSISTENT);
1026 #endif
1027 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AUTH_BYTES", crypto_auth_BYTES, CONST_PERSISTENT);
1028 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_AUTH_KEYBYTES", crypto_auth_KEYBYTES, CONST_PERSISTENT);
1029 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_SEALBYTES", crypto_box_SEALBYTES, CONST_PERSISTENT);
1030 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_SECRETKEYBYTES", crypto_box_SECRETKEYBYTES, CONST_PERSISTENT);
1031 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_PUBLICKEYBYTES", crypto_box_PUBLICKEYBYTES, CONST_PERSISTENT);
1032 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_KEYPAIRBYTES", SODIUM_CRYPTO_BOX_KEYPAIRBYTES(), CONST_PERSISTENT);
1033 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_MACBYTES", crypto_box_MACBYTES, CONST_PERSISTENT);
1034 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_NONCEBYTES", crypto_box_NONCEBYTES, CONST_PERSISTENT);
1035 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_BOX_SEEDBYTES", crypto_box_SEEDBYTES, CONST_PERSISTENT);
1036 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_BYTES_MIN", crypto_kdf_BYTES_MIN, CONST_PERSISTENT);
1037 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_BYTES_MAX", crypto_kdf_BYTES_MAX, CONST_PERSISTENT);
1038 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_CONTEXTBYTES", crypto_kdf_CONTEXTBYTES, CONST_PERSISTENT);
1039 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KDF_KEYBYTES", crypto_kdf_KEYBYTES, CONST_PERSISTENT);
1040 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_SEEDBYTES", crypto_kx_SEEDBYTES, CONST_PERSISTENT);
1041 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_SESSIONKEYBYTES", crypto_kx_SESSIONKEYBYTES, CONST_PERSISTENT);
1042 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_PUBLICKEYBYTES", crypto_kx_PUBLICKEYBYTES, CONST_PERSISTENT);
1043 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_SECRETKEYBYTES", crypto_kx_SECRETKEYBYTES, CONST_PERSISTENT);
1044 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_KX_KEYPAIRBYTES", SODIUM_CRYPTO_KX_KEYPAIRBYTES(), CONST_PERSISTENT);
1045 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1046 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES", crypto_secretstream_xchacha20poly1305_ABYTES, CONST_PERSISTENT);
1047 #endif
1048 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1049 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES", crypto_secretstream_xchacha20poly1305_HEADERBYTES, CONST_PERSISTENT);
1050 #endif
1051 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1052 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_KEYBYTES", crypto_secretstream_xchacha20poly1305_KEYBYTES, CONST_PERSISTENT);
1053 #endif
1054 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1055 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX", crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX, CONST_PERSISTENT);
1056 #endif
1057 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1058 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE", crypto_secretstream_xchacha20poly1305_TAG_MESSAGE, CONST_PERSISTENT);
1059 #endif
1060 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1061 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH", crypto_secretstream_xchacha20poly1305_TAG_PUSH, CONST_PERSISTENT);
1062 #endif
1063 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1064 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY", crypto_secretstream_xchacha20poly1305_TAG_REKEY, CONST_PERSISTENT);
1065 #endif
1066 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1067 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL", crypto_secretstream_xchacha20poly1305_TAG_FINAL, CONST_PERSISTENT);
1068 #endif
1069 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_BYTES", crypto_generichash_BYTES, CONST_PERSISTENT);
1070 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_BYTES_MIN", crypto_generichash_BYTES_MIN, CONST_PERSISTENT);
1071 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_BYTES_MAX", crypto_generichash_BYTES_MAX, CONST_PERSISTENT);
1072 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_KEYBYTES", crypto_generichash_KEYBYTES, CONST_PERSISTENT);
1073 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN", crypto_generichash_KEYBYTES_MIN, CONST_PERSISTENT);
1074 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX", crypto_generichash_KEYBYTES_MAX, CONST_PERSISTENT);
1075 #if defined(crypto_pwhash_SALTBYTES)
1076 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13", crypto_pwhash_ALG_ARGON2I13, CONST_PERSISTENT);
1077 #endif
1078 #if defined(crypto_pwhash_SALTBYTES) && defined(crypto_pwhash_ALG_ARGON2ID13)
1079 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13", crypto_pwhash_ALG_ARGON2ID13, CONST_PERSISTENT);
1080 #endif
1081 #if defined(crypto_pwhash_SALTBYTES)
1082 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_ALG_DEFAULT", crypto_pwhash_ALG_DEFAULT, CONST_PERSISTENT);
1083 #endif
1084 #if defined(crypto_pwhash_SALTBYTES)
1085 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SALTBYTES", crypto_pwhash_SALTBYTES, CONST_PERSISTENT);
1086 #endif
1087 #if defined(crypto_pwhash_SALTBYTES)
1088 REGISTER_STRING_CONSTANT("SODIUM_CRYPTO_PWHASH_STRPREFIX", crypto_pwhash_STRPREFIX, CONST_PERSISTENT);
1089 #endif
1090 #if defined(crypto_pwhash_SALTBYTES)
1091 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE", crypto_pwhash_opslimit_interactive(), CONST_PERSISTENT);
1092 #endif
1093 #if defined(crypto_pwhash_SALTBYTES)
1094 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE", crypto_pwhash_memlimit_interactive(), CONST_PERSISTENT);
1095 #endif
1096 #if defined(crypto_pwhash_SALTBYTES)
1097 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE", crypto_pwhash_opslimit_moderate(), CONST_PERSISTENT);
1098 #endif
1099 #if defined(crypto_pwhash_SALTBYTES)
1100 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE", crypto_pwhash_memlimit_moderate(), CONST_PERSISTENT);
1101 #endif
1102 #if defined(crypto_pwhash_SALTBYTES)
1103 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE", crypto_pwhash_opslimit_sensitive(), CONST_PERSISTENT);
1104 #endif
1105 #if defined(crypto_pwhash_SALTBYTES)
1106 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE", crypto_pwhash_memlimit_sensitive(), CONST_PERSISTENT);
1107 #endif
1108 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1109 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES", crypto_pwhash_scryptsalsa208sha256_SALTBYTES, CONST_PERSISTENT);
1110 #endif
1111 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1112 REGISTER_STRING_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX", crypto_pwhash_scryptsalsa208sha256_STRPREFIX, CONST_PERSISTENT);
1113 #endif
1114 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1115 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE", crypto_pwhash_scryptsalsa208sha256_opslimit_interactive(), CONST_PERSISTENT);
1116 #endif
1117 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1118 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE", crypto_pwhash_scryptsalsa208sha256_memlimit_interactive(), CONST_PERSISTENT);
1119 #endif
1120 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1121 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE", crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(), CONST_PERSISTENT);
1122 #endif
1123 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1124 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE", crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(), CONST_PERSISTENT);
1125 #endif
1126 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_BYTES", crypto_scalarmult_BYTES, CONST_PERSISTENT);
1127 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_SCALARBYTES", crypto_scalarmult_SCALARBYTES, CONST_PERSISTENT);
1128 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SHORTHASH_BYTES", crypto_shorthash_BYTES, CONST_PERSISTENT);
1129 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SHORTHASH_KEYBYTES", crypto_shorthash_KEYBYTES, CONST_PERSISTENT);
1130 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETBOX_KEYBYTES", crypto_secretbox_KEYBYTES, CONST_PERSISTENT);
1131 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETBOX_MACBYTES", crypto_secretbox_MACBYTES, CONST_PERSISTENT);
1132 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SECRETBOX_NONCEBYTES", crypto_secretbox_NONCEBYTES, CONST_PERSISTENT);
1133 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_BYTES", crypto_sign_BYTES, CONST_PERSISTENT);
1134 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_SEEDBYTES", crypto_sign_SEEDBYTES, CONST_PERSISTENT);
1135 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES", crypto_sign_PUBLICKEYBYTES, CONST_PERSISTENT);
1136 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_SECRETKEYBYTES", crypto_sign_SECRETKEYBYTES, CONST_PERSISTENT);
1137 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SIGN_KEYPAIRBYTES", SODIUM_CRYPTO_SIGN_KEYPAIRBYTES(), CONST_PERSISTENT);
1138 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_NONCEBYTES", crypto_stream_NONCEBYTES, CONST_PERSISTENT);
1139 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_KEYBYTES", crypto_stream_KEYBYTES, CONST_PERSISTENT);
1140 #if defined(crypto_stream_xchacha20_KEYBYTES)
1141 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES", crypto_stream_xchacha20_NONCEBYTES, CONST_PERSISTENT);
1142 #endif
1143 #if defined(crypto_stream_xchacha20_KEYBYTES)
1144 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES", crypto_stream_xchacha20_KEYBYTES, CONST_PERSISTENT);
1145 #endif
1146 #if defined(sodium_base64_VARIANT_ORIGINAL)
1147 REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_ORIGINAL", sodium_base64_VARIANT_ORIGINAL, CONST_PERSISTENT);
1148 #endif
1149 #if defined(sodium_base64_VARIANT_ORIGINAL)
1150 REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING", sodium_base64_VARIANT_ORIGINAL_NO_PADDING, CONST_PERSISTENT);
1151 #endif
1152 #if defined(sodium_base64_VARIANT_ORIGINAL)
1153 REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_URLSAFE", sodium_base64_VARIANT_URLSAFE, CONST_PERSISTENT);
1154 #endif
1155 #if defined(sodium_base64_VARIANT_ORIGINAL)
1156 REGISTER_LONG_CONSTANT("SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING", sodium_base64_VARIANT_URLSAFE_NO_PADDING, CONST_PERSISTENT);
1157 #endif
1158 #if defined(crypto_core_ristretto255_HASHBYTES)
1159 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES", crypto_scalarmult_ristretto255_BYTES, CONST_PERSISTENT);
1160 #endif
1161 #if defined(crypto_core_ristretto255_HASHBYTES)
1162 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES", crypto_scalarmult_ristretto255_SCALARBYTES, CONST_PERSISTENT);
1163 #endif
1164 #if defined(crypto_core_ristretto255_HASHBYTES)
1165 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES", crypto_core_ristretto255_BYTES, CONST_PERSISTENT);
1166 #endif
1167 #if defined(crypto_core_ristretto255_HASHBYTES)
1168 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES", crypto_core_ristretto255_HASHBYTES, CONST_PERSISTENT);
1169 #endif
1170 #if defined(crypto_core_ristretto255_HASHBYTES)
1171 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES", crypto_core_ristretto255_SCALARBYTES, CONST_PERSISTENT);
1172 #endif
1173 #if defined(crypto_core_ristretto255_HASHBYTES)
1174 REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES", crypto_core_ristretto255_NONREDUCEDSCALARBYTES, CONST_PERSISTENT);
1175 #endif
1176
1177 #if defined(HAVE_AESGCM)
1178
1179 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);
1180 #endif
1181 #if defined(HAVE_AESGCM)
1182
1183 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);
1184
1185 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);
1186 #endif
1187 #if defined(crypto_aead_aegis128l_KEYBYTES)
1188
1189 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);
1190 #endif
1191 #if defined(crypto_aead_aegis128l_KEYBYTES)
1192
1193 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);
1194
1195 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);
1196 #endif
1197 #if defined(crypto_aead_aegis256_KEYBYTES)
1198
1199 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);
1200 #endif
1201 #if defined(crypto_aead_aegis256_KEYBYTES)
1202
1203 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);
1204
1205 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);
1206 #endif
1207
1208 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);
1209
1210 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);
1211
1212 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);
1213
1214 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);
1215
1216 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);
1217
1218 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);
1219 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1220
1221 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);
1222 #endif
1223 #if defined(crypto_aead_xchacha20poly1305_IETF_NPUBBYTES)
1224
1225 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);
1226
1227 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);
1228 #endif
1229
1230 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);
1231
1232 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);
1233
1234 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);
1235
1236 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);
1237
1238 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);
1239
1240 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);
1241
1242 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);
1243
1244 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);
1245
1246 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);
1247
1248 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);
1249
1250 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);
1251
1252 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);
1253
1254 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);
1255
1256 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);
1257
1258 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);
1259
1260 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);
1261
1262 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);
1263
1264 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);
1265
1266 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);
1267
1268 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);
1269 #if defined(crypto_pwhash_SALTBYTES)
1270
1271 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);
1272 #endif
1273 #if defined(crypto_pwhash_SALTBYTES)
1274
1275 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);
1276 #endif
1277 #if defined(crypto_pwhash_SALTBYTES)
1278
1279 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);
1280 #endif
1281 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1282
1283 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);
1284 #endif
1285 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1286
1287 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);
1288 #endif
1289 #if defined(crypto_pwhash_scryptsalsa208sha256_SALTBYTES)
1290
1291 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);
1292 #endif
1293
1294 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);
1295
1296 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);
1297
1298 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);
1299 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1300
1301 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);
1302 #endif
1303 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1304
1305 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);
1306 #endif
1307 #if defined(crypto_secretstream_xchacha20poly1305_ABYTES)
1308
1309 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);
1310 #endif
1311
1312 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);
1313
1314 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);
1315
1316 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);
1317
1318 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);
1319
1320 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);
1321
1322 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);
1323
1324 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);
1325
1326 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);
1327
1328 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);
1329
1330 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);
1331
1332 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);
1333
1334 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);
1335 #if defined(crypto_stream_xchacha20_KEYBYTES)
1336
1337 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);
1338 #endif
1339 #if defined(crypto_stream_xchacha20_KEYBYTES)
1340
1341 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);
1342
1343 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);
1344 #endif
1345 #if defined(crypto_stream_xchacha20_KEYBYTES)
1346
1347 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);
1348
1349 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);
1350 #endif
1351
1352 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);
1353
1354 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);
1355
1356 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);
1357
1358 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);
1359
1360 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);
1361
1362 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);
1363
1364 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);
1365
1366 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);
1367
1368 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);
1369 #if defined(sodium_base64_VARIANT_ORIGINAL)
1370
1371 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);
1372 #endif
1373 #if defined(sodium_base64_VARIANT_ORIGINAL)
1374
1375 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);
1376 #endif
1377
1378 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);
1379 }
1380
register_class_SodiumException(zend_class_entry * class_entry_Exception)1381 static zend_class_entry *register_class_SodiumException(zend_class_entry *class_entry_Exception)
1382 {
1383 zend_class_entry ce, *class_entry;
1384
1385 INIT_CLASS_ENTRY(ce, "SodiumException", class_SodiumException_methods);
1386 class_entry = zend_register_internal_class_ex(&ce, class_entry_Exception);
1387
1388 return class_entry;
1389 }
1390