]> granicus.if.org Git - php/commitdiff
Add more openssl stubs
authorRimvydas Zilinskas <rimvydas@loftdigital.com>
Wed, 30 Oct 2019 10:20:48 +0000 (11:20 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 30 Oct 2019 10:20:48 +0000 (11:20 +0100)
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
ext/openssl/openssl.c
ext/openssl/openssl.stub.php
ext/openssl/openssl_arginfo.h

index 912c57f709f286e375f680adf45188d00be3b7f4..4aadd68dfa5f58a7be20f1ca1b82f29744cb3071 100644 (file)
@@ -130,119 +130,6 @@ PHP_FUNCTION(openssl_pkey_derive);
 PHP_FUNCTION(openssl_random_pseudo_bytes);
 
 /* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs12_export_to_file, 0, 0, 4)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(0, filename)
-       ZEND_ARG_INFO(0, priv_key)
-       ZEND_ARG_INFO(0, pass)
-       ZEND_ARG_INFO(0, args) /* array */
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs12_export, 0, 0, 4)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(1, out)
-       ZEND_ARG_INFO(0, priv_key)
-       ZEND_ARG_INFO(0, pass)
-       ZEND_ARG_INFO(0, args) /* array */
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_pkcs12_read, 0)
-       ZEND_ARG_INFO(0, PKCS12)
-       ZEND_ARG_INFO(1, certs) /* array */
-       ZEND_ARG_INFO(0, pass)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_export_to_file, 0, 0, 2)
-       ZEND_ARG_INFO(0, csr)
-       ZEND_ARG_INFO(0, outfilename)
-       ZEND_ARG_INFO(0, notext)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_export, 0, 0, 2)
-       ZEND_ARG_INFO(0, csr)
-       ZEND_ARG_INFO(1, out)
-       ZEND_ARG_INFO(0, notext)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_sign, 0, 0, 4)
-       ZEND_ARG_INFO(0, csr)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(0, priv_key)
-       ZEND_ARG_INFO(0, days)
-       ZEND_ARG_INFO(0, config_args) /* array */
-       ZEND_ARG_INFO(0, serial)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_new, 0, 0, 2)
-       ZEND_ARG_INFO(0, dn) /* array */
-       ZEND_ARG_INFO(1, privkey)
-       ZEND_ARG_INFO(0, configargs)
-       ZEND_ARG_INFO(0, extraattribs)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_get_subject, 0, 0, 1)
-       ZEND_ARG_INFO(0, csr)
-       ZEND_ARG_INFO(0, use_shortnames)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_get_public_key, 0, 0, 1)
-       ZEND_ARG_INFO(0, csr)
-       ZEND_ARG_INFO(0, use_shortnames)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_new, 0, 0, 0)
-       ZEND_ARG_INFO(0, configargs) /* array */
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_export_to_file, 0, 0, 2)
-       ZEND_ARG_INFO(0, key)
-       ZEND_ARG_INFO(0, outfilename)
-       ZEND_ARG_INFO(0, passphrase)
-       ZEND_ARG_INFO(0, config_args) /* array */
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_export, 0, 0, 2)
-       ZEND_ARG_INFO(0, key)
-       ZEND_ARG_INFO(1, out)
-       ZEND_ARG_INFO(0, passphrase)
-       ZEND_ARG_INFO(0, config_args) /* array */
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_pkey_get_public, 0)
-       ZEND_ARG_INFO(0, cert)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_pkey_free, 0)
-       ZEND_ARG_INFO(0, key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_get_private, 0, 0, 1)
-       ZEND_ARG_INFO(0, key)
-       ZEND_ARG_INFO(0, passphrase)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_pkey_get_details, 0)
-       ZEND_ARG_INFO(0, key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pbkdf2, 0, 0, 4)
-       ZEND_ARG_INFO(0, password)
-       ZEND_ARG_INFO(0, salt)
-       ZEND_ARG_INFO(0, key_length)
-       ZEND_ARG_INFO(0, iterations)
-       ZEND_ARG_INFO(0, digest_algorithm)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs7_verify, 0, 0, 2)
-       ZEND_ARG_INFO(0, filename)
-       ZEND_ARG_INFO(0, flags)
-       ZEND_ARG_INFO(0, signerscerts)
-       ZEND_ARG_INFO(0, cainfo) /* array */
-       ZEND_ARG_INFO(0, extracerts)
-       ZEND_ARG_INFO(0, content)
-       ZEND_ARG_INFO(0, pk7)
-ZEND_END_ARG_INFO()
-
 ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs7_encrypt, 0, 0, 4)
        ZEND_ARG_INFO(0, infile)
        ZEND_ARG_INFO(0, outfile)
