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