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

Reply via email to