From a6b1490e1d663fe72c0315a058451fe5c4f125d0 Mon Sep 17 00:00:00 2001 From: sje Date: Sun, 1 Jul 2007 14:11:53 +0000 Subject: encode password in db git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@232 4f64403b-2f21-0410-a795-97e2b3489a10 --- MySpace/options.cpp | 36 ++++++++++++++++++++++++++++-------- MySpace/version.h | 2 +- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/MySpace/options.cpp b/MySpace/options.cpp index e8ee938..5257798 100644 --- a/MySpace/options.cpp +++ b/MySpace/options.cpp @@ -10,13 +10,29 @@ void LoadOptions() { _tcsncpy(options.email, dbv.ptszVal, 256); DBFreeVariant(&dbv); } - if(!DBGetContactSettingTString(0, MODULE, "password", &dbv)) { - _tcsncpy(options.pw, dbv.ptszVal, 256); - CallService(MS_DB_CRYPT_DECODESTRING, (WPARAM)(256 * sizeof(TCHAR)), (LPARAM)options.pw); + if(!DBGetContactSettingStringUtf(0, MODULE, "password", &dbv)) { + CallService(MS_DB_CRYPT_DECODESTRING, (WPARAM)strlen(dbv.pszVal), (LPARAM)dbv.pszVal); +#ifdef _UNICODE + MultiByteToWideChar(CP_UTF8, 0, dbv.pszVal, -1, options.pw, 256); +#else + _tcsncpy(options.pw, dbv.pszVal, 256); +#endif } else - if(!DBGetContactSettingTString(0, MODULE, "pw", &dbv)) { + if(!DBGetContactSettingTString(0, MODULE, "pw", &dbv)) { + // remove old cleartext password and convert to encrypted form _tcsncpy(options.pw, dbv.ptszVal, 256); DBFreeVariant(&dbv); + + char buff[256]; +#ifdef _UNICODE + WideCharToMultiByte(CP_UTF8, 0, options.pw, -1, buff, 256, 0, 0); +#else + _tcsncpy(buff, options.pw, 256); +#endif + CallService(MS_DB_CRYPT_ENCODESTRING, (WPARAM)256, (LPARAM)buff); + DBWriteContactSettingStringUtf(0, MODULE, "password", buff); + + DBDeleteContactSetting(0, MODULE, "pw"); } options.sound = (DBGetContactSettingByte(0, MODULE, "sound", 0) != 0); @@ -34,10 +50,14 @@ void SaveOptions() { DBWriteContactSettingTString(0, MODULE, "email", options.email); //DBWriteContactSettingTString(0, MODULE, "pw", options.pw); - TCHAR buff[256]; - _tcsncpy(buff, options.pw, 256); - CallService(MS_DB_CRYPT_ENCODESTRING, (WPARAM)(256 * sizeof(TCHAR)), (LPARAM)buff); - DBWriteContactSettingTString(0, MODULE, "password", buff); + char buff[256]; +#ifdef _UNICODE + WideCharToMultiByte(CP_UTF8, 0, options.pw, -1, buff, 256, 0, 0); +#else + _tcsncpy(buff, options.pw, 256); +#endif + CallService(MS_DB_CRYPT_ENCODESTRING, (WPARAM)256, (LPARAM)buff); + DBWriteContactSettingStringUtf(0, MODULE, "password", buff); DBWriteContactSettingByte(0, MODULE, "sound", options.sound ? 1 : 0); DBWriteContactSettingByte(0, MODULE, "privacy_mode", (BYTE)options.privacy_mode); diff --git a/MySpace/version.h b/MySpace/version.h index 36db18d..2372d36 100644 --- a/MySpace/version.h +++ b/MySpace/version.h @@ -5,7 +5,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 0 #define __RELEASE_NUM 1 -#define __BUILD_NUM 0 +#define __BUILD_NUM 1 #define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM #define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM -- cgit v1.2.3