From:             jgrillon at capgemini dot fr
Operating system: Linux 2.1
PHP version:      4.3.7
PHP Bug Type:     OpenSSL related
Bug description:  wrong serialNumber (-1) using openssl_x509_parse

Description:
------------
I'm always getting "-1" as serialNumber for my certificate.

I can't see why the serial number is stored into a long in openssl.c :
add_assoc_long(return_value, "serialNumber",           
ASN1_INTEGER_get(X509_get_serialNumber(cert)));

I guess the serial number is too big for a long...
Can't we store it as string ?
add_assoc_asn1_string(return_value, "serialNumberAsString",            
X509_get_serialNumber(cert));

Thanks.

Here is the certificate I used :
-----BEGIN CERTIFICATE-----
MIIC3DCCAkWgAwIBAgIQeqhtj1pzHCrTTq2AldV0ejANBgkqhkiG9w0BAQQFADAy
MRcwFQYDVQQKEw5FLUFDSEFUIE1JTkRFRjEXMBUGA1UEAxMORS1BQ0hBVCBNSU5E
RUYwHhcNMDQwMTA1MDAwMDAwWhcNMDYwMTA0MjM1OTU5WjCB5DEOMAwGA1UEBxQF
UEFSSVMxCzAJBgNVBAYTAkZSMRcwFQYDVQQKFA5FLUFDSEFUIE1JTkRFRjEtMCsG
A1UECxQkRW50LiAtIENhcCBHZW1pbmkgRXJuc3QgWW91bmcgRnJhbmNlMR8wHQYD
VQQLFBZTSVJFTiAtIDMyODc4MTc4NjAwMDUzMTQwMgYDVQQDEytDR0VZIEZyYW5j
ZSAtIENhcCBHZW1pbmkgRXJuc3QgWW91bmcgRnJhbmNlMSYwJAYJKoZIhvcNAQkB
FhdkZ2FlbWEtbWNvQGNhcGdlbWluaS5mcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
gYkCgYEApFgcuVTuUe0z+iGTaPw7yVxhZsPq6aIqGHsCvU9fqUcymbmg9l4oTfAk
gR5bvDo+JTQb1/OPlQCKqyVa7wn6lPs97dMOZMobjCRcvw7z0jVphortA1NS8FRH
6LsWELZ13uC57IIakpW726Vz3tST9qHHbQoWbX/n8NjHcwL4zUECAwEAAaNAMD4w
CQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgeAMBEGCmCG
SAGG+EUBBgkEAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAWdmEu8TkFdgqA/xN6llo9
zZR3EUH0X5HstxJRYgofcQyfumJHhgvaNB8vkDhZ3iJORVVxcJ27W36TAJ6b4jcr
yWjO/nc42XdgknS8r9NIV7VKzmjY7Ip2+9N6JOAWFkjGrnF1G69nrerIJavJTzrb
PYlQnzJO6SHAoi5j6WsKPw==
-----END CERTIFICATE-----


Reproduce code:
---------------
 $fp = fopen("xxx.cer", "r");
 $cert = fread($fp, 8192);
 $r = @openssl_x509_read($cert);
 print_r(openssl_x509_parse($r));

Expected result:
----------------
Something like

[...]
 [serialNumber] => 7a a8 6d 8f 5a 73 1c 2a d3 4e ad 80 95 d5 74 7a
[...]


Actual result:
--------------
[...]
 [serialNumber] => -1
[...]

-- 
Edit bug report at http://bugs.php.net/?id=28671&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=28671&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=28671&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=28671&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=28671&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=28671&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=28671&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=28671&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=28671&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=28671&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=28671&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=28671&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=28671&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=28671&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=28671&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=28671&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=28671&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=28671&r=float

Reply via email to