diff options
author | George Hazan <george.hazan@gmail.com> | 2013-11-14 23:13:38 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2013-11-14 23:13:38 +0000 |
commit | bd49c3201234f447a4fc951ea652532d973c07b1 (patch) | |
tree | 9ee40ab3181612ff138197c679090577a0c173e8 /plugins/Db3x_mmap | |
parent | 5056234c898e593ba71a01659dbbcd70ca519d89 (diff) |
Encryption: gathering all things together, part I
git-svn-id: http://svn.miranda-ng.org/main/trunk@6910 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Db3x_mmap')
-rw-r--r-- | plugins/Db3x_mmap/db3x_mmap_10.vcxproj | 1 | ||||
-rw-r--r-- | plugins/Db3x_mmap/db3x_mmap_10.vcxproj.filters | 3 | ||||
-rw-r--r-- | plugins/Db3x_mmap/db3x_mmap_11.vcxproj | 1 | ||||
-rw-r--r-- | plugins/Db3x_mmap/db3x_mmap_11.vcxproj.filters | 3 | ||||
-rw-r--r-- | plugins/Db3x_mmap/db3x_mmap_12.vcxproj | 1 | ||||
-rw-r--r-- | plugins/Db3x_mmap/db3x_mmap_12.vcxproj.filters | 3 | ||||
-rw-r--r-- | plugins/Db3x_mmap/src/commonheaders.h | 1 | ||||
-rw-r--r-- | plugins/Db3x_mmap/src/dbcache.cpp | 16 | ||||
-rw-r--r-- | plugins/Db3x_mmap/src/dbintf.cpp | 28 | ||||
-rw-r--r-- | plugins/Db3x_mmap/src/dbintf.h | 5 |
10 files changed, 28 insertions, 34 deletions
diff --git a/plugins/Db3x_mmap/db3x_mmap_10.vcxproj b/plugins/Db3x_mmap/db3x_mmap_10.vcxproj index cc1048d8aa..e7d51c37b5 100644 --- a/plugins/Db3x_mmap/db3x_mmap_10.vcxproj +++ b/plugins/Db3x_mmap/db3x_mmap_10.vcxproj @@ -194,6 +194,7 @@ <ClCompile Include="src\database.cpp" />
<ClCompile Include="src\dbcache.cpp" />
<ClCompile Include="src\dbcontacts.cpp" />
+ <ClCompile Include="src\dbcrypt.cpp" />
<ClCompile Include="src\dbevents.cpp" />
<ClCompile Include="src\dbheaders.cpp" />
<ClCompile Include="src\dbintf.cpp" />
diff --git a/plugins/Db3x_mmap/db3x_mmap_10.vcxproj.filters b/plugins/Db3x_mmap/db3x_mmap_10.vcxproj.filters index c775e8db4e..d4e3c10739 100644 --- a/plugins/Db3x_mmap/db3x_mmap_10.vcxproj.filters +++ b/plugins/Db3x_mmap/db3x_mmap_10.vcxproj.filters @@ -27,6 +27,9 @@ <ClCompile Include="src\dbcontacts.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="src\dbcrypt.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
<ClCompile Include="src\dbevents.cpp">
<Filter>Source Files</Filter>
</ClCompile>
diff --git a/plugins/Db3x_mmap/db3x_mmap_11.vcxproj b/plugins/Db3x_mmap/db3x_mmap_11.vcxproj index 751fab5e64..f2ba160fb7 100644 --- a/plugins/Db3x_mmap/db3x_mmap_11.vcxproj +++ b/plugins/Db3x_mmap/db3x_mmap_11.vcxproj @@ -197,6 +197,7 @@ <ClCompile Include="src\database.cpp" />
<ClCompile Include="src\dbcache.cpp" />
<ClCompile Include="src\dbcontacts.cpp" />
+ <ClCompile Include="src\dbcrypt.cpp" />
<ClCompile Include="src\dbevents.cpp" />
<ClCompile Include="src\dbheaders.cpp" />
<ClCompile Include="src\dbintf.cpp" />
diff --git a/plugins/Db3x_mmap/db3x_mmap_11.vcxproj.filters b/plugins/Db3x_mmap/db3x_mmap_11.vcxproj.filters index c775e8db4e..d4e3c10739 100644 --- a/plugins/Db3x_mmap/db3x_mmap_11.vcxproj.filters +++ b/plugins/Db3x_mmap/db3x_mmap_11.vcxproj.filters @@ -27,6 +27,9 @@ <ClCompile Include="src\dbcontacts.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="src\dbcrypt.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
<ClCompile Include="src\dbevents.cpp">
<Filter>Source Files</Filter>
</ClCompile>
diff --git a/plugins/Db3x_mmap/db3x_mmap_12.vcxproj b/plugins/Db3x_mmap/db3x_mmap_12.vcxproj index 4cdaf1e462..99cd776dd2 100644 --- a/plugins/Db3x_mmap/db3x_mmap_12.vcxproj +++ b/plugins/Db3x_mmap/db3x_mmap_12.vcxproj @@ -197,6 +197,7 @@ <ClCompile Include="src\database.cpp" />
<ClCompile Include="src\dbcache.cpp" />
<ClCompile Include="src\dbcontacts.cpp" />
+ <ClCompile Include="src\dbcrypt.cpp" />
<ClCompile Include="src\dbevents.cpp" />
<ClCompile Include="src\dbheaders.cpp" />
<ClCompile Include="src\dbintf.cpp" />
diff --git a/plugins/Db3x_mmap/db3x_mmap_12.vcxproj.filters b/plugins/Db3x_mmap/db3x_mmap_12.vcxproj.filters index c775e8db4e..a9d064b34d 100644 --- a/plugins/Db3x_mmap/db3x_mmap_12.vcxproj.filters +++ b/plugins/Db3x_mmap/db3x_mmap_12.vcxproj.filters @@ -78,6 +78,9 @@ <ClCompile Include="src\stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="src\dbcrypt.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\commonheaders.h">
diff --git a/plugins/Db3x_mmap/src/commonheaders.h b/plugins/Db3x_mmap/src/commonheaders.h index d122b08d1e..12286e83d6 100644 --- a/plugins/Db3x_mmap/src/commonheaders.h +++ b/plugins/Db3x_mmap/src/commonheaders.h @@ -34,6 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include <m_system_cpp.h>
#include <m_database.h>
#include <m_langpack.h>
+#include <m_crypto.h>
#include "database.h"
#include "dbintf.h"
diff --git a/plugins/Db3x_mmap/src/dbcache.cpp b/plugins/Db3x_mmap/src/dbcache.cpp index 874a3b733e..8862c7192f 100644 --- a/plugins/Db3x_mmap/src/dbcache.cpp +++ b/plugins/Db3x_mmap/src/dbcache.cpp @@ -26,15 +26,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. void CDb3Mmap::Map()
{
m_hMap = CreateFileMapping(m_hDbFile, NULL, PAGE_READWRITE, 0, m_dwFileSize, NULL);
-
- if (m_hMap)
- {
+ if (m_hMap) {
m_pDbCache = (PBYTE)MapViewOfFile(m_hMap, FILE_MAP_ALL_ACCESS/*FILE_MAP_WRITE*/, 0, 0 ,0);
if (!m_pDbCache)
DatabaseCorruption( _T("%s (MapViewOfFile failed. Code: %d)"));
}
- else
- DatabaseCorruption( _T("%s (CreateFileMapping failed. Code: %d)"));
+ else DatabaseCorruption( _T("%s (CreateFileMapping failed. Code: %d)"));
}
void CDb3Mmap::ReMap(DWORD needed)
@@ -43,18 +40,15 @@ void CDb3Mmap::ReMap(DWORD needed) log3("remapping %d + %d (file end: %d)",m_dwFileSize,needed,m_dbHeader.ofsFileEnd);
- if (needed > m_ChunkSize)
- {
+ if (needed > m_ChunkSize) {
if (needed + m_dwFileSize > m_dbHeader.ofsFileEnd + m_ChunkSize)
DatabaseCorruption( _T("%s (Too large increment)"));
- else
- {
+ else {
DWORD x = m_dbHeader.ofsFileEnd/m_ChunkSize;
m_dwFileSize = (x+1)*m_ChunkSize;
}
}
- else
- m_dwFileSize += m_ChunkSize;
+ else m_dwFileSize += m_ChunkSize;
// FlushViewOfFile(m_pDbCache, 0);
UnmapViewOfFile(m_pDbCache);
diff --git a/plugins/Db3x_mmap/src/dbintf.cpp b/plugins/Db3x_mmap/src/dbintf.cpp index 0888e8c7f9..caaa1e5a74 100644 --- a/plugins/Db3x_mmap/src/dbintf.cpp +++ b/plugins/Db3x_mmap/src/dbintf.cpp @@ -58,7 +58,7 @@ CDb3Base::CDb3Base(const TCHAR *tszFileName) : m_ChunkSize = sinf.dwAllocationGranularity;
m_codePage = CallService(MS_LANGPACK_GETCODEPAGE, 0, 0);
- m_hModHeap = HeapCreate(0,0,0);
+ m_hModHeap = HeapCreate(0, 0, 0);
}
CDb3Base::~CDb3Base()
@@ -71,12 +71,15 @@ CDb3Base::~CDb3Base() m_lOfs.destroy();
// destroy map
- KillTimer(NULL,m_flushBuffersTimerId);
+ KillTimer(NULL, m_flushBuffersTimerId);
if (m_pDbCache) {
FlushViewOfFile(m_pDbCache, 0);
UnmapViewOfFile(m_pDbCache);
}
+ if (m_crypto)
+ m_crypto->destroy();
+
if (m_hMap)
CloseHandle(m_hMap);
@@ -114,6 +117,7 @@ int CDb3Base::Load(bool bSkipInit) if ( !bSkipInit) {
if (InitCache()) return 1;
if (InitModuleNames()) return 1;
+ if (InitCrypt()) return 1;
m_bReadOnly = false;
@@ -142,26 +146,6 @@ STDMETHODIMP_(void) CDb3Base::SetCacheSafetyMode(BOOL bIsSet) DBFlush(1);
}
-void CDb3Base::EncodeCopyMemory(void *dst, void *src, size_t size)
-{
- MoveMemory(dst, src, size);
-}
-
-void CDb3Base::DecodeCopyMemory(void *dst, void *src, size_t size)
-{
- MoveMemory(dst, src, size);
-}
-
-void CDb3Base::EncodeDBWrite(DWORD ofs, void *src, int size)
-{
- DBWrite(ofs, src, size);
-}
-
-void CDb3Base::DecodeDBWrite(DWORD ofs, void *src, int size)
-{
- DBWrite(ofs, src, size);
-}
-
///////////////////////////////////////////////////////////////////////////////
// MIDatabaseChecker
diff --git a/plugins/Db3x_mmap/src/dbintf.h b/plugins/Db3x_mmap/src/dbintf.h index 152e8613b2..80f1d32790 100644 --- a/plugins/Db3x_mmap/src/dbintf.h +++ b/plugins/Db3x_mmap/src/dbintf.h @@ -204,6 +204,7 @@ protected: virtual int InitCache(void) = 0;
protected:
+ int InitCrypt(void);
virtual void EncodeCopyMemory(void *dst, void *src, size_t size);
virtual void DecodeCopyMemory(void *dst, void *src, size_t size);
virtual void EncodeDBWrite(DWORD ofs, void *src, int size);
@@ -223,7 +224,9 @@ protected: DBHeader m_dbHeader;
DWORD m_ChunkSize;
bool m_safetyMode, m_bReadOnly;
-
+
+ MICryptoEngine *m_crypto;
+
////////////////////////////////////////////////////////////////////////////
// database stuff
public:
|