|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-05-13 09:28 UTC] 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
)
)
)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 01:00:01 2025 UTC |
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); ... }