Skip to content
Permalink
Browse files Browse the repository at this point in the history
Merge branch 'develop' into SKALE-1180-VERIFY-ECDSA
# Conflicts:
#	SGXWALLET_VERSION
  • Loading branch information
kladkogex committed May 19, 2020
2 parents ed0700e + 67e1dd4 commit 4e9b5b7
Show file tree
Hide file tree
Showing 25 changed files with 246 additions and 161 deletions.
18 changes: 15 additions & 3 deletions .github/workflows/dockerimage.yml
Expand Up @@ -12,8 +12,20 @@ jobs:
- name: submodule update
run: git submodule update --init --recursive
- name: build
run: python3 scripts/docker_build.py ${GITHUB_REF##*/} Dockerfile sgxwallet ${GITHUB_SHA}
- name: push
run: python3 scripts/docker_push.py ${GITHUB_REF##*/} Dockerfile sgxwallet ${GITHUB_SHA}
run: python3 scripts/docker_build.py Dockerfile sgxwallet ${GITHUB_SHA}
- name: deploy docker image
if: contains(github.ref, 'develop') || contains(github.ref, 'beta') || contains(github.ref, 'master') || contains(github.ref, 'stable')
run : |
export BRANCH=${GITHUB_REF##*/}
echo "Branch $BRANCH"
export VERSION=$(cat VERSION)
echo "Version $VERSION"
export VERSION=$(bash ./scripts/calculate_version.sh $BRANCH $VERSION sgxwallet)
echo "::set-env name=VERSION::$VERSION"
echo "Version $VERSION"
export RELEASE=true
echo "::set-env name=RELEASE::$RELEASE"
bash ./scripts/build_image.sh Dockerfile
bash ./scripts/publish_image.sh Dockerfile
19 changes: 15 additions & 4 deletions .github/workflows/dockerimagebase.yml
Expand Up @@ -15,7 +15,18 @@ jobs:
- name: submodule update
run: git submodule update --init --recursive
- name: Build the Docker image
run: docker build . --file DockerfileBase --tag skalenetwork/sgxwallet_base:latest
- name: push docker image
run: docker push skalenetwork/sgxwallet_base:latest

run: docker build . --file DockerfileBase --tag skalenetwork/sgxwallet_base:latest
- name: deploy docker image
if: contains(github.ref, 'develop') || contains(github.ref, 'beta') || contains(github.ref, 'master') || contains(github.ref, 'stable')
run : |
export BRANCH=${GITHUB_REF##*/}
echo "Branch $BRANCH"
export VERSION=$(cat VERSION)
echo "Version $VERSION"
export VERSION=$(bash ./scripts/calculate_version.sh $BRANCH $VERSION sgxwallet_base)
echo "::set-env name=VERSION::$VERSION"
echo "Version $VERSION"
export RELEASE=true
echo "::set-env name=RELEASE::$RELEASE"
bash ./scripts/build_image.sh DockerfileBase
bash ./scripts/publish_image.sh DockerfileBase
49 changes: 42 additions & 7 deletions .github/workflows/dockerimagesim.yml
Expand Up @@ -3,6 +3,9 @@ on: [push]
jobs:
build:
runs-on: ubuntu-latest
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
steps:
- name: Check that /dev/urandom exists
run: ls /dev/urandom
Expand All @@ -13,13 +16,45 @@ jobs:
- uses: actions/checkout@v1
- name: submodule update
run: git submodule update --init --recursive
- name: build
run: python3 scripts/docker_build.py ${GITHUB_REF##*/} DockerfileSimulation sgxwalletsim ${GITHUB_SHA}
- name: build container for release
run: |
export BRANCH=${GITHUB_REF##*/}
echo "Branch $BRANCH"
export VERSION=$(cat VERSION)
echo "Version $VERSION"
export VERSION=$(bash ./scripts/calculate_version.sh $BRANCH $VERSION sgxwalletsim)
echo "::set-env name=VERSION::$VERSION"
echo "Version $VERSION"
bash ./scripts/build_image.sh DockerfileSimulation
- name: build container for testing
run: python3 scripts/docker_build.py DockerfileSimulation sgxwalletsim ${GITHUB_SHA}
- name: test
run: python3 scripts/docker_test.py ${GITHUB_REF##*/} DockerfileSimulation sgxwalletsim ${GITHUB_SHA}
- name: push
run: python3 scripts/docker_push.py ${GITHUB_REF##*/} DockerfileSimulation sgxwalletsim ${GITHUB_SHA}


run: python3 scripts/docker_test.py ${GITHUB_REF##*/} DockerfileSimulation sgxwalletsim
- name: deploy docker image
if: contains(github.ref, 'develop') || contains(github.ref, 'beta') || contains(github.ref, 'master') || contains(github.ref, 'stable')
run : |
export BRANCH=${GITHUB_REF##*/}
echo "Branch $BRANCH"
export VERSION=${{env.VERSION}}
echo "::set-env name=VERSION::$VERSION"
echo "Version $VERSION"
export RELEASE=true
echo "::set-env name=RELEASE::$RELEASE"
bash ./scripts/publish_image.sh DockerfileSimulation
- name: Create Release
if: contains(github.ref, 'develop') || contains(github.ref, 'beta') || contains(github.ref, 'master') || contains(github.ref, 'stable')
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ env.VERSION }}
release_name: Release ${{ env.VERSION }}
body: |
Changes in this Release
- First Change
- Second Change
draft: false
prerelease: true


17 changes: 1 addition & 16 deletions BLSCrypto.cpp
Expand Up @@ -151,8 +151,6 @@ bool hex2carray2(const char *_hex, uint64_t *_bin_len,
bool sign(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t _n, size_t _signerIndex,
char *_sig) {

//cerr << "ENTER SIGN" << endl;

auto keyStr = make_shared<string>(_encryptedKeyHex);

auto hash = make_shared<array<uint8_t, 32>>();
Expand All @@ -168,10 +166,7 @@ bool sign(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t

auto keyShare = make_shared<BLSPrivateKeyShareSGX>(keyStr, _t, _n);

//cerr << "keyShare created" << endl;
// {
auto sigShare = keyShare->signWithHelperSGX(hash, _signerIndex);
// }

auto sigShareStr = sigShare->toString();

Expand All @@ -184,16 +179,12 @@ bool sign(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t
// auto sig_ptr = make_shared<string>(test_sig);
// strncpy(_sig, sig_ptr->c_str(), BUF_LEN);

//cerr<< "sig " << _sig <<endl;

return true;
}

bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t _n, size_t _signerIndex,
char *_sig) {

//cerr << "ENTER SIGN" << endl;

auto keyStr = make_shared<string>(_encryptedKeyHex);

auto hash = make_shared<array<uint8_t, 32>>();
Expand All @@ -208,10 +199,7 @@ bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, siz

// auto keyShare = make_shared<BLSPrivateKeyShareSGX>(keyStr, _t, _n);
//
// //cerr << "keyShare created" << endl;
// // {
// auto sigShare = keyShare->signWithHelperSGX(hash, _signerIndex);
// // }
//
// auto sigShareStr = sigShare->toString();
//
Expand Down Expand Up @@ -296,8 +284,6 @@ bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, siz
// auto sig_ptr = make_shared<string>(test_sig);
// strncpy(_sig, sig_ptr->c_str(), BUF_LEN);

//cerr<< "sig " << _sig <<endl;

return true;
}

Expand All @@ -320,7 +306,6 @@ char *encryptBLSKeyShare2Hex(int *errStatus, char *err_string, const char *_key)

unsigned int encryptedLen = 0;

//status = trustedEncryptKey(eid, errStatus, errMsg, keyArray, encryptedKey, &encryptedLen);
status = trustedEncryptKeyAES(eid, errStatus, errMsg->data(), keyArray->data(), encryptedKey->data(), &encryptedLen);

spdlog::debug("errStatus is {}", *errStatus);
Expand Down Expand Up @@ -373,4 +358,4 @@ char *decryptBLSKeyShareFromHex(int *errStatus, char *errMsg, const char *_encry

return plaintextKey;

}
}
2 changes: 1 addition & 1 deletion SGXWALLET_VERSION
@@ -1 +1 @@
#define SGXWALLET_VERSION "1.49.4"
#define SGXWALLET_VERSION "1.49.5"
23 changes: 14 additions & 9 deletions SGXWalletServer.cpp
Expand Up @@ -43,7 +43,6 @@

#include "Log.h"


void setFullOptions(int _printDebugInfo,
int _printTraceInfo, int _useHTTPS, int _autoconfirm, int _encryptKeys) {
if (_printDebugInfo)
Expand Down Expand Up @@ -447,13 +446,11 @@ Json::Value SGXWalletServer::getVerificationVectorImpl(const string &_polyName,
shared_ptr <string> encr_poly_ptr = readFromDb(_polyName);

verifVector = get_verif_vect(encr_poly_ptr->c_str(), _t, _n);
//cerr << "verif vect size " << verifVector.size() << endl;

for (int i = 0; i < _t; i++) {
vector <string> cur_coef = verifVector.at(i);
for (int j = 0; j < 4; j++) {
result["verificationVector"][i][j] = cur_coef.at(j);
result["Verification Vector"][i][j] = cur_coef.at(j);
}
}

Expand All @@ -462,7 +459,6 @@ Json::Value SGXWalletServer::getVerificationVectorImpl(const string &_polyName,
result["status"] = _e.status;
result["errorMessage"] = _e.errString;
result["verificationVector"] = "";
result["Verification Vector"] = "";
}

return result;
Expand Down Expand Up @@ -499,7 +495,6 @@ Json::Value SGXWalletServer::getSecretShareImpl(const string &_polyName, const J
result["secretShare"] = s;

} catch (SGXException &_e) {
//cerr << " err str " << _e.errString << endl;
result["status"] = _e.status;
result["errorMessage"] = _e.errString;
result["secretShare"] = "";
Expand Down Expand Up @@ -616,7 +611,6 @@ Json::Value SGXWalletServer::getBLSPublicKeyShareImpl(const string &_blsKeyName)
vector <string> public_key_vect = GetBLSPubKey(encryptedKeyHex_ptr->c_str());
for (uint8_t i = 0; i < 4; i++) {
result["blsPublicKeyShare"][i] = public_key_vect.at(i);
result["BlsPublicKeyShare"][i] = public_key_vect.at(i);
}

} HANDLE_SGX_EXCEPTION(result)
Expand All @@ -639,7 +633,6 @@ Json::Value SGXWalletServer::complaintResponseImpl(const string &_polyName, int

result["share*G2"] = *shareG2_ptr;
result["dhKey"] = DHKey;
result["DHKey"] = DHKey;

} HANDLE_SGX_EXCEPTION(result)

Expand All @@ -666,14 +659,12 @@ Json::Value SGXWalletServer::isPolyExistsImpl(const string &_polyName) {
INIT_RESULT(result)

result["IsExist"] = false;
result["exists"] = false;

try {
std::shared_ptr <std::string> poly_str_ptr = LevelDB::getLevelDb()->readString(_polyName);

if (poly_str_ptr != nullptr) {
result["IsExist"] = true;
result["exists"] = true;
}
} HANDLE_SGX_EXCEPTION(result)

Expand All @@ -687,6 +678,15 @@ Json::Value SGXWalletServer::getServerStatusImpl() {
return result;
}

Json::Value SGXWalletServer::getServerVersionImpl() {

INIT_RESULT(result)

result["version"] = SGXWALLET_VERSION;

return result;
}


Json::Value SGXWalletServer::generateDKGPoly(const string &_polyName, int _t) {
LOCK(m)
Expand Down Expand Up @@ -785,6 +785,11 @@ Json::Value SGXWalletServer::getServerStatus() {
return getServerStatusImpl();
}

Json::Value SGXWalletServer::getServerVersion() {
LOCK(m)
return getServerVersionImpl();
}

shared_ptr <string> SGXWalletServer::readFromDb(const string &name, const string &prefix) {

auto dataStr = LevelDB::getLevelDb()->readString(prefix + name);
Expand Down
6 changes: 5 additions & 1 deletion SGXWalletServer.hpp
Expand Up @@ -86,6 +86,8 @@ class SGXWalletServer : public AbstractStubServer {

virtual Json::Value getServerStatus();

virtual Json::Value getServerVersion();

static shared_ptr<string> readFromDb(const string &name, const string &prefix = "");

static void writeDataToDB(const string &Name, const string &value);
Expand Down Expand Up @@ -135,11 +137,13 @@ class SGXWalletServer : public AbstractStubServer {

static Json::Value getServerStatusImpl();

static Json::Value getServerVersionImpl();

static void printDB();

static int initHttpServer();

static int initHttpsServer(bool _checkCerts);
};

#endif //SGXWALLET_SGXWALLETSERVER_HPP
#endif //SGXWALLET_SGXWALLETSERVER_HPP
1 change: 0 additions & 1 deletion ServerInit.cpp
Expand Up @@ -54,7 +54,6 @@
#include "BLSCrypto.h"
#include "ServerInit.h"
#include "SGXWalletServer.hpp"
#include "SGXWALLET_VERSION"

void initUserSpace() {
libff::init_alt_bn128_params();
Expand Down
1 change: 1 addition & 0 deletions ServerInit.h
Expand Up @@ -25,6 +25,7 @@
#define SGXWALLET_SERVERINIT_H

#include "stdint.h"
#include "SGXWALLET_VERSION"

#ifdef __cplusplus
#define EXTERNC extern "C"
Expand Down
1 change: 1 addition & 0 deletions VERSION
@@ -0,0 +1 @@
1.49
8 changes: 8 additions & 0 deletions abstractstubserver.h
Expand Up @@ -56,6 +56,7 @@ class AbstractStubServer : public jsonrpc::AbstractServer<AbstractStubServer>
this->bindAndAddMethod(jsonrpc::Procedure("isPolyExists", jsonrpc::PARAMS_BY_NAME, jsonrpc::JSON_OBJECT, "polyName",jsonrpc::JSON_STRING, NULL), &AbstractStubServer::isPolyExistsI);

this->bindAndAddMethod(jsonrpc::Procedure("getServerStatus", jsonrpc::PARAMS_BY_NAME, jsonrpc::JSON_OBJECT, NULL), &AbstractStubServer::getServerStatusI);
this->bindAndAddMethod(jsonrpc::Procedure("getServerVersion", jsonrpc::PARAMS_BY_NAME, jsonrpc::JSON_OBJECT, NULL), &AbstractStubServer::getServerVersionI);
}

inline virtual void importBLSKeyShareI(const Json::Value &request, Json::Value &response)
Expand Down Expand Up @@ -133,6 +134,12 @@ class AbstractStubServer : public jsonrpc::AbstractServer<AbstractStubServer>
response = this->getServerStatus();
}

inline virtual void getServerVersionI(const Json::Value &request, Json::Value &response)
{
(void)request;
response = this->getServerVersion();
}

virtual Json::Value importBLSKeyShare(const std::string& keyShare, const std::string& keyShareName, int t, int n, int index) = 0;
virtual Json::Value blsSignMessageHash(const std::string& keyShareName, const std::string& messageHash, int t, int n, int signerIndex ) = 0;
virtual Json::Value importECDSAKey(const std::string& key, const std::string& keyName) = 0;
Expand All @@ -152,6 +159,7 @@ class AbstractStubServer : public jsonrpc::AbstractServer<AbstractStubServer>
virtual Json::Value isPolyExists(const std::string& polyName) = 0;

virtual Json::Value getServerStatus() = 0;
virtual Json::Value getServerVersion() = 0;
};

#endif //JSONRPC_CPP_STUB_ABSTRACTSTUBSERVER_H_
14 changes: 3 additions & 11 deletions docker/start.sh
Expand Up @@ -38,22 +38,14 @@ fi

if [[ "$1" == "-t" ]]; then
echo "Test run requested"
#./testw [bls-key-encrypt]
./testw [bls-key-encrypt-decrypt]
./testw [bls-key-encrypt]
./testw [dkg-encr-sshares]
./testw [dkg-verify]
./testw [ecdsa]
./testw [test]
./testw [get-pub-ecdsa-key]
./testw [bls-dkg]
./testw [api]
./testw [get-server-status]
./testw [many-threads]
./testw [ecsa-api]
./testw [dkg-api]
./testw [is-poly
#./testw [bls-sign]
./testw [dkg-poly-exists]
./testw [aes-encrypt-decrypt]
./testw [get-server-version]
else
./sgxwallet $1 $2 $3 $4
fi
Expand Down
Binary file removed jsonrpc/pre_downloaded/libjson-rpc-cpp.tar.gz
Binary file not shown.
4 changes: 2 additions & 2 deletions scripts/build_deps.py
Expand Up @@ -133,10 +133,10 @@
assert subprocess.call(["cp", "sgx_tgmp.h", TGMP_BUILD_DIR + "/include/sgx_tgmp.h"]) == 0

os.chdir(SSL_DIR)
print "===>>> Downloading vanilla openssl source package"
print("===>>> Downloading vanilla openssl source package")
os.chdir(SSL_SOURCE_DIR)
assert subprocess.call(["wget", "https://www.openssl.org/source/openssl-1.1.1b.tar.gz"]) == 0
print "===>>> Making SSL project"
print("===>>> Making SSL project")
os.chdir(SSL_MAKE_DIR)
#assert subprocess.call(["make", "SGX_SDK=" + SGX_SDK_DIR_SSL, "all", "test"]) == 0
assert subprocess.call(["make", "SGX_SDK=" + SGX_SDK_DIR_SSL, "all" ]) == 0
Expand Down

0 comments on commit 4e9b5b7

Please sign in to comment.