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