Unverified Commit 97dc071c authored by svetaro's avatar svetaro

Add signing to api

parent d6943929
......@@ -15,7 +15,7 @@ std::vector<std::string> gen_ecdsa_key(){
char *pub_key_y = (char *)calloc(1024, 1);
uint32_t enc_len = 0;
status = generate_ecdsa_key(eid, &err_status, errMsg, (uint8_t*)encr_pr_key, &enc_len, pub_key_x, pub_key_y );
status = generate_ecdsa_key(eid, &err_status, errMsg, encr_pr_key, &enc_len, pub_key_x, pub_key_y );
std::vector<std::string> keys(2);
char *hexEncrKey = (char *) calloc(2 * BUF_LEN, 1);
......@@ -26,7 +26,7 @@ std::vector<std::string> gen_ecdsa_key(){
return keys;
}
std::vector<std::string> ecdsa_sign_hash(const char* encryptedKey, const char* hashHex){
std::vector<std::string> ecdsa_sign_hash(const char* encryptedKeyHex, const char* hashHex){
std::vector<std::string> signature_vect(3);
char *errMsg = (char *)calloc(1024, 1);
......@@ -34,9 +34,12 @@ std::vector<std::string> ecdsa_sign_hash(const char* encryptedKey, const char* h
char* signature_r = (char*)malloc(1024);
char* signature_s = (char*)malloc(1024);
char* signature_v = (char*)calloc(4,1);
uint32_t dec_len = 0;
uint64_t dec_len = 0;
status = ecdsa_sign1(eid, &err_status, errMsg, (uint8_t*)encryptedKey, dec_len, (unsigned char*)hashHex, signature_r, signature_s, signature_v );
uint8_t encr_key[BUF_LEN];
hex2carray(encryptedKeyHex, &dec_len, encr_key);
status = ecdsa_sign1(eid, &err_status, errMsg, encr_key, dec_len, (unsigned char*)hashHex, signature_r, signature_s, signature_v );
signature_vect.at(0) = signature_v;
signature_vect.at(1) = "0x" + std::string(signature_r);
......
......@@ -18,6 +18,6 @@
std::vector<std::string> gen_ecdsa_key();
std::vector<std::string> ecdsa_sign_hash(const char* encryptedKey, const char* hashHex);
std::vector<std::string> ecdsa_sign_hash(const char* encryptedKeyHex, const char* hashHex);
#endif //SGXD_ECDSACRYPTO_H
......@@ -186,8 +186,7 @@ Json::Value ecdsaSignMessageHashImpl(const std::string &_keyName, const std::str
result["signature_r"] = "";
result["signature_s"] = "";
std::vector<std::string> sign_vect;
std::vector<std::string> sign_vect(3);
try {
std::shared_ptr<std::string> key_ptr = readECDSAKey(_keyName);
......@@ -263,7 +262,7 @@ void writeKeyShare(const string &_keyShareName, const string &value, int index,
}
shared_ptr <std::string> readECDSAKey(const string &_keyName) {
auto keyStr = levelDb->readString("ECDSAKEY::" + _keyName);
auto keyStr = levelDb->readString("ECDSAKEY:" + _keyName);
if (keyStr == nullptr) {
throw RPCException(KEY_SHARE_DOES_NOT_EXIST, "Key share with this name does not exists");
......
......@@ -61,7 +61,7 @@
{
"name": "ecdsaSignMessageHash",
"params": {
"keyShareName": "key1",
"keyName": "key1",
"messageHash": "1122334455"
},
"returns": {
......
......@@ -427,15 +427,12 @@ TEST_CASE("API test", "[api_test]") {
cerr << "Client inited" << endl;
try {
cout << c.generateECDSAKey("test_key1") << endl;
//cout << c.generateECDSAKey("test_key") << endl;
cout << c.ecdsaSignMessageHash("test_key","38433e5ce087dcc1be82fcc834eae83c256b3db87d34f84440d0b708daa0c6f7" );
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
/* shared_ptr <std::string> key_ptr = readECDSAKey("test_key");
if (key_ptr == nullptr) cerr<< " key is null" << endl;
else cerr << "key is " << *key_ptr << endl;*/
}
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