diff options
author | Ciaran Gultnieks <ciaran@ciarang.com> | 2011-05-22 21:09:12 +0100 |
---|---|---|
committer | Ciaran Gultnieks <ciaran@ciarang.com> | 2011-05-22 21:09:12 +0100 |
commit | a8a3271470299820c5322523dc439415bc1ff8a0 (patch) | |
tree | a397578ce7032efe25298b4c653a3dcebd180579 /src/utility.cpp | |
parent | e0329a3caee863a2302748f710401bfc0dfa78db (diff) | |
download | minetest-a8a3271470299820c5322523dc439415bc1ff8a0.tar.gz minetest-a8a3271470299820c5322523dc439415bc1ff8a0.tar.bz2 minetest-a8a3271470299820c5322523dc439415bc1ff8a0.zip |
Added the ability to change your password (via pause menu)
--HG--
extra : rebase_source : e8ec407f60711d42d33be4811b2880088f617b5b
Diffstat (limited to 'src/utility.cpp')
-rw-r--r-- | src/utility.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/utility.cpp b/src/utility.cpp index fc657b27b..186881c5a 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -23,6 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "utility.h" #include "gettime.h" +#include "sha1.h" +#include "base64.h" TimeTaker::TimeTaker(const char *name, u32 *result) { @@ -217,3 +219,24 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir, f32 range, return true; } +// Get an sha-1 hash of the player's name combined with +// the password entered. That's what the server uses as +// their password. (Exception : if the password field is +// blank, we send a blank password - this is for backwards +// compatibility with password-less players). +std::string translatePassword(std::string playername, std::wstring password) +{ + if(password.length() == 0) + return ""; + + std::string slt=playername + wide_to_narrow(password); + SHA1 *sha1 = new SHA1(); + sha1->addBytes(slt.c_str(), slt.length()); + unsigned char *digest = sha1->getDigest(); + std::string pwd = base64_encode(digest, 20); + free(digest); + return pwd; +} + + + |