1<?php
2
3/** @generate-class-entries */
4
5function sodium_crypto_aead_aes256gcm_is_available(): bool {}
6
7#ifdef HAVE_AESGCM
8function sodium_crypto_aead_aes256gcm_decrypt(string $ciphertext, string $additional_data, string $nonce, string $key): string|false {}
9
10function sodium_crypto_aead_aes256gcm_encrypt(string $message, string $additional_data, string $nonce, string $key): string {}
11
12function sodium_crypto_aead_aes256gcm_keygen(): string {}
13#endif
14
15function sodium_crypto_aead_chacha20poly1305_decrypt(string $ciphertext, string $additional_data, string $nonce, string $key): string|false {}
16
17function sodium_crypto_aead_chacha20poly1305_encrypt(string $message, string $additional_data, string $nonce, string $key): string {}
18
19function sodium_crypto_aead_chacha20poly1305_keygen(): string {}
20
21function sodium_crypto_aead_chacha20poly1305_ietf_decrypt(string $ciphertext, string $additional_data, string $nonce, string $key): string|false {}
22
23function sodium_crypto_aead_chacha20poly1305_ietf_encrypt(string $message, string $additional_data, string $nonce, string $key): string {}
24
25function sodium_crypto_aead_chacha20poly1305_ietf_keygen(): string {}
26
27#ifdef crypto_aead_xchacha20poly1305_IETF_NPUBBYTES
28function sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(string $ciphertext, string $additional_data, string $nonce, string $key): string|false {}
29
30function sodium_crypto_aead_xchacha20poly1305_ietf_keygen(): string {}
31
32function sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(string $message, string $additional_data, string $nonce, string $key): string {}
33#endif
34
35function sodium_crypto_auth(string $message, string $key): string {}
36
37function sodium_crypto_auth_keygen(): string {}
38
39function sodium_crypto_auth_verify(string $mac, string $message, string $key): bool {}
40
41function sodium_crypto_box(string $message, string $nonce, string $key_pair): string {}
42
43function sodium_crypto_box_keypair(): string {}
44
45function sodium_crypto_box_seed_keypair(string $seed): string {}
46
47function sodium_crypto_box_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string {}
48
49function sodium_crypto_box_open(string $ciphertext, string $nonce, string $key_pair): string|false {}
50
51function sodium_crypto_box_publickey(string $key_pair): string {}
52
53function sodium_crypto_box_publickey_from_secretkey(string $secret_key): string {}
54
55function sodium_crypto_box_seal(string $message, string $public_key): string {}
56
57function sodium_crypto_box_seal_open(string $ciphertext, string $key_pair): string|false {}
58
59function sodium_crypto_box_secretkey(string $key_pair): string {}
60
61#ifdef crypto_core_ristretto255_HASHBYTES
62function sodium_crypto_core_ristretto255_add(string $p, string $q): string {}
63
64function sodium_crypto_core_ristretto255_from_hash(string $s): string {}
65
66function sodium_crypto_core_ristretto255_is_valid_point(string $s): bool {}
67
68function sodium_crypto_core_ristretto255_random(): string {}
69
70function sodium_crypto_core_ristretto255_scalar_add(string $x, string $y): string {}
71
72function sodium_crypto_core_ristretto255_scalar_complement(string $s): string {}
73
74function sodium_crypto_core_ristretto255_scalar_invert(string $s): string {}
75
76function sodium_crypto_core_ristretto255_scalar_mul(string $x, string $y): string {}
77
78function sodium_crypto_core_ristretto255_scalar_negate(string $s): string {}
79
80function sodium_crypto_core_ristretto255_scalar_random(): string {}
81
82function sodium_crypto_core_ristretto255_scalar_reduce(string $s): string {}
83
84function sodium_crypto_core_ristretto255_scalar_sub(string $x, string $y): string {}
85
86function sodium_crypto_core_ristretto255_sub(string $p, string $q): string {}
87#endif
88
89function sodium_crypto_kx_keypair(): string {}
90
91function sodium_crypto_kx_publickey(string $key_pair): string {}
92
93function sodium_crypto_kx_secretkey(string $key_pair): string {}
94
95function sodium_crypto_kx_seed_keypair(string $seed): string {}
96
97/** @return array<int, string> */
98function sodium_crypto_kx_client_session_keys(string $client_key_pair, string $server_key): array {}
99
100/** @return array<int, string> */
101function sodium_crypto_kx_server_session_keys(string $server_key_pair, string $client_key): array {}
102
103function sodium_crypto_generichash(string $message, string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string {}
104
105function sodium_crypto_generichash_keygen(): string {}
106
107function sodium_crypto_generichash_init(string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string {}
108
109/** @return true */
110function sodium_crypto_generichash_update(string &$state, string $message): bool {}
111
112function sodium_crypto_generichash_final(string &$state, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string {}
113
114function sodium_crypto_kdf_derive_from_key(int $subkey_length, int $subkey_id, string $context, string $key): string {}
115
116function sodium_crypto_kdf_keygen(): string {}
117
118#ifdef crypto_pwhash_SALTBYTES
119function sodium_crypto_pwhash(int $length, string $password, string $salt, int $opslimit, int $memlimit, int $algo = SODIUM_CRYPTO_PWHASH_ALG_DEFAULT): string {}
120
121function sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string {}
122
123function sodium_crypto_pwhash_str_verify(string $hash, string $password): bool {}
124#endif
125
126#if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)
127function sodium_crypto_pwhash_str_needs_rehash(string $password, int $opslimit, int $memlimit): bool {}
128#endif
129
130#ifdef crypto_pwhash_scryptsalsa208sha256_SALTBYTES
131function sodium_crypto_pwhash_scryptsalsa208sha256(int $length, string $password, string $salt, int $opslimit, int $memlimit): string {}
132
133function sodium_crypto_pwhash_scryptsalsa208sha256_str(string $password, int $opslimit, int $memlimit): string {}
134
135function sodium_crypto_pwhash_scryptsalsa208sha256_str_verify(string $hash, string $password): bool {}
136#endif
137
138function sodium_crypto_scalarmult(string $n, string $p): string {}
139
140#ifdef crypto_core_ristretto255_HASHBYTES
141function sodium_crypto_scalarmult_ristretto255(string $n, string $p): string {}
142
143function sodium_crypto_scalarmult_ristretto255_base(string $n): string {}
144#endif
145
146function sodium_crypto_secretbox(string $message, string $nonce, string $key): string {}
147
148function sodium_crypto_secretbox_keygen(): string {}
149
150function sodium_crypto_secretbox_open(string $ciphertext, string $nonce, string $key): string|false {}
151
152#ifdef crypto_secretstream_xchacha20poly1305_ABYTES
153function sodium_crypto_secretstream_xchacha20poly1305_keygen(): string {}
154
155/** @return array<int, string> */
156function sodium_crypto_secretstream_xchacha20poly1305_init_push(string $key): array {}
157
158function sodium_crypto_secretstream_xchacha20poly1305_push(string &$state, string $message, string $additional_data = "", int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE): string {}
159
160function sodium_crypto_secretstream_xchacha20poly1305_init_pull(string $header, string $key): string {}
161
162/** @return array<int, int|string>|false */
163function sodium_crypto_secretstream_xchacha20poly1305_pull(string &$state, string $ciphertext, string $additional_data = ""): array|false {}
164
165function sodium_crypto_secretstream_xchacha20poly1305_rekey(string &$state): void {}
166#endif
167
168function sodium_crypto_shorthash(string $message, string $key): string {}
169
170function sodium_crypto_shorthash_keygen(): string {}
171
172function sodium_crypto_sign(string $message, string $secret_key): string {}
173
174function sodium_crypto_sign_detached(string $message, string $secret_key): string {}
175
176function sodium_crypto_sign_ed25519_pk_to_curve25519(string $public_key): string {}
177
178function sodium_crypto_sign_ed25519_sk_to_curve25519(string $secret_key): string {}
179
180function sodium_crypto_sign_keypair(): string {}
181
182function sodium_crypto_sign_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string {}
183
184function sodium_crypto_sign_open(string $signed_message, string $public_key): string|false {}
185
186function sodium_crypto_sign_publickey(string $key_pair): string {}
187
188function sodium_crypto_sign_secretkey(string $key_pair): string {}
189
190function sodium_crypto_sign_publickey_from_secretkey(string $secret_key): string {}
191
192function sodium_crypto_sign_seed_keypair(string $seed): string {}
193
194function sodium_crypto_sign_verify_detached(string $signature, string $message, string $public_key): bool {}
195
196function sodium_crypto_stream(int $length, string $nonce, string $key): string {}
197
198function sodium_crypto_stream_keygen(): string {}
199
200function sodium_crypto_stream_xor(string $message, string $nonce, string $key): string {}
201
202#if defined(crypto_stream_xchacha20_KEYBYTES)
203function sodium_crypto_stream_xchacha20(int $length, string $nonce, string $key): string {}
204
205function sodium_crypto_stream_xchacha20_keygen(): string {}
206
207function sodium_crypto_stream_xchacha20_xor(string $message, string $nonce, string $key): string {}
208#endif
209
210function sodium_add(string &$string1, string $string2): void {}
211
212function sodium_compare(string $string1, string $string2): int {}
213
214function sodium_increment(string &$string): void {}
215
216function sodium_memcmp(string $string1, string $string2): int {}
217
218function sodium_memzero(string &$string): void {}
219
220function sodium_pad(string $string, int $block_size): string {}
221
222function sodium_unpad(string $string, int $block_size): string {}
223
224function sodium_bin2hex(string $string): string {}
225
226function sodium_hex2bin(string $string, string $ignore = ""): string {}
227
228#ifdef sodium_base64_VARIANT_ORIGINAL
229function sodium_bin2base64(string $string, int $id): string {}
230
231function sodium_base642bin(string $string, int $id, string $ignore = ""): string {}
232#endif
233
234/** @alias sodium_crypto_box_publickey_from_secretkey */
235function sodium_crypto_scalarmult_base(string $secret_key): string {}
236
237class SodiumException extends Exception {}
238