xref: /PHP-8.3/ext/openssl/openssl.stub.php (revision fa10dfcc)
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 * @var int
166 * @cvalue PKCS7_NOOLDMIMETYPE
167 */
168const PKCS7_NOOLDMIMETYPE = UNKNOWN;
169
170/**
171 * @var int
172 * @cvalue CMS_DETACHED
173 */
174const OPENSSL_CMS_DETACHED = UNKNOWN;
175/**
176 * @var int
177 * @cvalue CMS_TEXT
178 */
179const OPENSSL_CMS_TEXT = UNKNOWN;
180/**
181 * @var int
182 * @cvalue CMS_NOINTERN
183 */
184const OPENSSL_CMS_NOINTERN = UNKNOWN;
185/**
186 * @var int
187 * @cvalue CMS_NOVERIFY
188 */
189const OPENSSL_CMS_NOVERIFY = UNKNOWN;
190/**
191 * @var int
192 * @cvalue CMS_NOCERTS
193 */
194const OPENSSL_CMS_NOCERTS = UNKNOWN;
195/**
196 * @var int
197 * @cvalue CMS_NOATTR
198 */
199const OPENSSL_CMS_NOATTR = UNKNOWN;
200/**
201 * @var int
202 * @cvalue CMS_BINARY
203 */
204const OPENSSL_CMS_BINARY = UNKNOWN;
205/**
206 * @var int
207 * @cvalue CMS_NOSIGS
208 */
209const OPENSSL_CMS_NOSIGS = UNKNOWN;
210/**
211 * @var int
212 * @cvalue CMS_NOOLDMIMETYPE
213 */
214const OPENSSL_CMS_OLDMIMETYPE = UNKNOWN;
215
216/**
217 * @var int
218 * @cvalue RSA_PKCS1_PADDING
219 */
220const OPENSSL_PKCS1_PADDING = UNKNOWN;
221#ifdef RSA_SSLV23_PADDING
222/**
223 * @var int
224 * @cvalue RSA_SSLV23_PADDING
225 */
226const OPENSSL_SSLV23_PADDING = UNKNOWN;
227#endif
228
229/**
230 * @var int
231 * @cvalue RSA_NO_PADDING
232 */
233const OPENSSL_NO_PADDING = UNKNOWN;
234/**
235 * @var int
236 * @cvalue RSA_PKCS1_OAEP_PADDING
237 */
238const OPENSSL_PKCS1_OAEP_PADDING = UNKNOWN;
239
240/* Informational stream wrapper constants */
241
242/**
243 * @var string
244 * @cvalue OPENSSL_DEFAULT_STREAM_CIPHERS
245 */
246const OPENSSL_DEFAULT_STREAM_CIPHERS = UNKNOWN;
247
248/* Ciphers */
249
250#ifndef OPENSSL_NO_RC2
251/**
252 * @var int
253 * @cvalue PHP_OPENSSL_CIPHER_RC2_40
254 */
255const OPENSSL_CIPHER_RC2_40 = UNKNOWN;
256/**
257 * @var int
258 * @cvalue PHP_OPENSSL_CIPHER_RC2_128
259 */
260const OPENSSL_CIPHER_RC2_128 = UNKNOWN;
261/**
262 * @var int
263 * @cvalue PHP_OPENSSL_CIPHER_RC2_64
264 */
265const OPENSSL_CIPHER_RC2_64 = UNKNOWN;
266#endif
267
268#ifndef OPENSSL_NO_DES
269/**
270 * @var int
271 * @cvalue PHP_OPENSSL_CIPHER_DES
272 */
273const OPENSSL_CIPHER_DES = UNKNOWN;
274/**
275 * @var int
276 * @cvalue PHP_OPENSSL_CIPHER_3DES
277 */
278const OPENSSL_CIPHER_3DES = UNKNOWN;
279#endif
280
281#ifndef OPENSSL_NO_AES
282/**
283 * @var int
284 * @cvalue PHP_OPENSSL_CIPHER_AES_128_CBC
285 */
286const OPENSSL_CIPHER_AES_128_CBC = UNKNOWN;
287/**
288 * @var int
289 * @cvalue PHP_OPENSSL_CIPHER_AES_192_CBC
290 */
291const OPENSSL_CIPHER_AES_192_CBC = UNKNOWN;
292/**
293 * @var int
294 * @cvalue PHP_OPENSSL_CIPHER_AES_256_CBC
295 */
296const OPENSSL_CIPHER_AES_256_CBC = UNKNOWN;
297#endif
298
299/* Values for key types */
300
301/**
302 * @var int
303 * @cvalue OPENSSL_KEYTYPE_RSA
304 */
305const OPENSSL_KEYTYPE_RSA = UNKNOWN;
306#ifndef OPENSSL_NO_DSA
307/**
308 * @var int
309 * @cvalue OPENSSL_KEYTYPE_DSA
310 */
311const OPENSSL_KEYTYPE_DSA = UNKNOWN;
312#endif
313
314/**
315 * @var int
316 * @cvalue OPENSSL_KEYTYPE_DH
317 */
318const OPENSSL_KEYTYPE_DH = UNKNOWN;
319#ifdef HAVE_EVP_PKEY_EC
320/**
321 * @var int
322 * @cvalue OPENSSL_KEYTYPE_EC
323 */
324const OPENSSL_KEYTYPE_EC = UNKNOWN;
325#endif
326
327/**
328 * @var int
329 * @cvalue OPENSSL_RAW_DATA
330 */
331const OPENSSL_RAW_DATA = UNKNOWN;
332/**
333 * @var int
334 * @cvalue OPENSSL_ZERO_PADDING
335 */
336const OPENSSL_ZERO_PADDING = UNKNOWN;
337/**
338 * @var int
339 * @cvalue OPENSSL_DONT_ZERO_PAD_KEY
340 */
341const OPENSSL_DONT_ZERO_PAD_KEY = UNKNOWN;
342
343#ifndef OPENSSL_NO_TLSEXT
344/** @var int */
345const OPENSSL_TLSEXT_SERVER_NAME = 1;
346#endif
347
348/* Register encodings */
349
350/**
351 * @var int
352 * @cvalue ENCODING_DER
353 */
354const OPENSSL_ENCODING_DER = UNKNOWN;
355/**
356 * @var int
357 * @cvalue ENCODING_SMIME
358 */
359const OPENSSL_ENCODING_SMIME = UNKNOWN;
360/**
361 * @var int
362 * @cvalue ENCODING_PEM
363 */
364const OPENSSL_ENCODING_PEM = UNKNOWN;
365
366
367/**
368 * @strict-properties
369 * @not-serializable
370 */
371final class OpenSSLCertificate
372{
373}
374
375/**
376 * @strict-properties
377 * @not-serializable
378 */
379final class OpenSSLCertificateSigningRequest
380{
381}
382
383/**
384 * @strict-properties
385 * @not-serializable
386 */
387final class OpenSSLAsymmetricKey
388{
389}
390
391function openssl_x509_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, bool $no_text = true): bool {}
392
393/** @param string $output */
394function openssl_x509_export(OpenSSLCertificate|string $certificate, &$output, bool $no_text = true): bool {}
395
396function openssl_x509_fingerprint(OpenSSLCertificate|string $certificate, string $digest_algo = "sha1", bool $binary = false): string|false {}
397
398/**
399 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
400 */
401function openssl_x509_check_private_key(OpenSSLCertificate|string $certificate, #[\SensitiveParameter] $private_key): bool {}
402
403/** @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key */
404function openssl_x509_verify(OpenSSLCertificate|string $certificate, $public_key): int {}
405
406/**
407 * @return array<string, int|string|array>|false
408 * @refcount 1
409 */
410function openssl_x509_parse(OpenSSLCertificate|string $certificate, bool $short_names = true): array|false {}
411
412function openssl_x509_checkpurpose(OpenSSLCertificate|string $certificate, int $purpose, array $ca_info = [], ?string $untrusted_certificates_file = null): bool|int {}
413
414function openssl_x509_read(OpenSSLCertificate|string $certificate): OpenSSLCertificate|false {}
415
416/** @deprecated */
417function openssl_x509_free(OpenSSLCertificate $certificate): void {}
418
419/**
420 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
421 */
422function openssl_pkcs12_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, #[\SensitiveParameter] $private_key, #[\SensitiveParameter] string $passphrase, array $options = []): bool {}
423
424/**
425 * @param string $output
426 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
427 */
428function openssl_pkcs12_export(OpenSSLCertificate|string $certificate, &$output, #[\SensitiveParameter] $private_key, #[\SensitiveParameter] string $passphrase, array $options = []): bool {}
429
430/**
431 * @param array $certificates
432 */
433function openssl_pkcs12_read(string $pkcs12, &$certificates, #[\SensitiveParameter] string $passphrase): bool {}
434
435function openssl_csr_export_to_file(OpenSSLCertificateSigningRequest|string $csr, string $output_filename, bool $no_text = true): bool {}
436
437/** @param string $output */
438function openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, &$output, bool $no_text = true): bool {}
439
440/**
441 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
442 */
443function openssl_csr_sign(OpenSSLCertificateSigningRequest|string $csr, OpenSSLCertificate|string|null $ca_certificate, #[\SensitiveParameter] $private_key, int $days, ?array $options = null, int $serial = 0): OpenSSLCertificate|false {}
444
445/**
446 * @param OpenSSLAsymmetricKey $private_key
447 */
448function openssl_csr_new(array $distinguished_names, #[\SensitiveParameter] &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|false {}
449
450/**
451 * @return array<string, string|array>|false
452 * @refcount 1
453 */
454function openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false {}
455
456function openssl_csr_get_public_key(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): OpenSSLAsymmetricKey|false {}
457
458function openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false {}
459
460/**
461 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key
462 */
463function openssl_pkey_export_to_file(#[\SensitiveParameter] $key, string $output_filename, #[\SensitiveParameter] ?string $passphrase = null, ?array $options = null): bool {}
464
465/**
466 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key
467 * @param string $output
468 */
469function openssl_pkey_export(#[\SensitiveParameter] $key, &$output, #[\SensitiveParameter] ?string $passphrase = null, ?array $options = null): bool {}
470
471/** @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key */
472function openssl_pkey_get_public($public_key): OpenSSLAsymmetricKey|false {}
473
474/**
475 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
476 * @alias openssl_pkey_get_public
477 */
478function openssl_get_publickey($public_key): OpenSSLAsymmetricKey|false {}
479
480/**
481 * @deprecated
482 */
483function openssl_pkey_free(OpenSSLAsymmetricKey $key): void {}
484
485/**
486 * @alias openssl_pkey_free
487 * @deprecated
488 */
489function openssl_free_key(OpenSSLAsymmetricKey $key): void {}
490
491/**
492 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
493 */
494function openssl_pkey_get_private(#[\SensitiveParameter] $private_key, #[\SensitiveParameter] ?string $passphrase = null): OpenSSLAsymmetricKey|false {}
495
496/**
497 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
498 * @alias openssl_pkey_get_private
499 */
500function openssl_get_privatekey(#[\SensitiveParameter] $private_key, #[\SensitiveParameter] ?string $passphrase = null): OpenSSLAsymmetricKey|false {}
501
502/**
503 * @return array<string, int|string|array>|false
504 * @refcount 1
505 */
506function openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false {}
507
508function openssl_pbkdf2(#[\SensitiveParameter] string $password, string $salt, int $key_length, int $iterations, string $digest_algo = "sha1"): string|false {}
509
510function 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 {}
511
512/** @param OpenSSLCertificate|array|string $certificate */
513function openssl_pkcs7_encrypt(string $input_filename, string $output_filename, $certificate, ?array $headers, int $flags = 0, int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC): bool {}
514
515/**
516 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
517 */
518function 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 {}
519
520/**
521 * @param OpenSSLCertificate|string $certificate
522 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key
523 */
524function openssl_pkcs7_decrypt(string $input_filename, string $output_filename, #[\SensitiveParameter] $certificate, #[\SensitiveParameter] $private_key = null): bool {}
525
526/** @param array $certificates */
527function openssl_pkcs7_read(string $data, &$certificates): bool {}
528
529function 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 {}
530
531/** @param OpenSSLCertificate|array|string $certificate */
532function 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 {}
533
534/**
535 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
536 */
537function 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 {}
538
539/**
540 * @param OpenSSLCertificate|string $certificate
541 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key
542 */
543function openssl_cms_decrypt(string $input_filename, string $output_filename, #[\SensitiveParameter] $certificate, #[\SensitiveParameter] $private_key = null, int $encoding = OPENSSL_ENCODING_SMIME): bool {}
544
545/** @param array $certificates */
546function openssl_cms_read(string $input_filename, &$certificates): bool {}
547
548/**
549 * @param string $encrypted_data
550 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
551 */
552function openssl_private_encrypt(#[\SensitiveParameter] string $data, &$encrypted_data, #[\SensitiveParameter] $private_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
553
554/**
555 * @param string $decrypted_data
556 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
557 */
558function openssl_private_decrypt(string $data, #[\SensitiveParameter] &$decrypted_data, #[\SensitiveParameter] $private_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
559
560/**
561 * @param string $encrypted_data
562 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
563 */
564function openssl_public_encrypt(#[\SensitiveParameter] string $data, &$encrypted_data, $public_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
565
566/**
567 * @param string $decrypted_data
568 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
569 */
570function openssl_public_decrypt(string $data, #[\SensitiveParameter] &$decrypted_data, $public_key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
571
572function openssl_error_string(): string|false {}
573
574/**
575 * @param string $signature
576 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
577 */
578function openssl_sign(string $data, &$signature, #[\SensitiveParameter] $private_key, string|int $algorithm = OPENSSL_ALGO_SHA1): bool {}
579
580/** @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key */
581function openssl_verify(string $data, string $signature, $public_key, string|int $algorithm = OPENSSL_ALGO_SHA1): int|false {}
582
583/**
584 * @param string $sealed_data
585 * @param array $encrypted_keys
586 * @param string $iv
587 */
588function openssl_seal(#[\SensitiveParameter] string $data, &$sealed_data, &$encrypted_keys, array $public_key, string $cipher_algo, &$iv = null): int|false {}
589
590/**
591 * @param string $output
592 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
593 */
594function openssl_open(string $data, #[\SensitiveParameter] &$output, string $encrypted_key, #[\SensitiveParameter] $private_key, string $cipher_algo, ?string $iv = null): bool {}
595
596/**
597 * @return array<int, string>
598 * @refcount 1
599 */
600function openssl_get_md_methods(bool $aliases = false): array {}
601
602/**
603 * @return array<int, string>
604 * @refcount 1
605 */
606function openssl_get_cipher_methods(bool $aliases = false): array {}
607
608#ifdef HAVE_EVP_PKEY_EC
609/**
610 * @return array<int, string>|false
611 * @refcount 1
612 */
613function openssl_get_curve_names(): array|false {}
614#endif
615
616function openssl_digest(string $data, string $digest_algo, bool $binary = false): string|false {}
617
618/**
619 * @param string $tag
620 */
621function 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 {}
622
623function openssl_decrypt(string $data, string $cipher_algo, #[\SensitiveParameter] string $passphrase, int $options = 0, string $iv = "", ?string $tag = null, string $aad = ""): string|false {}
624
625function openssl_cipher_iv_length(string $cipher_algo): int|false {}
626
627function openssl_cipher_key_length(string $cipher_algo): int|false {}
628
629function openssl_dh_compute_key(string $public_key, #[\SensitiveParameter] OpenSSLAsymmetricKey $private_key): string|false {}
630
631/**
632 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
633 * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key
634 */
635function openssl_pkey_derive($public_key, #[\SensitiveParameter] $private_key, int $key_length = 0): string|false {}
636
637/** @param bool $strong_result */
638function openssl_random_pseudo_bytes(int $length, &$strong_result = null): string {}
639
640function openssl_spki_new(#[\SensitiveParameter] OpenSSLAsymmetricKey $private_key, string $challenge, int $digest_algo = OPENSSL_ALGO_MD5): string|false {}
641
642function openssl_spki_verify(string $spki): bool {}
643
644function openssl_spki_export(string $spki): string|false {}
645
646function openssl_spki_export_challenge(string $spki): string|false {}
647
648/**
649 * @return array<string, string>
650 * @refcount 1
651 */
652function openssl_get_cert_locations(): array {}
653