diff options
author | Renato Botelho <renato@netgate.com> | 2017-04-20 16:24:01 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2017-04-20 16:24:01 -0300 |
commit | bafd63b5d95054adcf97720a716e027cad0b17d4 (patch) | |
tree | ad50f3fcd6e1dd2a228a919853b91f78c77c4b52 /src | |
parent | 91dd40af345322d7f6786c16b5ffdda79e0092f1 (diff) | |
parent | 3bde5cdd705b2c8a71f6eb12833d1d95ccc133c7 (diff) | |
download | pfsense-bafd63b5d95054adcf97720a716e027cad0b17d4.zip pfsense-bafd63b5d95054adcf97720a716e027cad0b17d4.tar.gz |
Merge pull request #3699 from PiBa-NL/20170417-certificatemanager-ca-crl-inuse
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 0eb70cf..ef12843 100644 --- a/src/etc/inc/certs.inc +++ b/src/etc/inc/certs.inc @@ -764,6 +764,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 60792da..550de3e 100644 --- a/src/usr/local/www/system_camanager.php +++ b/src/usr/local/www/system_camanager.php @@ -372,6 +372,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']); @@ -428,6 +433,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 4f074d1..74c55c2 100644 --- a/src/usr/local/www/system_certmanager.php +++ b/src/usr/local/www/system_certmanager.php @@ -1170,25 +1170,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 e8f68c4..85316a8 100644 --- a/src/usr/local/www/system_crlmanager.php +++ b/src/usr/local/www/system_crlmanager.php @@ -584,6 +584,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) { @@ -635,7 +639,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 |