Add Patch to compile PHP (7.4, 8.0?) againmst openssl 3.0.

This commit is contained in:
Christoph 2023-06-18 10:14:45 +02:00
parent de34143a3b
commit c7ea9f5ebb
2 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,54 @@
diff -Naur openssl/openssl.c openssl-NEU/openssl.c
--- openssl/openssl.c 2022-10-31 11:36:06.000000000 +0100
+++ openssl-NEU/openssl.c 2023-06-18 09:45:19.793215668 +0200
@@ -1517,7 +1517,9 @@
REGISTER_LONG_CONSTANT("PKCS7_NOSIGS", PKCS7_NOSIGS, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_CS|CONST_PERSISTENT);
+#ifdef RSA_SSLV23_PADDING
REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT);
+#endif
REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_CS|CONST_PERSISTENT);
diff -Naur openssl/tests/bug28382.phpt openssl-NEU/tests/bug28382.phpt
--- openssl/tests/bug28382.phpt 2022-10-31 11:36:06.000000000 +0100
+++ openssl-NEU/tests/bug28382.phpt 2023-06-18 09:48:26.813627405 +0200
@@ -9,11 +9,10 @@
$cert = file_get_contents(__DIR__ . "/bug28382cert.txt");
$ext = openssl_x509_parse($cert);
var_dump($ext['extensions']);
-/* openssl 1.0 prepends the string "Full Name:" to the crlDistributionPoints array key.
- For now, as this is the one difference only between 0.9.x and 1.x, it's handled with
- placeholders to not to duplicate the test. When more diffs come, a duplication would
- be probably a better solution.
-*/
+/*
+ * The reason for %A at the end of crlDistributionPoints and authorityKeyIdentifier is that
+ * OpenSSL 3.0 removes new lines which were present in previous versions.
+ */^
?>
--EXPECTF--
array(11) {
@@ -24,8 +23,7 @@
["nsCertType"]=>
string(30) "SSL Client, SSL Server, S/MIME"
["crlDistributionPoints"]=>
- string(%d) "%AURI:http://mobile.blue-software.ro:90/ca/crl.shtml
-"
+ string(%d) "Full Name:%AURI:http://mobile.blue-software.ro:90/ca/crl.shtml%A"
["nsCaPolicyUrl"]=>
string(38) "http://mobile.blue-software.ro:90/pub/"
["subjectAltName"]=>
@@ -33,9 +31,8 @@
["subjectKeyIdentifier"]=>
string(59) "B0:A7:FF:F9:41:15:DE:23:39:BD:DD:31:0F:97:A0:B2:A2:74:E0:FC"
["authorityKeyIdentifier"]=>
- string(115) "DirName:/C=RO/ST=Romania/L=Craiova/O=Sergiu/OU=Sergiu SRL/CN=Sergiu CA/emailAddress=n_sergiu@hotmail.com
-serial:00
-"
+ string(%d) "DirName:/C=RO/ST=Romania/L=Craiova/O=Sergiu/OU=Sergiu SRL/CN=Sergiu CA/emailAddress=n_sergiu@hotmail.com
+serial:00%A"
["keyUsage"]=>
string(71) "Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment"
["nsBaseUrl"]=>

View File

@ -3223,6 +3223,24 @@ else
echo_skipped echo_skipped
fi fi
echononl "\tApply patch to compile against OpenSSL 3.0.."
if [[ "$os_dist" = "debian" ]] && [[ $os_version -gt 11 ]] && [[ $PHP_MAJOR_VERSION = 7 ]]; then
if [[ -f ${_srcdir}/PHP-7.4-OpenSSL-3.0-compatibility.patch ]] ; then
patch -d $_builddir/ext -p 0 < ${_srcdir}/PHP-7.4-OpenSSL-3.0-compatibility.patch > $tmp_err_msg 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
fatal "$(cat $tmp_err_msg)"
fi
else
echo_failed
fatal "Can't find patchfile '${_srcdir}/PHP-7.4-OpenSSL-3.0-compatibility.patch'"
fi
else
echo_skipped
fi
echononl "\tChange ownership of unpacked dirextory \"php-$VERSION\"" echononl "\tChange ownership of unpacked dirextory \"php-$VERSION\""
chown -R root.root php-$VERSION > $tmp_err_msg 2>&1 chown -R root.root php-$VERSION > $tmp_err_msg 2>&1
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then