ID:               18613
 Updated by:       [EMAIL PROTECTED]
 Reported By:      agoralski at certum dot pl
 Status:           Assigned
 Bug Type:         OpenSSL related
 Operating System: Linux 2.4.18-grsec
 PHP Version:      4CVS-2004-04-12
 Assigned To:      wez
 New Comment:

Here's my try for a patch that makes any multiple
entry (like multiple organisations) to be made into
arrays in the resulting array:

  http://www.php.net/~jani/patches/bug18613.patch



Previous Comments:
------------------------------------------------------------------------

[2004-05-05 22:23:54] [EMAIL PROTECTED]

Wez, iirc, you're the maintainer of ext/openssl nowadays..?
(if I'm wrong, reassign to the correct person :)


------------------------------------------------------------------------

[2004-04-07 03:05:57] agoralski at certum dot pl

Multiple OUs are visible in "name" after openssl_x509_parse so here's a
quick & dirty workaround:

function get_ous($data) {
    if (strlen(strstr($data,'/OU='))>0) {
        $parts=explode('=', $data);

        for ($i=0, $j=count($parts); $i<$j; $i++) {
            if ($i>0) {
                if (substr($parts[$i-1], strrpos($parts[$i-1],
'/')+1)=='OU') {
                    $ret[]=substr($parts[$i], 0, strrpos($parts[$i],
'/'));
                }
            }
        }
        return $ret;
    } else {
        return false;
    }
}

$cert=openssl_x509_parse($crt);
$ous=get_ous($cert['name']);
if (is_array($ous)) {
   //your code here
}

------------------------------------------------------------------------

[2004-04-06 12:32:07] allins at nosc dot mil

verified on RedHat 9, PHP 4.2.2
output from var_dump of array after openssl_x509_parse was performed. 
There should have been an ["OU"]=> "DoD" before the PKI line

["issuer"]=>
  array(4) {
    ["C"]=>
    string(2) "US"
    ["O"]=>
    string(15) "U.S. Government"
    ["OU"]=>
    string(3) "PKI"
    ["CN"]=>
    string(22) "DOD CLASS 3 EMAIL CA-7"

------------------------------------------------------------------------

[2002-07-28 10:37:10] agoralski at certum dot pl

When the certificate has more that one OU (organizationalUnit), the
openssl_x509_parse function will return only the last one.

Proposal:

The openssl_x509_parse should return:

[subject][OU][0]='First OU'
[subject][OU][1]='Second OU'

When there is only one OU field the openssl_x509_parse should return:

[subject][OU]='First and only OU'

It's up to the user to check if [subject][OU] is an array IMO.

We can submit a patch :)






------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=18613&edit=1

Reply via email to