diff options
author | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2007-07-01 14:11:53 +0000 |
---|---|---|
committer | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2007-07-01 14:11:53 +0000 |
commit | a6b1490e1d663fe72c0315a058451fe5c4f125d0 (patch) | |
tree | 9dfcf7b29d85b8f3f6245ef5f0859ec8fcacaecc /MySpace/options.cpp | |
parent | 9304aa5c02c56df157e1474d6e14e682b511b25f (diff) |
encode password in db
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@232 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'MySpace/options.cpp')
-rw-r--r-- | MySpace/options.cpp | 36 |
1 files changed, 28 insertions, 8 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);
|