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