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 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) (limited to 'MySpace/options.cpp') 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); -- cgit v1.2.3