xref: /PHP-8.2/ext/openssl/openssl.stub.php (revision dce0d976)
1<?php
2
3/** @generate-class-entries */
4
5/**
6 * @var string
7 * @cvalue OPENSSL_VERSION_TEXT
8 */
9const OPENSSL_VERSION_TEXT = UNKNOWN;
10/**
11 * @var int
12 * @cvalue OPENSSL_VERSION_NUMBER
13 */
14const OPENSSL_VERSION_NUMBER = UNKNOWN;
15
16/**
17 * @var int
18 * @cvalue X509_PURPOSE_SSL_CLIENT
19 */
20const X509_PURPOSE_SSL_CLIENT = UNKNOWN;
21/**
22 * @var int
23 * @cvalue X509_PURPOSE_SSL_SERVER
24 */
25const X509_PURPOSE_SSL_SERVER = UNKNOWN;
26
27/**
28 * @var int
29 * @cvalue X509_PURPOSE_NS_SSL_SERVER
30 */
31const X509_PURPOSE_NS_SSL_SERVER = UNKNOWN;
32/**
33 * @var int
34 * @cvalue X509_PURPOSE_SMIME_SIGN
35 */
36const X509_PURPOSE_SMIME_SIGN = UNKNOWN;
37/**
38 * @var int
39 * @cvalue X509_PURPOSE_SMIME_ENCRYPT
40 */
41const X509_PURPOSE_SMIME_ENCRYPT = UNKNOWN;
42/**
43 * @var int
44 * @cvalue X509_PURPOSE_CRL_SIGN
45 */
46const X509_PURPOSE_CRL_SIGN = UNKNOWN;
47#ifdef X509_PURPOSE_ANY
48/**
49 * @var int
50 * @cvalue X509_PURPOSE_ANY
51 */
52const X509_PURPOSE_ANY = UNKNOWN;
53#endif
54
55/* digest algorithm constants */
56
57/**
58 * @var int
59 * @cvalue OPENSSL_ALGO_SHA1
60 */
61const OPENSSL_ALGO_SHA1 = UNKNOWN;
62/**
63 * @var int
64 * @cvalue OPENSSL_ALGO_MD5
65 */
66const OPENSSL_ALGO_MD5 = UNKNOWN;
67#ifndef OPENSSL_NO_MD4
68/**
69 * @var int
70 * @cvalue OPENSSL_ALGO_MD4
71 */
72const OPENSSL_ALGO_MD4 = UNKNOWN;
73#endif
74#ifndef OPENSSL_NO_MD2
75/**
76 * @var int
77 * @cvalue OPENSSL_ALGO_MD2
78 */
79const OPENSSL_ALGO_MD2 = UNKNOWN;
80#endif
81#if PHP_OPENSSL_API_VERSION < 0x10100
82/**
83 * @var int
84 * @cvalue OPENSSL_ALGO_DSS1
85 */
86const OPENSSL_ALGO_DSS1 = UNKNOWN;
87#endif
88
89/**
90 * @var int
91 * @cvalue OPENSSL_ALGO_SHA224
92 */
93const OPENSSL_ALGO_SHA224 = UNKNOWN;
94/**
95 * @var int
96 * @cvalue OPENSSL_ALGO_SHA256
97 */
98const OPENSSL_ALGO_SHA256 = UNKNOWN;
99/**
100 * @var int
101 * @cvalue OPENSSL_ALGO_SHA384
102 */
103const OPENSSL_ALGO_SHA384 = UNKNOWN;
104/**
105 * @var int
106 * @cvalue OPENSSL_ALGO_SHA512
107 */
108const OPENSSL_ALGO_SHA512 = UNKNOWN;
109#ifndef OPENSSL_NO_RMD160
110/**
111 * @var int
112 * @cvalue OPENSSL_ALGO_RMD160
113 */
114const OPENSSL_ALGO_RMD160 = UNKNOWN;
115#endif
116
117/* flags for S/MIME */
118
119/**
120 * @var int
121 * @cvalue PKCS7_DETACHED
122 */
123const PKCS7_DETACHED = UNKNOWN;
124/**
125 * @var int
126 * @cvalue PKCS7_TEXT
127 */
128const PKCS7_TEXT = UNKNOWN;
129/**
130 * @var int
131 * @cvalue PKCS7_NOINTERN
132 */
133const PKCS7_NOINTERN = UNKNOWN;
134/**
135 * @var int
136 * @cvalue PKCS7_NOVERIFY
137 */
138const PKCS7_NOVERIFY = UNKNOWN;
139/**
140 * @var int
141 * @cvalue PKCS7_NOCHAIN
142 */
143const PKCS7_NOCHAIN = UNKNOWN;
144/**
145 * @var int
146 * @cvalue PKCS7_NOCERTS
147 */
148const PKCS7_NOCERTS = UNKNOWN;
149/**
150 * @var int
151 * @cvalue PKCS7_NOATTR
152 */
153const PKCS7_NOATTR = UNKNOWN;
154/**
155 * @var int
156 * @cvalue PKCS7_BINARY
157 */
158const PKCS7_BINARY = UNKNOWN;
159/**
160 * @var int
161 * @cvalue PKCS7_NOSIGS
162 */
163const PKCS7_NOSIGS = UNKNOWN;
164
165/**
166 * @var int
167 * @cvalue CMS_DETACHED
168 */
169const OPENSSL_CMS_DETACHED = UNKNOWN;
170/**
171 * @var int
172 * @cvalue CMS_TEXT
173 */
174const OPENSSL_CMS_TEXT = UNKNOWN;
175/**
176 * @var int
177 * @cvalue CMS_NOINTERN
178 */
179const OPENSSL_CMS_NOINTERN = UNKNOWN;
180/**
181 * @var int
182 * @cvalue CMS_NOVERIFY
183 */
184const OPENSSL_CMS_NOVERIFY = UNKNOWN;
185/**
186 * @var int
187 * @cvalue CMS_NOCERTS
188 */
189const OPENSSL_CMS_NOCERTS = UNKNOWN;
190/**
191 * @var int
192 * @cvalue CMS_NOATTR
193 */
194const OPENSSL_CMS_NOATTR = UNKNOWN;
195/**
196 * @var int
197 * @cvalue CMS_BINARY
198 */
199const OPENSSL_CMS_BINARY = UNKNOWN;
200/**
201 * @var int
202 * @cvalue CMS_NOSIGS
203 */
204const OPENSSL_CMS_NOSIGS = UNKNOWN;
205
206/**
207 * @var int
208 * @cvalue RSA_PKCS1_PADDING
209 */
210const OPENSSL_PKCS1_PADDING = UNKNOWN;
211#ifdef RSA_SSLV23_PADDING
212/**
213 * @var int
214 * @cvalue RSA_SSLV23_PADDING
215 */
216const OPENSSL_SSLV23_PADDING = UNKNOWN;
217#endif
218
219/**
220 * @var int
221 * @cvalue RSA_NO_PADDING
222 */
223const OPENSSL_NO_PADDING = UNKNOWN;
224/**
225 * @var int
226 * @cvalue RSA_PKCS1_OAEP_PADDING
227 */
228const OPENSSL_PKCS1_OAEP_PADDING = UNKNOWN;
229
230/* Informational stream wrapper constants */
231
232/**
233 * @var string
234 * @cvalue OPENSSL_DEFAULT_STREAM_CIPHERS
235 */
236const OPENSSL_DEFAULT_STREAM_CIPHERS = UNKNOWN;
237
238/* Ciphers */
239
240#ifndef OPENSSL_NO_RC2
241/**
242 * @var int
243 * @cvalue PHP_OPENSSL_CIPHER_RC2_40
244 */
245const OPENSSL_CIPHER_RC2_40 = UNKNOWN;
246/**
247 * @var int
248 * @cvalue PHP_OPENSSL_CIPHER_RC2_128
249 */
250const OPENSSL_CIPHER_RC2_128 = UNKNOWN;
251/**
252 * @var int
253 * @cvalue PHP_OPENSSL_CIPHER_RC2_64
254 */
255const OPENSSL_CIPHER_RC2_64 = UNKNOWN;
256#endif
257
258#ifndef OPENSSL_NO_DES
259/**
260 * @var int
261 * @cvalue PHP_OPENSSL_CIPHER_DES
262 */
263const OPENSSL_CIPHER_DES = UNKNOWN;
264/**
265 * @var int
266 * @cvalue PHP_OPENSSL_CIPHER_3DES
267 */
268const OPENSSL_CIPHER_3DES = UNKNOWN;
269#endif
270
271#ifndef OPENSSL_NO_AES
272/**
273 * @var int
274 * @cvalue PHP_OPENSSL_CIPHER_AES_128_CBC
275 */
276const OPENSSL_CIPHER_AES_128_CBC = UNKNOWN;
277/**
278 * @var int
279 * @cvalue PHP_OPENSSL_CIPHER_AES_192_CBC
280 */
281const OPENSSL_CIPHER_AES_192_CBC = UNKNOWN;
282/**
283 * @var int
284 * @cvalue PHP_OPENSSL_CIPHER_AES_256_CBC
285 */
286const OPENSSL_CIPHER_AES_256_CBC = UNKNOWN;
287#endif
288
289/* Values for key types */
290
291/**
292 * @var int
293 * @cvalue OPENSSL_KEYTYPE_RSA
294 */
295const OPENSSL_KEYTYPE_RSA = UNKNOWN;
296#ifndef OPENSSL_NO_DSA
297/**
298 * @var int
299 * @cvalue OPENSSL_KEYTYPE_DSA
300 */
301const OPENSSL_KEYTYPE_DSA = UNKNOWN;
302#endif
303
304/**
305 * @var int
306 * @cvalue OPENSSL_KEYTYPE_DH
307 */
308const OPENSSL_KEYTYPE_DH = UNKNOWN;
309#ifdef HAVE_EVP_PKEY_EC
310/**
311 * @var int
312 * @cvalue OPENSSL_KEYTYPE_EC
313 */
314const OPENSSL_KEYTYPE_EC = UNKNOWN;
315#endif
316
317/**
318 * @var int
319 * @cvalue OPENSSL_RAW_DATA
320 */
321const OPENSSL_RAW_DATA = UNKNOWN;
322/**
323 * @var int
324 * @cvalue OPENSSL_ZERO_PADDING
325 */
326const OPENSSL_ZERO_PADDING = UNKNOWN;
327/**
328 * @var int
329 * @cvalue OPENSSL_DONT_ZERO_PAD_KEY
330 */
331const OPENSSL_DONT_ZERO_PAD_KEY = UNKNOWN;
332
333#ifndef OPENSSL_NO_TLSEXT
334/** @var int */
335const OPENSSL_TLSEXT_SERVER_NAME = 1;
336#endif
337
338/* Register encodings */
339
340/**
341 * @var int
342 * @cvalue ENCODING_DER
343 */
344const OPENSSL_ENCODING_DER = UNKNOWN;
345/**
346 * @var int
347 * @cvalue ENCODING_SMIME
348 */
349const OPENSSL_ENCODING_SMIME = UNKNOWN;
350/**
351 * @var int
352 * @cvalue ENCODING_PEM
353 */
354const OPENSSL_ENCODING_PEM = UNKNOWN;
355
356
357/**
358 * @strict-properties
359 * @not-serializable
360 */
361final class OpenSSLCertificate
362{
363}
364
365/**
366 * @strict-properties
367 * @not-serializable
368 */
369final class OpenSSLCertificateSigningRequest
370{
371}
372
373/**
374 * @strict-properties
375 * @not-serializable
376 */
377final class OpenSSLAsymmetricKey
378{
379}
380
381function openssl_x509_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, bool $no_text = true): bool {}
382
383/** @param string $output */
384function openssl_x509_export(OpenSSLCertificate|string $certificate, &$output, bool $no_text = true): bool {}
385
386function openssl_x509_fingerprint(OpenSSLCertificate|string $certificate, string $digest_algo = "sha1", bool $binary = false): string|false {}
387
388/**
389 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
390 */
391function openssl_x509_check_private_key(OpenSSLCertificate|string $certificate, #[\SensitiveParameter] $private_key): bool {}
392
393/** @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key */
394function openssl_x509_verify(OpenSSLCertificate|string $certificate, $public_key): int {}
395
396/**
397 * @return array<string, int|string|array>|false
398 * @refcount 1
399 */
400function openssl_x509_parse(OpenSSLCertificate|string $certificate, bool $short_names = true): array|false {}
401
402function openssl_x509_checkpurpose(OpenSSLCertificate|string $certificate, int $purpose, array $ca_info = [], ?string $untrusted_certificates_file = null): bool|int {}
403
404function openssl_x509_read(OpenSSLCertificate|string $certificate): OpenSSLCertificate|false {}
405
406/** @deprecated */
407function openssl_x509_free(OpenSSLCertificate $certificate): void {}
408
409/**
410 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
411 */
412function openssl_pkcs12_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, #[\SensitiveParameter] $private_key, #[\SensitiveParameter] string $passphrase, array $options = []): bool {}
413
414/**
415 * @param string $output
416 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
417 */
418function openssl_pkcs12_export(OpenSSLCertificate|string $certificate, &$output, #[\SensitiveParameter] $private_key, #[\SensitiveParameter] string $passphrase, array $options = []): bool {}
419
420/**
421 * @param array $certificates
422 */
423function openssl_pkcs12_read(string $pkcs12, &$certificates, #[\SensitiveParameter] string $passphrase): bool {}
424
425function openssl_csr_export_to_file(OpenSSLCertificateSigningRequest|string $csr, string $output_filename, bool $no_text = true): bool {}
426
427/** @param string $output */
428function openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, &$output, bool $no_text = true): bool {}
429
430/**
431 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
432 */
433function openssl_csr_sign(OpenSSLCertificateSigningRequest|string $csr, OpenSSLCertificate|string|null $ca_certificate, #[\SensitiveParameter] $private_key, int $days, ?array $options = null, int $serial = 0): OpenSSLCertificate|false {}
434
435/**
436 * @param OpenSSLAsymmetricKey|null $private_key
437 */
438function openssl_csr_new(array $distinguished_names, #[\SensitiveParameter] &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|bool {}
439
440/**
441 * @return array<string, string|array>|false
442 * @refcount 1
443 */
444function openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false {}
445
446function openssl_csr_get_public_key(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): OpenSSLAsymmetricKey|false {}
447
448function openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false {}
449
450/**
451 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key
452 */
453function openssl_pkey_export_to_file(#[\SensitiveParameter] $key, string $output_filename, #[\SensitiveParameter] ?string $passphrase = null, ?array $options = null): bool {}
454
455/**
456 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key
457 * @param string $output
458 */
459function openssl_pkey_export(#[\SensitiveParameter] $key, &$output, #[\SensitiveParameter] ?string $passphrase = null, ?array $options = null): bool {}
460
461/** @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key */
462function openssl_pkey_get_public($public_key): OpenSSLAsymmetricKey|false {}
463
464/**
465 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
466 * @alias openssl_pkey_get_public
467 */
468function openssl_get_publickey($public_key): OpenSSLAsymmetricKey|false {}
469
470/**
471 * @deprecated
472 */
473function openssl_pkey_free(OpenSSLAsymmetricKey $key): void {}
474
475/**
476 * @alias openssl_pkey_free
477 * @deprecated
478 */
479function openssl_free_key(OpenSSLAsymmetricKey $key): void {}
480
481/**
482 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
483 */
484function openssl_pkey_get_private(#[\SensitiveParameter] $private_key, #[\SensitiveParameter] ?string $passphrase = null): OpenSSLAsymmetricKey|false {}
485
486/**
487 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
488 * @alias openssl_pkey_get_private
489 */
490function openssl_get_privatekey(#[\SensitiveParameter] $private_key, #[\SensitiveParameter] ?string $passphrase = null): OpenSSLAsymmetricKey|false {}
491
492/**
493 * @return array<string, int|string|array>|false
494 * @refcount 1
495 */
496function openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false {}
497
498function openssl_pbkdf2(#[\SensitiveParameter] string $password, string $salt, int $key_length, int $iterations, string $digest_algo = "sha1"): string|false {}
499
500function openssl_pkcs7_verify(string $input_filename, int $flags, ?string $signers_certificates_filename = null, array $ca_info = [], ?string $untrusted_certificates_filename = null, ?string $content = null, ?string $output_filename = null): bool|int {}
501
502/** @param OpenSSLCertificate|array|string $certificate */
503function openssl_pkcs7_encrypt(string $input_filename, string $output_filename, $certificate, ?array $headers, int $flags = 0, int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC): bool {}
504
505/**
506 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
507 */
508function openssl_pkcs7_sign(string $input_filename, string $output_filename, OpenSSLCertificate|string $certificate, #[\SensitiveParameter] $private_key, ?array $headers, int $flags = PKCS7_DETACHED, ?string $untrusted_certificates_filename = null): bool {}
509
510/**
511 * @param OpenSSLCertificate|string $certificate
512 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key
513 */
514function openssl_pkcs7_decrypt(string $input_filename, string $output_filename, #[\SensitiveParameter] $certificate, #[\SensitiveParameter] $private_key = null): bool {}
515
516/** @param array $certificates */
517function openssl_pkcs7_read(string $data, &$certificates): bool {}
518
519function openssl_cms_verify(string $input_filename, int $flags = 0, ?string $certificates = null, array $ca_info = [], ?string $untrusted_certificates_filename = null, ?string $content = null, ?string $pk7 = null, ?string $sigfile = null, int $encoding = OPENSSL_ENCODING_SMIME): bool {}
520
521/** @param OpenSSLCertificate|array|string $certificate */
522function openssl_cms_encrypt(string $input_filename, string $output_filename, $certificate, ?array $headers, int $flags = 0, int $encoding = OPENSSL_ENCODING_SMIME, int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC): bool {}
523
524/**
525 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
526 */
527function openssl_cms_sign(string $input_filename, string $output_filename, OpenSSLCertificate|string $certificate, #[\SensitiveParameter] $private_key, ?array $headers, int $flags = 0, int $encoding = OPENSSL_ENCODING_SMIME, ?string $untrusted_certificates_filename = null): bool {}
528
529/**
530 * @param OpenSSLCertificate|string $certificate
531 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key
532 */
533function openssl_cms_decrypt(string $input_filename, string $output_filename, #[\SensitiveParameter] $certificate, #[\SensitiveParameter] $private_key = null, int $encoding = OPENSSL_ENCODING_SMIME): bool {}
534
535/** @param array $certificates */
536function openssl_cms_read(string $input_filename, &$certificates): bool {}
537
538/**
539 * @param string $encrypted_data
540 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
541 */
542function openssl_private_encrypt(#[\SensitiveParameter] string $data, &$encrypted_data, #[\SensitiveParameter] $private_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
543
544/**
545 * @param string $decrypted_data
546 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
547 */
548function openssl_private_decrypt(string $data, #[\SensitiveParameter] &$decrypted_data, #[\SensitiveParameter] $private_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
549
550/**
551 * @param string $encrypted_data
552 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
553 */
554function openssl_public_encrypt(#[\SensitiveParameter] string $data, &$encrypted_data, $public_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
555
556/**
557 * @param string $decrypted_data
558 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
559 */
560function openssl_public_decrypt(string $data, #[\SensitiveParameter] &$decrypted_data, $public_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
561
562function openssl_error_string(): string|false {}
563
564/**
565 * @param string $signature
566 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
567 */
568function openssl_sign(string $data, &$signature, #[\SensitiveParameter] $private_key, string|int $algorithm = OPENSSL_ALGO_SHA1): bool {}
569
570/** @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key */
571function openssl_verify(string $data, string $signature, $public_key, string|int $algorithm = OPENSSL_ALGO_SHA1): int|false {}
572
573/**
574 * @param string $sealed_data
575 * @param array $encrypted_keys
576 * @param string $iv
577 */
578function openssl_seal(#[\SensitiveParameter] string $data, &$sealed_data, &$encrypted_keys, array $public_key, string $cipher_algo, &$iv = null): int|false {}
579
580/**
581 * @param string $output
582 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
583 */
584function openssl_open(string $data, #[\SensitiveParameter] &$output, string $encrypted_key, #[\SensitiveParameter] $private_key, string $cipher_algo, ?string $iv = null): bool {}
585
586/**
587 * @return array<int, string>
588 * @refcount 1
589 */
590function openssl_get_md_methods(bool $aliases = false): array {}
591
592/**
593 * @return array<int, string>
594 * @refcount 1
595 */
596function openssl_get_cipher_methods(bool $aliases = false): array {}
597
598#ifdef HAVE_EVP_PKEY_EC
599/**
600 * @return array<int, string>|false
601 * @refcount 1
602 */
603function openssl_get_curve_names(): array|false {}
604#endif
605
606function openssl_digest(string $data, string $digest_algo, bool $binary = false): string|false {}
607
608/**
609 * @param string $tag
610 */
611function openssl_encrypt(#[\SensitiveParameter] string $data, string $cipher_algo, #[\SensitiveParameter] string $passphrase, int $options = 0, string $iv = "", &$tag = null, string $aad = "", int $tag_length = 16): string|false {}
612
613function openssl_decrypt(string $data, string $cipher_algo, #[\SensitiveParameter] string $passphrase, int $options = 0, string $iv = "", ?string $tag = null, string $aad = ""): string|false {}
614
615function openssl_cipher_iv_length(string $cipher_algo): int|false {}
616
617function openssl_cipher_key_length(string $cipher_algo): int|false {}
618
619function openssl_dh_compute_key(string $public_key, #[\SensitiveParameter] OpenSSLAsymmetricKey $private_key): string|false {}
620
621/**
622 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
623 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
624 */
625function openssl_pkey_derive($public_key, #[\SensitiveParameter] $private_key, int $key_length = 0): string|false {}
626
627/** @param bool $strong_result */
628function openssl_random_pseudo_bytes(int $length, &$strong_result = null): string {}
629
630function openssl_spki_new(#[\SensitiveParameter] OpenSSLAsymmetricKey $private_key, string $challenge, int $digest_algo = OPENSSL_ALGO_MD5): string|false {}
631
632function openssl_spki_verify(string $spki): bool {}
633
634function openssl_spki_export(string $spki): string|false {}
635
636function openssl_spki_export_challenge(string $spki): string|false {}
637
638/**
639 * @return array<string, string>
640 * @refcount 1
641 */
642function openssl_get_cert_locations(): array {}
643