|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2016-06-07 21:28 UTC] bugs dot php dot net at majkl578 dot cz
Description:
------------
OpenSSL extension is not compatible with upcoming OpenSSL 1.1.0.
Test script:
---------------
Install OpenSSL 1.1.0 headers (you can use Debian experimental for this).
$ ./configure --disable-all --with-openssl
$ make
Expected result:
----------------
No errors.
Actual result:
--------------
/build/php/ext/openssl/openssl.c: In function ‘php_openssl_get_evp_md_from_algo’:
/build/php/ext/openssl/openssl.c:1078:24: warning: implicit declaration of function ‘EVP_dss1’ [-Wimplicit-function-declaration]
mdtype = (EVP_MD *) EVP_dss1();
^~~~~~~~
/build/php/ext/openssl/openssl.c:1078:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
mdtype = (EVP_MD *) EVP_dss1();
^
/build/php/ext/openssl/openssl.c: In function ‘openssl_x509v3_subjectAltName’:
/build/php/ext/openssl/openssl.c:1920:15: error: dereferencing pointer to incomplete type ‘X509_EXTENSION {aka struct X509_extension_st}’
p = extension->value->data;
^~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_x509_parse’:
/build/php/ext/openssl/openssl.c:1998:10: error: dereferencing pointer to incomplete type ‘X509 {aka struct x509_st}’
if (cert->name) {
^~
/build/php/ext/openssl/openssl.c: In function ‘php_openssl_is_private_key’:
/build/php/ext/openssl/openssl.c:3501:14: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
switch (pkey->type) {
^~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_pkey_new’:
/build/php/ext/openssl/openssl.c:3564:9: error: dereferencing pointer to incomplete type ‘RSA {aka struct rsa_st}’
_type->_name = BN_bin2bn( \
^
/build/php/ext/openssl/openssl.c:3593:6: note: in expansion of macro ‘OPENSSL_PKEY_SET_BN’
OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), rsa, n);
^~~~~~~~~~~~~~~~~~~
/build/php/ext/openssl/openssl.c:3564:9: error: dereferencing pointer to incomplete type ‘DSA {aka struct dsa_st}’
_type->_name = BN_bin2bn( \
^
/build/php/ext/openssl/openssl.c:3617:6: note: in expansion of macro ‘OPENSSL_PKEY_SET_BN’
OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), dsa, p);
^~~~~~~~~~~~~~~~~~~
/build/php/ext/openssl/openssl.c:3564:9: error: dereferencing pointer to incomplete type ‘DH {aka struct dh_st}’
_type->_name = BN_bin2bn( \
^
/build/php/ext/openssl/openssl.c:3641:6: note: in expansion of macro ‘OPENSSL_PKEY_SET_BN’
OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), dh, p);
^~~~~~~~~~~~~~~~~~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_sign’:
/build/php/ext/openssl/openssl.c:4788:13: error: storage size of ‘md_ctx’ isn’t known
EVP_MD_CTX md_ctx;
^~~~~~
/build/php/ext/openssl/openssl.c:4833:2: warning: implicit declaration of function ‘EVP_MD_CTX_cleanup’ [-Wimplicit-function-declaration]
EVP_MD_CTX_cleanup(&md_ctx);
^~~~~~~~~~~~~~~~~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_verify’:
/build/php/ext/openssl/openssl.c:4847:13: error: storage size of ‘md_ctx’ isn’t known
EVP_MD_CTX md_ctx;
^~~~~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_seal’:
/build/php/ext/openssl/openssl.c:4912:17: error: storage size of ‘ctx’ isn’t known
EVP_CIPHER_CTX ctx;
^~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_open’:
/build/php/ext/openssl/openssl.c:5035:17: error: storage size of ‘ctx’ isn’t known
EVP_CIPHER_CTX ctx;
^~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_digest’:
/build/php/ext/openssl/openssl.c:5163:13: error: storage size of ‘md_ctx’ isn’t known
EVP_MD_CTX md_ctx;
^~~~~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_encrypt’:
/build/php/ext/openssl/openssl.c:5244:17: error: storage size of ‘cipher_ctx’ isn’t known
EVP_CIPHER_CTX cipher_ctx;
^~~~~~~~~~
/build/php/ext/openssl/openssl.c: In function ‘zif_openssl_decrypt’:
/build/php/ext/openssl/openssl.c:5327:17: error: storage size of ‘cipher_ctx’ isn’t known
EVP_CIPHER_CTX cipher_ctx;
^~~~~~~~~~
Makefile:485: recipe for target 'ext/openssl/openssl.lo' failed
Patchesopenssl (last revision 2017-09-15 11:39 UTC by xxlsosa at gmail dot com)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 13:00:01 2025 UTC |
It builds fine but in the email that I got from you, it's suggested to apply these changes: @ ext/openssl/openssl.c PHP_MINFO_FUNCTION(openssl) { php_info_print_table_start(); php_info_print_table_row(2, "OpenSSL support", "enabled"); -- php_info_print_table_row(2, "OpenSSL Library Version", SSLeay_version(SSLEAY_VERSION)); ++ php_info_print_table_row(2, "OpenSSL Library Version", OpenSSL_version(OPENSSL_VERSION)); php_info_print_table_row(2, "OpenSSL Header Version", OPENSSL_VERSION_TEXT); php_info_print_table_row(2, "Openssl default config", default_ssl_conf_filename); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); } It means that you don't build openssl with compat api (OPENSSL_API_COMPAT < 0x10100000L) which is currently necessary. See https://github.com/openssl/openssl/blob/b3c31a6572bd7b89f469deb3c78f85f6e303df47/include/openssl/crypto.h#L54 I will take a look on those later but better to open a new bug for that called something like "Compilation with OPENSSL_API_COMPAT >= 0x10100000L fails". This is not related to the issues in this bug though.It builds fine but in the email that I got from you, it's suggested to apply these changes: @ ext/openssl/openssl.c PHP_MINFO_FUNCTION(openssl) { php_info_print_table_start(); php_info_print_table_row(2, "OpenSSL support", "enabled"); -- php_info_print_table_row(2, "OpenSSL Library Version", SSLeay_version(SSLEAY_VERSION)); ++ php_info_print_table_row(2, "OpenSSL Library Version", OpenSSL_version(OPENSSL_VERSION)); php_info_print_table_row(2, "OpenSSL Header Version", OPENSSL_VERSION_TEXT); php_info_print_table_row(2, "Openssl default config", default_ssl_conf_filename); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); } It means that you don't build openssl with compat api (OPENSSL_API_COMPAT < 0x10100000L) which is currently necessary. See https://github.com/openssl/openssl/blob/b3c31a6572bd7b89f469deb3c78f85f6e303df47/include/openssl/crypto.h#L54 I will take a look on those later but better to open a new bug for that called something like "Compilation with OPENSSL_API_COMPAT >= 0x10100000L fails". This is not related to the issues in this bug though.