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|null $private_key 447 */ 448function openssl_csr_new(array $distinguished_names, #[\SensitiveParameter] &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|bool {} 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