diff options
Diffstat (limited to 'plugins/Db3x_mmap/src/dbcrypt.cpp')
-rw-r--r-- | plugins/Db3x_mmap/src/dbcrypt.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/plugins/Db3x_mmap/src/dbcrypt.cpp b/plugins/Db3x_mmap/src/dbcrypt.cpp index e6bb7e704b..4193316d17 100644 --- a/plugins/Db3x_mmap/src/dbcrypt.cpp +++ b/plugins/Db3x_mmap/src/dbcrypt.cpp @@ -161,11 +161,9 @@ LBL_SetNewKey: if (dbv.cpbVal != (WORD)iKeyLength)
goto LBL_SetNewKey;
- if (!m_crypto->setKey(dbv.pbVal, iKeyLength)) {
+ if (!m_crypto->setKey(dbv.pbVal, iKeyLength))
if (!EnterPassword(dbv.pbVal, iKeyLength)) // password protected?
return 4;
- m_bUsesPassword = true;
- }
FreeVariant(&dbv);
}
@@ -198,3 +196,15 @@ void CDb3Mmap::StoreKey() SecureZeroMemory(pKey, iKeyLength);
}
+
+void CDb3Mmap::SetPassword(LPCTSTR ptszPassword)
+{
+ if (ptszPassword == NULL || *ptszPassword == 0) {
+ m_bUsesPassword = false;
+ m_crypto->setPassword(NULL);
+ }
+ else {
+ m_bUsesPassword = true;
+ m_crypto->setPassword(ptrA(mir_utf8encodeT(ptszPassword)));
+ }
+}
|