From 64579d553e4089d55c136140bd0058696d2cf526 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 8 Jan 2021 14:54:51 +0300 Subject: another bunch of duplicate code moved to the core --- plugins/Db3x_mmap/src/dbcrypt.cpp | 32 +++++++++-------------- plugins/Db3x_mmap/src/dbintf.h | 3 ++- plugins/Db3x_mmap/src/stdafx.h | 2 -- plugins/Db3x_mmap/src/ui.h | 55 --------------------------------------- 4 files changed, 15 insertions(+), 77 deletions(-) delete mode 100644 plugins/Db3x_mmap/src/ui.h (limited to 'plugins/Db3x_mmap/src') diff --git a/plugins/Db3x_mmap/src/dbcrypt.cpp b/plugins/Db3x_mmap/src/dbcrypt.cpp index c76f3feb4e..340464eed8 100644 --- a/plugins/Db3x_mmap/src/dbcrypt.cpp +++ b/plugins/Db3x_mmap/src/dbcrypt.cpp @@ -132,26 +132,10 @@ int CDb3Mmap::InitCrypt() DBVARIANT dbv = { 0 }; dbv.type = DBVT_BLOB; if (GetContactSetting(0, "CryptoEngine", "Provider", &dbv)) { - LBL_CreateProvider: - CRYPTO_PROVIDER **ppProvs; - int iNumProvs; - Crypto_EnumProviders(&iNumProvs, &ppProvs); - if (iNumProvs == 0) +LBL_CreateProvider: + pProvider = SelectProvider(); + if (pProvider == nullptr) return 1; - - if (iNumProvs > 1) - { - CSelectCryptoDialog dlg(ppProvs, iNumProvs); - dlg.DoModal(); - pProvider = dlg.GetSelected(); - } - else pProvider = ppProvs[0]; - - DBCONTACTWRITESETTING dbcws = { "CryptoEngine", "Provider" }; - dbcws.value.type = DBVT_BLOB; - dbcws.value.pbVal = (PBYTE)pProvider->pszName; - dbcws.value.cpbVal = (WORD)mir_strlen(pProvider->pszName) + 1; - WriteContactSetting(0, &dbcws); } else { if (dbv.type != DBVT_BLOB) { // old version, clean it up @@ -225,6 +209,16 @@ void CDb3Mmap::StoreKey() SecureZeroMemory(pKey, iKeyLength); } +STDMETHODIMP_(BOOL) CDb3Mmap::StoreProvider(CRYPTO_PROVIDER *pProvider) +{ + DBCONTACTWRITESETTING dbcws = { "CryptoEngine", "Provider" }; + dbcws.value.type = DBVT_BLOB; + dbcws.value.pbVal = (PBYTE)pProvider->pszName; + dbcws.value.cpbVal = (WORD)mir_strlen(pProvider->pszName) + 1; + WriteContactSetting(0, &dbcws); + return TRUE; +} + void CDb3Mmap::SetPassword(const wchar_t *ptszPassword) { if (ptszPassword == nullptr || *ptszPassword == 0) { diff --git a/plugins/Db3x_mmap/src/dbintf.h b/plugins/Db3x_mmap/src/dbintf.h index 70d60e80df..ea3a99c364 100644 --- a/plugins/Db3x_mmap/src/dbintf.h +++ b/plugins/Db3x_mmap/src/dbintf.h @@ -203,7 +203,6 @@ struct CDb3Mmap : public MDatabaseCommon, public MZeroedObject void WriteSignature(DBSignature&); __forceinline HANDLE getFile() const { return m_hDbFile; } - __forceinline bool isEncrypted() const { return m_bEncrypted; } __forceinline bool usesPassword() const { return m_bUsesPassword; } public: @@ -232,6 +231,8 @@ public: STDMETHODIMP_(BOOL) EnumModuleNames(DBMODULEENUMPROC pFunc, void *pParam) override; + STDMETHODIMP_(BOOL) StoreProvider(CRYPTO_PROVIDER*); + STDMETHODIMP_(BOOL) GetContactSettingWorker(MCONTACT contactID, LPCSTR szModule, LPCSTR szSetting, DBVARIANT *dbv, int isStatic) override; STDMETHODIMP_(BOOL) WriteContactSettingWorker(MCONTACT contactID, DBCONTACTWRITESETTING &dbcws) override; STDMETHODIMP_(BOOL) DeleteContactSetting(MCONTACT contactID, LPCSTR szModule, LPCSTR szSetting) override; diff --git a/plugins/Db3x_mmap/src/stdafx.h b/plugins/Db3x_mmap/src/stdafx.h index 354696969d..1c2844a671 100644 --- a/plugins/Db3x_mmap/src/stdafx.h +++ b/plugins/Db3x_mmap/src/stdafx.h @@ -65,8 +65,6 @@ struct CMPlugin : public PLUGIN extern LIST g_Dbs; extern DBSignature dbSignatureU, dbSignatureE, dbSignatureIM, dbSignatureSA, dbSignatureSD; -#include "ui.h" - #ifdef __GNUC__ #define mir_i64(x) (x##LL) #else diff --git a/plugins/Db3x_mmap/src/ui.h b/plugins/Db3x_mmap/src/ui.h deleted file mode 100644 index c52a479bc6..0000000000 --- a/plugins/Db3x_mmap/src/ui.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -class CSelectCryptoDialog : public CDlgBase -{ - CCtrlCombo m_combo; - CCtrlData m_descr; - CRYPTO_PROVIDER **m_provs; - size_t m_provscount; - CRYPTO_PROVIDER *m_selected; - -public: - CSelectCryptoDialog(CRYPTO_PROVIDER **provs, size_t count) : - CDlgBase(g_plugin, IDD_SELECT_CRYPTOPROVIDER), - m_combo(this, IDC_SELECTCRYPT_COMBO), - m_descr(this, IDC_CRYPTOPROVIDER_DESCR), - m_provs(provs), - m_provscount(count), - m_selected(nullptr) - { - m_combo.OnChange = Callback(this, &CSelectCryptoDialog::OnComboChanged); - } - - bool OnInitDialog() override - { - for (size_t i = 0; i < m_provscount; i++) - { - CRYPTO_PROVIDER *prov = m_provs[i]; - m_combo.AddStringA(prov->pszName, i); - } - m_combo.SetCurSel(0); - SetDescr(m_provs[0]); - return true; - } - - bool OnApply() override - { - m_selected = m_provs[ m_combo.GetItemData(m_combo.GetCurSel()) ]; - return true; - } - - void OnComboChanged(CCtrlCombo*) - { - SetDescr(m_provs[m_combo.GetItemData(m_combo.GetCurSel())]); - } - - void SetDescr(CRYPTO_PROVIDER *prov) - { - m_descr.SetText(prov->szDescr.w); - } - - inline CRYPTO_PROVIDER* GetSelected() - { - return m_selected; - } -}; \ No newline at end of file -- cgit v1.2.3