From 9e7fa5f2bb08257dd46b167c7283baaa330aedfe Mon Sep 17 00:00:00 2001 From: Adrian Greeve Date: Mon, 27 Feb 2012 12:07:58 +0800 Subject: [PATCH] MDL-31248 - lib - Retaining the old password key and creating a new cookie prefix. --- lib/moodlelib.php | 30 ++++++++++++++++++++---------- lib/sessionlib.php | 10 +++++----- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 5aae9f508fa..4ac2a6b8d97 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -7264,12 +7264,17 @@ class emoticon_manager { * * @todo Finish documenting this function * - * @param string $data Data to encrypt - * @return string The now encrypted data + * @param string $data Data to encrypt. + * @param bool $usesecurekey Lets us know if we are using the old or new password. + * @return string The now encrypted data. */ -function rc4encrypt($data) { - $password = get_site_identifier(); - return endecrypt($password, $data, ''); +function rc4encrypt($data, $usesecurekey = false) { + if (!$usesecurekey) { + $passwordkey = 'nfgjeingjk'; + } else { + $passwordkey = get_site_identifier(); + } + return endecrypt($passwordkey, $data, ''); } /** @@ -7277,12 +7282,17 @@ function rc4encrypt($data) { * * @todo Finish documenting this function * - * @param string $data Data to decrypt - * @return string The now decrypted data + * @param string $data Data to decrypt. + * @param bool $usesecurekey Lets us know if we are using the old or new password. + * @return string The now decrypted data. */ -function rc4decrypt($data) { - $password = get_site_identifier(); - return endecrypt($password, $data, 'de'); +function rc4decrypt($data, $usesecurekey = false) { + if (!$usesecurekey) { + $passwordkey = 'nfgjeingjk'; + } else { + $passwordkey = get_site_identifier(); + } + return endecrypt($passwordkey, $data, 'de'); } /** diff --git a/lib/sessionlib.php b/lib/sessionlib.php index b0c1cdb6166..da55f12d5fd 100644 --- a/lib/sessionlib.php +++ b/lib/sessionlib.php @@ -1016,14 +1016,14 @@ function set_moodle_cookie($username) { return; } - $cookiename = 'MOODLEID_'.$CFG->sessioncookie; + $cookiename = 'MOODLEID1_'.$CFG->sessioncookie; // delete old cookie setcookie($cookiename, '', time() - HOURSECS, $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure, $CFG->cookiehttponly); if ($username !== '') { // set username cookie for 60 days - setcookie($cookiename, rc4encrypt($username), time()+(DAYSECS*60), $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure, $CFG->cookiehttponly); + setcookie($cookiename, rc4encrypt($username, true), time()+(DAYSECS*60), $CFG->sessioncookiepath, $CFG->sessioncookiedomain, $CFG->cookiesecure, $CFG->cookiehttponly); } } @@ -1043,15 +1043,15 @@ function get_moodle_cookie() { return ''; } - $cookiename = 'MOODLEID_'.$CFG->sessioncookie; + $cookiename = 'MOODLEID1_'.$CFG->sessioncookie; if (empty($_COOKIE[$cookiename])) { return ''; } else { - $username = rc4decrypt($_COOKIE[$cookiename]); + $username = rc4decrypt($_COOKIE[$cookiename], true); if ($username === 'guest' or $username === 'nobody') { // backwards compatibility - we do not set these cookies any more - return ''; + $username = ''; } return $username; }