@@ -3646,7 +3533,7 @@ PHP_FUNCTION(openssl_csr_new)
 }
 /* }}} */
 
-/* {{{ proto mixed openssl_csr_get_subject(mixed csr)
+/* {{{ proto mixed openssl_csr_get_subject(mixed csr [, bool use_shortnames = TRUE])
    Returns the subject of a CERT or FALSE on error */
 PHP_FUNCTION(openssl_csr_get_subject)
 {
@@ -3677,7 +3564,7 @@ PHP_FUNCTION(openssl_csr_get_subject)
 }
 /* }}} */
 
-/* {{{ proto mixed openssl_csr_get_public_key(mixed csr)
+/* {{{ proto mixed openssl_csr_get_public_key(mixed csr [, bool use_shortnames = TRUE])
        Returns the subject of a CERT or FALSE on error */
 PHP_FUNCTION(openssl_csr_get_public_key)
 {
@@ -4338,7 +4225,7 @@ static zend_bool php_openssl_pkey_init_dh(DH *dh, zval *data)
 }
 /* }}} */
 
-/* {{{ proto resource openssl_pkey_new([array configargs])
+/* {{{ proto mixed openssl_pkey_new([array configargs])
    Generates a new private key */
 PHP_FUNCTION(openssl_pkey_new)
 {
@@ -4551,7 +4438,7 @@ clean_exit:
 }
 /* }}} */
 
-/* {{{ proto bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase, array config_args)
+/* {{{ proto bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase [, array config_args]])
    Gets an exportable representation of a key into a file */
 PHP_FUNCTION(openssl_pkey_export_to_file)
 {
@@ -4724,7 +4611,7 @@ PHP_FUNCTION(openssl_pkey_export)
 }
 /* }}} */
 
-/* {{{ proto int openssl_pkey_get_public(mixed cert)
+/* {{{ proto mixed openssl_pkey_get_public(mixed cert)
    Gets public key from X.509 certificate */
 PHP_FUNCTION(openssl_pkey_get_public)
 {
@@ -4761,7 +4648,7 @@ PHP_FUNCTION(openssl_pkey_free)
 }
 /* }}} */
 
