}
else if (strType == "malpair")
{
- string strKey, strKeyView;
-
- CMalleableKey mKey;
- CMalleableKeyView keyView;
+ string strKeyView;
+ CSecret vchSecret;
ssKey >> strKeyView;
- ssValue >> strKey;
-
- keyView.SetString(strKeyView);
- mKey.SetString(strKey);
+ ssValue >> vchSecret;
- if (mKey.IsNull())
- {
- strErr = "Error reading wallet database: CMalleableKey is corrupt";
- return false;
- }
- if (mKey.GetID() != keyView.GetID())
+ CMalleableKeyView keyView(strKeyView);
+ if (!pwallet->LoadMalleableKey(keyView, vchSecret))
{
- strErr = "Error reading wallet database: CMalleableKey view inconsistency";
+ strErr = "Error reading wallet database: LoadMalleableKey failed";
return false;
}
+ }
+ else if (strType == "malcpair")
+ {
+ string strKeyView;
- if (!pwallet->LoadMalleableKey(mKey))
+ std::vector<unsigned char> vchCryptedSecret;
+ ssKey >> strKeyView;
+ ssValue >> vchCryptedSecret;
+
+ CMalleableKeyView keyView(strKeyView);
+ if (!pwallet->LoadCryptedMalleableKey(keyView, vchCryptedSecret))
{
- strErr = "Error reading wallet database: LoadMalleableKey failed";
+ strErr = "Error reading wallet database: LoadCryptedMalleableKey failed";
return false;
}
}
static bool IsKeyType(string strType)
{
return (strType== "key" || strType == "wkey" ||
- strType == "mkey" || strType == "ckey" || strType == "malpair");
+ strType == "mkey" || strType == "ckey" || strType == "malpair" || strType == "malcpair");
}
DBErrors CWalletDB::LoadWallet(CWallet* pwallet)