From a9308edef365302183787a5a594307a971d56c25 Mon Sep 17 00:00:00 2001 From: martinlanghoff Date: Thu, 4 Jan 2007 03:37:42 +0000 Subject: [PATCH] admin/mnet/index: Allow admins to expire an SSL key Author: Donal McMullan --- admin/mnet/index.html | 23 +++++++++++++++++++ admin/mnet/index.php | 51 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/admin/mnet/index.html b/admin/mnet/index.html index e87ce54cbc..6a058961b1 100644 --- a/admin/mnet/index.html +++ b/admin/mnet/index.html @@ -27,6 +27,29 @@ admin_externalpage_print_header($adminroot); +
+ + + + +
+ + + + + + + + + + + +
+ + +
+
+
mode, array("off", "strict", "promiscuous"))) { - if (set_config('mnet_dispatcher_mode', $form->mode)) { - redirect('index.php', get_string('changessaved')); - } else { - error('Invalid action parameter.', 'index.php'); + if (!empty($form->submit) && $form->submit == get_string('savechanges')) { + if (in_array($form->mode, array("off", "strict", "promiscuous"))) { + if (set_config('mnet_dispatcher_mode', $form->mode)) { + redirect('index.php', get_string('changessaved')); + } else { + error('Invalid action parameter.', 'index.php'); + } } + } elseif (!empty($form->submit) && $form->submit == get_string('delete')) { + $MNET->get_private_key(); + $_SESSION['mnet_confirm_delete_key'] = md5(sha1($MNET->keypair['keypair_PEM'])).':'.time(); + notice_yesno(get_string("deletekeycheck", "mnet"), + "index.php?sesskey=$USER->sesskey&confirm=".md5($MNET->public_key), + "index.php", + array('sesskey' => $USER->sesskey), + NULL, + 'post', + 'get'); + exit; + } else { + // We're deleting + + + if (!isset($_SESSION['mnet_confirm_delete_key'])) { + // fail - you're being attacked? + } + + $key = ''; + $time = ''; + @list($key, $time) = explode(':',$_SESSION['mnet_confirm_delete_key']); + $MNET->get_private_key(); + + if($time < time() - 60) { + // fail - you're out of time. + print_error ('deleteoutoftime', 'mnet', 'index.php'); + exit; + } + + if ($key != md5(sha1($MNET->keypair['keypair_PEM']))) { + // fail - you're being attacked? + print_error ('deletewrongkeyvalue', 'mnet', 'index.php'); + exit; + } + + $MNET->replace_keys(); + redirect('index.php', get_string('keydeleted','mnet')); + exit; } } $hosts = get_records_select('mnet_host', " id != '{$CFG->mnet_localhost_id}' AND deleted = '0' ",'wwwroot ASC' ); -- 2.39.5