Skip to content

Commit 31d7f97

Browse files
rimvydas-zilinskasnikic
authored andcommitted
Add partial openssl stubs
Closes GH-4509.
1 parent 4799b76 commit 31d7f97

File tree

3 files changed

+74
-48
lines changed

3 files changed

+74
-48
lines changed

ext/openssl/openssl.c

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
#include "php.h"
2929
#include "php_ini.h"
30+
#include "openssl_arginfo.h"
3031
#include "php_openssl.h"
3132
#include "zend_exceptions.h"
3233

@@ -131,54 +132,6 @@ PHP_FUNCTION(openssl_pkey_derive);
131132
PHP_FUNCTION(openssl_random_pseudo_bytes);
132133

133134
/* {{{ arginfo */
134-
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 0, 2)
135-
ZEND_ARG_INFO(0, x509)
136-
ZEND_ARG_INFO(0, outfilename)
137-
ZEND_ARG_INFO(0, notext)
138-
ZEND_END_ARG_INFO()
139-
140-
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_export, 0, 0, 2)
141-
ZEND_ARG_INFO(0, x509)
142-
ZEND_ARG_INFO(1, out)
143-
ZEND_ARG_INFO(0, notext)
144-
ZEND_END_ARG_INFO()
145-
146-
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_fingerprint, 0, 0, 1)
147-
ZEND_ARG_INFO(0, x509)
148-
ZEND_ARG_INFO(0, method)
149-
ZEND_ARG_INFO(0, raw_output)
150-
ZEND_END_ARG_INFO()
151-
152-
ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_check_private_key, 0)
153-
ZEND_ARG_INFO(0, cert)
154-
ZEND_ARG_INFO(0, key)
155-
ZEND_END_ARG_INFO()
156-
157-
ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_verify, 0)
158-
ZEND_ARG_INFO(0, cert)
159-
ZEND_ARG_INFO(0, key)
160-
ZEND_END_ARG_INFO()
161-
162-
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_parse, 0, 0, 1)
163-
ZEND_ARG_INFO(0, x509)
164-
ZEND_ARG_INFO(0, shortname)
165-
ZEND_END_ARG_INFO()
166-
167-
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_checkpurpose, 0, 0, 2)
168-
ZEND_ARG_INFO(0, x509cert)
169-
ZEND_ARG_INFO(0, purpose)
170-
ZEND_ARG_INFO(0, cainfo) /* array */
171-
ZEND_ARG_INFO(0, untrustedfile)
172-
ZEND_END_ARG_INFO()
173-
174-
ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_read, 0)
175-
ZEND_ARG_INFO(0, cert)
176-
ZEND_END_ARG_INFO()
177-
178-
ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_free, 0)
179-
ZEND_ARG_INFO(0, x509)
180-
ZEND_END_ARG_INFO()
181-
182135
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_pkcs12_export_to_file, 0, 0, 4)
183136
ZEND_ARG_INFO(0, x509)
184137
ZEND_ARG_INFO(0, filename)

ext/openssl/openssl.stub.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
function openssl_x509_export_to_file($x509, string $outfilename, bool $notext = true): bool {}
4+
5+
function openssl_x509_export($x509 , &$out, bool $notext = true): bool {}
6+
7+
/** @return string|false */
8+
function openssl_x509_fingerprint($x509, string $method = 'sha1', bool $raw_output = false) {}
9+
10+
function openssl_x509_check_private_key($cert, $key): bool {}
11+
12+
function openssl_x509_verify($cert, $key): int {}
13+
14+
/** @return array|false */
15+
function openssl_x509_parse($x509, bool $shortname = true) {}
16+
17+
/** @return bool|int */
18+
function openssl_x509_checkpurpose($x509cert, int $purpose, ?array $cainfo = [], string $untrustedfile = UNKNOWN) {}
19+
20+
/** @return resource|false */
21+
function openssl_x509_read($cert) {}
22+
23+
/** @return false|void */
24+
function openssl_x509_free($x509) {}

ext/openssl/openssl_arginfo.h

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0)
4+
ZEND_ARG_INFO(0, x509)
5+
ZEND_ARG_TYPE_INFO(0, outfilename, IS_STRING, 0)
6+
ZEND_ARG_TYPE_INFO(0, notext, _IS_BOOL, 0)
7+
ZEND_END_ARG_INFO()
8+
9+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export, 0, 2, _IS_BOOL, 0)
10+
ZEND_ARG_INFO(0, x509)
11+
ZEND_ARG_INFO(1, out)
12+
ZEND_ARG_TYPE_INFO(0, notext, _IS_BOOL, 0)
13+
ZEND_END_ARG_INFO()
14+
15+
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_fingerprint, 0, 0, 1)
16+
ZEND_ARG_INFO(0, x509)
17+
ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
18+
ZEND_ARG_TYPE_INFO(0, raw_output, _IS_BOOL, 0)
19+
ZEND_END_ARG_INFO()
20+
21+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_check_private_key, 0, 2, _IS_BOOL, 0)
22+
ZEND_ARG_INFO(0, cert)
23+
ZEND_ARG_INFO(0, key)
24+
ZEND_END_ARG_INFO()
25+
26+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_verify, 0, 2, IS_LONG, 0)
27+
ZEND_ARG_INFO(0, cert)
28+
ZEND_ARG_INFO(0, key)
29+
ZEND_END_ARG_INFO()
30+
31+
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_parse, 0, 0, 1)
32+
ZEND_ARG_INFO(0, x509)
33+
ZEND_ARG_TYPE_INFO(0, shortname, _IS_BOOL, 0)
34+
ZEND_END_ARG_INFO()
35+
36+
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_checkpurpose, 0, 0, 2)
37+
ZEND_ARG_INFO(0, x509cert)
38+
ZEND_ARG_TYPE_INFO(0, purpose, IS_LONG, 0)
39+
ZEND_ARG_TYPE_INFO(0, cainfo, IS_ARRAY, 1)
40+
ZEND_ARG_TYPE_INFO(0, untrustedfile, IS_STRING, 0)
41+
ZEND_END_ARG_INFO()
42+
43+
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_read, 0, 0, 1)
44+
ZEND_ARG_INFO(0, cert)
45+
ZEND_END_ARG_INFO()
46+
47+
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_free, 0, 0, 1)
48+
ZEND_ARG_INFO(0, x509)
49+
ZEND_END_ARG_INFO()

0 commit comments

Comments
 (0)