summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2017-04-20 16:24:01 -0300
committerRenato Botelho <renato@netgate.com>2017-04-20 16:24:01 -0300
commitbafd63b5d95054adcf97720a716e027cad0b17d4 (patch)
treead50f3fcd6e1dd2a228a919853b91f78c77c4b52 /src
parent91dd40af345322d7f6786c16b5ffdda79e0092f1 (diff)
parent3bde5cdd705b2c8a71f6eb12833d1d95ccc133c7 (diff)
downloadpfsense-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.inc21
-rw-r--r--src/usr/local/www/system_camanager.php6
-rw-r--r--src/usr/local/www/system_certmanager.php20
-rw-r--r--src/usr/local/www/system_crlmanager.php8
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&amp;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&amp;id=<?=$tmpcrl['refid']?>" class="fa fa-download" title="<?=gettext("Export CRL")?>" ></a>
<?php
OpenPOWER on IntegriCloud