summaryrefslogtreecommitdiff
path: root/ext/openssl
diff options
context:
space:
mode:
authorMáté Kocsis <kocsismate@woohoolabs.com>2019-11-08 23:29:12 +0100
committerMáté Kocsis <kocsismate@woohoolabs.com>2019-11-11 14:54:55 +0100
commit27e83d0fb87c04b61441fb77e963dd4e14ad187e (patch)
tree1b35b21c48c54f353e643d29dd2306d8e1ba084a /ext/openssl
parent2804ea612779b89d3c62d974eb35783dd31f7dee (diff)
downloadphp-git-27e83d0fb87c04b61441fb77e963dd4e14ad187e.tar.gz
Add union return types for function stubs
Diffstat (limited to 'ext/openssl')
-rw-r--r--ext/openssl/openssl.stub.php81
-rw-r--r--ext/openssl/openssl_arginfo.h45
2 files changed, 50 insertions, 76 deletions
diff --git a/ext/openssl/openssl.stub.php b/ext/openssl/openssl.stub.php
index 484e8c6bd7..e75f79c906 100644
--- a/ext/openssl/openssl.stub.php
+++ b/ext/openssl/openssl.stub.php
@@ -4,24 +4,20 @@ function openssl_x509_export_to_file($x509, string $outfilename, bool $notext =
function openssl_x509_export($x509 , &$out, bool $notext = true): bool {}
-/** @return string|false */
-function openssl_x509_fingerprint($x509, string $method = 'sha1', bool $raw_output = false) {}
+function openssl_x509_fingerprint($x509, string $method = 'sha1', bool $raw_output = false): string|false {}
function openssl_x509_check_private_key($cert, $key): bool {}
function openssl_x509_verify($cert, $key): int {}
-/** @return array|false */
-function openssl_x509_parse($x509, bool $shortname = true) {}
+function openssl_x509_parse($x509, bool $shortname = true): array|false {}
-/** @return bool|int */
-function openssl_x509_checkpurpose($x509cert, int $purpose, ?array $cainfo = [], string $untrustedfile = UNKNOWN) {}
+function openssl_x509_checkpurpose($x509cert, int $purpose, ?array $cainfo = [], string $untrustedfile = UNKNOWN): bool|int {}
/** @return resource|false */
function openssl_x509_read($cert) {}
-/** @return false|void */
-function openssl_x509_free($x509) {}
+function openssl_x509_free($x509): ?bool {}
/**
* @param resource|string $x509cert
@@ -54,11 +50,8 @@ function openssl_csr_sign($csr, $cacert = null, $priv_key, int $days, ?array $co
/** @return resource|false */
function openssl_csr_new(array $dn, &$privkey, ?array $configargs = null, ?array $extraattribs = null) {}
-/**
- * @param resource|string $csr
- * @return array|false
- */
-function openssl_csr_get_subject($csr, bool $use_shortnames = true) {}
+/** @param resource|string $csr */
+function openssl_csr_get_subject($csr, bool $use_shortnames = true): array|false {}
/**
* @param resource|string $csr
@@ -75,7 +68,7 @@ function openssl_pkey_export_to_file($key, string $outfilename, ?string $passphr
/** @param resource|string|array $key */
function openssl_pkey_export($key, &$out, ?string $passphrase = null, ?array $configargs = null): bool {}
-/**
+/**
* @param resource|string|array $cert
* @return resource|false
*/
@@ -90,17 +83,12 @@ function openssl_pkey_free($key): void {}
*/
function openssl_pkey_get_private($key, string $passphrase = UNKNOWN) {}
-/**
- * @param resource $key
- * @return array|false
- */
-function openssl_pkey_get_details($key) {}
+/** @param resource $key */
+function openssl_pkey_get_details($key): array|false {}
-/** @return string|false */
-function openssl_pbkdf2(string $password, string $salt, int $key_length, int $iterations, string $digest_algorithm = 'sha1') {}
+function openssl_pbkdf2(string $password, string $salt, int $key_length, int $iterations, string $digest_algorithm = 'sha1'): string|false {}
-/** @return bool|int */
-function openssl_pkcs7_verify(string $filename, int $flags, string $signerscerts = UNKNOWN, array $cainfo = UNKNOWN, string $extracerts = UNKNOWN, string $content = UNKNOWN, string $pk7 = UNKNOWN) {}
+function openssl_pkcs7_verify(string $filename, int $flags, string $signerscerts = UNKNOWN, array $cainfo = UNKNOWN, string $extracerts = UNKNOWN, string $content = UNKNOWN, string $pk7 = UNKNOWN): bool|int {}
/** @param resource|string|array $recipcerts */
function openssl_pkcs7_encrypt(string $infile, string $outfile, $recipcerts, ?array $headers, int $flags = 0, int $cipher = OPENSSL_CIPHER_RC2_40): bool {}
@@ -131,8 +119,7 @@ function openssl_public_encrypt(string $data, &$crypted, $key, int $padding = OP
/** @param resource|string|array $key */
function openssl_public_decrypt(string $data, &$crypted, $key, int $padding = OPENSSL_PKCS1_PADDING): bool {}
-/** @return string|false */
-function openssl_error_string() {}
+function openssl_error_string(): string|false {}
/**
* @param resource|string|array $key
@@ -143,12 +130,10 @@ function openssl_sign(string $data, &$signature, $key, $method = OPENSSL_ALGO_SH
/**
* @param resource|string|array $key
* @param int|string $method
- * @return int|false
*/
-function openssl_verify(string $data, string $signature, $key, $method = OPENSSL_ALGO_SHA1) {}
+function openssl_verify(string $data, string $signature, $key, $method = OPENSSL_ALGO_SHA1): int|false {}
-/** @return int|false */
-function openssl_seal(string $data, &$sealdata, &$ekeys, array $pubkeys, string $method = UNKNOWN, &$iv = UNKNOWN) {}
+function openssl_seal(string $data, &$sealdata, &$ekeys, array $pubkeys, string $method = UNKNOWN, &$iv = UNKNOWN): int|false {}
/** @param resource|string|array $privkey */
function openssl_open(string $data, &$opendata, string $ekey, $privkey, string $method = UNKNOWN, string $iv = UNKNOWN): bool {}
@@ -158,49 +143,35 @@ function openssl_get_md_methods($aliases = false): array {}
function openssl_get_cipher_methods($aliases = false): array {}
#ifdef HAVE_EVP_PKEY_EC
-/** @return array|false */
-function openssl_get_curve_names() {}
+function openssl_get_curve_names(): array|false {}
#endif
-/** @return string|false */
-function openssl_digest(string $data, string $method, bool $raw_output = false) {}
+function openssl_digest(string $data, string $method, bool $raw_output = false): string|false {}
-/** @return string|false */
-function openssl_encrypt(string $data, string $method, string $password, int $options = 0, string $iv = '', &$tag = UNKNOWN, string $aad = '', int $tag_length = 16) {}
+function openssl_encrypt(string $data, string $method, string $password, int $options = 0, string $iv = '', &$tag = UNKNOWN, string $aad = '', int $tag_length = 16): string|false {}
-/** @return string|false */
-function openssl_decrypt(string $data, string $method, string $password, int $options = 0, string $iv = '', string $tag = UNKNOWN, string $aad = '') {}
+function openssl_decrypt(string $data, string $method, string $password, int $options = 0, string $iv = '', string $tag = UNKNOWN, string $aad = ''): string|false {}
-/** @return int|false */
-function openssl_cipher_iv_length(string $method) {}
+function openssl_cipher_iv_length(string $method): int|false {}
-/**
- * @param resource $dh_key
- * @return string|false
- */
-function openssl_dh_compute_key(string $pub_key, $dh_key) {}
+/** @param resource $dh_key */
+function openssl_dh_compute_key(string $pub_key, $dh_key): string|false {}
/**
* @param resource|string|array $peer_pub_key
* @param resource|string|array $priv_key
- * @return string|false
*/
-function openssl_pkey_derive($peer_pub_key, $priv_key, int $keylen = 0) {}
+function openssl_pkey_derive($peer_pub_key, $priv_key, int $keylen = 0): string|false {}
function openssl_random_pseudo_bytes(int $length, &$result_is_strong = UNKNOWN): string {}
-/**
- * @param resource $privkey
- * @return string|false
- */
-function openssl_spki_new($privkey, string $challenge, int $algo = OPENSSL_ALGO_MD5) {}
+/** @param resource $privkey */
+function openssl_spki_new($privkey, string $challenge, int $algo = OPENSSL_ALGO_MD5): string|false {}
function openssl_spki_verify(string $spki): bool {}
-/** @return string|false */
-function openssl_spki_export(string $spki) {}
+function openssl_spki_export(string $spki): string|false {}
-/** @return string|false */
-function openssl_spki_export_challenge(string $spki) {}
+function openssl_spki_export_challenge(string $spki): string|false {}
function openssl_get_cert_locations(): array {}
diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h
index d14215bb25..9f8835ec13 100644
--- a/ext/openssl/openssl_arginfo.h
+++ b/ext/openssl/openssl_arginfo.h
@@ -12,7 +12,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export, 0, 2, _IS_B
ZEND_ARG_TYPE_INFO(0, notext, _IS_BOOL, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_fingerprint, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_x509_fingerprint, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_INFO(0, x509)
ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, raw_output, _IS_BOOL, 0)
@@ -28,12 +28,12 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_verify, 0, 2, IS_LO
ZEND_ARG_INFO(0, key)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_parse, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_x509_parse, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_INFO(0, x509)
ZEND_ARG_TYPE_INFO(0, shortname, _IS_BOOL, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_checkpurpose, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_x509_checkpurpose, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_INFO(0, x509cert)
ZEND_ARG_TYPE_INFO(0, purpose, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, cainfo, IS_ARRAY, 1)
@@ -44,7 +44,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_read, 0, 0, 1)
ZEND_ARG_INFO(0, cert)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_free, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_free, 0, 1, _IS_BOOL, 1)
ZEND_ARG_INFO(0, x509)
ZEND_END_ARG_INFO()
@@ -98,12 +98,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_new, 0, 0, 2)
ZEND_ARG_TYPE_INFO(0, extraattribs, IS_ARRAY, 1)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_get_subject, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_csr_get_subject, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_INFO(0, csr)
ZEND_ARG_TYPE_INFO(0, use_shortnames, _IS_BOOL, 0)
ZEND_END_ARG_INFO()
-#define arginfo_openssl_csr_get_public_key arginfo_openssl_csr_get_subject
+ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_get_public_key, 0, 0, 1)
+ ZEND_ARG_INFO(0, csr)
+ ZEND_ARG_TYPE_INFO(0, use_shortnames, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_new, 0, 0, 0)
ZEND_ARG_TYPE_INFO(0, configargs, IS_ARRAY, 1)
@@ -134,11 +137,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_get_private, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_get_details, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkey_get_details, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_INFO(0, key)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pbkdf2, 0, 0, 4)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pbkdf2, 0, 4, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, salt, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, key_length, IS_LONG, 0)
@@ -146,7 +149,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pbkdf2, 0, 0, 4)
ZEND_ARG_TYPE_INFO(0, digest_algorithm, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs7_verify, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkcs7_verify, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, signerscerts, IS_STRING, 0)
@@ -200,7 +203,7 @@ ZEND_END_ARG_INFO()
#define arginfo_openssl_public_decrypt arginfo_openssl_private_encrypt
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_error_string, 0, 0, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_error_string, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_sign, 0, 3, _IS_BOOL, 0)
@@ -210,14 +213,14 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_sign, 0, 3, _IS_BOOL, 0)
ZEND_ARG_INFO(0, method)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_verify, 0, 0, 3)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_verify, 0, 3, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, signature, IS_STRING, 0)
ZEND_ARG_INFO(0, key)
ZEND_ARG_INFO(0, method)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_seal, 0, 0, 4)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_seal, 0, 4, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
ZEND_ARG_INFO(1, sealdata)
ZEND_ARG_INFO(1, ekeys)
@@ -242,17 +245,17 @@ ZEND_END_ARG_INFO()
#define arginfo_openssl_get_cipher_methods arginfo_openssl_get_md_methods
#if defined(HAVE_EVP_PKEY_EC)
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_get_curve_names, 0, 0, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_get_curve_names, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_END_ARG_INFO()
#endif
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_digest, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_digest, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, raw_output, _IS_BOOL, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_encrypt, 0, 0, 3)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_encrypt, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
@@ -263,7 +266,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_encrypt, 0, 0, 3)
ZEND_ARG_TYPE_INFO(0, tag_length, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_decrypt, 0, 0, 3)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_decrypt, 0, 3, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
@@ -273,16 +276,16 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_decrypt, 0, 0, 3)
ZEND_ARG_TYPE_INFO(0, aad, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_cipher_iv_length, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_cipher_iv_length, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_dh_compute_key, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_dh_compute_key, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, pub_key, IS_STRING, 0)
ZEND_ARG_INFO(0, dh_key)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_derive, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_pkey_derive, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_INFO(0, peer_pub_key)
ZEND_ARG_INFO(0, priv_key)
ZEND_ARG_TYPE_INFO(0, keylen, IS_LONG, 0)
@@ -293,7 +296,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_random_pseudo_bytes, 0,
ZEND_ARG_INFO(1, result_is_strong)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_spki_new, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_spki_new, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_INFO(0, privkey)
ZEND_ARG_TYPE_INFO(0, challenge, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, algo, IS_LONG, 0)
@@ -303,7 +306,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_spki_verify, 0, 1, _IS_B
ZEND_ARG_TYPE_INFO(0, spki, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_spki_export, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_openssl_spki_export, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, spki, IS_STRING, 0)
ZEND_END_ARG_INFO()