-/* {{{ proto int openssl_pkey_get_private(string key [, string passphrase])
+/* {{{ proto mixed openssl_pkey_get_private(string key [, string passphrase])
    Gets private keys */
 PHP_FUNCTION(openssl_pkey_get_private)
 {
@@ -4787,7 +4674,7 @@ PHP_FUNCTION(openssl_pkey_get_private)
 
 /* }}} */
 
-/* {{{ proto resource openssl_pkey_get_details(resource key)
+/* {{{ proto mixed openssl_pkey_get_details(resource key)
        returns an array with the key details (bits, pkey, type)*/
 PHP_FUNCTION(openssl_pkey_get_details)
 {
@@ -5056,7 +4943,7 @@ PHP_FUNCTION(openssl_pkey_derive)
 /* }}} */
 
 
-/* {{{ proto string openssl_pbkdf2(string password, string salt, int key_length, int iterations [, string digest_method = "sha1"])
+/* {{{ proto mixed openssl_pbkdf2(string password, string salt, int key_length, int iterations [, string digest_method = "sha1"])
    Generates a PKCS5 v2 PBKDF2 string, defaults to sha1 */
 PHP_FUNCTION(openssl_pbkdf2)
 {
index 23acc5f47c85fdda34688630cc9284d24420777c..0e4854fa5d507767a75ff2199c4146665f4efee7 100644 (file)
@@ -22,3 +22,82 @@ function openssl_x509_read($cert) {}
 
 /** @return false|void */
 function openssl_x509_free($x509) {}
+
+/**
+ * @param resource|string $x509cert
+ * @param resource|string|array $priv_key
+ */
+function openssl_pkcs12_export_to_file($x509cert, string $filename, $priv_key, string $pass, array $args = UNKNOWN): bool {}
+
+/**
+ * @param resource|string $x509
+ * @param resource|string|array $priv_key
+ */
+function openssl_pkcs12_export($x509 , &$out, $priv_key, string $pass, array $args = UNKNOWN): bool {}
+
+function openssl_pkcs12_read(string $pkcs12, &$certs, string $pass): bool {}
+
+/** @param resource $csr */
+function openssl_csr_export_to_file($csr, string $outfilename, bool $notext = true): bool {}
+
+/** @param resource $csr */
+function openssl_csr_export($csr, &$out, bool $notext = true): bool {}
+
+/**
+ * @param resource|string $csr
+ * @param resource|string $cacert
+ * @param resource|string|array $priv_key
+ * @return resource|false
+ */
+function openssl_csr_sign($csr, $cacert = null, $priv_key, int $days, ?array $config_args = null, int $serial = 0) {}
+
+/** @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
+ * @return resource|false
+ */
+function openssl_csr_get_public_key($csr, bool $use_shortnames = true) {}
+
+/** @return resource|false */
+function openssl_pkey_new(?array $configargs = null) {}
+
+/** @param resource|string|array $key */
+function openssl_pkey_export_to_file($key, string $outfilename, ?string $passphrase = null, ?array $configargs = null): bool {}
+
+/** @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
+ */
+function openssl_pkey_get_public($cert) {}
+
+/** @param resource $key */
+function openssl_pkey_free($key): void {}
+
+/**
+ * @param resource|string|array $key
+ * @return resource|false
+ */
+function openssl_pkey_get_private($key, string $passphrase = UNKNOWN) {}
+
+/**
+ * @param resource $key
+ * @return array|false
+ */
+function openssl_pkey_get_details($key) {}
+
+/** @return string|false */
+function openssl_pbkdf2(string $password, string $salt, int $key_length, int $iterations, string $digest_algorithm = 'sha1') {}
+
+/** @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) {}
index ed104a2ffaea761f5a1a9a83da1816c11e9ddd19..6c386450f53ff58ec7c709cfbbc44ef1e6483b20 100644 (file)
@@ -47,3 +47,111 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_free, 0, 0, 1)
        ZEND_ARG_INFO(0, x509)
 ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs12_export_to_file, 0, 4, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, x509cert)
+       ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+       ZEND_ARG_INFO(0, priv_key)
+       ZEND_ARG_TYPE_INFO(0, pass, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs12_export, 0, 4, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, x509)
+       ZEND_ARG_INFO(1, out)
+       ZEND_ARG_INFO(0, priv_key)
+       ZEND_ARG_TYPE_INFO(0, pass, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkcs12_read, 0, 3, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, pkcs12, IS_STRING, 0)
+       ZEND_ARG_INFO(1, certs)
+       ZEND_ARG_TYPE_INFO(0, pass, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_csr_export_to_file, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, csr)
+       ZEND_ARG_TYPE_INFO(0, outfilename, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, notext, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_csr_export, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, csr)
+       ZEND_ARG_INFO(1, out)
+       ZEND_ARG_TYPE_INFO(0, notext, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_sign, 0, 0, 4)
+       ZEND_ARG_INFO(0, csr)
+       ZEND_ARG_INFO(0, cacert)
+       ZEND_ARG_INFO(0, priv_key)
+       ZEND_ARG_TYPE_INFO(0, days, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, config_args, IS_ARRAY, 1)
+       ZEND_ARG_TYPE_INFO(0, serial, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_csr_new, 0, 0, 2)
+       ZEND_ARG_TYPE_INFO(0, dn, IS_ARRAY, 0)
+       ZEND_ARG_INFO(1, privkey)
+       ZEND_ARG_TYPE_INFO(0, configargs, IS_ARRAY, 1)
+       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_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_pkey_new, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, configargs, IS_ARRAY, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkey_export_to_file, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, key)
+       ZEND_ARG_TYPE_INFO(0, outfilename, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 1)
+       ZEND_ARG_TYPE_INFO(0, configargs, IS_ARRAY, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkey_export, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, key)
+       ZEND_ARG_INFO(1, out)
+       ZEND_ARG_TYPE_INFO(0, passphrase, IS_STRING, 1)
+       ZEND_ARG_TYPE_INFO(0, configargs, IS_ARRAY, 1)
+ZEND_END_ARG_INFO()
+
+#define arginfo_openssl_pkey_get_public arginfo_openssl_x509_read
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_pkey_free, 0, 1, IS_VOID, 0)
+       ZEND_ARG_INFO(0, key)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkey_get_private, 0, 0, 1)
+       ZEND_ARG_INFO(0, key)
+       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_ARG_INFO(0, key)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pbkdf2, 0, 0, 4)
+       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)
+       ZEND_ARG_TYPE_INFO(0, iterations, IS_LONG, 0)
+       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_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)
+       ZEND_ARG_TYPE_INFO(0, cainfo, IS_ARRAY, 0)
+       ZEND_ARG_TYPE_INFO(0, extracerts, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, content, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, pk7, IS_STRING, 0)
+ZEND_END_ARG_INFO()