SKALE-3951 add req methods

parent 003b4fca
......@@ -71,7 +71,7 @@ bin_PROGRAMS = sgxwallet testw sgx_util
COMMON_SRC = SGXException.cpp ExitHandler.cpp zmq_src/ZMQClient.cpp zmq_src/BLSSignRspMessage.cpp \
zmq_src/ECDSASignRspMessage.cpp zmq_src/ECDSASignReqMessage.cpp zmq_src/BLSSignReqMessage.cpp \
zmq_src/ECDSASignRspMessage.cpp zmq_src/ReqMessage.cpp \
zmq_src/ZMQMessage.cpp zmq_src/ZMQServer.cpp zmq_src/ServerWorker.cpp \
InvalidStateException.cpp Exception.cpp InvalidArgumentException.cpp Log.cpp \
SGXWalletServer.cpp SGXRegistrationServer.cpp CSRManagerServer.cpp BLSCrypto.cpp \
......
/*
Copyright (C) 2018- SKALE Labs
This file is part of sgxwallet.
sgxwallet is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
sgxwallet is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with sgxwallet. If not, see <https://www.gnu.org/licenses/>.
@file ReqMessage.cpp
@author Oleh Nikolaiev
@date 2021
*/
#include "SGXWalletServer.hpp"
#include "ReqMessage.h"
Json::Value ECDSASignReqMessage::process() {
auto base = getUint64Rapid("base");
auto keyName = getStringRapid("keyName");
auto hash = getStringRapid("messageHash");
auto result = SGXWalletServer::ecdsaSignMessageHashImpl(base, keyName, hash);
result["type"] = ZMQMessage::ECDSA_SIGN_RSP;
return result;
}
Json::Value BLSSignReqMessage::process() {
auto keyName = getStringRapid("keyShareName");
auto hash = getStringRapid("messageHash");
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto result = SGXWalletServer::blsSignMessageHashImpl(keyName, hash, t, n);
result["type"] = ZMQMessage::BLS_SIGN_RSP;
return result;
}
Json::Value importBLSReqMessage::process() {
auto keyName = getStringRapid("keyShareName");
auto keyShare = getStringRapid("keyShare");
auto result = SGXWalletServer::importBLSKeyShareImpl(keyShare, keyName);
result["type"] = ZMQMessage::IMPORT_BLS_RSP;
return result;
}
Json::Value importECDSAReqMessage::process() {
auto keyName = getStringRapid("keyName");
auto key = getStringRapid("key");
auto result = SGXWalletServer::importECDSAKeyImpl(key, keyName);
result["type"] = ZMQMessage::IMPORT_ECDSA_RSP;
return result;
}
Json::Value generateECDSAReqMessage::process() {
auto result = SGXWalletServer::generateECDSAKeyImpl();
result["type"] = ZMQMessage::GENERATE_ECDSA_RSP;
return result;
}
Json::Value getPublicECDSAReqMessage::process() {
auto keyName = getStringRapid("keyName");
auto result = SGXWalletServer::getPublicECDSAKeyImpl(keyName);
result["type"] = ZMQMessage::GET_PUBLIC_ECDSA_RSP;
return result;
}
Json::Value generateDKGPolyReqMessage::process() {
auto polyName = getStringRapid("polyName");
auto t = getUint64Rapid("t");
auto result = SGXWalletServer::generateDKGPolyImpl(polyName, t);
result["type"] = ZMQMessage::GENERATE_DKG_POLY_RSP;
return result;
}
Json::Value getVerificationVectorReqMessage::process() {
auto polyName = getStringRapid("polyName");
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto result = SGXWalletServer::getVerificationVectorImpl(polyName, t, n);
result["type"] = ZMQMessage::GET_VV_RSP;
return result;
}
Json::Value getSecretShareReqMessage::process() {
auto polyName = getStringRapid("polyName");
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto pubKeys = getJsonArray("publicKeys");
auto result = SGXWalletServer::getSecretShareImpl(polyName, pubKeys, t, n);
result["type"] = ZMQMessage::GET_SECRET_SHARE_RSP;
return result;
}
Json::Value dkgVerificationReqMessage::process() {
auto ethKeyName = getStringRapid("ethKeyName");
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto idx = getUint64Rapid("index");
auto pubShares = getStringRapid("publicShares");
auto secretShare = getStringRapid("secretShare");
auto result = SGXWalletServer::dkgVerificationImpl(pubShares, ethKeyName, secretShare, t, n, idx);
result["type"] = ZMQMessage::DKG_VERIFY_RSP;
return result;
}
Json::Value createBLSPrivateKeyReqMessage::process() {
auto blsKeyName = getStringRapid("blsKeyName");
auto ethKeyName = getStringRapid("ethKeyName");
auto polyName = getStringRapid("polyName");
auto secretShare = getStringRapid("secretShare");
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto result = SGXWalletServer::createBLSPrivateKeyImpl(blsKeyName, ethKeyName, polyName, secretShare, t, n);
result["type"] = ZMQMessage::CREATE_BLS_PRIVATE_RSP;
return result;
}
Json::Value getBLSPublicReqMessage::process() {
auto blsKeyName = getStringRapid("blsKeyName");
auto result = SGXWalletServer::getBLSPublicKeyShareImpl(blsKeyName);
result["type"] = ZMQMessage::GET_BLS_PUBLIC_RSP;
return result;
}
Json::Value getAllBLSPublicKeysReqMessage::process() {
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto pubShares = getJsonArray("publicShares");
auto result = SGXWalletServer::calculateAllBLSPublicKeysImpl(pubShares, t, n);
result["type"] = ZMQMessage::GET_ALL_BLS_PUBLIC_RSP;
return result;
}
Json::Value complaintResponseReqMessage::process() {
auto polyName = getStringRapid("polyName");
auto t = getUint64Rapid("t");
auto n = getUint64Rapid("n");
auto idx = getUint64Rapid("ind");
auto result = SGXWalletServer::complaintResponseImpl(polyName, t, n, idx);
result["type"] = ZMQMessage::COMPLAINT_RESPONSE_RSP;
return result;
}
Json::Value multG2ReqMessage::process() {
auto x = getStringRapid("x");
auto result = SGXWalletServer::multG2Impl(x);
result["type"] = ZMQMessage::MULT_G2_RSP;
return result;
}
Json::Value isPolyExistsReqMessage::process() {
auto polyName = getStringRapid("polyName");
auto result = SGXWalletServer::isPolyExistsImpl(polyName);
result["type"] = ZMQMessage::IS_POLY_EXISTS_RSP;
return result;
}
Json::Value getServerStatusReqMessage::process() {
auto result = SGXWalletServer::getServerStatusImpl();
result["type"] = ZMQMessage::GET_SERVER_STATUS_RSP;
return result;
}
Json::Value getServerVersionReqMessage::process() {
auto result = SGXWalletServer::getServerVersionImpl();
result["type"] = ZMQMessage::GET_SERVER_VERSION_RSP;
return result;
}
Json::Value deleteBLSKeyReqMessage::process() {
auto blsKeyName = getStringRapid("blsKeyName");
auto result = SGXWalletServer::deleteBlsKeyImpl(blsKeyName);
result["type"] = ZMQMessage::DELETE_BLS_KEY_RSP;
return result;
}
/*
Copyright (C) 2018- SKALE Labs
This file is part of sgxwallet.
sgxwallet is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
sgxwallet is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with sgxwallet. If not, see <https://www.gnu.org/licenses/>.
@file ReqMessage.h
@author Oleh Nikolaiev
@date 2021
*/
#ifndef SGXWALLET_REQMESSAGE_H
#define SGXWALLET_REQMESSAGE_H
#include "ZMQMessage.h"
class ECDSASignReqMessage : public ZMQMessage {
public:
ECDSASignReqMessage(shared_ptr <rapidjson::Document> &_d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class BLSSignReqMessage : public ZMQMessage {
public:
BLSSignReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class importBLSReqMessage : public ZMQMessage {
public:
importBLSReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class importECDSAReqMessage : public ZMQMessage {
public:
importECDSAReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class generateECDSAReqMessage : public ZMQMessage {
public:
generateECDSAReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getPublicECDSAReqMessage : public ZMQMessage {
public:
getPublicECDSAReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class generateDKGPolyReqMessage : public ZMQMessage {
public:
generateDKGPolyReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getVerificationVectorReqMessage : public ZMQMessage {
public:
getVerificationVectorReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getSecretShareReqMessage : public ZMQMessage {
public:
getSecretShareReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class dkgVerificationReqMessage : public ZMQMessage {
public:
dkgVerificationReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class createBLSPrivateKeyReqMessage : public ZMQMessage {
public:
createBLSPrivateKeyReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getBLSPublicReqMessage : public ZMQMessage {
public:
getBLSPublicReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getAllBLSPublicKeysReqMessage : public ZMQMessage {
public:
getAllBLSPublicKeysReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class complaintResponseReqMessage : public ZMQMessage {
public:
complaintResponseReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class multG2ReqMessage : public ZMQMessage {
public:
multG2ReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class isPolyExistsReqMessage : public ZMQMessage {
public:
isPolyExistsReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getServerStatusReqMessage : public ZMQMessage {
public:
getServerStatusReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class getServerVersionReqMessage : public ZMQMessage {
public:
getServerVersionReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
class deleteBLSKeyReqMessage : public ZMQMessage {
public:
deleteBLSKeyReqMessage(shared_ptr<rapidjson::Document>& _d) : ZMQMessage(_d) {};
virtual Json::Value process();
};
#endif //SGXWALLET_REQMESSAGE_H
......@@ -48,7 +48,17 @@ Json::Value ZMQMessage::getJsonArray(const char *_name) {
CHECK_STATE(d->HasMember(_name));
const rapidjson::Value &a = (*d)[_name];
CHECK_STATE(a.IsArray());
return a.GetUint64();
rapidjson::StringBuffer buffer;
rapidjson::Writer< rapidjson::StringBuffer > writer(buffer);
a.Accept(writer);
std::string strRequest = buffer.GetString();
Json::Reader reader;
Json::Value root;
reader.parse(strRequest, root, false);
return root;
}
string ZMQMessage::getStringRapid(const char *_name) {
......
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