Unverified Commit e63a90f2 authored by kladko's avatar kladko

bug/SKALE-3751-enable-zeromq

parent 61ce445b
...@@ -125,11 +125,7 @@ bool SGXWalletServer::verifyCert(string &_certFileName) { ...@@ -125,11 +125,7 @@ bool SGXWalletServer::verifyCert(string &_certFileName) {
} }
int SGXWalletServer::initHttpsServer(bool _checkCerts) { void SGXWalletServer::createCertsIfNeeded() {
COUNT_STATISTICS
spdlog::info("Entering {}", __FUNCTION__);
spdlog::info("Initing server, number of threads: {}", NUM_THREADS);
string rootCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.pem"; string rootCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.pem";
string keyCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.key"; string keyCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.key";
...@@ -172,6 +168,22 @@ int SGXWalletServer::initHttpsServer(bool _checkCerts) { ...@@ -172,6 +168,22 @@ int SGXWalletServer::initHttpsServer(bool _checkCerts) {
spdlog::info("SERVER CERTIFICATE VERIFICATION FAILED"); spdlog::info("SERVER CERTIFICATE VERIFICATION FAILED");
exit(-12); exit(-12);
} }
}
int SGXWalletServer::initHttpsServer(bool _checkCerts) {
COUNT_STATISTICS
spdlog::info("Entering {}", __FUNCTION__);
spdlog::info("Initing server, number of threads: {}", NUM_THREADS);
string certPath = string(SGXDATA_FOLDER) + "cert_data/SGXServerCert.crt";
string keyPath = string(SGXDATA_FOLDER) + "cert_data/SGXServerCert.key";
string rootCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.pem";
string keyCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.key";
httpServer = make_shared<HttpServer>(BASE_PORT, certPath, keyPath, rootCAPath, _checkCerts, httpServer = make_shared<HttpServer>(BASE_PORT, certPath, keyPath, rootCAPath, _checkCerts,
NUM_THREADS); NUM_THREADS);
......
...@@ -181,6 +181,8 @@ public: ...@@ -181,6 +181,8 @@ public:
static int initHttpServer(); static int initHttpServer();
static int initHttpsServer(bool _checkCerts); static int initHttpsServer(bool _checkCerts);
static void createCertsIfNeeded();
}; };
#endif //SGXWALLET_SGXWALLETSERVER_HPP #endif //SGXWALLET_SGXWALLETSERVER_HPP
...@@ -166,7 +166,8 @@ uint64_t initEnclave() { ...@@ -166,7 +166,8 @@ uint64_t initEnclave() {
} }
void initAll(uint32_t _logLevel, bool _checkCert, bool _autoSign, bool _generateTestKeys) { void initAll(uint32_t _logLevel, bool _checkCert,
bool _checkZMQSig, bool _autoSign, bool _generateTestKeys) {
static atomic<bool> sgxServerInited(false); static atomic<bool> sgxServerInited(false);
...@@ -200,17 +201,23 @@ void initAll(uint32_t _logLevel, bool _checkCert, bool _autoSign, bool _generate ...@@ -200,17 +201,23 @@ void initAll(uint32_t _logLevel, bool _checkCert, bool _autoSign, bool _generate
initUserSpace(); initUserSpace();
initSEK(); initSEK();
SGXWalletServer::createCertsIfNeeded();
if (useHTTPS) { if (useHTTPS) {
spdlog::info("Initing JSON-RPC server over HTTPS");
spdlog::info("Check client cert: {}", _checkCert);
SGXWalletServer::initHttpsServer(_checkCert); SGXWalletServer::initHttpsServer(_checkCert);
SGXRegistrationServer::initRegistrationServer(_autoSign); spdlog::info("Inited JSON-RPC server over HTTPS");
CSRManagerServer::initCSRManagerServer();
ZMQServer::initZMQServer(_checkCert);
} else { } else {
spdlog::info("Initing JSON-RPC server over HTTP");
SGXWalletServer::initHttpServer(); SGXWalletServer::initHttpServer();
ZMQServer::initZMQServer(false); spdlog::info("Inited JSON-RPC server over HTTP");
} }
SGXInfoServer::initInfoServer(_logLevel, _checkCert, _autoSign, _generateTestKeys);
SGXRegistrationServer::initRegistrationServer(_autoSign);
CSRManagerServer::initCSRManagerServer();
ZMQServer::initZMQServer(_checkZMQSig);
SGXInfoServer::initInfoServer(_logLevel, _checkCert, _autoSign, _generateTestKeys);
sgxServerInited = true; sgxServerInited = true;
} catch (SGXException &_e) { } catch (SGXException &_e) {
spdlog::error(_e.getMessage()); spdlog::error(_e.getMessage());
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#define EXTERNC #define EXTERNC
#endif #endif
EXTERNC void initAll(uint32_t _logLevel, bool _checkCert, bool _autoSign, bool _generateTestKeys); EXTERNC void initAll(uint32_t _logLevel, bool _checkCert, bool _checkZMQSig, bool _autoSign, bool _generateTestKeys);
EXTERNC void initUserSpace(); EXTERNC void initUserSpace();
......
...@@ -168,12 +168,14 @@ void ZMQServer::initZMQServer(bool _checkSignature) { ...@@ -168,12 +168,14 @@ void ZMQServer::initZMQServer(bool _checkSignature) {
CHECK_STATE(!initedServer) CHECK_STATE(!initedServer)
initedServer = true; initedServer = true;
spdlog::info("Initing zmq server ..."); spdlog::info("Initing zmq server. checkSignature is set to {}", _checkSignature);
string rootCAPath = ""; string rootCAPath = "";
if (_checkSignature) { if (_checkSignature) {
string rootCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.pem";
rootCAPath = string(SGXDATA_FOLDER) + "cert_data/rootCA.pem";
spdlog::info("Reading root CA from {}", rootCAPath);
CHECK_STATE(access(rootCAPath.c_str(), F_OK) == 0); CHECK_STATE(access(rootCAPath.c_str(), F_OK) == 0);
}; };
......
...@@ -174,7 +174,7 @@ int main(int argc, char *argv[]) { ...@@ -174,7 +174,7 @@ int main(int argc, char *argv[]) {
enclaveLogLevel = L_TRACE; enclaveLogLevel = L_TRACE;
} }
initAll(enclaveLogLevel, checkClientCertOption, autoSignClientCertOption, generateTestKeys); initAll(enclaveLogLevel, checkClientCertOption, checkClientCertOption, autoSignClientCertOption, generateTestKeys);
ifstream is("sgx_data/4node.json"); ifstream is("sgx_data/4node.json");
......
...@@ -74,7 +74,7 @@ public: ...@@ -74,7 +74,7 @@ public:
TestFixture() { TestFixture() {
TestUtils::resetDB(); TestUtils::resetDB();
setOptions(L_INFO, false, true); setOptions(L_INFO, false, true);
initAll(L_INFO, false, true, false); initAll(L_INFO, false, false, true, false);
} }
~TestFixture() { ~TestFixture() {
...@@ -88,7 +88,7 @@ public: ...@@ -88,7 +88,7 @@ public:
TestFixtureHTTPS() { TestFixtureHTTPS() {
TestUtils::resetDB(); TestUtils::resetDB();
setOptions(L_INFO, true, true); setOptions(L_INFO, true, true);
initAll(L_INFO, false, true, false); initAll(L_INFO, false, true, true, false);
} }
~TestFixtureHTTPS() { ~TestFixtureHTTPS() {
...@@ -97,11 +97,27 @@ public: ...@@ -97,11 +97,27 @@ public:
} }
}; };
class TestFixtureZMQSign {
public:
TestFixtureZMQSign() {
TestUtils::resetDB();
setOptions(L_INFO, false, true);
initAll(L_INFO, false, true, true, false);
}
~TestFixtureZMQSign() {
ZMQServer::exitZMQServer();
TestUtils::destroyEnclave();
}
};
class TestFixtureNoResetFromBackup { class TestFixtureNoResetFromBackup {
public: public:
TestFixtureNoResetFromBackup() { TestFixtureNoResetFromBackup() {
setFullOptions(L_INFO, false, true, true); setFullOptions(L_INFO, false, true, true);
initAll(L_INFO, false, true, false); initAll(L_INFO, false, false, true, false);
} }
~TestFixtureNoResetFromBackup() { ~TestFixtureNoResetFromBackup() {
...@@ -115,7 +131,7 @@ class TestFixtureNoReset { ...@@ -115,7 +131,7 @@ class TestFixtureNoReset {
public: public:
TestFixtureNoReset() { TestFixtureNoReset() {
setOptions(L_INFO, false, true); setOptions(L_INFO, false, true);
initAll(L_INFO, false, true, false); initAll(L_INFO, false, false, true, false);
} }
~TestFixtureNoReset() { ~TestFixtureNoReset() {
...@@ -930,7 +946,7 @@ TEST_CASE_METHOD(TestFixtureNoReset, "Second run", "[second-run]") { ...@@ -930,7 +946,7 @@ TEST_CASE_METHOD(TestFixtureNoReset, "Second run", "[second-run]") {
} }
TEST_CASE_METHOD(TestFixture, "ZMQ-ecdsa", "[zmq-ecdsa]") { TEST_CASE_METHOD(TestFixtureZMQSign, "ZMQ-ecdsa", "[zmq-ecdsa]") {
HttpClient htp(RPC_ENDPOINT); HttpClient htp(RPC_ENDPOINT);
StubClient c(htp, JSONRPC_CLIENT_V2); StubClient c(htp, JSONRPC_CLIENT_V2);
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#define SAMPLE_POLY_NAME "POLY:SCHAIN_ID:1:NODE_ID:1:DKG_ID:1" #define SAMPLE_POLY_NAME "POLY:SCHAIN_ID:1:NODE_ID:1:DKG_ID:1"
#define RPC_ENDPOINT "http://localhost:1029" #define RPC_ENDPOINT "http://localhost:1029"
#define RPC_ENDPOINT_HTTPS "https://localhost:1026"
#define ZMQ_IP "127.0.0.1" #define ZMQ_IP "127.0.0.1"
#define ZMQ_PORT 1031 #define ZMQ_PORT 1031
......
...@@ -28,7 +28,7 @@ username = getpass.getuser() ...@@ -28,7 +28,7 @@ username = getpass.getuser()
topDir = os.getcwd() + "/sgxwallet" topDir = os.getcwd() + "/sgxwallet"
print("Top directory is:" + topDir) print("Top directory is:" + topDir)
testList = [ "[zmq-ecdsa-run]", testList = [ "[zmq-ecdsa]",
"[first-run]", "[first-run]",
"[second-run]", "[second-run]",
"[many-threads-crypto]", "[many-threads-crypto]",
......
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