SKALE-4262 write key owners to db

parent 331cc90a
......@@ -54,7 +54,6 @@ class LevelDB {
static string sgx_data_folder;
public:
static void initDataFolderAndDBs();
......@@ -104,8 +103,6 @@ public:
virtual ~LevelDB();
static const string &getSgxDataFolder();
};
......
......@@ -48,12 +48,9 @@ class SGXWalletServer : public AbstractStubServer {
static map<string,string> ecdsaRequests;
static recursive_mutex ecdsaRequestsLock;
static void checkForDuplicate(map <string, string> &_map, recursive_mutex &_m, const string &_key,
const string &_value);
public:
static bool verifyCert(string& _certFileName);
......
......@@ -60,7 +60,7 @@ Json::Value importBLSReqMessage::process() {
auto result = SGXWalletServer::importBLSKeyShareImpl(keyShare, keyName);
if (result["status"] == 0) {
auto cert = getStringRapid("cert");
keysByOwners[keyName] = cert;
addKeyByOwner(keyName, cert);
}
result["type"] = ZMQMessage::IMPORT_BLS_RSP;
return result;
......@@ -72,7 +72,7 @@ Json::Value importECDSAReqMessage::process() {
auto result = SGXWalletServer::importECDSAKeyImpl(key, keyName);
if (result["status"] == 0) {
auto cert = getStringRapid("cert");
keysByOwners[keyName] = cert;
addKeyByOwner(keyName, cert);
}
result["type"] = ZMQMessage::IMPORT_ECDSA_RSP;
return result;
......@@ -83,7 +83,7 @@ Json::Value generateECDSAReqMessage::process() {
string keyName = result["keyName"].asString();
if (result["status"] == 0) {
auto cert = getStringRapid("cert");
keysByOwners[keyName] = cert;
addKeyByOwner(keyName, cert);
}
result["type"] = ZMQMessage::GENERATE_ECDSA_RSP;
return result;
......@@ -106,7 +106,7 @@ Json::Value generateDKGPolyReqMessage::process() {
auto result = SGXWalletServer::generateDKGPolyImpl(polyName, t);
if (result["status"] == 0) {
auto cert = getStringRapid("cert");
keysByOwners[polyName] = cert;
addKeyByOwner(polyName, cert);
}
result["type"] = ZMQMessage::GENERATE_DKG_POLY_RSP;
return result;
......@@ -167,7 +167,7 @@ Json::Value createBLSPrivateKeyReqMessage::process() {
}
auto result = SGXWalletServer::createBLSPrivateKeyV2Impl(blsKeyName, ethKeyName, polyName, secretShare, t, n);
if (result["status"] == 0) {
keysByOwners[blsKeyName] = cert;
addKeyByOwner(blsKeyName, cert);
}
result["type"] = ZMQMessage::CREATE_BLS_PRIVATE_RSP;
return result;
......
......@@ -28,6 +28,7 @@
#include <fstream>
#include "ZMQClient.h"
#include "LevelDB.h"
#include "SGXWalletServer.hpp"
#include "ReqMessage.h"
#include "RspMessage.h"
......@@ -315,7 +316,12 @@ shared_ptr <ZMQMessage> ZMQMessage::buildResponse(string &_type, shared_ptr <rap
std::map<string, string> ZMQMessage::keysByOwners;
bool ZMQMessage::isKeyByOwner(const string& keyName, const string& cert) {
return keysByOwners.count(keyName) && keysByOwners[keyName] == cert;
auto value = LevelDB::getLevelDb()->readString(keyName);
return value && *value == cert;
}
void ZMQMessage::addKeyByOwner(const string& keyName, const string& cert) {
SGXWalletServer::writeDataToDB(keyName, cert);
}
cache::lru_cache<string, pair < EVP_PKEY * , X509 *>> ZMQMessage::verifiedCerts(256);
......
......@@ -57,6 +57,8 @@ protected:
static bool isKeyByOwner(const string& keyName, const string& cert);
static void addKeyByOwner(const string& keyName, const string& cert);
public:
static constexpr const char *BLS_SIGN_REQ = "BLSSignReq";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment