summaryrefslogtreecommitdiffstats
path: root/usr/local
diff options
context:
space:
mode:
authorMatthew Grooms <mgrooms@pfsense.org>2008-09-03 03:53:11 +0000
committerMatthew Grooms <mgrooms@pfsense.org>2008-09-03 03:53:11 +0000
commit93823b10147aa446945ed4b8ddef40cb56c96479 (patch)
tree8cf1074d7721e6f66ed9f72bb740b49f9f46cb0a /usr/local
parent7da118047ac7a450227b25f2b5cb467b647585ea (diff)
downloadpfsense-93823b10147aa446945ed4b8ddef40cb56c96479.zip
pfsense-93823b10147aa446945ed4b8ddef40cb56c96479.tar.gz
Add options to export ca, certificate and user certificate data from the
webui.
Diffstat (limited to 'usr/local')
-rw-r--r--usr/local/www/system_camanager.php21
-rw-r--r--usr/local/www/system_certmanager.php21
-rw-r--r--usr/local/www/system_usermanager.php48
3 files changed, 89 insertions, 1 deletions
diff --git a/usr/local/www/system_camanager.php b/usr/local/www/system_camanager.php
index dff286d..68b05ef 100644
--- a/usr/local/www/system_camanager.php
+++ b/usr/local/www/system_camanager.php
@@ -88,6 +88,24 @@ if ($act == "new") {
$pconfig['dn_commonname'] = "internal-ca";
}
+if ($act == "exp") {
+
+ if (!$a_ca[$id]) {
+ pfSenseHeader("system_camanager.php");
+ exit;
+ }
+
+ $exp_name = urlencode("{$a_ca[$id]['name']}.crt");
+ $exp_data = base64_decode($a_ca[$id]['crt']);
+ $exp_size = strlen($exp_data);
+
+ header("Content-Type: application/octet-stream");
+ header("Content-Disposition: attachment; filename={$exp_name}");
+ header("Content-Length: $exp_size");
+ echo $exp_data;
+ exit;
+}
+
if ($_POST) {
unset($input_errors);
@@ -412,6 +430,9 @@ function method_change() {
<td class="listr"><?=$certcount;?>&nbsp;</td>
<td class="listr"><?=$subj;?>&nbsp;</td>
<td valign="middle" nowrap class="list">
+ <a href="system_camanager.php?act=exp&id=<?=$i;?>")">
+ <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export ca" alt="export ca" width="17" height="17" border="0" />
+ </a>
<a href="system_camanager.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate Authority and all associated Certificates?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="delete ca" alt="delete ca" width="17" height="17" border="0" />
</a>
diff --git a/usr/local/www/system_certmanager.php b/usr/local/www/system_certmanager.php
index 7ca0ff4..4903c50 100644
--- a/usr/local/www/system_certmanager.php
+++ b/usr/local/www/system_certmanager.php
@@ -88,6 +88,24 @@ if ($act == "new") {
$pconfig['lifetime'] = "365";
}
+if ($act == "exp") {
+
+ if (!$a_cert[$id]) {
+ pfSenseHeader("system_certmanager.php");
+ exit;
+ }
+
+ $exp_name = urlencode("{$a_cert[$id]['name']}.crt");
+ $exp_data = base64_decode($a_cert[$id]['crt']);
+ $exp_size = strlen($exp_data);
+
+ header("Content-Type: application/octet-stream");
+ header("Content-Disposition: attachment; filename={$exp_name}");
+ header("Content-Length: $exp_size");
+ echo $exp_data;
+ exit;
+}
+
if ($act == "csr") {
if (!$a_cert[$id]) {
@@ -698,6 +716,9 @@ function internalca_change() {
<td class="listr"><?=$caname;?>&nbsp;</td>
<td class="listr"><?=$subj;?>&nbsp;</td>
<td valign="middle" nowrap class="list">
+ <a href="system_certmanager.php?act=exp&id=<?=$i;?>")">
+ <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export cert" alt="export ca" width="17" height="17" border="0" />
+ </a>
<a href="system_certmanager.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate?");?>')">
<img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="delete cert" alt="delete cert" width="17" height="17" border="0" />
</a>
diff --git a/usr/local/www/system_usermanager.php b/usr/local/www/system_usermanager.php
index 665df34..4ee8bd0 100644
--- a/usr/local/www/system_usermanager.php
+++ b/usr/local/www/system_usermanager.php
@@ -90,6 +90,46 @@ if (isAllowedPage("system_usermanager")) {
gettext("successfully deleted")."<br/>";
}
+ if ($_GET['act'] == "expcert") {
+
+ if (!$a_user[$id]) {
+ pfSenseHeader("system_usermanager.php");
+ exit;
+ }
+
+ $cert =& $a_user[$id]['cert'][$_GET['certid']];
+
+ $exp_name = urlencode("{$a_user[$id]['name']}-{$cert['name']}.crt");
+ $exp_data = base64_decode($cert['crt']);
+ $exp_size = strlen($exp_data);
+
+ header("Content-Type: application/octet-stream");
+ header("Content-Disposition: attachment; filename={$exp_name}");
+ header("Content-Length: $exp_size");
+ echo $exp_data;
+ exit;
+ }
+
+ if ($_GET['act'] == "expckey") {
+
+ if (!$a_user[$id]) {
+ pfSenseHeader("system_usermanager.php");
+ exit;
+ }
+
+ $cert =& $a_user[$id]['cert'][$_GET['certid']];
+
+ $exp_name = urlencode("{$a_user[$id]['name']}-{$cert['name']}.key");
+ $exp_data = base64_decode($cert['prv']);
+ $exp_size = strlen($exp_data);
+
+ header("Content-Type: application/octet-stream");
+ header("Content-Disposition: attachment; filename={$exp_name}");
+ header("Content-Length: $exp_size");
+ echo $exp_data;
+ exit;
+ }
+
if ($_GET['act'] == "delcert") {
if (!$a_user[$id]) {
@@ -484,8 +524,14 @@ function presubmit() {
<?=htmlspecialchars($ca['name']);?>
</td>
<td valign="middle" nowrap class="list">
+ <a href="system_usermanager.php?act=expckey&id=<?=$id;?>&certid=<?=$i;?>">
+ <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export private key" alt="export private key" width="17" height="17" border="0" />
+ </a>
+ <a href="system_usermanager.php?act=expcert&id=<?=$id;?>&certid=<?=$i;?>">
+ <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export cert" alt="export cert" width="17" height="17" border="0" />
+ </a>
<a href="system_usermanager.php?act=delcert&id=<?=$id?>&certid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this certificate?");?>')">
- <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="" />
+ <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete cert" />
</a>
</td>
</tr>
OpenPOWER on IntegriCloud