diff --git a/ext/openssl/openssl_backend_common.c b/ext/openssl/openssl_backend_common.c index 5671240c044..611359cccab 100644 --- a/ext/openssl/openssl_backend_common.c +++ b/ext/openssl/openssl_backend_common.c @@ -711,7 +711,7 @@ STACK_OF(X509) *php_openssl_load_all_certs_from_file( } /* This loads from a file, a stack of x509/crl/pkey sets */ - if (!(sk = PEM_X509_INFO_read_bio(in, NULL, NULL, NULL))) { + if (!(sk = php_openssl_pem_read_bio_x509_info(in))) { php_openssl_store_errors(); php_error_docref(NULL, E_WARNING, "Error reading the file, %s", cert_path); sk_X509_free(stack); diff --git a/ext/openssl/openssl_backend_v1.c b/ext/openssl/openssl_backend_v1.c index 956f07e1a1e..81c327dbfe3 100644 --- a/ext/openssl/openssl_backend_v1.c +++ b/ext/openssl/openssl_backend_v1.c @@ -723,6 +723,11 @@ X509_REQ *php_openssl_pem_read_bio_x509_req(BIO *in) return PEM_read_bio_X509_REQ(in, NULL, NULL, NULL); } +STACK_OF(X509_INFO) *php_openssl_pem_read_bio_x509_info(BIO *in) +{ + return PEM_X509_INFO_read_bio(in, NULL, NULL, NULL); +} + EVP_PKEY *php_openssl_pem_read_bio_public_key(BIO *in) { return PEM_read_bio_PUBKEY(in, NULL, NULL, NULL); diff --git a/ext/openssl/openssl_backend_v3.c b/ext/openssl/openssl_backend_v3.c index e037d9e13f5..cd190546d50 100644 --- a/ext/openssl/openssl_backend_v3.c +++ b/ext/openssl/openssl_backend_v3.c @@ -903,6 +903,11 @@ X509_REQ *php_openssl_pem_read_bio_x509_req(BIO *in) return xr; } +STACK_OF(X509_INFO) *php_openssl_pem_read_bio_x509_info(BIO *in) +{ + return PEM_X509_INFO_read_bio_ex(in, NULL, NULL, NULL, PHP_OPENSSL_LIBCTX, PHP_OPENSSL_PROPQ); +} + EVP_PKEY *php_openssl_pem_read_bio_public_key(BIO *in) { return PEM_read_bio_PUBKEY_ex(in, NULL, NULL, NULL, PHP_OPENSSL_LIBCTX, PHP_OPENSSL_PROPQ); diff --git a/ext/openssl/php_openssl_backend.h b/ext/openssl/php_openssl_backend.h index 35af52c6c83..00da5e74fc1 100644 --- a/ext/openssl/php_openssl_backend.h +++ b/ext/openssl/php_openssl_backend.h @@ -195,6 +195,7 @@ zend_string *php_openssl_pkey_derive(EVP_PKEY *key, EVP_PKEY *peer_key, size_t r X509 *php_openssl_pem_read_asn1_bio_x509(BIO *in); X509 *php_openssl_pem_read_bio_x509(BIO *in); X509_REQ *php_openssl_pem_read_bio_x509_req(BIO *in); +STACK_OF(X509_INFO) *php_openssl_pem_read_bio_x509_info(BIO *in); EVP_PKEY *php_openssl_pem_read_bio_public_key(BIO *in); EVP_PKEY *php_openssl_pem_read_bio_private_key(BIO *in, pem_password_cb *cb, void *u); PKCS7 *php_openssl_pem_read_bio_pkcs7(BIO *in);