xref: /PHP-8.4/ext/openssl/openssl_arginfo.h (revision dce0d976)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: 32bd0ec5db046bfe3bba8a5d3fe1c0c51ff89e00 */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0)
5 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
6 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
7 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, no_text, _IS_BOOL, 0, "true")
8 ZEND_END_ARG_INFO()
9 
10 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export, 0, 2, _IS_BOOL, 0)
11 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
12 	ZEND_ARG_INFO(1, output)
13 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, no_text, _IS_BOOL, 0, "true")
14 ZEND_END_ARG_INFO()
15 
16 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_x509_fingerprint, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
17 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
18 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, digest_algo, IS_STRING, 0, "\"sha1\"")
19 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, binary, _IS_BOOL, 0, "false")
20 ZEND_END_ARG_INFO()
21 
22 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_check_private_key, 0, 2, _IS_BOOL, 0)
23 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
24 	ZEND_ARG_INFO(0, private_key)
25 ZEND_END_ARG_INFO()
26 
27 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_verify, 0, 2, IS_LONG, 0)
28 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
29 	ZEND_ARG_INFO(0, public_key)
30 ZEND_END_ARG_INFO()
31 
32 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_x509_parse, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
33 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
34 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, short_names, _IS_BOOL, 0, "true")
35 ZEND_END_ARG_INFO()
36 
37 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_x509_checkpurpose, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
38 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
39 	ZEND_ARG_TYPE_INFO(0, purpose, IS_LONG, 0)
40 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ca_info, IS_ARRAY, 0, "[]")
41 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_file, IS_STRING, 1, "null")
42 ZEND_END_ARG_INFO()
43 
44 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_x509_read, 0, 1, OpenSSLCertificate, MAY_BE_FALSE)
45 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
46 ZEND_END_ARG_INFO()
47 
48 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_free, 0, 1, IS_VOID, 0)
49 	ZEND_ARG_OBJ_INFO(0, certificate, OpenSSLCertificate, 0)
50 ZEND_END_ARG_INFO()
51 
52 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs12_export_to_file, 0, 4, _IS_BOOL, 0)
53 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
54 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
55 	ZEND_ARG_INFO(0, private_key)
56 	ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0)
57 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]")
58 ZEND_END_ARG_INFO()
59 
60 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs12_export, 0, 4, _IS_BOOL, 0)
61 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
62 	ZEND_ARG_INFO(1, output)
63 	ZEND_ARG_INFO(0, private_key)
64 	ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0)
65 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]")
66 ZEND_END_ARG_INFO()
67 
68 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs12_read, 0, 3, _IS_BOOL, 0)
69 	ZEND_ARG_TYPE_INFO(0, pkcs12, IS_STRING, 0)
70 	ZEND_ARG_INFO(1, certificates)
71 	ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0)
72 ZEND_END_ARG_INFO()
73 
74 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_csr_export_to_file, 0, 2, _IS_BOOL, 0)
75 	ZEND_ARG_OBJ_TYPE_MASK(0, csr, OpenSSLCertificateSigningRequest, MAY_BE_STRING, NULL)
76 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
77 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, no_text, _IS_BOOL, 0, "true")
78 ZEND_END_ARG_INFO()
79 
80 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_csr_export, 0, 2, _IS_BOOL, 0)
81 	ZEND_ARG_OBJ_TYPE_MASK(0, csr, OpenSSLCertificateSigningRequest, MAY_BE_STRING, NULL)
82 	ZEND_ARG_INFO(1, output)
83 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, no_text, _IS_BOOL, 0, "true")
84 ZEND_END_ARG_INFO()
85 
86 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_csr_sign, 0, 4, OpenSSLCertificate, MAY_BE_FALSE)
87 	ZEND_ARG_OBJ_TYPE_MASK(0, csr, OpenSSLCertificateSigningRequest, MAY_BE_STRING, NULL)
88 	ZEND_ARG_OBJ_TYPE_MASK(0, ca_certificate, OpenSSLCertificate, MAY_BE_STRING|MAY_BE_NULL, NULL)
89 	ZEND_ARG_INFO(0, private_key)
90 	ZEND_ARG_TYPE_INFO(0, days, IS_LONG, 0)
91 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
92 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, serial, IS_LONG, 0, "0")
93 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, serial_hex, IS_STRING, 1, "null")
94 ZEND_END_ARG_INFO()
95 
96 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_csr_new, 0, 2, OpenSSLCertificateSigningRequest, MAY_BE_BOOL)
97 	ZEND_ARG_TYPE_INFO(0, distinguished_names, IS_ARRAY, 0)
98 	ZEND_ARG_INFO(1, private_key)
99 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
100 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, extra_attributes, IS_ARRAY, 1, "null")
101 ZEND_END_ARG_INFO()
102 
103 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_csr_get_subject, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
104 	ZEND_ARG_OBJ_TYPE_MASK(0, csr, OpenSSLCertificateSigningRequest, MAY_BE_STRING, NULL)
105 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, short_names, _IS_BOOL, 0, "true")
106 ZEND_END_ARG_INFO()
107 
108 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_csr_get_public_key, 0, 1, OpenSSLAsymmetricKey, MAY_BE_FALSE)
109 	ZEND_ARG_OBJ_TYPE_MASK(0, csr, OpenSSLCertificateSigningRequest, MAY_BE_STRING, NULL)
110 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, short_names, _IS_BOOL, 0, "true")
111 ZEND_END_ARG_INFO()
112 
113 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_pkey_new, 0, 0, OpenSSLAsymmetricKey, MAY_BE_FALSE)
114 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
115 ZEND_END_ARG_INFO()
116 
117 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkey_export_to_file, 0, 2, _IS_BOOL, 0)
118 	ZEND_ARG_INFO(0, key)
119 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
120 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, passphrase, IS_STRING, 1, "null")
121 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
122 ZEND_END_ARG_INFO()
123 
124 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkey_export, 0, 2, _IS_BOOL, 0)
125 	ZEND_ARG_INFO(0, key)
126 	ZEND_ARG_INFO(1, output)
127 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, passphrase, IS_STRING, 1, "null")
128 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
129 ZEND_END_ARG_INFO()
130 
131 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_pkey_get_public, 0, 1, OpenSSLAsymmetricKey, MAY_BE_FALSE)
132 	ZEND_ARG_INFO(0, public_key)
133 ZEND_END_ARG_INFO()
134 
135 #define arginfo_openssl_get_publickey arginfo_openssl_pkey_get_public
136 
137 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkey_free, 0, 1, IS_VOID, 0)
138 	ZEND_ARG_OBJ_INFO(0, key, OpenSSLAsymmetricKey, 0)
139 ZEND_END_ARG_INFO()
140 
141 #define arginfo_openssl_free_key arginfo_openssl_pkey_free
142 
143 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_openssl_pkey_get_private, 0, 1, OpenSSLAsymmetricKey, MAY_BE_FALSE)
144 	ZEND_ARG_INFO(0, private_key)
145 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, passphrase, IS_STRING, 1, "null")
146 ZEND_END_ARG_INFO()
147 
148 #define arginfo_openssl_get_privatekey arginfo_openssl_pkey_get_private
149 
150 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkey_get_details, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
151 	ZEND_ARG_OBJ_INFO(0, key, OpenSSLAsymmetricKey, 0)
152 ZEND_END_ARG_INFO()
153 
154 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pbkdf2, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
155 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
156 	ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0)
157 	ZEND_ARG_TYPE_INFO(0, key_length, IS_LONG, 0)
158 	ZEND_ARG_TYPE_INFO(0, iterations, IS_LONG, 0)
159 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, digest_algo, IS_STRING, 0, "\"sha1\"")
160 ZEND_END_ARG_INFO()
161 
162 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkcs7_verify, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
163 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
164 	ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
165 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, signers_certificates_filename, IS_STRING, 1, "null")
166 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ca_info, IS_ARRAY, 0, "[]")
167 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_filename, IS_STRING, 1, "null")
168 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, content, IS_STRING, 1, "null")
169 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, output_filename, IS_STRING, 1, "null")
170 ZEND_END_ARG_INFO()
171 
172 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs7_encrypt, 0, 4, _IS_BOOL, 0)
173 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
174 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
175 	ZEND_ARG_INFO(0, certificate)
176 	ZEND_ARG_TYPE_INFO(0, headers, IS_ARRAY, 1)
177 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
178 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, cipher_algo, IS_LONG, 0, "OPENSSL_CIPHER_AES_128_CBC")
179 ZEND_END_ARG_INFO()
180 
181 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs7_sign, 0, 5, _IS_BOOL, 0)
182 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
183 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
184 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
185 	ZEND_ARG_INFO(0, private_key)
186 	ZEND_ARG_TYPE_INFO(0, headers, IS_ARRAY, 1)
187 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "PKCS7_DETACHED")
188 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_filename, IS_STRING, 1, "null")
189 ZEND_END_ARG_INFO()
190 
191 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs7_decrypt, 0, 3, _IS_BOOL, 0)
192 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
193 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
194 	ZEND_ARG_INFO(0, certificate)
195 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, private_key, "null")
196 ZEND_END_ARG_INFO()
197 
198 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs7_read, 0, 2, _IS_BOOL, 0)
199 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
200 	ZEND_ARG_INFO(1, certificates)
201 ZEND_END_ARG_INFO()
202 
203 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_cms_verify, 0, 1, _IS_BOOL, 0)
204 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
205 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
206 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, certificates, IS_STRING, 1, "null")
207 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, ca_info, IS_ARRAY, 0, "[]")
208 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_filename, IS_STRING, 1, "null")
209 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, content, IS_STRING, 1, "null")
210 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pk7, IS_STRING, 1, "null")
211 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, sigfile, IS_STRING, 1, "null")
212 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_LONG, 0, "OPENSSL_ENCODING_SMIME")
213 ZEND_END_ARG_INFO()
214 
215 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_cms_encrypt, 0, 4, _IS_BOOL, 0)
216 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
217 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
218 	ZEND_ARG_INFO(0, certificate)
219 	ZEND_ARG_TYPE_INFO(0, headers, IS_ARRAY, 1)
220 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
221 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_LONG, 0, "OPENSSL_ENCODING_SMIME")
222 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, cipher_algo, IS_LONG, 0, "OPENSSL_CIPHER_AES_128_CBC")
223 ZEND_END_ARG_INFO()
224 
225 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_cms_sign, 0, 5, _IS_BOOL, 0)
226 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
227 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
228 	ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL)
229 	ZEND_ARG_INFO(0, private_key)
230 	ZEND_ARG_TYPE_INFO(0, headers, IS_ARRAY, 1)
231 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
232 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_LONG, 0, "OPENSSL_ENCODING_SMIME")
233 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, untrusted_certificates_filename, IS_STRING, 1, "null")
234 ZEND_END_ARG_INFO()
235 
236 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_cms_decrypt, 0, 3, _IS_BOOL, 0)
237 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
238 	ZEND_ARG_TYPE_INFO(0, output_filename, IS_STRING, 0)
239 	ZEND_ARG_INFO(0, certificate)
240 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, private_key, "null")
241 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_LONG, 0, "OPENSSL_ENCODING_SMIME")
242 ZEND_END_ARG_INFO()
243 
244 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_cms_read, 0, 2, _IS_BOOL, 0)
245 	ZEND_ARG_TYPE_INFO(0, input_filename, IS_STRING, 0)
246 	ZEND_ARG_INFO(1, certificates)
247 ZEND_END_ARG_INFO()
248 
249 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_private_encrypt, 0, 3, _IS_BOOL, 0)
250 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
251 	ZEND_ARG_INFO(1, encrypted_data)
252 	ZEND_ARG_INFO(0, private_key)
253 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, padding, IS_LONG, 0, "OPENSSL_PKCS1_PADDING")
254 ZEND_END_ARG_INFO()
255 
256 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_private_decrypt, 0, 3, _IS_BOOL, 0)
257 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
258 	ZEND_ARG_INFO(1, decrypted_data)
259 	ZEND_ARG_INFO(0, private_key)
260 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, padding, IS_LONG, 0, "OPENSSL_PKCS1_PADDING")
261 ZEND_END_ARG_INFO()
262 
263 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_public_encrypt, 0, 3, _IS_BOOL, 0)
264 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
265 	ZEND_ARG_INFO(1, encrypted_data)
266 	ZEND_ARG_INFO(0, public_key)
267 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, padding, IS_LONG, 0, "OPENSSL_PKCS1_PADDING")
268 ZEND_END_ARG_INFO()
269 
270 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_public_decrypt, 0, 3, _IS_BOOL, 0)
271 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
272 	ZEND_ARG_INFO(1, decrypted_data)
273 	ZEND_ARG_INFO(0, public_key)
274 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, padding, IS_LONG, 0, "OPENSSL_PKCS1_PADDING")
275 ZEND_END_ARG_INFO()
276 
277 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_error_string, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
278 ZEND_END_ARG_INFO()
279 
280 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_sign, 0, 3, _IS_BOOL, 0)
281 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
282 	ZEND_ARG_INFO(1, signature)
283 	ZEND_ARG_INFO(0, private_key)
284 	ZEND_ARG_TYPE_MASK(0, algorithm, MAY_BE_STRING|MAY_BE_LONG, "OPENSSL_ALGO_SHA1")
285 ZEND_END_ARG_INFO()
286 
287 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_verify, 0, 3, MAY_BE_LONG|MAY_BE_FALSE)
288 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
289 	ZEND_ARG_TYPE_INFO(0, signature, IS_STRING, 0)
290 	ZEND_ARG_INFO(0, public_key)
291 	ZEND_ARG_TYPE_MASK(0, algorithm, MAY_BE_STRING|MAY_BE_LONG, "OPENSSL_ALGO_SHA1")
292 ZEND_END_ARG_INFO()
293 
294 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_seal, 0, 5, MAY_BE_LONG|MAY_BE_FALSE)
295 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
296 	ZEND_ARG_INFO(1, sealed_data)
297 	ZEND_ARG_INFO(1, encrypted_keys)
298 	ZEND_ARG_TYPE_INFO(0, public_key, IS_ARRAY, 0)
299 	ZEND_ARG_TYPE_INFO(0, cipher_algo, IS_STRING, 0)
300 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, iv, "null")
301 ZEND_END_ARG_INFO()
302 
303 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_open, 0, 5, _IS_BOOL, 0)
304 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
305 	ZEND_ARG_INFO(1, output)
306 	ZEND_ARG_TYPE_INFO(0, encrypted_key, IS_STRING, 0)
307 	ZEND_ARG_INFO(0, private_key)
308 	ZEND_ARG_TYPE_INFO(0, cipher_algo, IS_STRING, 0)
309 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 1, "null")
310 ZEND_END_ARG_INFO()
311 
312 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_get_md_methods, 0, 0, IS_ARRAY, 0)
313 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, aliases, _IS_BOOL, 0, "false")
314 ZEND_END_ARG_INFO()
315 
316 #define arginfo_openssl_get_cipher_methods arginfo_openssl_get_md_methods
317 
318 #if defined(HAVE_EVP_PKEY_EC)
319 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_get_curve_names, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE)
320 ZEND_END_ARG_INFO()
321 #endif
322 
323 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_digest, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
324 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
325 	ZEND_ARG_TYPE_INFO(0, digest_algo, IS_STRING, 0)
326 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, binary, _IS_BOOL, 0, "false")
327 ZEND_END_ARG_INFO()
328 
329 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_encrypt, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
330 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
331 	ZEND_ARG_TYPE_INFO(0, cipher_algo, IS_STRING, 0)
332 	ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0)
333 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0")
334 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 0, "\"\"")
335 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, tag, "null")
336 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, aad, IS_STRING, 0, "\"\"")
337 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag_length, IS_LONG, 0, "16")
338 ZEND_END_ARG_INFO()
339 
340 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_decrypt, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
341 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
342 	ZEND_ARG_TYPE_INFO(0, cipher_algo, IS_STRING, 0)
343 	ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0)
344 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0")
345 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, iv, IS_STRING, 0, "\"\"")
346 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, tag, IS_STRING, 1, "null")
347 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, aad, IS_STRING, 0, "\"\"")
348 ZEND_END_ARG_INFO()
349 
350 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_cipher_iv_length, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
351 	ZEND_ARG_TYPE_INFO(0, cipher_algo, IS_STRING, 0)
352 ZEND_END_ARG_INFO()
353 
354 #define arginfo_openssl_cipher_key_length arginfo_openssl_cipher_iv_length
355 
356 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_dh_compute_key, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
357 	ZEND_ARG_TYPE_INFO(0, public_key, IS_STRING, 0)
358 	ZEND_ARG_OBJ_INFO(0, private_key, OpenSSLAsymmetricKey, 0)
359 ZEND_END_ARG_INFO()
360 
361 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkey_derive, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
362 	ZEND_ARG_INFO(0, public_key)
363 	ZEND_ARG_INFO(0, private_key)
364 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, key_length, IS_LONG, 0, "0")
365 ZEND_END_ARG_INFO()
366 
367 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_random_pseudo_bytes, 0, 1, IS_STRING, 0)
368 	ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
369 	ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, strong_result, "null")
370 ZEND_END_ARG_INFO()
371 
372 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_spki_new, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
373 	ZEND_ARG_OBJ_INFO(0, private_key, OpenSSLAsymmetricKey, 0)
374 	ZEND_ARG_TYPE_INFO(0, challenge, IS_STRING, 0)
375 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, digest_algo, IS_LONG, 0, "OPENSSL_ALGO_MD5")
376 ZEND_END_ARG_INFO()
377 
378 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_spki_verify, 0, 1, _IS_BOOL, 0)
379 	ZEND_ARG_TYPE_INFO(0, spki, IS_STRING, 0)
380 ZEND_END_ARG_INFO()
381 
382 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_spki_export, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
383 	ZEND_ARG_TYPE_INFO(0, spki, IS_STRING, 0)
384 ZEND_END_ARG_INFO()
385 
386 #define arginfo_openssl_spki_export_challenge arginfo_openssl_spki_export
387 
388 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_get_cert_locations, 0, 0, IS_ARRAY, 0)
389 ZEND_END_ARG_INFO()
390 
391 #if defined(HAVE_OPENSSL_ARGON2)
392 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_password_hash, 0, 2, IS_STRING, 0)
393 	ZEND_ARG_TYPE_INFO(0, algo, IS_STRING, 0)
394 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
395 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]")
396 ZEND_END_ARG_INFO()
397 
398 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_password_verify, 0, 3, _IS_BOOL, 0)
399 	ZEND_ARG_TYPE_INFO(0, algo, IS_STRING, 0)
400 	ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
401 	ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
402 ZEND_END_ARG_INFO()
403 #endif
404 
405 ZEND_FUNCTION(openssl_x509_export_to_file);
406 ZEND_FUNCTION(openssl_x509_export);
407 ZEND_FUNCTION(openssl_x509_fingerprint);
408 ZEND_FUNCTION(openssl_x509_check_private_key);
409 ZEND_FUNCTION(openssl_x509_verify);
410 ZEND_FUNCTION(openssl_x509_parse);
411 ZEND_FUNCTION(openssl_x509_checkpurpose);
412 ZEND_FUNCTION(openssl_x509_read);
413 ZEND_FUNCTION(openssl_x509_free);
414 ZEND_FUNCTION(openssl_pkcs12_export_to_file);
415 ZEND_FUNCTION(openssl_pkcs12_export);
416 ZEND_FUNCTION(openssl_pkcs12_read);
417 ZEND_FUNCTION(openssl_csr_export_to_file);
418 ZEND_FUNCTION(openssl_csr_export);
419 ZEND_FUNCTION(openssl_csr_sign);
420 ZEND_FUNCTION(openssl_csr_new);
421 ZEND_FUNCTION(openssl_csr_get_subject);
422 ZEND_FUNCTION(openssl_csr_get_public_key);
423 ZEND_FUNCTION(openssl_pkey_new);
424 ZEND_FUNCTION(openssl_pkey_export_to_file);
425 ZEND_FUNCTION(openssl_pkey_export);
426 ZEND_FUNCTION(openssl_pkey_get_public);
427 ZEND_FUNCTION(openssl_pkey_free);
428 ZEND_FUNCTION(openssl_pkey_get_private);
429 ZEND_FUNCTION(openssl_pkey_get_details);
430 ZEND_FUNCTION(openssl_pbkdf2);
431 ZEND_FUNCTION(openssl_pkcs7_verify);
432 ZEND_FUNCTION(openssl_pkcs7_encrypt);
433 ZEND_FUNCTION(openssl_pkcs7_sign);
434 ZEND_FUNCTION(openssl_pkcs7_decrypt);
435 ZEND_FUNCTION(openssl_pkcs7_read);
436 ZEND_FUNCTION(openssl_cms_verify);
437 ZEND_FUNCTION(openssl_cms_encrypt);
438 ZEND_FUNCTION(openssl_cms_sign);
439 ZEND_FUNCTION(openssl_cms_decrypt);
440 ZEND_FUNCTION(openssl_cms_read);
441 ZEND_FUNCTION(openssl_private_encrypt);
442 ZEND_FUNCTION(openssl_private_decrypt);
443 ZEND_FUNCTION(openssl_public_encrypt);
444 ZEND_FUNCTION(openssl_public_decrypt);
445 ZEND_FUNCTION(openssl_error_string);
446 ZEND_FUNCTION(openssl_sign);
447 ZEND_FUNCTION(openssl_verify);
448 ZEND_FUNCTION(openssl_seal);
449 ZEND_FUNCTION(openssl_open);
450 ZEND_FUNCTION(openssl_get_md_methods);
451 ZEND_FUNCTION(openssl_get_cipher_methods);
452 #if defined(HAVE_EVP_PKEY_EC)
453 ZEND_FUNCTION(openssl_get_curve_names);
454 #endif
455 ZEND_FUNCTION(openssl_digest);
456 ZEND_FUNCTION(openssl_encrypt);
457 ZEND_FUNCTION(openssl_decrypt);
458 ZEND_FUNCTION(openssl_cipher_iv_length);
459 ZEND_FUNCTION(openssl_cipher_key_length);
460 ZEND_FUNCTION(openssl_dh_compute_key);
461 ZEND_FUNCTION(openssl_pkey_derive);
462 ZEND_FUNCTION(openssl_random_pseudo_bytes);
463 ZEND_FUNCTION(openssl_spki_new);
464 ZEND_FUNCTION(openssl_spki_verify);
465 ZEND_FUNCTION(openssl_spki_export);
466 ZEND_FUNCTION(openssl_spki_export_challenge);
467 ZEND_FUNCTION(openssl_get_cert_locations);
468 #if defined(HAVE_OPENSSL_ARGON2)
469 ZEND_FUNCTION(openssl_password_hash);
470 ZEND_FUNCTION(openssl_password_verify);
471 #endif
472 
473 static const zend_function_entry ext_functions[] = {
474 	ZEND_FE(openssl_x509_export_to_file, arginfo_openssl_x509_export_to_file)
475 	ZEND_FE(openssl_x509_export, arginfo_openssl_x509_export)
476 	ZEND_FE(openssl_x509_fingerprint, arginfo_openssl_x509_fingerprint)
477 	ZEND_FE(openssl_x509_check_private_key, arginfo_openssl_x509_check_private_key)
478 	ZEND_FE(openssl_x509_verify, arginfo_openssl_x509_verify)
479 	ZEND_FE(openssl_x509_parse, arginfo_openssl_x509_parse)
480 	ZEND_FE(openssl_x509_checkpurpose, arginfo_openssl_x509_checkpurpose)
481 	ZEND_FE(openssl_x509_read, arginfo_openssl_x509_read)
482 	ZEND_RAW_FENTRY("openssl_x509_free", zif_openssl_x509_free, arginfo_openssl_x509_free, ZEND_ACC_DEPRECATED, NULL, NULL)
483 	ZEND_FE(openssl_pkcs12_export_to_file, arginfo_openssl_pkcs12_export_to_file)
484 	ZEND_FE(openssl_pkcs12_export, arginfo_openssl_pkcs12_export)
485 	ZEND_FE(openssl_pkcs12_read, arginfo_openssl_pkcs12_read)
486 	ZEND_FE(openssl_csr_export_to_file, arginfo_openssl_csr_export_to_file)
487 	ZEND_FE(openssl_csr_export, arginfo_openssl_csr_export)
488 	ZEND_FE(openssl_csr_sign, arginfo_openssl_csr_sign)
489 	ZEND_FE(openssl_csr_new, arginfo_openssl_csr_new)
490 	ZEND_FE(openssl_csr_get_subject, arginfo_openssl_csr_get_subject)
491 	ZEND_FE(openssl_csr_get_public_key, arginfo_openssl_csr_get_public_key)
492 	ZEND_FE(openssl_pkey_new, arginfo_openssl_pkey_new)
493 	ZEND_FE(openssl_pkey_export_to_file, arginfo_openssl_pkey_export_to_file)
494 	ZEND_FE(openssl_pkey_export, arginfo_openssl_pkey_export)
495 	ZEND_FE(openssl_pkey_get_public, arginfo_openssl_pkey_get_public)
496 	ZEND_RAW_FENTRY("openssl_get_publickey", zif_openssl_pkey_get_public, arginfo_openssl_get_publickey, 0, NULL, NULL)
497 	ZEND_RAW_FENTRY("openssl_pkey_free", zif_openssl_pkey_free, arginfo_openssl_pkey_free, ZEND_ACC_DEPRECATED, NULL, NULL)
498 	ZEND_RAW_FENTRY("openssl_free_key", zif_openssl_pkey_free, arginfo_openssl_free_key, ZEND_ACC_DEPRECATED, NULL, NULL)
499 	ZEND_FE(openssl_pkey_get_private, arginfo_openssl_pkey_get_private)
500 	ZEND_RAW_FENTRY("openssl_get_privatekey", zif_openssl_pkey_get_private, arginfo_openssl_get_privatekey, 0, NULL, NULL)
501 	ZEND_FE(openssl_pkey_get_details, arginfo_openssl_pkey_get_details)
502 	ZEND_FE(openssl_pbkdf2, arginfo_openssl_pbkdf2)
503 	ZEND_FE(openssl_pkcs7_verify, arginfo_openssl_pkcs7_verify)
504 	ZEND_FE(openssl_pkcs7_encrypt, arginfo_openssl_pkcs7_encrypt)
505 	ZEND_FE(openssl_pkcs7_sign, arginfo_openssl_pkcs7_sign)
506 	ZEND_FE(openssl_pkcs7_decrypt, arginfo_openssl_pkcs7_decrypt)
507 	ZEND_FE(openssl_pkcs7_read, arginfo_openssl_pkcs7_read)
508 	ZEND_FE(openssl_cms_verify, arginfo_openssl_cms_verify)
509 	ZEND_FE(openssl_cms_encrypt, arginfo_openssl_cms_encrypt)
510 	ZEND_FE(openssl_cms_sign, arginfo_openssl_cms_sign)
511 	ZEND_FE(openssl_cms_decrypt, arginfo_openssl_cms_decrypt)
512 	ZEND_FE(openssl_cms_read, arginfo_openssl_cms_read)
513 	ZEND_FE(openssl_private_encrypt, arginfo_openssl_private_encrypt)
514 	ZEND_FE(openssl_private_decrypt, arginfo_openssl_private_decrypt)
515 	ZEND_FE(openssl_public_encrypt, arginfo_openssl_public_encrypt)
516 	ZEND_FE(openssl_public_decrypt, arginfo_openssl_public_decrypt)
517 	ZEND_FE(openssl_error_string, arginfo_openssl_error_string)
518 	ZEND_FE(openssl_sign, arginfo_openssl_sign)
519 	ZEND_FE(openssl_verify, arginfo_openssl_verify)
520 	ZEND_FE(openssl_seal, arginfo_openssl_seal)
521 	ZEND_FE(openssl_open, arginfo_openssl_open)
522 	ZEND_FE(openssl_get_md_methods, arginfo_openssl_get_md_methods)
523 	ZEND_FE(openssl_get_cipher_methods, arginfo_openssl_get_cipher_methods)
524 #if defined(HAVE_EVP_PKEY_EC)
525 	ZEND_FE(openssl_get_curve_names, arginfo_openssl_get_curve_names)
526 #endif
527 	ZEND_FE(openssl_digest, arginfo_openssl_digest)
528 	ZEND_FE(openssl_encrypt, arginfo_openssl_encrypt)
529 	ZEND_FE(openssl_decrypt, arginfo_openssl_decrypt)
530 	ZEND_FE(openssl_cipher_iv_length, arginfo_openssl_cipher_iv_length)
531 	ZEND_FE(openssl_cipher_key_length, arginfo_openssl_cipher_key_length)
532 	ZEND_FE(openssl_dh_compute_key, arginfo_openssl_dh_compute_key)
533 	ZEND_FE(openssl_pkey_derive, arginfo_openssl_pkey_derive)
534 	ZEND_FE(openssl_random_pseudo_bytes, arginfo_openssl_random_pseudo_bytes)
535 	ZEND_FE(openssl_spki_new, arginfo_openssl_spki_new)
536 	ZEND_FE(openssl_spki_verify, arginfo_openssl_spki_verify)
537 	ZEND_FE(openssl_spki_export, arginfo_openssl_spki_export)
538 	ZEND_FE(openssl_spki_export_challenge, arginfo_openssl_spki_export_challenge)
539 	ZEND_FE(openssl_get_cert_locations, arginfo_openssl_get_cert_locations)
540 #if defined(HAVE_OPENSSL_ARGON2)
541 	ZEND_FE(openssl_password_hash, arginfo_openssl_password_hash)
542 	ZEND_FE(openssl_password_verify, arginfo_openssl_password_verify)
543 #endif
544 	ZEND_FE_END
545 };
546 
register_openssl_symbols(int module_number)547 static void register_openssl_symbols(int module_number)
548 {
549 	REGISTER_STRING_CONSTANT("OPENSSL_VERSION_TEXT", OPENSSL_VERSION_TEXT, CONST_PERSISTENT);
550 	REGISTER_LONG_CONSTANT("OPENSSL_VERSION_NUMBER", OPENSSL_VERSION_NUMBER, CONST_PERSISTENT);
551 	REGISTER_LONG_CONSTANT("X509_PURPOSE_SSL_CLIENT", X509_PURPOSE_SSL_CLIENT, CONST_PERSISTENT);
552 	REGISTER_LONG_CONSTANT("X509_PURPOSE_SSL_SERVER", X509_PURPOSE_SSL_SERVER, CONST_PERSISTENT);
553 	REGISTER_LONG_CONSTANT("X509_PURPOSE_NS_SSL_SERVER", X509_PURPOSE_NS_SSL_SERVER, CONST_PERSISTENT);
554 	REGISTER_LONG_CONSTANT("X509_PURPOSE_SMIME_SIGN", X509_PURPOSE_SMIME_SIGN, CONST_PERSISTENT);
555 	REGISTER_LONG_CONSTANT("X509_PURPOSE_SMIME_ENCRYPT", X509_PURPOSE_SMIME_ENCRYPT, CONST_PERSISTENT);
556 	REGISTER_LONG_CONSTANT("X509_PURPOSE_CRL_SIGN", X509_PURPOSE_CRL_SIGN, CONST_PERSISTENT);
557 	REGISTER_LONG_CONSTANT("X509_PURPOSE_ANY", X509_PURPOSE_ANY, CONST_PERSISTENT);
558 	REGISTER_LONG_CONSTANT("X509_PURPOSE_OCSP_HELPER", X509_PURPOSE_OCSP_HELPER, CONST_PERSISTENT);
559 	REGISTER_LONG_CONSTANT("X509_PURPOSE_TIMESTAMP_SIGN", X509_PURPOSE_TIMESTAMP_SIGN, CONST_PERSISTENT);
560 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA1", OPENSSL_ALGO_SHA1, CONST_PERSISTENT);
561 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD5", OPENSSL_ALGO_MD5, CONST_PERSISTENT);
562 #if !defined(OPENSSL_NO_MD4)
563 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD4", OPENSSL_ALGO_MD4, CONST_PERSISTENT);
564 #endif
565 #if !defined(OPENSSL_NO_MD2)
566 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_PERSISTENT);
567 #endif
568 #if PHP_OPENSSL_API_VERSION < 0x10100
569 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_PERSISTENT);
570 #endif
571 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_PERSISTENT);
572 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA256", OPENSSL_ALGO_SHA256, CONST_PERSISTENT);
573 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA384", OPENSSL_ALGO_SHA384, CONST_PERSISTENT);
574 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA512", OPENSSL_ALGO_SHA512, CONST_PERSISTENT);
575 #if !defined(OPENSSL_NO_RMD160)
576 	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_RMD160", OPENSSL_ALGO_RMD160, CONST_PERSISTENT);
577 #endif
578 	REGISTER_LONG_CONSTANT("PKCS7_DETACHED", PKCS7_DETACHED, CONST_PERSISTENT);
579 	REGISTER_LONG_CONSTANT("PKCS7_TEXT", PKCS7_TEXT, CONST_PERSISTENT);
580 	REGISTER_LONG_CONSTANT("PKCS7_NOINTERN", PKCS7_NOINTERN, CONST_PERSISTENT);
581 	REGISTER_LONG_CONSTANT("PKCS7_NOVERIFY", PKCS7_NOVERIFY, CONST_PERSISTENT);
582 	REGISTER_LONG_CONSTANT("PKCS7_NOCHAIN", PKCS7_NOCHAIN, CONST_PERSISTENT);
583 	REGISTER_LONG_CONSTANT("PKCS7_NOCERTS", PKCS7_NOCERTS, CONST_PERSISTENT);
584 	REGISTER_LONG_CONSTANT("PKCS7_NOATTR", PKCS7_NOATTR, CONST_PERSISTENT);
585 	REGISTER_LONG_CONSTANT("PKCS7_BINARY", PKCS7_BINARY, CONST_PERSISTENT);
586 	REGISTER_LONG_CONSTANT("PKCS7_NOSIGS", PKCS7_NOSIGS, CONST_PERSISTENT);
587 	REGISTER_LONG_CONSTANT("PKCS7_NOOLDMIMETYPE", PKCS7_NOOLDMIMETYPE, CONST_PERSISTENT);
588 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_DETACHED", CMS_DETACHED, CONST_PERSISTENT);
589 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_TEXT", CMS_TEXT, CONST_PERSISTENT);
590 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOINTERN", CMS_NOINTERN, CONST_PERSISTENT);
591 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOVERIFY", CMS_NOVERIFY, CONST_PERSISTENT);
592 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOCERTS", CMS_NOCERTS, CONST_PERSISTENT);
593 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOATTR", CMS_NOATTR, CONST_PERSISTENT);
594 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_BINARY", CMS_BINARY, CONST_PERSISTENT);
595 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOSIGS", CMS_NOSIGS, CONST_PERSISTENT);
596 	REGISTER_LONG_CONSTANT("OPENSSL_CMS_OLDMIMETYPE", CMS_NOOLDMIMETYPE, CONST_PERSISTENT);
597 	REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_PERSISTENT);
598 #if defined(RSA_SSLV23_PADDING)
599 	REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_PERSISTENT);
600 #endif
601 	REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_PERSISTENT);
602 	REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_PERSISTENT);
603 	REGISTER_STRING_CONSTANT("OPENSSL_DEFAULT_STREAM_CIPHERS", OPENSSL_DEFAULT_STREAM_CIPHERS, CONST_PERSISTENT);
604 #if !defined(OPENSSL_NO_RC2)
605 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_RC2_40", PHP_OPENSSL_CIPHER_RC2_40, CONST_PERSISTENT);
606 #endif
607 #if !defined(OPENSSL_NO_RC2)
608 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_RC2_128", PHP_OPENSSL_CIPHER_RC2_128, CONST_PERSISTENT);
609 #endif
610 #if !defined(OPENSSL_NO_RC2)
611 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_RC2_64", PHP_OPENSSL_CIPHER_RC2_64, CONST_PERSISTENT);
612 #endif
613 #if !defined(OPENSSL_NO_DES)
614 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_DES", PHP_OPENSSL_CIPHER_DES, CONST_PERSISTENT);
615 #endif
616 #if !defined(OPENSSL_NO_DES)
617 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_3DES", PHP_OPENSSL_CIPHER_3DES, CONST_PERSISTENT);
618 #endif
619 #if !defined(OPENSSL_NO_AES)
620 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_128_CBC", PHP_OPENSSL_CIPHER_AES_128_CBC, CONST_PERSISTENT);
621 #endif
622 #if !defined(OPENSSL_NO_AES)
623 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_192_CBC", PHP_OPENSSL_CIPHER_AES_192_CBC, CONST_PERSISTENT);
624 #endif
625 #if !defined(OPENSSL_NO_AES)
626 	REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_256_CBC", PHP_OPENSSL_CIPHER_AES_256_CBC, CONST_PERSISTENT);
627 #endif
628 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_RSA", OPENSSL_KEYTYPE_RSA, CONST_PERSISTENT);
629 #if !defined(OPENSSL_NO_DSA)
630 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DSA", OPENSSL_KEYTYPE_DSA, CONST_PERSISTENT);
631 #endif
632 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DH", OPENSSL_KEYTYPE_DH, CONST_PERSISTENT);
633 #if defined(HAVE_EVP_PKEY_EC)
634 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_EC", OPENSSL_KEYTYPE_EC, CONST_PERSISTENT);
635 #endif
636 #if PHP_OPENSSL_API_VERSION >= 0x30000
637 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_X25519", OPENSSL_KEYTYPE_X25519, CONST_PERSISTENT);
638 #endif
639 #if PHP_OPENSSL_API_VERSION >= 0x30000
640 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_ED25519", OPENSSL_KEYTYPE_ED25519, CONST_PERSISTENT);
641 #endif
642 #if PHP_OPENSSL_API_VERSION >= 0x30000
643 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_X448", OPENSSL_KEYTYPE_X448, CONST_PERSISTENT);
644 #endif
645 #if PHP_OPENSSL_API_VERSION >= 0x30000
646 	REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_ED448", OPENSSL_KEYTYPE_ED448, CONST_PERSISTENT);
647 #endif
648 	REGISTER_LONG_CONSTANT("OPENSSL_RAW_DATA", OPENSSL_RAW_DATA, CONST_PERSISTENT);
649 	REGISTER_LONG_CONSTANT("OPENSSL_ZERO_PADDING", OPENSSL_ZERO_PADDING, CONST_PERSISTENT);
650 	REGISTER_LONG_CONSTANT("OPENSSL_DONT_ZERO_PAD_KEY", OPENSSL_DONT_ZERO_PAD_KEY, CONST_PERSISTENT);
651 #if !defined(OPENSSL_NO_TLSEXT)
652 	REGISTER_LONG_CONSTANT("OPENSSL_TLSEXT_SERVER_NAME", 1, CONST_PERSISTENT);
653 #endif
654 	REGISTER_LONG_CONSTANT("OPENSSL_ENCODING_DER", ENCODING_DER, CONST_PERSISTENT);
655 	REGISTER_LONG_CONSTANT("OPENSSL_ENCODING_SMIME", ENCODING_SMIME, CONST_PERSISTENT);
656 	REGISTER_LONG_CONSTANT("OPENSSL_ENCODING_PEM", ENCODING_PEM, CONST_PERSISTENT);
657 
658 
659 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_x509_check_private_key", sizeof("openssl_x509_check_private_key") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
660 
661 	zend_attribute *attribute_Deprecated_func_openssl_x509_free_0 = zend_add_function_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_x509_free", sizeof("openssl_x509_free") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 2);
662 	zval attribute_Deprecated_func_openssl_x509_free_0_arg0;
663 	zend_string *attribute_Deprecated_func_openssl_x509_free_0_arg0_str = zend_string_init("8.0", strlen("8.0"), 1);
664 	ZVAL_STR(&attribute_Deprecated_func_openssl_x509_free_0_arg0, attribute_Deprecated_func_openssl_x509_free_0_arg0_str);
665 	ZVAL_COPY_VALUE(&attribute_Deprecated_func_openssl_x509_free_0->args[0].value, &attribute_Deprecated_func_openssl_x509_free_0_arg0);
666 	attribute_Deprecated_func_openssl_x509_free_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
667 	zval attribute_Deprecated_func_openssl_x509_free_0_arg1;
668 	zend_string *attribute_Deprecated_func_openssl_x509_free_0_arg1_str = zend_string_init("as OpenSSLCertificate objects are freed automatically", strlen("as OpenSSLCertificate objects are freed automatically"), 1);
669 	ZVAL_STR(&attribute_Deprecated_func_openssl_x509_free_0_arg1, attribute_Deprecated_func_openssl_x509_free_0_arg1_str);
670 	ZVAL_COPY_VALUE(&attribute_Deprecated_func_openssl_x509_free_0->args[1].value, &attribute_Deprecated_func_openssl_x509_free_0_arg1);
671 	attribute_Deprecated_func_openssl_x509_free_0->args[1].name = ZSTR_KNOWN(ZEND_STR_MESSAGE);
672 
673 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs12_export_to_file", sizeof("openssl_pkcs12_export_to_file") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
674 
675 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs12_export_to_file", sizeof("openssl_pkcs12_export_to_file") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
676 
677 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs12_export", sizeof("openssl_pkcs12_export") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
678 
679 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs12_export", sizeof("openssl_pkcs12_export") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
680 
681 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs12_read", sizeof("openssl_pkcs12_read") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
682 
683 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_csr_sign", sizeof("openssl_csr_sign") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
684 
685 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_csr_new", sizeof("openssl_csr_new") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
686 
687 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_export_to_file", sizeof("openssl_pkey_export_to_file") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
688 
689 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_export_to_file", sizeof("openssl_pkey_export_to_file") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
690 
691 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_export", sizeof("openssl_pkey_export") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
692 
693 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_export", sizeof("openssl_pkey_export") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
694 
695 	zend_attribute *attribute_Deprecated_func_openssl_pkey_free_0 = zend_add_function_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_free", sizeof("openssl_pkey_free") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 2);
696 	zval attribute_Deprecated_func_openssl_pkey_free_0_arg0;
697 	zend_string *attribute_Deprecated_func_openssl_pkey_free_0_arg0_str = zend_string_init("8.0", strlen("8.0"), 1);
698 	ZVAL_STR(&attribute_Deprecated_func_openssl_pkey_free_0_arg0, attribute_Deprecated_func_openssl_pkey_free_0_arg0_str);
699 	ZVAL_COPY_VALUE(&attribute_Deprecated_func_openssl_pkey_free_0->args[0].value, &attribute_Deprecated_func_openssl_pkey_free_0_arg0);
700 	attribute_Deprecated_func_openssl_pkey_free_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
701 	zval attribute_Deprecated_func_openssl_pkey_free_0_arg1;
702 	zend_string *attribute_Deprecated_func_openssl_pkey_free_0_arg1_str = zend_string_init("as OpenSSLAsymmetricKey objects are freed automatically", strlen("as OpenSSLAsymmetricKey objects are freed automatically"), 1);
703 	ZVAL_STR(&attribute_Deprecated_func_openssl_pkey_free_0_arg1, attribute_Deprecated_func_openssl_pkey_free_0_arg1_str);
704 	ZVAL_COPY_VALUE(&attribute_Deprecated_func_openssl_pkey_free_0->args[1].value, &attribute_Deprecated_func_openssl_pkey_free_0_arg1);
705 	attribute_Deprecated_func_openssl_pkey_free_0->args[1].name = ZSTR_KNOWN(ZEND_STR_MESSAGE);
706 
707 	zend_attribute *attribute_Deprecated_func_openssl_free_key_0 = zend_add_function_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_free_key", sizeof("openssl_free_key") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 2);
708 	zval attribute_Deprecated_func_openssl_free_key_0_arg0;
709 	zend_string *attribute_Deprecated_func_openssl_free_key_0_arg0_str = zend_string_init("8.0", strlen("8.0"), 1);
710 	ZVAL_STR(&attribute_Deprecated_func_openssl_free_key_0_arg0, attribute_Deprecated_func_openssl_free_key_0_arg0_str);
711 	ZVAL_COPY_VALUE(&attribute_Deprecated_func_openssl_free_key_0->args[0].value, &attribute_Deprecated_func_openssl_free_key_0_arg0);
712 	attribute_Deprecated_func_openssl_free_key_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
713 	zval attribute_Deprecated_func_openssl_free_key_0_arg1;
714 	zend_string *attribute_Deprecated_func_openssl_free_key_0_arg1_str = zend_string_init("as OpenSSLAsymmetricKey objects are freed automatically", strlen("as OpenSSLAsymmetricKey objects are freed automatically"), 1);
715 	ZVAL_STR(&attribute_Deprecated_func_openssl_free_key_0_arg1, attribute_Deprecated_func_openssl_free_key_0_arg1_str);
716 	ZVAL_COPY_VALUE(&attribute_Deprecated_func_openssl_free_key_0->args[1].value, &attribute_Deprecated_func_openssl_free_key_0_arg1);
717 	attribute_Deprecated_func_openssl_free_key_0->args[1].name = ZSTR_KNOWN(ZEND_STR_MESSAGE);
718 
719 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_get_private", sizeof("openssl_pkey_get_private") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
720 
721 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_get_private", sizeof("openssl_pkey_get_private") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
722 
723 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_get_privatekey", sizeof("openssl_get_privatekey") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
724 
725 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_get_privatekey", sizeof("openssl_get_privatekey") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
726 
727 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pbkdf2", sizeof("openssl_pbkdf2") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
728 
729 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs7_sign", sizeof("openssl_pkcs7_sign") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
730 
731 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs7_decrypt", sizeof("openssl_pkcs7_decrypt") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
732 
733 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkcs7_decrypt", sizeof("openssl_pkcs7_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
734 
735 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_cms_sign", sizeof("openssl_cms_sign") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
736 
737 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_cms_decrypt", sizeof("openssl_cms_decrypt") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
738 
739 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_cms_decrypt", sizeof("openssl_cms_decrypt") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
740 
741 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_private_encrypt", sizeof("openssl_private_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
742 
743 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_private_encrypt", sizeof("openssl_private_encrypt") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
744 
745 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_private_decrypt", sizeof("openssl_private_decrypt") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
746 
747 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_private_decrypt", sizeof("openssl_private_decrypt") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
748 
749 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_public_encrypt", sizeof("openssl_public_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
750 
751 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_public_decrypt", sizeof("openssl_public_decrypt") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
752 
753 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_sign", sizeof("openssl_sign") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
754 
755 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_seal", sizeof("openssl_seal") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
756 
757 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_open", sizeof("openssl_open") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
758 
759 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_open", sizeof("openssl_open") - 1), 3, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
760 
761 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_encrypt", sizeof("openssl_encrypt") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
762 
763 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_encrypt", sizeof("openssl_encrypt") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
764 
765 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_decrypt", sizeof("openssl_decrypt") - 1), 2, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
766 
767 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_dh_compute_key", sizeof("openssl_dh_compute_key") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
768 
769 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_pkey_derive", sizeof("openssl_pkey_derive") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
770 
771 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_spki_new", sizeof("openssl_spki_new") - 1), 0, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
772 #if defined(HAVE_OPENSSL_ARGON2)
773 
774 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_password_hash", sizeof("openssl_password_hash") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
775 
776 	zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "openssl_password_verify", sizeof("openssl_password_verify") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0);
777 #endif
778 }
779 
register_class_OpenSSLCertificate(void)780 static zend_class_entry *register_class_OpenSSLCertificate(void)
781 {
782 	zend_class_entry ce, *class_entry;
783 
784 	INIT_CLASS_ENTRY(ce, "OpenSSLCertificate", NULL);
785 	class_entry = zend_register_internal_class_with_flags(&ce, NULL, ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE);
786 
787 	return class_entry;
788 }
789 
register_class_OpenSSLCertificateSigningRequest(void)790 static zend_class_entry *register_class_OpenSSLCertificateSigningRequest(void)
791 {
792 	zend_class_entry ce, *class_entry;
793 
794 	INIT_CLASS_ENTRY(ce, "OpenSSLCertificateSigningRequest", NULL);
795 	class_entry = zend_register_internal_class_with_flags(&ce, NULL, ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE);
796 
797 	return class_entry;
798 }
799 
register_class_OpenSSLAsymmetricKey(void)800 static zend_class_entry *register_class_OpenSSLAsymmetricKey(void)
801 {
802 	zend_class_entry ce, *class_entry;
803 
804 	INIT_CLASS_ENTRY(ce, "OpenSSLAsymmetricKey", NULL);
805 	class_entry = zend_register_internal_class_with_flags(&ce, NULL, ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE);
806 
807 	return class_entry;
808 }
809