1 /* This is a generated file, edit the .stub.php file instead.
2 * Stub hash: 295c11739a3588a8254db2fe904be6f9911f85b3 */
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_FALSE)
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
392 ZEND_FUNCTION(openssl_x509_export_to_file);
393 ZEND_FUNCTION(openssl_x509_export);
394 ZEND_FUNCTION(openssl_x509_fingerprint);
395 ZEND_FUNCTION(openssl_x509_check_private_key);
396 ZEND_FUNCTION(openssl_x509_verify);
397 ZEND_FUNCTION(openssl_x509_parse);
398 ZEND_FUNCTION(openssl_x509_checkpurpose);
399 ZEND_FUNCTION(openssl_x509_read);
400 ZEND_FUNCTION(openssl_x509_free);
401 ZEND_FUNCTION(openssl_pkcs12_export_to_file);
402 ZEND_FUNCTION(openssl_pkcs12_export);
403 ZEND_FUNCTION(openssl_pkcs12_read);
404 ZEND_FUNCTION(openssl_csr_export_to_file);
405 ZEND_FUNCTION(openssl_csr_export);
406 ZEND_FUNCTION(openssl_csr_sign);
407 ZEND_FUNCTION(openssl_csr_new);
408 ZEND_FUNCTION(openssl_csr_get_subject);
409 ZEND_FUNCTION(openssl_csr_get_public_key);
410 ZEND_FUNCTION(openssl_pkey_new);
411 ZEND_FUNCTION(openssl_pkey_export_to_file);
412 ZEND_FUNCTION(openssl_pkey_export);
413 ZEND_FUNCTION(openssl_pkey_get_public);
414 ZEND_FUNCTION(openssl_pkey_free);
415 ZEND_FUNCTION(openssl_pkey_get_private);
416 ZEND_FUNCTION(openssl_pkey_get_details);
417 ZEND_FUNCTION(openssl_pbkdf2);
418 ZEND_FUNCTION(openssl_pkcs7_verify);
419 ZEND_FUNCTION(openssl_pkcs7_encrypt);
420 ZEND_FUNCTION(openssl_pkcs7_sign);
421 ZEND_FUNCTION(openssl_pkcs7_decrypt);
422 ZEND_FUNCTION(openssl_pkcs7_read);
423 ZEND_FUNCTION(openssl_cms_verify);
424 ZEND_FUNCTION(openssl_cms_encrypt);
425 ZEND_FUNCTION(openssl_cms_sign);
426 ZEND_FUNCTION(openssl_cms_decrypt);
427 ZEND_FUNCTION(openssl_cms_read);
428 ZEND_FUNCTION(openssl_private_encrypt);
429 ZEND_FUNCTION(openssl_private_decrypt);
430 ZEND_FUNCTION(openssl_public_encrypt);
431 ZEND_FUNCTION(openssl_public_decrypt);
432 ZEND_FUNCTION(openssl_error_string);
433 ZEND_FUNCTION(openssl_sign);
434 ZEND_FUNCTION(openssl_verify);
435 ZEND_FUNCTION(openssl_seal);
436 ZEND_FUNCTION(openssl_open);
437 ZEND_FUNCTION(openssl_get_md_methods);
438 ZEND_FUNCTION(openssl_get_cipher_methods);
439 #if defined(HAVE_EVP_PKEY_EC)
440 ZEND_FUNCTION(openssl_get_curve_names);
441 #endif
442 ZEND_FUNCTION(openssl_digest);
443 ZEND_FUNCTION(openssl_encrypt);
444 ZEND_FUNCTION(openssl_decrypt);
445 ZEND_FUNCTION(openssl_cipher_iv_length);
446 ZEND_FUNCTION(openssl_cipher_key_length);
447 ZEND_FUNCTION(openssl_dh_compute_key);
448 ZEND_FUNCTION(openssl_pkey_derive);
449 ZEND_FUNCTION(openssl_random_pseudo_bytes);
450 ZEND_FUNCTION(openssl_spki_new);
451 ZEND_FUNCTION(openssl_spki_verify);
452 ZEND_FUNCTION(openssl_spki_export);
453 ZEND_FUNCTION(openssl_spki_export_challenge);
454 ZEND_FUNCTION(openssl_get_cert_locations);
455
456
457 static const zend_function_entry ext_functions[] = {
458 ZEND_FE(openssl_x509_export_to_file, arginfo_openssl_x509_export_to_file)
459 ZEND_FE(openssl_x509_export, arginfo_openssl_x509_export)
460 ZEND_FE(openssl_x509_fingerprint, arginfo_openssl_x509_fingerprint)
461 ZEND_FE(openssl_x509_check_private_key, arginfo_openssl_x509_check_private_key)
462 ZEND_FE(openssl_x509_verify, arginfo_openssl_x509_verify)
463 ZEND_FE(openssl_x509_parse, arginfo_openssl_x509_parse)
464 ZEND_FE(openssl_x509_checkpurpose, arginfo_openssl_x509_checkpurpose)
465 ZEND_FE(openssl_x509_read, arginfo_openssl_x509_read)
466 ZEND_DEP_FE(openssl_x509_free, arginfo_openssl_x509_free)
467 ZEND_FE(openssl_pkcs12_export_to_file, arginfo_openssl_pkcs12_export_to_file)
468 ZEND_FE(openssl_pkcs12_export, arginfo_openssl_pkcs12_export)
469 ZEND_FE(openssl_pkcs12_read, arginfo_openssl_pkcs12_read)
470 ZEND_FE(openssl_csr_export_to_file, arginfo_openssl_csr_export_to_file)
471 ZEND_FE(openssl_csr_export, arginfo_openssl_csr_export)
472 ZEND_FE(openssl_csr_sign, arginfo_openssl_csr_sign)
473 ZEND_FE(openssl_csr_new, arginfo_openssl_csr_new)
474 ZEND_FE(openssl_csr_get_subject, arginfo_openssl_csr_get_subject)
475 ZEND_FE(openssl_csr_get_public_key, arginfo_openssl_csr_get_public_key)
476 ZEND_FE(openssl_pkey_new, arginfo_openssl_pkey_new)
477 ZEND_FE(openssl_pkey_export_to_file, arginfo_openssl_pkey_export_to_file)
478 ZEND_FE(openssl_pkey_export, arginfo_openssl_pkey_export)
479 ZEND_FE(openssl_pkey_get_public, arginfo_openssl_pkey_get_public)
480 ZEND_FALIAS(openssl_get_publickey, openssl_pkey_get_public, arginfo_openssl_get_publickey)
481 ZEND_DEP_FE(openssl_pkey_free, arginfo_openssl_pkey_free)
482 ZEND_DEP_FALIAS(openssl_free_key, openssl_pkey_free, arginfo_openssl_free_key)
483 ZEND_FE(openssl_pkey_get_private, arginfo_openssl_pkey_get_private)
484 ZEND_FALIAS(openssl_get_privatekey, openssl_pkey_get_private, arginfo_openssl_get_privatekey)
485 ZEND_FE(openssl_pkey_get_details, arginfo_openssl_pkey_get_details)
486 ZEND_FE(openssl_pbkdf2, arginfo_openssl_pbkdf2)
487 ZEND_FE(openssl_pkcs7_verify, arginfo_openssl_pkcs7_verify)
488 ZEND_FE(openssl_pkcs7_encrypt, arginfo_openssl_pkcs7_encrypt)
489 ZEND_FE(openssl_pkcs7_sign, arginfo_openssl_pkcs7_sign)
490 ZEND_FE(openssl_pkcs7_decrypt, arginfo_openssl_pkcs7_decrypt)
491 ZEND_FE(openssl_pkcs7_read, arginfo_openssl_pkcs7_read)
492 ZEND_FE(openssl_cms_verify, arginfo_openssl_cms_verify)
493 ZEND_FE(openssl_cms_encrypt, arginfo_openssl_cms_encrypt)
494 ZEND_FE(openssl_cms_sign, arginfo_openssl_cms_sign)
495 ZEND_FE(openssl_cms_decrypt, arginfo_openssl_cms_decrypt)
496 ZEND_FE(openssl_cms_read, arginfo_openssl_cms_read)
497 ZEND_FE(openssl_private_encrypt, arginfo_openssl_private_encrypt)
498 ZEND_FE(openssl_private_decrypt, arginfo_openssl_private_decrypt)
499 ZEND_FE(openssl_public_encrypt, arginfo_openssl_public_encrypt)
500 ZEND_FE(openssl_public_decrypt, arginfo_openssl_public_decrypt)
501 ZEND_FE(openssl_error_string, arginfo_openssl_error_string)
502 ZEND_FE(openssl_sign, arginfo_openssl_sign)
503 ZEND_FE(openssl_verify, arginfo_openssl_verify)
504 ZEND_FE(openssl_seal, arginfo_openssl_seal)
505 ZEND_FE(openssl_open, arginfo_openssl_open)
506 ZEND_FE(openssl_get_md_methods, arginfo_openssl_get_md_methods)
507 ZEND_FE(openssl_get_cipher_methods, arginfo_openssl_get_cipher_methods)
508 #if defined(HAVE_EVP_PKEY_EC)
509 ZEND_FE(openssl_get_curve_names, arginfo_openssl_get_curve_names)
510 #endif
511 ZEND_FE(openssl_digest, arginfo_openssl_digest)
512 ZEND_FE(openssl_encrypt, arginfo_openssl_encrypt)
513 ZEND_FE(openssl_decrypt, arginfo_openssl_decrypt)
514 ZEND_FE(openssl_cipher_iv_length, arginfo_openssl_cipher_iv_length)
515 ZEND_FE(openssl_cipher_key_length, arginfo_openssl_cipher_key_length)
516 ZEND_FE(openssl_dh_compute_key, arginfo_openssl_dh_compute_key)
517 ZEND_FE(openssl_pkey_derive, arginfo_openssl_pkey_derive)
518 ZEND_FE(openssl_random_pseudo_bytes, arginfo_openssl_random_pseudo_bytes)
519 ZEND_FE(openssl_spki_new, arginfo_openssl_spki_new)
520 ZEND_FE(openssl_spki_verify, arginfo_openssl_spki_verify)
521 ZEND_FE(openssl_spki_export, arginfo_openssl_spki_export)
522 ZEND_FE(openssl_spki_export_challenge, arginfo_openssl_spki_export_challenge)
523 ZEND_FE(openssl_get_cert_locations, arginfo_openssl_get_cert_locations)
524 ZEND_FE_END
525 };
526
527
528 static const zend_function_entry class_OpenSSLCertificate_methods[] = {
529 ZEND_FE_END
530 };
531
532
533 static const zend_function_entry class_OpenSSLCertificateSigningRequest_methods[] = {
534 ZEND_FE_END
535 };
536
537
538 static const zend_function_entry class_OpenSSLAsymmetricKey_methods[] = {
539 ZEND_FE_END
540 };
541
register_openssl_symbols(int module_number)542 static void register_openssl_symbols(int module_number)
543 {
544 REGISTER_STRING_CONSTANT("OPENSSL_VERSION_TEXT", OPENSSL_VERSION_TEXT, CONST_PERSISTENT);
545 REGISTER_LONG_CONSTANT("OPENSSL_VERSION_NUMBER", OPENSSL_VERSION_NUMBER, CONST_PERSISTENT);
546 REGISTER_LONG_CONSTANT("X509_PURPOSE_SSL_CLIENT", X509_PURPOSE_SSL_CLIENT, CONST_PERSISTENT);
547 REGISTER_LONG_CONSTANT("X509_PURPOSE_SSL_SERVER", X509_PURPOSE_SSL_SERVER, CONST_PERSISTENT);
548 REGISTER_LONG_CONSTANT("X509_PURPOSE_NS_SSL_SERVER", X509_PURPOSE_NS_SSL_SERVER, CONST_PERSISTENT);
549 REGISTER_LONG_CONSTANT("X509_PURPOSE_SMIME_SIGN", X509_PURPOSE_SMIME_SIGN, CONST_PERSISTENT);
550 REGISTER_LONG_CONSTANT("X509_PURPOSE_SMIME_ENCRYPT", X509_PURPOSE_SMIME_ENCRYPT, CONST_PERSISTENT);
551 REGISTER_LONG_CONSTANT("X509_PURPOSE_CRL_SIGN", X509_PURPOSE_CRL_SIGN, CONST_PERSISTENT);
552 REGISTER_LONG_CONSTANT("X509_PURPOSE_ANY", X509_PURPOSE_ANY, CONST_PERSISTENT);
553 REGISTER_LONG_CONSTANT("X509_PURPOSE_OCSP_HELPER", X509_PURPOSE_OCSP_HELPER, CONST_PERSISTENT);
554 REGISTER_LONG_CONSTANT("X509_PURPOSE_TIMESTAMP_SIGN", X509_PURPOSE_TIMESTAMP_SIGN, CONST_PERSISTENT);
555 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA1", OPENSSL_ALGO_SHA1, CONST_PERSISTENT);
556 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD5", OPENSSL_ALGO_MD5, CONST_PERSISTENT);
557 #if !defined(OPENSSL_NO_MD4)
558 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD4", OPENSSL_ALGO_MD4, CONST_PERSISTENT);
559 #endif
560 #if !defined(OPENSSL_NO_MD2)
561 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_PERSISTENT);
562 #endif
563 #if PHP_OPENSSL_API_VERSION < 0x10100
564 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_PERSISTENT);
565 #endif
566 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_PERSISTENT);
567 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA256", OPENSSL_ALGO_SHA256, CONST_PERSISTENT);
568 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA384", OPENSSL_ALGO_SHA384, CONST_PERSISTENT);
569 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA512", OPENSSL_ALGO_SHA512, CONST_PERSISTENT);
570 #if !defined(OPENSSL_NO_RMD160)
571 REGISTER_LONG_CONSTANT("OPENSSL_ALGO_RMD160", OPENSSL_ALGO_RMD160, CONST_PERSISTENT);
572 #endif
573 REGISTER_LONG_CONSTANT("PKCS7_DETACHED", PKCS7_DETACHED, CONST_PERSISTENT);
574 REGISTER_LONG_CONSTANT("PKCS7_TEXT", PKCS7_TEXT, CONST_PERSISTENT);
575 REGISTER_LONG_CONSTANT("PKCS7_NOINTERN", PKCS7_NOINTERN, CONST_PERSISTENT);
576 REGISTER_LONG_CONSTANT("PKCS7_NOVERIFY", PKCS7_NOVERIFY, CONST_PERSISTENT);
577 REGISTER_LONG_CONSTANT("PKCS7_NOCHAIN", PKCS7_NOCHAIN, CONST_PERSISTENT);
578 REGISTER_LONG_CONSTANT("PKCS7_NOCERTS", PKCS7_NOCERTS, CONST_PERSISTENT);
579 REGISTER_LONG_CONSTANT("PKCS7_NOATTR", PKCS7_NOATTR, CONST_PERSISTENT);
580 REGISTER_LONG_CONSTANT("PKCS7_BINARY", PKCS7_BINARY, CONST_PERSISTENT);
581 REGISTER_LONG_CONSTANT("PKCS7_NOSIGS", PKCS7_NOSIGS, CONST_PERSISTENT);
582 REGISTER_LONG_CONSTANT("PKCS7_NOOLDMIMETYPE", PKCS7_NOOLDMIMETYPE, CONST_PERSISTENT);
583 REGISTER_LONG_CONSTANT("OPENSSL_CMS_DETACHED", CMS_DETACHED, CONST_PERSISTENT);
584 REGISTER_LONG_CONSTANT("OPENSSL_CMS_TEXT", CMS_TEXT, CONST_PERSISTENT);
585 REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOINTERN", CMS_NOINTERN, CONST_PERSISTENT);
586 REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOVERIFY", CMS_NOVERIFY, CONST_PERSISTENT);
587 REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOCERTS", CMS_NOCERTS, CONST_PERSISTENT);
588 REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOATTR", CMS_NOATTR, CONST_PERSISTENT);
589 REGISTER_LONG_CONSTANT("OPENSSL_CMS_BINARY", CMS_BINARY, CONST_PERSISTENT);
590 REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOSIGS", CMS_NOSIGS, CONST_PERSISTENT);
591 REGISTER_LONG_CONSTANT("OPENSSL_CMS_OLDMIMETYPE", CMS_NOOLDMIMETYPE, CONST_PERSISTENT);
592 REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_PERSISTENT);
593 #if defined(RSA_SSLV23_PADDING)
594 REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_PERSISTENT);
595 #endif
596 REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_PERSISTENT);
597 REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_PERSISTENT);
598 REGISTER_STRING_CONSTANT("OPENSSL_DEFAULT_STREAM_CIPHERS", OPENSSL_DEFAULT_STREAM_CIPHERS, CONST_PERSISTENT);
599 #if !defined(OPENSSL_NO_RC2)
600 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_RC2_40", PHP_OPENSSL_CIPHER_RC2_40, CONST_PERSISTENT);
601 #endif
602 #if !defined(OPENSSL_NO_RC2)
603 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_RC2_128", PHP_OPENSSL_CIPHER_RC2_128, CONST_PERSISTENT);
604 #endif
605 #if !defined(OPENSSL_NO_RC2)
606 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_RC2_64", PHP_OPENSSL_CIPHER_RC2_64, CONST_PERSISTENT);
607 #endif
608 #if !defined(OPENSSL_NO_DES)
609 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_DES", PHP_OPENSSL_CIPHER_DES, CONST_PERSISTENT);
610 #endif
611 #if !defined(OPENSSL_NO_DES)
612 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_3DES", PHP_OPENSSL_CIPHER_3DES, CONST_PERSISTENT);
613 #endif
614 #if !defined(OPENSSL_NO_AES)
615 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_128_CBC", PHP_OPENSSL_CIPHER_AES_128_CBC, CONST_PERSISTENT);
616 #endif
617 #if !defined(OPENSSL_NO_AES)
618 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_192_CBC", PHP_OPENSSL_CIPHER_AES_192_CBC, CONST_PERSISTENT);
619 #endif
620 #if !defined(OPENSSL_NO_AES)
621 REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_256_CBC", PHP_OPENSSL_CIPHER_AES_256_CBC, CONST_PERSISTENT);
622 #endif
623 REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_RSA", OPENSSL_KEYTYPE_RSA, CONST_PERSISTENT);
624 #if !defined(OPENSSL_NO_DSA)
625 REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DSA", OPENSSL_KEYTYPE_DSA, CONST_PERSISTENT);
626 #endif
627 REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DH", OPENSSL_KEYTYPE_DH, CONST_PERSISTENT);
628 #if defined(HAVE_EVP_PKEY_EC)
629 REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_EC", OPENSSL_KEYTYPE_EC, CONST_PERSISTENT);
630 #endif
631 REGISTER_LONG_CONSTANT("OPENSSL_RAW_DATA", OPENSSL_RAW_DATA, CONST_PERSISTENT);
632 REGISTER_LONG_CONSTANT("OPENSSL_ZERO_PADDING", OPENSSL_ZERO_PADDING, CONST_PERSISTENT);
633 REGISTER_LONG_CONSTANT("OPENSSL_DONT_ZERO_PAD_KEY", OPENSSL_DONT_ZERO_PAD_KEY, CONST_PERSISTENT);
634 #if !defined(OPENSSL_NO_TLSEXT)
635 REGISTER_LONG_CONSTANT("OPENSSL_TLSEXT_SERVER_NAME", 1, CONST_PERSISTENT);
636 #endif
637 REGISTER_LONG_CONSTANT("OPENSSL_ENCODING_DER", ENCODING_DER, CONST_PERSISTENT);
638 REGISTER_LONG_CONSTANT("OPENSSL_ENCODING_SMIME", ENCODING_SMIME, CONST_PERSISTENT);
639 REGISTER_LONG_CONSTANT("OPENSSL_ENCODING_PEM", ENCODING_PEM, CONST_PERSISTENT);
640
641
642 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);
643
644 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);
645
646 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);
647
648 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);
649
650 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);
651
652 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);
653
654 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);
655
656 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);
657
658 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);
659
660 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);
661
662 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);
663
664 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);
665
666 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);
667
668 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);
669
670 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);
671
672 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);
673
674 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);
675
676 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);
677
678 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);
679
680 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);
681
682 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);
683
684 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);
685
686 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);
687
688 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);
689
690 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);
691
692 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);
693
694 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);
695
696 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);
697
698 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);
699
700 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);
701
702 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);
703
704 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);
705
706 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);
707
708 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);
709
710 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);
711
712 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);
713
714 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);
715
716 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);
717
718 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);
719 }
720
register_class_OpenSSLCertificate(void)721 static zend_class_entry *register_class_OpenSSLCertificate(void)
722 {
723 zend_class_entry ce, *class_entry;
724
725 INIT_CLASS_ENTRY(ce, "OpenSSLCertificate", class_OpenSSLCertificate_methods);
726 class_entry = zend_register_internal_class_ex(&ce, NULL);
727 class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
728
729 return class_entry;
730 }
731
register_class_OpenSSLCertificateSigningRequest(void)732 static zend_class_entry *register_class_OpenSSLCertificateSigningRequest(void)
733 {
734 zend_class_entry ce, *class_entry;
735
736 INIT_CLASS_ENTRY(ce, "OpenSSLCertificateSigningRequest", class_OpenSSLCertificateSigningRequest_methods);
737 class_entry = zend_register_internal_class_ex(&ce, NULL);
738 class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
739
740 return class_entry;
741 }
742
register_class_OpenSSLAsymmetricKey(void)743 static zend_class_entry *register_class_OpenSSLAsymmetricKey(void)
744 {
745 zend_class_entry ce, *class_entry;
746
747 INIT_CLASS_ENTRY(ce, "OpenSSLAsymmetricKey", class_OpenSSLAsymmetricKey_methods);
748 class_entry = zend_register_internal_class_ex(&ce, NULL);
749 class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE;
750
751 return class_entry;
752 }
753