Fixes

parent e3b7a60c
...@@ -126,7 +126,7 @@ void checkKey(int *err_status, char *err_string, const char *_keyString) { ...@@ -126,7 +126,7 @@ void checkKey(int *err_status, char *err_string, const char *_keyString) {
bool enclave_sign(const char *_keyString, const char *_hashXString, const char *_hashYString, bool enclave_sign(const char *_keyString, const char *_hashXString, const char *_hashYString,
char sig[BUF_LEN]) { char* sig) {
libff::init_alt_bn128_params(); libff::init_alt_bn128_params();
...@@ -134,6 +134,10 @@ bool enclave_sign(const char *_keyString, const char *_hashXString, const char * ...@@ -134,6 +134,10 @@ bool enclave_sign(const char *_keyString, const char *_hashXString, const char *
auto key = keyFromString(_keyString); auto key = keyFromString(_keyString);
if (key == nullptr) {
throw std::exception();
}
libff::alt_bn128_Fq hashX(_hashXString); libff::alt_bn128_Fq hashX(_hashXString);
libff::alt_bn128_Fq hashY(_hashYString); libff::alt_bn128_Fq hashY(_hashYString);
libff::alt_bn128_Fq hashZ = 1; libff::alt_bn128_Fq hashZ = 1;
...@@ -142,18 +146,26 @@ bool enclave_sign(const char *_keyString, const char *_hashXString, const char * ...@@ -142,18 +146,26 @@ bool enclave_sign(const char *_keyString, const char *_hashXString, const char *
libff::alt_bn128_G1 hash(hashX, hashY, hashZ); libff::alt_bn128_G1 hash(hashX, hashY, hashZ);
libff::alt_bn128_G1 sign = key->as_bigint() * hash; // sign libff::alt_bn128_G1 sign = key->as_bigint() * hash; // sign
sign.to_affine_coordinates(); sign.to_affine_coordinates();
auto r = stringFromG1(&sign); auto r = stringFromG1(&sign);
memset(sig, 0, BUF_LEN); memset(sig, 0, BUF_LEN);
strncpy(sig, r->c_str(), BUF_LEN); strncpy(sig, r->c_str(), BUF_LEN);
delete r; delete r;
return true; return true;
......
...@@ -19,8 +19,7 @@ EXTERNC void check_key(int *err_status, char *err_string, const char* _keyString ...@@ -19,8 +19,7 @@ EXTERNC void check_key(int *err_status, char *err_string, const char* _keyString
EXTERNC bool enclave_sign(const char *_keyString, const char* _hashXString, const char* _hashYString, EXTERNC bool enclave_sign(const char *_keyString, const char* _hashXString, const char* _hashYString, char* _sig);
char* _sig);
......
...@@ -255,7 +255,7 @@ void bls_sign_message(int *err_status, char *err_string, uint8_t *encrypted_key, ...@@ -255,7 +255,7 @@ void bls_sign_message(int *err_status, char *err_string, uint8_t *encrypted_key,
return; return;
} }
// enclave_sign(key, _hashX, _hashY, sig); enclave_sign(key, _hashX, _hashY, sig);
strncpy(signature, sig, BUF_LEN); strncpy(signature, sig, BUF_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