diff options
author | PiBa-NL <pba_2k3@yahoo.com> | 2017-04-17 20:32:38 +0200 |
---|---|---|
committer | PiBa-NL <pba_2k3@yahoo.com> | 2017-04-17 20:32:38 +0200 |
commit | 3bde5cdd705b2c8a71f6eb12833d1d95ccc133c7 (patch) | |
tree | bd537cbc7e42d3584df5321b68b09a1bf80ae845 /src | |
parent | 8a0af41adc9c29ccf7b8dabb3b7658abf46054a6 (diff) | |
download | pfsense-3bde5cdd705b2c8a71f6eb12833d1d95ccc133c7.zip pfsense-3bde5cdd705b2c8a71f6eb12833d1d95ccc133c7.tar.gz |
certificate manager, show 'in use' also for CA and CRL where certificates are in use by packages.
Diffstat (limited to 'src')
-rw-r--r-- | src/etc/inc/certs.inc | 21 | ||||
-rw-r--r-- | src/usr/local/www/system_camanager.php | 6 | ||||
-rw-r--r-- | src/usr/local/www/system_certmanager.php | 20 | ||||
-rw-r--r-- | src/usr/local/www/system_crlmanager.php | 8 |
4 files changed, 35 insertions, 20 deletions
diff --git a/src/etc/inc/certs.inc b/src/etc/inc/certs.inc index bb114c8..956520f 100644 --- a/src/etc/inc/certs.inc +++ b/src/etc/inc/certs.inc @@ -771,6 +771,27 @@ function cert_in_use($certref) { is_package_cert($certref)); } +function cert_usedby_description($refid, $certificates_used_by_packages) { + $result = ""; + if (is_array($certificates_used_by_packages)) { + foreach ($certificates_used_by_packages as $name => $package) { + if (isset($package['certificatelist'][$refid])) { + $hint = "" ; + if (is_array($package['certificatelist'][$refid])) { + foreach ($package['certificatelist'][$refid] as $cert_used) { + $hint = $hint . $cert_used['usedby']."\n"; + } + } + $count = count($package['certificatelist'][$refid]); + $result .= "<div title='".htmlspecialchars($hint)."'>"; + $result .= htmlspecialchars($package['pkgname'])." ($count)<br />"; + $result .= "</div>"; + } + } + } + return $result; +} + function crl_create(& $crl, $caref, $name, $serial = 0, $lifetime = 9999) { global $config; $ca =& lookup_ca($caref); diff --git a/src/usr/local/www/system_camanager.php b/src/usr/local/www/system_camanager.php index 997ca8e..e01e8ee 100644 --- a/src/usr/local/www/system_camanager.php +++ b/src/usr/local/www/system_camanager.php @@ -371,6 +371,11 @@ if (!($act == "new" || $act == "edit" || $act == gettext("Save") || $input_error </thead> <tbody> <?php +$pluginparams = array(); +$pluginparams['type'] = 'certificates'; +$pluginparams['event'] = 'used_ca'; +$certificates_used_by_packages = pkg_call_plugins('plugin_certificates', $pluginparams); + foreach ($a_ca as $i => $ca): $name = htmlspecialchars($ca['descr']); $subj = cert_get_subject($ca['crt']); @@ -427,6 +432,7 @@ foreach ($a_ca as $i => $ca): <?php if (is_ldap_peer_ca($ca['refid'])): ?> <?=gettext("LDAP Server")?> <?php endif?> + <?php echo cert_usedby_description($ca['refid'], $certificates_used_by_packages); ?> </td> <td class="text-nowrap"> <a class="fa fa-pencil" title="<?=gettext("Edit CA")?>" href="system_camanager.php?act=edit&id=<?=$i?>"></a> diff --git a/src/usr/local/www/system_certmanager.php b/src/usr/local/www/system_certmanager.php index 7b5ea66..330d2c7 100644 --- a/src/usr/local/www/system_certmanager.php +++ b/src/usr/local/www/system_certmanager.php @@ -1169,25 +1169,7 @@ foreach ($a_cert as $i => $cert): <?php if (is_captiveportal_cert($cert['refid'])): ?> <?=gettext("Captive Portal")?> <?php endif?> -<?php - $refid = $cert['refid']; - if (is_array($certificates_used_by_packages)) { - foreach ($certificates_used_by_packages as $name => $package) { - if (isset($package['certificatelist'][$refid])) { - $hint = "" ; - if (is_array($package['certificatelist'][$refid])) { - foreach ($package['certificatelist'][$refid] as $cert_used) { - $hint = $hint . $cert_used['usedby']."\n"; - } - } - $count = count($package['certificatelist'][$refid]); - echo "<div title='".htmlspecialchars($hint)."'>"; - echo htmlspecialchars($package['pkgname'])." ($count)<br />"; - echo "</div>"; - } - } - } -?> + <?php echo cert_usedby_description($cert['refid'], $certificates_used_by_packages); ?> </td> <td> <?php if (!$cert['csr']): ?> diff --git a/src/usr/local/www/system_crlmanager.php b/src/usr/local/www/system_crlmanager.php index 9cb7f20..85a4632 100644 --- a/src/usr/local/www/system_crlmanager.php +++ b/src/usr/local/www/system_crlmanager.php @@ -583,6 +583,10 @@ if ($act == "new" || $act == gettext("Save") || $input_errors) { </thead> <tbody> <?php + $pluginparams = array(); + $pluginparams['type'] = 'certificates'; + $pluginparams['event'] = 'used_crl'; + $certificates_used_by_packages = pkg_call_plugins('plugin_certificates', $pluginparams); // Map CRLs to CAs in one pass $ca_crl_map = array(); foreach ($a_crl as $crl) { @@ -634,7 +638,9 @@ if ($act == "new" || $act == gettext("Save") || $input_errors) { <td><?=$tmpcrl['descr']; ?></td> <td><i class="fa fa-<?=($internal) ? "check" : "times"; ?>"></i></td> <td><?=($internal) ? count($tmpcrl['cert']) : "Unknown (imported)"; ?></td> - <td><i class="fa fa-<?=($inuse) ? "check" : "times"; ?>"></i></td> + <td><i class="fa fa-<?=($inuse) ? "check" : "times"; ?>"></i> + <?php echo cert_usedby_description($tmpcrl['refid'], $certificates_used_by_packages); ?> + </td> <td> <a href="system_crlmanager.php?act=exp&id=<?=$tmpcrl['refid']?>" class="fa fa-download" title="<?=gettext("Export CRL")?>" ></a> <?php |