summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-01 14:11:53 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-01 14:11:53 +0000
commita6b1490e1d663fe72c0315a058451fe5c4f125d0 (patch)
tree9dfcf7b29d85b8f3f6245ef5f0859ec8fcacaecc
parent9304aa5c02c56df157e1474d6e14e682b511b25f (diff)
encode password in db
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@232 4f64403b-2f21-0410-a795-97e2b3489a10
-rw-r--r--MySpace/options.cpp36
-rw-r--r--MySpace/version.h2
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