]> granicus.if.org Git - php/commitdiff
Add partial openssl stubs
authorRimvydas Zilinskas <rimvydas@loftdigital.com>
Sat, 10 Aug 2019 17:16:13 +0000 (18:16 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Sat, 10 Aug 2019 20:19:16 +0000 (22:19 +0200)
Closes GH-4509.

ext/openssl/openssl.c
ext/openssl/openssl.stub.php [new file with mode: 0644]
ext/openssl/openssl_arginfo.h [new file with mode: 0644]

index 5e9528afd55fe372e09c9d0e120a87b9d5b4f347..caff996573a5bac55338dda998a50a7cff188cb3 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "php.h"
 #include "php_ini.h"
+#include "openssl_arginfo.h"
 #include "php_openssl.h"
 #include "zend_exceptions.h"
 
@@ -131,54 +132,6 @@ PHP_FUNCTION(openssl_pkey_derive);
 PHP_FUNCTION(openssl_random_pseudo_bytes);
 
 /* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 0, 2)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(0, outfilename)
-       ZEND_ARG_INFO(0, notext)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_export, 0, 0, 2)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(1, out)
-       ZEND_ARG_INFO(0, notext)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_fingerprint, 0, 0, 1)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(0, method)
-       ZEND_ARG_INFO(0, raw_output)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_check_private_key, 0)
-       ZEND_ARG_INFO(0, cert)
-       ZEND_ARG_INFO(0, key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_verify, 0)
-       ZEND_ARG_INFO(0, cert)
-       ZEND_ARG_INFO(0, key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_parse, 0, 0, 1)
-       ZEND_ARG_INFO(0, x509)
-       ZEND_ARG_INFO(0, shortname)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_checkpurpose, 0, 0, 2)
-       ZEND_ARG_INFO(0, x509cert)
-       ZEND_ARG_INFO(0, purpose)
-       ZEND_ARG_INFO(0, cainfo) /* array */
-       ZEND_ARG_INFO(0, untrustedfile)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_read, 0)
-       ZEND_ARG_INFO(0, cert)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_free, 0)
-       ZEND_ARG_INFO(0, x509)
-ZEND_END_ARG_INFO()
-
 ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs12_export_to_file, 0, 0, 4)
        ZEND_ARG_INFO(0, x509)
        ZEND_ARG_INFO(0, filename)
diff --git a/ext/openssl/openssl.stub.php b/ext/openssl/openssl.stub.php
new file mode 100644 (file)
index 0000000..23acc5f
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+function openssl_x509_export_to_file($x509, string $outfilename, bool $notext = true): bool {}
+
+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_check_private_key($cert, $key): bool {}
+
+function openssl_x509_verify($cert, $key): int {}
+
+/** @return array|false */
+function openssl_x509_parse($x509, bool $shortname = true) {}
+
+/** @return bool|int */
+function openssl_x509_checkpurpose($x509cert, int $purpose, ?array $cainfo = [], string $untrustedfile = UNKNOWN) {}
+
+/** @return resource|false */
+function openssl_x509_read($cert) {}
+
+/** @return false|void */
+function openssl_x509_free($x509) {}
diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h
new file mode 100644 (file)
index 0000000..ed104a2
--- /dev/null
@@ -0,0 +1,49 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, x509)
+       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_x509_export, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, x509)
+       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_x509_fingerprint, 0, 0, 1)
+       ZEND_ARG_INFO(0, x509)
+       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_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_check_private_key, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, cert)
+       ZEND_ARG_INFO(0, key)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_verify, 0, 2, IS_LONG, 0)
+       ZEND_ARG_INFO(0, cert)
+       ZEND_ARG_INFO(0, key)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_parse, 0, 0, 1)
+       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_ARG_INFO(0, x509cert)
+       ZEND_ARG_TYPE_INFO(0, purpose, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, cainfo, IS_ARRAY, 1)
+       ZEND_ARG_TYPE_INFO(0, untrustedfile, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+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_ARG_INFO(0, x509)
+ZEND_END_ARG_INFO()