ID: 28382
User updated by: n_sergiu at hotmail dot com
Reported By: n_sergiu at hotmail dot com
Status: Open
Bug Type: OpenSSL related
Operating System: all
PHP Version: 4.3.4
New Comment:
I managed to insert some line of code in openssl.c, but I would like to
see these changes in the next version of php.
PHP_FUNCTION(openssl_x509_parse)
{
...
X509_EXTENSION *extension;
ASN1_OCTET_STRING *extdata;
char extstr[20];
int nid;
...
for (i = 0; i < X509_get_ext_count(cert); i++) {
extension = X509_get_ext(cert, i);
extdata = X509_EXTENSION_get_data(extension);
sprintf(extstr, "ext%i", i);
add_assoc_asn1_string(return_value, extstr, extdata);
}
/* This is an extension I used for IP address */
nid = OBJ_create_and_add_object("1.2.3.4", "IP", "Client IP
Address");
extension = X509_get_ext(cert, X509_get_ext_by_NID(cert, nid, 0));
extdata = X509_EXTENSION_get_data(extension);
add_assoc_asn1_string(return_value, "1.2.3.4", extdata);
...
}
Previous Comments:
------------------------------------------------------------------------
[2004-05-13 09:28:57] n_sergiu at hotmail dot com
Description:
------------
When I use the openssl_x509_parse to parse a x509 certificate, the v3
extensions are not included in the output result.
Reproduce code:
---------------
$file = fopen("/home/sergiu/clienttest.crt", "rb");
$cert = fread($file, filesize("/home/sergiu/clienttest.crt"));
print_r(openssl_x509_parse($cert));
Expected result:
----------------
Array
(
[name] => /C=RO/ST=Romania/L=Craiova/O=XXX/OU=Mobile/CN=teste
extens
[subject] => Array
(
[C] => RO
[ST] => Romania
[L] => Craiova
[O] => Sergiu Software
[OU] => Mobile
[CN] => teste extens
)
[hash] => 33df1a8c
[issuer] => Array
(
[C] => RO
[ST] => Romania
[O] => Sergiu Software
[CN] => Sergiu Software CA
)
[version] => 2
[serialNumber] => 38
[validFrom] => 030712124551Z
[validTo] => 040711124551Z
[validFrom_time_t] => 1058013951
[validTo_time_t] => 1089549951
[purposes] => Array
(
[1] => Array
(
[0] => 1
[1] =>
[2] => sslclient
)
[2] => Array
(
[0] => 1
[1] =>
[2] => sslserver
)
[3] => Array
(
[0] => 1
[1] =>
[2] => nssslserver
)
[4] => Array
(
[0] => 1
[1] =>
[2] => smimesign
)
[5] => Array
(
[0] => 1
[1] =>
[2] => smimeencrypt
)
[6] => Array
(
[0] =>
[1] =>
[2] => crlsign
)
[7] => Array
(
[0] => 1
[1] => 1
[2] => any
)
)
[v3extensions] => Array
(
[1] => Array
(
[0] => NetscapeComment
[1] => 1
[2] => For Grid use only; request tag userTag
)
...........................
)
)
Actual result:
--------------
Array
(
[name] => /C=RO/ST=Romania/L=Craiova/O=XXX/OU=Mobile/CN=teste
extens
[subject] => Array
(
[C] => RO
[ST] => Romania
[L] => Craiova
[O] => Sergiu Software
[OU] => Mobile
[CN] => teste extens
)
[hash] => 33df1a8c
[issuer] => Array
(
[C] => RO
[ST] => Romania
[O] => Sergiu Software
[CN] => Sergiu Software CA
)
[version] => 2
[serialNumber] => 38
[validFrom] => 030712124551Z
[validTo] => 040711124551Z
[validFrom_time_t] => 1058013951
[validTo_time_t] => 1089549951
[purposes] => Array
(
[1] => Array
(
[0] => 1
[1] =>
[2] => sslclient
)
[2] => Array
(
[0] => 1
[1] =>
[2] => sslserver
)
[3] => Array
(
[0] => 1
[1] =>
[2] => nssslserver
)
[4] => Array
(
[0] => 1
[1] =>
[2] => smimesign
)
[5] => Array
(
[0] => 1
[1] =>
[2] => smimeencrypt
)
[6] => Array
(
[0] =>
[1] =>
[2] => crlsign
)
[7] => Array
(
[0] => 1
[1] => 1
[2] => any
)
)
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28382&edit=1