Unverified Commit 2e6e8f91 authored by Oleh Nikolaiev's avatar Oleh Nikolaiev Committed by GitHub

Merge pull request #83 from skalenetwork/bug/SKALE-2545-invalid-secret-share-length

Bug/skale 2545 invalid secret share length
parents d6fc4674 356c669e
...@@ -151,8 +151,6 @@ bool hex2carray2(const char *_hex, uint64_t *_bin_len, ...@@ -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, bool sign(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t _n, size_t _signerIndex,
char *_sig) { char *_sig) {
//cerr << "ENTER SIGN" << endl;
auto keyStr = make_shared<string>(_encryptedKeyHex); auto keyStr = make_shared<string>(_encryptedKeyHex);
auto hash = make_shared<array<uint8_t, 32>>(); auto hash = make_shared<array<uint8_t, 32>>();
...@@ -168,10 +166,7 @@ bool sign(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t ...@@ -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); auto keyShare = make_shared<BLSPrivateKeyShareSGX>(keyStr, _t, _n);
//cerr << "keyShare created" << endl;
// {
auto sigShare = keyShare->signWithHelperSGX(hash, _signerIndex); auto sigShare = keyShare->signWithHelperSGX(hash, _signerIndex);
// }
auto sigShareStr = sigShare->toString(); auto sigShareStr = sigShare->toString();
...@@ -184,16 +179,12 @@ bool sign(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t ...@@ -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); // auto sig_ptr = make_shared<string>(test_sig);
// strncpy(_sig, sig_ptr->c_str(), BUF_LEN); // strncpy(_sig, sig_ptr->c_str(), BUF_LEN);
//cerr<< "sig " << _sig <<endl;
return true; return true;
} }
bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t _n, size_t _signerIndex, bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, size_t _n, size_t _signerIndex,
char *_sig) { char *_sig) {
//cerr << "ENTER SIGN" << endl;
auto keyStr = make_shared<string>(_encryptedKeyHex); auto keyStr = make_shared<string>(_encryptedKeyHex);
auto hash = make_shared<array<uint8_t, 32>>(); auto hash = make_shared<array<uint8_t, 32>>();
...@@ -208,10 +199,7 @@ bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, siz ...@@ -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); // auto keyShare = make_shared<BLSPrivateKeyShareSGX>(keyStr, _t, _n);
// //
// //cerr << "keyShare created" << endl;
// // {
// auto sigShare = keyShare->signWithHelperSGX(hash, _signerIndex); // auto sigShare = keyShare->signWithHelperSGX(hash, _signerIndex);
// // }
// //
// auto sigShareStr = sigShare->toString(); // auto sigShareStr = sigShare->toString();
// //
...@@ -296,8 +284,6 @@ bool sign_aes(const char *_encryptedKeyHex, const char *_hashHex, size_t _t, siz ...@@ -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); // auto sig_ptr = make_shared<string>(test_sig);
// strncpy(_sig, sig_ptr->c_str(), BUF_LEN); // strncpy(_sig, sig_ptr->c_str(), BUF_LEN);
//cerr<< "sig " << _sig <<endl;
return true; return true;
} }
...@@ -320,7 +306,6 @@ char *encryptBLSKeyShare2Hex(int *errStatus, char *err_string, const char *_key) ...@@ -320,7 +306,6 @@ char *encryptBLSKeyShare2Hex(int *errStatus, char *err_string, const char *_key)
unsigned int encryptedLen = 0; unsigned int encryptedLen = 0;
//status = trustedEncryptKey(eid, errStatus, errMsg, keyArray, encryptedKey, &encryptedLen);
status = trustedEncryptKeyAES(eid, errStatus, errMsg->data(), keyArray->data(), encryptedKey->data(), &encryptedLen); status = trustedEncryptKeyAES(eid, errStatus, errMsg->data(), keyArray->data(), encryptedKey->data(), &encryptedLen);
spdlog::debug("errStatus is {}", *errStatus); spdlog::debug("errStatus is {}", *errStatus);
...@@ -373,4 +358,4 @@ char *decryptBLSKeyShareFromHex(int *errStatus, char *errMsg, const char *_encry ...@@ -373,4 +358,4 @@ char *decryptBLSKeyShareFromHex(int *errStatus, char *errMsg, const char *_encry
return plaintextKey; return plaintextKey;
} }
\ No newline at end of file
...@@ -43,7 +43,6 @@ ...@@ -43,7 +43,6 @@
#include "Log.h" #include "Log.h"
void setFullOptions(int _printDebugInfo, void setFullOptions(int _printDebugInfo,
int _printTraceInfo, int _useHTTPS, int _autoconfirm, int _encryptKeys) { int _printTraceInfo, int _useHTTPS, int _autoconfirm, int _encryptKeys) {
if (_printDebugInfo) if (_printDebugInfo)
...@@ -447,13 +446,11 @@ Json::Value SGXWalletServer::getVerificationVectorImpl(const string &_polyName, ...@@ -447,13 +446,11 @@ Json::Value SGXWalletServer::getVerificationVectorImpl(const string &_polyName,
shared_ptr <string> encr_poly_ptr = readFromDb(_polyName); shared_ptr <string> encr_poly_ptr = readFromDb(_polyName);
verifVector = get_verif_vect(encr_poly_ptr->c_str(), _t, _n); 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++) { for (int i = 0; i < _t; i++) {
vector <string> cur_coef = verifVector.at(i); vector <string> cur_coef = verifVector.at(i);
for (int j = 0; j < 4; j++) { for (int j = 0; j < 4; j++) {
result["verificationVector"][i][j] = cur_coef.at(j); result["verificationVector"][i][j] = cur_coef.at(j);
result["Verification Vector"][i][j] = cur_coef.at(j);
} }
} }
...@@ -462,7 +459,6 @@ Json::Value SGXWalletServer::getVerificationVectorImpl(const string &_polyName, ...@@ -462,7 +459,6 @@ Json::Value SGXWalletServer::getVerificationVectorImpl(const string &_polyName,
result["status"] = _e.status; result["status"] = _e.status;
result["errorMessage"] = _e.errString; result["errorMessage"] = _e.errString;
result["verificationVector"] = ""; result["verificationVector"] = "";
result["Verification Vector"] = "";
} }
return result; return result;
...@@ -499,7 +495,6 @@ Json::Value SGXWalletServer::getSecretShareImpl(const string &_polyName, const J ...@@ -499,7 +495,6 @@ Json::Value SGXWalletServer::getSecretShareImpl(const string &_polyName, const J
result["secretShare"] = s; result["secretShare"] = s;
} catch (SGXException &_e) { } catch (SGXException &_e) {
//cerr << " err str " << _e.errString << endl;
result["status"] = _e.status; result["status"] = _e.status;
result["errorMessage"] = _e.errString; result["errorMessage"] = _e.errString;
result["secretShare"] = ""; result["secretShare"] = "";
...@@ -616,7 +611,6 @@ Json::Value SGXWalletServer::getBLSPublicKeyShareImpl(const string &_blsKeyName) ...@@ -616,7 +611,6 @@ Json::Value SGXWalletServer::getBLSPublicKeyShareImpl(const string &_blsKeyName)
vector <string> public_key_vect = GetBLSPubKey(encryptedKeyHex_ptr->c_str()); vector <string> public_key_vect = GetBLSPubKey(encryptedKeyHex_ptr->c_str());
for (uint8_t i = 0; i < 4; i++) { for (uint8_t i = 0; i < 4; i++) {
result["blsPublicKeyShare"][i] = public_key_vect.at(i); result["blsPublicKeyShare"][i] = public_key_vect.at(i);
result["BlsPublicKeyShare"][i] = public_key_vect.at(i);
} }
} HANDLE_SGX_EXCEPTION(result) } HANDLE_SGX_EXCEPTION(result)
...@@ -639,7 +633,6 @@ Json::Value SGXWalletServer::complaintResponseImpl(const string &_polyName, int ...@@ -639,7 +633,6 @@ Json::Value SGXWalletServer::complaintResponseImpl(const string &_polyName, int
result["share*G2"] = *shareG2_ptr; result["share*G2"] = *shareG2_ptr;
result["dhKey"] = DHKey; result["dhKey"] = DHKey;
result["DHKey"] = DHKey;
} HANDLE_SGX_EXCEPTION(result) } HANDLE_SGX_EXCEPTION(result)
...@@ -666,14 +659,12 @@ Json::Value SGXWalletServer::isPolyExistsImpl(const string &_polyName) { ...@@ -666,14 +659,12 @@ Json::Value SGXWalletServer::isPolyExistsImpl(const string &_polyName) {
INIT_RESULT(result) INIT_RESULT(result)
result["IsExist"] = false; result["IsExist"] = false;
result["exists"] = false;
try { try {
std::shared_ptr <std::string> poly_str_ptr = LevelDB::getLevelDb()->readString(_polyName); std::shared_ptr <std::string> poly_str_ptr = LevelDB::getLevelDb()->readString(_polyName);
if (poly_str_ptr != nullptr) { if (poly_str_ptr != nullptr) {
result["IsExist"] = true; result["IsExist"] = true;
result["exists"] = true;
} }
} HANDLE_SGX_EXCEPTION(result) } HANDLE_SGX_EXCEPTION(result)
......
...@@ -133,10 +133,10 @@ os.chdir(topDir) ...@@ -133,10 +133,10 @@ os.chdir(topDir)
assert subprocess.call(["cp", "sgx_tgmp.h", TGMP_BUILD_DIR + "/include/sgx_tgmp.h"]) == 0 assert subprocess.call(["cp", "sgx_tgmp.h", TGMP_BUILD_DIR + "/include/sgx_tgmp.h"]) == 0
os.chdir(SSL_DIR) os.chdir(SSL_DIR)
print "===>>> Downloading vanilla openssl source package" print("===>>> Downloading vanilla openssl source package")
os.chdir(SSL_SOURCE_DIR) os.chdir(SSL_SOURCE_DIR)
assert subprocess.call(["wget", "https://www.openssl.org/source/openssl-1.1.1b.tar.gz"]) == 0 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) 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", "test"]) == 0
assert subprocess.call(["make", "SGX_SDK=" + SGX_SDK_DIR_SSL, "all" ]) == 0 assert subprocess.call(["make", "SGX_SDK=" + SGX_SDK_DIR_SSL, "all" ]) == 0
......
...@@ -31,7 +31,7 @@ import sys, os, subprocess, socket, time ...@@ -31,7 +31,7 @@ import sys, os, subprocess, socket, time
os.chdir("..") os.chdir("..")
topDir = os.getcwd() + "/sgxwallet" topDir = os.getcwd() + "/sgxwallet"
print("Starting containerb test") print("Starting container test")
print("Top directory is:" + topDir) print("Top directory is:" + topDir)
SCRIPTS_DIR = topDir + "/scripts" SCRIPTS_DIR = topDir + "/scripts"
......
...@@ -174,7 +174,7 @@ int calc_secret_share(const char* decrypted_coeffs, char * s_share, ...@@ -174,7 +174,7 @@ int calc_secret_share(const char* decrypted_coeffs, char * s_share,
} }
libff::alt_bn128_Fr secret_share = PolynomialValue(poly, libff::alt_bn128_Fr(ind), _t); libff::alt_bn128_Fr secret_share = PolynomialValue(poly, libff::alt_bn128_Fr(ind), _t);
string cur_share = ConvertToString(secret_share, 16);//stringFromFr(secret_share); string cur_share = ConvertToString(secret_share, 16);
int n_zeroes = 64 - cur_share.size(); int n_zeroes = 64 - cur_share.size();
cur_share.insert(0, n_zeroes, '0'); cur_share.insert(0, n_zeroes, '0');
......
...@@ -645,8 +645,6 @@ void trustedGetEncryptedSecretShare(int *errStatus, char *err_string, uint8_t *e ...@@ -645,8 +645,6 @@ void trustedGetEncryptedSecretShare(int *errStatus, char *err_string, uint8_t *e
memset(pub_key_x, 0, BUF_LEN); memset(pub_key_x, 0, BUF_LEN);
char pub_key_y[BUF_LEN]; char pub_key_y[BUF_LEN];
memset(pub_key_y, 0, BUF_LEN); memset(pub_key_y, 0, BUF_LEN);
//char *pub_key_x = (char *)calloc(1024, 1);
// char *pub_key_y = (char *)calloc(1024, 1);
uint32_t enc_len; uint32_t enc_len;
......
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