Reputation: 1775
Hoping to get some help with adding a condition to this loop
The current code is working but there is an assumption that the data i am trying to collect is under [0]
however after some testing i found this is not the case and i need to check all items [0], [1], [2]
.. difficult to explain so please refer to the image below for step by step clarification.
$count = count($cert['tbsCertificate']['extensions'][0]['extnValue']);
for($i = 0; $i < $count; $i++) {
if(array_key_exists('dNSName', $cert['tbsCertificate']['extensions'][0]['extnValue'][$i])) {
$value = $cert['tbsCertificate']['extensions'][0]['extnValue'][$i]['dNSName'];
$item = $i;
echo 'DNSName',$item,' : ', $value,"\n";
}
}
Here is a visual of what the condition needs to do.
P.S. i am not a php expert so i will need your help to write the code.
$extensions = count($cert['tbsCertificate']['extensions']);
for($j = 0; $j < $extensions; $j++)
{
$count = count($cert['tbsCertificate']['extensions'][$j]['extnValue']);
for($i = 0; $i < $count; $i++) {
if(array_key_exists('dNSName', $cert['tbsCertificate']['extensions'][$j]['extnValue'][$i])) {
$value = $cert['tbsCertificate']['extensions'][$j]['extnValue'][$i]['dNSName'];
$item = $i;
echo 'DNSName',$item,' : ', $value,"\n";
}
}
}
-- CERTIFICATE --
-----BEGIN CERTIFICATE-----
MIIHqjCCBpKgAwIBAgIQbY5du3wWeFH4otbLa18wRTANBgkqhkiG9w0BAQsFADB3
MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAd
BgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVj
IENsYXNzIDMgRVYgU1NMIENBIC0gRzMwHhcNMTQwNDMwMDAwMDAwWhcNMTUwNzE3
MjM1OTU5WjCCASkxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIB
AgwIRGVsYXdhcmUxHTAbBgNVBA8TFFByaXZhdGUgT3JnYW5pemF0aW9uMRAwDgYD
VQQFEwcyMTU4MTEzMQswCQYDVQQGEwJVUzEOMAwGA1UEEQwFOTQwNDMxEzARBgNV
BAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxGTAXBgNVBAkM
EDM1MCBFbGxpcyBTdHJlZXQxHTAbBgNVBAoMFFN5bWFudGVjIENvcnBvcmF0aW9u
MScwJQYDVQQLDB5Db3JwIE1rdGcgJiBDb21tcyAtIE9ubGluZSBFeHAxGTAXBgNV
BAMMEHd3dy5zeW1hbnRlYy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQCmz0vJ7McLUYVToIQzqWDLzUFD1uhAOz+3XAHXGnAOGwWw9fXGFAjWkE65
uC2pC/ZcMUarS+aJvvrCNB4mEewPiat0+9QRHEh/iCxFvhhLxM95HTe+b0Qckp3K
nKOutJNLdKCzkY1PUUeciV1rThGdh4X9DRt4TbqSyHz5MaOv10XieyHTe+XrhxHD
LhmJCrzNKgEZsNOhHS0kfDrCXB0zZ+D1P5/6BmWfip61XsFyDLIqlKcWpgqGSscO
e5QcSxKyKi5S6mldxMGfxH61HCBROs8ZpmADb7wJ85dZ0xZlRmdTQOUdttl9bAFF
lVlH10GYRrWU+/KaoPTVUZHwPUxbAgMBAAGjggN8MIIDeDCCAisGA1UdEQSCAiIw
ggIeghtzdGF0aWMxLnN5bWFudGVjY29udGVudC5jb22CG3N0YXRpYzIuc3ltYW50
ZWNjb250ZW50LmNvbYIbc3RhdGljMy5zeW1hbnRlY2NvbnRlbnQuY29tghNmYXN0
ZXIuc3ltYW50ZWMuY29tgg9nby5zeW1hbnRlYy5jb22CDm0uc3ltYW50ZWMuY29t
gh1zZWN1cml0eXJlc3BvbnNlLnN5bWFudGVjLmNvbYIQd3d3LnN5bWFudGVjLmNv
bYIPbXkuc3ltYW50ZWMuY29tghdwYXJ0bmVybmV0LnN5bWFudGVjLmNvbYISbXkt
cWEuc3ltYW50ZWMuY29tghNteS11YXQuc3ltYW50ZWMuY29tghpwYXJ0bmVybmV0
LXFhLnN5bWFudGVjLmNvbYIbcGFydG5lcm5ldC11YXQuc3ltYW50ZWMuY29tghtw
YXJ0bmVybmV0LXNpdC5zeW1hbnRlYy5jb22CIHBhcnRuZXJuZXQtaW50ZXJuYWwu
c3ltYW50ZWMuY29tghxwYXJ0bmVybmV0LXRlbXAuc3ltYW50ZWMuY29tghVzaXRl
cy1xYS5zeW1hbnRlYy5jb22CFnNpdGVzLXVhdC5zeW1hbnRlYy5jb22CG3NpdGVz
LWludGVybmFsLnN5bWFudGVjLmNvbYISc2l0ZXMuc3ltYW50ZWMuY29tghViY3Bv
cnRhbC5zeW1hbnRlYy5jb20wCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCBaAwHQYD
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMGYGA1UdIARfMF0wWwYLYIZIAYb4
RQEHFwYwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYI
KwYBBQUHAgIwGRoXaHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwHwYDVR0jBBgwFoAU
AVmr5906C1mmZGPWzyAHV9WR52owKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3Ny
LnN5bWNiLmNvbS9zci5jcmwwVwYIKwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNo
dHRwOi8vc3Iuc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8vc3Iuc3ltY2Iu
Y29tL3NyLmNydDANBgkqhkiG9w0BAQsFAAOCAQEALttpAtX5PT4WS89MysOHldNr
764RwDutieStd1i0SxPixuvYrpMkBqooK6HcWHXMRf4dLRUhYbWh3rmWaRVrP9ja
LQbcjpdDcInD3XNkq3evR5N4wkyZNknjrQgvruQQYBzSNqX2HeYfJn/+Vc/+70v9
0Iik+GlOYuCacmZkCR7HW4HAXwPRZds+RPTteh+XDxBQkgMlivylgy4qWqyOVVS3
103qpWp2PCJDpYFVBZWedly0DNjlWbNRvSFJEUqwP8OeJ3+C6zNdNJPdFmCC1YFr
o8s3Lti08voNZlbPGl/C2Ko0oRoQ67m/aUGkLehHfionykCTpSIHL965TW+Y4g==
-----END CERTIFICATE-----
-- UPDATE 2 (Current output) --
Upvotes: 0
Views: 58
Reputation: 4191
Surround that code by
$extensions = count($cert['tbsCertificate']['extensions']);
for($j = 0; $j < $extensions; $j++)
{
Existing code
}
And replace extensions[0] by extensions[j]
Upvotes: 1