From 10834d1572de41a04a7ab75ef2151d8c9e34c194 Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Mon, 11 Aug 2025 19:31:59 +0200 Subject: [PATCH] Fix #47728: Add missing openssl constants This adds PKCS7_NOSMIMECAP, PKCS7_CRLFEOL, PKCS7_NOCRL and PKCS7_NO_DUAL_CONTENT constants. They might be potentially useful in some scenarious. Test is not added as it is not clear if there is much need for those and it would require much bigger effort just to test OpenSSL functionality. Closes GH-19450 --- NEWS | 2 ++ UPGRADING | 4 ++++ ext/openssl/openssl.stub.php | 20 ++++++++++++++++++++ ext/openssl/openssl_arginfo.h | 6 +++++- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index fa0a98a01c6..a021293adc1 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,8 @@ PHP NEWS (Girgias) . Implement #80495 (Enable to set padding in openssl_(sign|verify). (Jakub Zelenka) + . Implement #47728 (openssl_pkcs7_sign ignores new openssl flags). + (Jakub Zelenka) - PDO: . The "uri:" DSN scheme has been deprecated due to security concerns with diff --git a/UPGRADING b/UPGRADING index c95ed92f6da..1d5b2b8ede4 100644 --- a/UPGRADING +++ b/UPGRADING @@ -674,6 +674,10 @@ PHP 8.5 UPGRADE NOTES - OpenSSL: . OPENSSL_PKCS1_PSS_PADDING + . PKCS7_NOSMIMECAP + . PKCS7_CRLFEOL + . PKCS7_NOCRL + . PKCS7_NO_DUAL_CONTENT - POSIX: . POSIX_SC_OPEN_MAX. diff --git a/ext/openssl/openssl.stub.php b/ext/openssl/openssl.stub.php index a7d1a5cda6e..4950000c775 100644 --- a/ext/openssl/openssl.stub.php +++ b/ext/openssl/openssl.stub.php @@ -166,6 +166,26 @@ const PKCS7_NOSIGS = UNKNOWN; * @cvalue PKCS7_NOOLDMIMETYPE */ const PKCS7_NOOLDMIMETYPE = UNKNOWN; +/** + * @var int + * @cvalue PKCS7_NOSMIMECAP + */ +const PKCS7_NOSMIMECAP = UNKNOWN; +/** + * @var int + * @cvalue PKCS7_CRLFEOL + */ +const PKCS7_CRLFEOL = UNKNOWN; +/** + * @var int + * @cvalue PKCS7_NOCRL + */ +const PKCS7_NOCRL = UNKNOWN; +/** + * @var int + * @cvalue PKCS7_NO_DUAL_CONTENT + */ +const PKCS7_NO_DUAL_CONTENT = UNKNOWN; /** * @var int diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h index 22b4f10dfab..c032b7543a3 100644 --- a/ext/openssl/openssl_arginfo.h +++ b/ext/openssl/openssl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: ff620528ee3035e295099637cc9f94b78a53416b */ + * Stub hash: 03e511abb97901a4a8268276b809b3cf7afbfa29 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0) ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL) @@ -586,6 +586,10 @@ static void register_openssl_symbols(int module_number) REGISTER_LONG_CONSTANT("PKCS7_BINARY", PKCS7_BINARY, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PKCS7_NOSIGS", PKCS7_NOSIGS, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PKCS7_NOOLDMIMETYPE", PKCS7_NOOLDMIMETYPE, CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PKCS7_NOSMIMECAP", PKCS7_NOSMIMECAP, CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PKCS7_CRLFEOL", PKCS7_CRLFEOL, CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PKCS7_NOCRL", PKCS7_NOCRL, CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PKCS7_NO_DUAL_CONTENT", PKCS7_NO_DUAL_CONTENT, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("OPENSSL_CMS_DETACHED", CMS_DETACHED, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("OPENSSL_CMS_TEXT", CMS_TEXT, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOINTERN", CMS_NOINTERN, CONST_PERSISTENT);