mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Merge branch 'PHP-8.0'
* PHP-8.0: Fix #52093: openssl_csr_sign truncates $serial
This commit is contained in:
commit
58ca47a06f
@ -3220,8 +3220,11 @@ PHP_FUNCTION(openssl_csr_sign)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
ASN1_INTEGER_set(X509_get_serialNumber(new_cert), (long)serial);
|
||||
#if PHP_OPENSSL_API_VERSION >= 0x10100
|
||||
ASN1_INTEGER_set_int64(X509_get_serialNumber(new_cert), serial);
|
||||
#else
|
||||
ASN1_INTEGER_set(X509_get_serialNumber(new_cert), serial);
|
||||
#endif
|
||||
|
||||
X509_set_subject_name(new_cert, X509_REQ_get_subject_name(csr));
|
||||
|
||||
|
25
ext/openssl/tests/bug52093.phpt
Normal file
25
ext/openssl/tests/bug52093.phpt
Normal file
@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #52093 (openssl_csr_sign truncates $serial)
|
||||
--EXTENSIONS--
|
||||
openssl
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (PHP_INT_SIZE !== 8) die("skip this test is for 64bit platforms only");
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dn = array(
|
||||
"countryName" => "BR",
|
||||
"stateOrProvinceName" => "Rio Grande do Sul",
|
||||
"localityName" => "Porto Alegre",
|
||||
"commonName" => "Henrique do N. Angelo",
|
||||
"emailAddress" => "hnangelo@php.net"
|
||||
);
|
||||
|
||||
$privkey = openssl_pkey_new();
|
||||
$csr = openssl_csr_new($dn, $privkey);
|
||||
$cert = openssl_csr_sign($csr, null, $privkey, 365, [], PHP_INT_MAX);
|
||||
var_dump(openssl_x509_parse($cert)['serialNumber']);
|
||||
?>
|
||||
--EXPECT--
|
||||
string(19) "9223372036854775807"
|
Loading…
Reference in New Issue
Block a user