Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sgxwallet
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董子豪
sgxwallet
Commits
ecdc091e
Unverified
Commit
ecdc091e
authored
Sep 03, 2020
by
kladko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SKALW-3213-improve-error-handling
parent
17dca977
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
76 additions
and
77 deletions
+76
-77
BLSCrypto.cpp
BLSCrypto.cpp
+11
-14
DKGCrypto.cpp
DKGCrypto.cpp
+57
-58
DKGCrypto.h
DKGCrypto.h
+3
-3
SGXWalletServer.cpp
SGXWalletServer.cpp
+2
-2
common.h
common.h
+3
-0
No files found.
BLSCrypto.cpp
View file @
ecdc091e
...
@@ -22,34 +22,31 @@
...
@@ -22,34 +22,31 @@
*/
*/
#include <memory>
#include <memory>
#include "libff/algebra/curves/alt_bn128/alt_bn128_init.hpp"
#include "libff/algebra/curves/alt_bn128/alt_bn128_init.hpp"
#include "leveldb/db.h"
#include <jsonrpccpp/server/connectors/httpserver.h>
#include "third_party/intel/create_enclave.h"
#include "bls.h"
#include "bls.h"
#include <bls/BLSutils.h>
#include <bls/BLSutils.h>
#include "leveldb/db.h"
#include <jsonrpccpp/server/connectors/httpserver.h>
#include "BLSPrivateKeyShareSGX.h"
#include "BLSPrivateKeyShareSGX.h"
#include "sgxwallet_common.h"
#include "third_party/intel/create_enclave.h"
#include "secure_enclave_u.h"
#include "third_party/intel/sgx_detect.h"
#include <gmp.h>
#include <sgx_urts.h>
#include "sgxwallet.h"
#include "sgxwallet_common.h"
#include "sgxwallet.h"
#include "SGXException.h"
#include "third_party/spdlog/spdlog.h"
#include "common.h"
#include "SGXWalletServer.h"
#include "SGXWalletServer.h"
#include "BLSCrypto.h"
#include "BLSCrypto.h"
#include "ServerInit.h"
#include "ServerInit.h"
#include "SGXException.h"
#include "third_party/spdlog/spdlog.h"
#include "common.h"
string
*
FqToString
(
libff
::
alt_bn128_Fq
*
_fq
)
{
string
*
FqToString
(
libff
::
alt_bn128_Fq
*
_fq
)
{
mpz_t
t
;
mpz_t
t
;
...
...
DKGCrypto.cpp
View file @
ecdc091e
...
@@ -21,25 +21,33 @@
...
@@ -21,25 +21,33 @@
@date 2019
@date 2019
*/
*/
#include "DKGCrypto.h"
#include "BLSCrypto.h"
#include "sgxwallet.h"
#include <iostream>
#include <iostream>
#include <memory>
#include <memory>
#include "SGXWalletServer.hpp"
#include "SGXException.h"
#include "third_party/spdlog/spdlog.h"
#include "third_party/spdlog/spdlog.h"
#include "sgxwallet.h"
#include "SGXException.h"
#include "common.h"
#include "common.h"
#include "SGXWalletServer.hpp"
#include "DKGCrypto.h"
#include "BLSCrypto.h"
vector
<
string
>
splitString
(
const
char
*
coeffs
,
const
char
symbol
)
{
vector
<
string
>
splitString
(
const
char
*
coeffs
,
const
char
symbol
)
{
string
str
(
coeffs
);
string
str
(
coeffs
);
string
delim
;
string
delim
;
delim
.
push_back
(
symbol
);
delim
.
push_back
(
symbol
);
vector
<
string
>
G2_strings
;
vector
<
string
>
G2_strings
;
size_t
prev
=
0
,
pos
=
0
;
size_t
prev
=
0
,
pos
=
0
;
do
{
do
{
pos
=
str
.
find
(
delim
,
prev
);
pos
=
str
.
find
(
delim
,
prev
);
...
@@ -55,7 +63,8 @@ vector<string> splitString(const char *coeffs, const char symbol) {
...
@@ -55,7 +63,8 @@ vector<string> splitString(const char *coeffs, const char symbol) {
return
G2_strings
;
return
G2_strings
;
}
}
template
<
class
T
>
string
ConvertToString
(
T
field_elem
,
int
base
=
10
)
{
template
<
class
T
>
string
ConvertToString
(
T
field_elem
,
int
base
=
10
)
{
mpz_t
t
;
mpz_t
t
;
mpz_init
(
t
);
mpz_init
(
t
);
...
@@ -71,7 +80,7 @@ template<class T> string ConvertToString(T field_elem, int base = 10) {
...
@@ -71,7 +80,7 @@ template<class T> string ConvertToString(T field_elem, int base = 10) {
return
output
;
return
output
;
}
}
string
convertHexToDec
(
const
string
&
hex_str
)
{
string
convertHexToDec
(
const
string
&
hex_str
)
{
mpz_t
dec
;
mpz_t
dec
;
mpz_init
(
dec
);
mpz_init
(
dec
);
...
@@ -97,7 +106,7 @@ string convertHexToDec(const string& hex_str) {
...
@@ -97,7 +106,7 @@ string convertHexToDec(const string& hex_str) {
return
ret
;
return
ret
;
}
}
string
convertG2ToString
(
const
libff
::
alt_bn128_G2
&
elem
,
int
base
,
const
string
&
delim
)
{
string
convertG2ToString
(
const
libff
::
alt_bn128_G2
&
elem
,
int
base
,
const
string
&
delim
)
{
string
result
=
""
;
string
result
=
""
;
try
{
try
{
...
@@ -126,7 +135,7 @@ string gen_dkg_poly(int _t) {
...
@@ -126,7 +135,7 @@ string gen_dkg_poly(int _t) {
vector
<
char
>
errMsg
(
1024
,
0
);
vector
<
char
>
errMsg
(
1024
,
0
);
int
errStatus
=
0
;
int
errStatus
=
0
;
vector
<
uint8_t
>
encrypted_dkg_secret
(
BUF_LEN
,
0
);
vector
<
uint8_t
>
encrypted_dkg_secret
(
BUF_LEN
,
0
);
uint32_t
enc_len
=
0
;
uint32_t
enc_len
=
0
;
...
@@ -154,7 +163,7 @@ string gen_dkg_poly(int _t) {
...
@@ -154,7 +163,7 @@ string gen_dkg_poly(int _t) {
return
result
;
return
result
;
}
}
vector
<
vector
<
string
>>
get_verif_vect
(
const
char
*
encryptedPolyHex
,
int
t
,
int
n
)
{
vector
<
vector
<
string
>>
get_verif_vect
(
const
char
*
encryptedPolyHex
,
int
t
,
int
n
)
{
vector
<
char
>
errMsg
(
BUF_LEN
,
0
);
vector
<
char
>
errMsg
(
BUF_LEN
,
0
);
int
errStatus
=
0
;
int
errStatus
=
0
;
...
@@ -165,7 +174,7 @@ vector<vector<string>> get_verif_vect(const char *encryptedPolyHex, int t, int n
...
@@ -165,7 +174,7 @@ vector<vector<string>> get_verif_vect(const char *encryptedPolyHex, int t, int n
uint64_t
encLen
=
0
;
uint64_t
encLen
=
0
;
vector
<
uint8_t
>
encrDKGPoly
(
2
*
BUF_LEN
,
0
);
vector
<
uint8_t
>
encrDKGPoly
(
2
*
BUF_LEN
,
0
);
if
(
!
hex2carray2
(
encryptedPolyHex
,
&
encLen
,
encrDKGPoly
.
data
(),
6100
))
{
if
(
!
hex2carray2
(
encryptedPolyHex
,
&
encLen
,
encrDKGPoly
.
data
(),
6100
))
{
throw
SGXException
(
INVALID_HEX
,
"Invalid encryptedPolyHex"
);
throw
SGXException
(
INVALID_HEX
,
"Invalid encryptedPolyHex"
);
...
@@ -191,17 +200,18 @@ vector<vector<string>> get_verif_vect(const char *encryptedPolyHex, int t, int n
...
@@ -191,17 +200,18 @@ vector<vector<string>> get_verif_vect(const char *encryptedPolyHex, int t, int n
spdlog
::
debug
(
"{}"
,
pubShares
.
data
());;
spdlog
::
debug
(
"{}"
,
pubShares
.
data
());;
spdlog
::
debug
(
"trustedGetPublicShares status: {}"
,
errStatus
);
spdlog
::
debug
(
"trustedGetPublicShares status: {}"
,
errStatus
);
vector
<
string
>
g2Strings
=
splitString
(
pubShares
.
data
(),
','
);
vector
<
string
>
g2Strings
=
splitString
(
pubShares
.
data
(),
','
);
vector
<
vector
<
string
>>
pubSharesVect
;
vector
<
vector
<
string
>>
pubSharesVect
;
for
(
uint64_t
i
=
0
;
i
<
g2Strings
.
size
();
i
++
)
{
for
(
uint64_t
i
=
0
;
i
<
g2Strings
.
size
();
i
++
)
{
vector
<
string
>
coeffStr
=
splitString
(
g2Strings
.
at
(
i
).
c_str
(),
':'
);
vector
<
string
>
coeffStr
=
splitString
(
g2Strings
.
at
(
i
).
c_str
(),
':'
);
pubSharesVect
.
push_back
(
coeffStr
);
pubSharesVect
.
push_back
(
coeffStr
);
}
}
return
pubSharesVect
;
return
pubSharesVect
;
}
}
string
trustedGetSecretShares
(
const
string
&
_polyName
,
const
char
*
_encryptedPolyHex
,
const
vector
<
string
>
&
_publicKeys
,
string
trustedGetSecretShares
(
const
string
&
_polyName
,
const
char
*
_encryptedPolyHex
,
const
vector
<
string
>
&
_publicKeys
,
int
_t
,
int
_t
,
int
_n
)
{
int
_n
)
{
vector
<
char
>
hexEncrKey
(
BUF_LEN
,
0
);
vector
<
char
>
hexEncrKey
(
BUF_LEN
,
0
);
...
@@ -209,7 +219,7 @@ string trustedGetSecretShares(const string &_polyName, const char *_encryptedPol
...
@@ -209,7 +219,7 @@ string trustedGetSecretShares(const string &_polyName, const char *_encryptedPol
int
errStatus
=
0
;
int
errStatus
=
0
;
uint64_t
encLen
=
0
;
uint64_t
encLen
=
0
;
vector
<
uint8_t
>
encrDKGPoly
(
BUF_LEN
,
0
);
vector
<
uint8_t
>
encrDKGPoly
(
BUF_LEN
,
0
);
if
(
!
hex2carray2
(
_encryptedPolyHex
,
&
encLen
,
encrDKGPoly
.
data
(),
6100
))
{
if
(
!
hex2carray2
(
_encryptedPolyHex
,
&
encLen
,
encrDKGPoly
.
data
(),
6100
))
{
throw
SGXException
(
INVALID_HEX
,
"Invalid encryptedPolyHex"
);
throw
SGXException
(
INVALID_HEX
,
"Invalid encryptedPolyHex"
);
...
@@ -224,7 +234,7 @@ string trustedGetSecretShares(const string &_polyName, const char *_encryptedPol
...
@@ -224,7 +234,7 @@ string trustedGetSecretShares(const string &_polyName, const char *_encryptedPol
string
result
;
string
result
;
for
(
int
i
=
0
;
i
<
_n
;
i
++
)
{
for
(
int
i
=
0
;
i
<
_n
;
i
++
)
{
vector
<
uint8_t
>
encryptedSkey
(
BUF_LEN
,
0
);
vector
<
uint8_t
>
encryptedSkey
(
BUF_LEN
,
0
);
uint32_t
decLen
;
uint32_t
decLen
;
vector
<
char
>
currentShare
(
193
,
0
);
vector
<
char
>
currentShare
(
193
,
0
);
vector
<
char
>
sShareG2
(
320
,
0
);
vector
<
char
>
sShareG2
(
320
,
0
);
...
@@ -287,24 +297,20 @@ verifyShares(const char *publicShares, const char *encr_sshare, const char *encr
...
@@ -287,24 +297,20 @@ verifyShares(const char *publicShares, const char *encr_sshare, const char *encr
memset
(
pshares
,
0
,
8193
);
memset
(
pshares
,
0
,
8193
);
strncpy
(
pshares
,
publicShares
,
strlen
(
publicShares
));
strncpy
(
pshares
,
publicShares
,
strlen
(
publicShares
));
trustedDkgVerifyAES
(
eid
,
&
errStatus
,
errMsg
,
pshares
,
encr_sshare
,
encr_key
,
decKeyLen
,
t
,
ind
,
&
result
);
sgx_status_t
status
=
trustedDkgVerifyAES
(
eid
,
&
errStatus
,
errMsg
,
pshares
,
encr_sshare
,
encr_key
,
decKeyLen
,
t
,
ind
,
&
result
);
if
(
errStatus
!=
0
)
{
HANDLE_TRUSTED_FUNCTION_ERROR
(
status
,
errStatus
,
errMsg
);
throw
SGXException
(
-
666
,
errMsg
);
}
if
(
result
==
2
)
{
if
(
result
==
2
)
{
throw
SGXException
(
INVALID_HEX
,
"Invalid public shares"
);
throw
SGXException
(
INVALID_HEX
,
"Invalid public shares"
);
}
}
spdlog
::
debug
(
"errMsg1: {}"
,
errMsg
);
spdlog
::
debug
(
"result is: {}"
,
result
);
return
result
;
return
result
;
}
}
bool
C
reateBLSShare
(
const
string
&
blsKeyName
,
const
char
*
s_shares
,
const
char
*
encryptedKeyHex
)
{
bool
c
reateBLSShare
(
const
string
&
blsKeyName
,
const
char
*
s_shares
,
const
char
*
encryptedKeyHex
)
{
spdlog
::
debug
(
"ENTER
C
reateBLSShare"
);
spdlog
::
debug
(
"ENTER
c
reateBLSShare"
);
char
errMsg
[
BUF_LEN
];
char
errMsg
[
BUF_LEN
];
int
errStatus
=
0
;
int
errStatus
=
0
;
...
@@ -320,13 +326,11 @@ bool CreateBLSShare(const string &blsKeyName, const char *s_shares, const char *
...
@@ -320,13 +326,11 @@ bool CreateBLSShare(const string &blsKeyName, const char *s_shares, const char *
uint32_t
enc_bls_len
=
0
;
uint32_t
enc_bls_len
=
0
;
trustedCreateBlsKeyAES
(
eid
,
&
errStatus
,
errMsg
,
s_shares
,
encr_key
,
decKeyLen
,
encr_bls_key
,
&
enc_bls_len
);
sgx_status_t
status
=
trustedCreateBlsKeyAES
(
eid
,
&
errStatus
,
errMsg
,
s_shares
,
encr_key
,
decKeyLen
,
encr_bls_key
,
&
enc_bls_len
);
HANDLE_TRUSTED_FUNCTION_ERROR
(
status
,
errStatus
,
errMsg
);
if
(
errStatus
!=
0
)
{
spdlog
::
error
(
errMsg
);
spdlog
::
error
(
"status {}"
,
errStatus
);
throw
SGXException
(
ERROR_IN_ENCLAVE
,
"Create BLS private key failed in enclave"
);
}
else
{
char
hexBLSKey
[
2
*
BUF_LEN
];
char
hexBLSKey
[
2
*
BUF_LEN
];
carray2Hex
(
encr_bls_key
,
enc_bls_len
,
hexBLSKey
);
carray2Hex
(
encr_bls_key
,
enc_bls_len
,
hexBLSKey
);
...
@@ -334,10 +338,10 @@ bool CreateBLSShare(const string &blsKeyName, const char *s_shares, const char *
...
@@ -334,10 +338,10 @@ bool CreateBLSShare(const string &blsKeyName, const char *s_shares, const char *
SGXWalletServer
::
writeDataToDB
(
blsKeyName
,
hexBLSKey
);
SGXWalletServer
::
writeDataToDB
(
blsKeyName
,
hexBLSKey
);
return
true
;
return
true
;
}
}
}
vector
<
string
>
G
etBLSPubKey
(
const
char
*
encryptedKeyHex
)
{
vector
<
string
>
g
etBLSPubKey
(
const
char
*
encryptedKeyHex
)
{
char
errMsg1
[
BUF_LEN
];
char
errMsg1
[
BUF_LEN
];
int
errStatus
=
0
;
int
errStatus
=
0
;
...
@@ -349,15 +353,10 @@ vector<string> GetBLSPubKey(const char *encryptedKeyHex) {
...
@@ -349,15 +353,10 @@ vector<string> GetBLSPubKey(const char *encryptedKeyHex) {
}
}
char
pubKey
[
320
];
char
pubKey
[
320
];
spdlog
::
debug
(
"decKeyLen is {}"
,
decKeyLen
);
trustedGetBlsPubKeyAES
(
eid
,
&
errStatus
,
errMsg1
,
encrKey
,
decKeyLen
,
pubKey
);
trustedGetBlsPubKeyAES
(
eid
,
&
errStatus
,
errMsg1
,
encrKey
,
decKeyLen
,
pubKey
);
if
(
errStatus
!=
0
)
{
vector
<
string
>
pubKeyVect
=
splitString
(
pubKey
,
':'
);
spdlog
::
error
(
string
(
errMsg1
)
+
" . Status is {}"
,
errStatus
);
throw
SGXException
(
ERROR_IN_ENCLAVE
,
"Failed to get BLS public key in enclave"
);
}
vector
<
string
>
pubKeyVect
=
splitString
(
pubKey
,
':'
);
spdlog
::
debug
(
"errMsg1 is {}"
,
errMsg1
);
spdlog
::
debug
(
"errMsg1 is {}"
,
errMsg1
);
spdlog
::
debug
(
"pub key is "
);
spdlog
::
debug
(
"pub key is "
);
...
@@ -367,15 +366,15 @@ vector<string> GetBLSPubKey(const char *encryptedKeyHex) {
...
@@ -367,15 +366,15 @@ vector<string> GetBLSPubKey(const char *encryptedKeyHex) {
return
pubKeyVect
;
return
pubKeyVect
;
}
}
vector
<
string
>
calculateAllBlsPublicKeys
(
const
vector
<
string
>&
public_shares
)
{
vector
<
string
>
calculateAllBlsPublicKeys
(
const
vector
<
string
>
&
public_shares
)
{
size_t
n
=
public_shares
.
size
();
size_t
n
=
public_shares
.
size
();
size_t
t
=
public_shares
[
0
].
length
()
/
256
;
size_t
t
=
public_shares
[
0
].
length
()
/
256
;
uint64_t
share_length
=
256
;
uint64_t
share_length
=
256
;
uint8_t
coord_length
=
64
;
uint8_t
coord_length
=
64
;
vector
<
libff
::
alt_bn128_G2
>
public_keys
(
n
,
libff
::
alt_bn128_G2
::
zero
());
vector
<
libff
::
alt_bn128_G2
>
public_keys
(
n
,
libff
::
alt_bn128_G2
::
zero
());
vector
<
libff
::
alt_bn128_G2
>
public_values
(
t
,
libff
::
alt_bn128_G2
::
zero
());
vector
<
libff
::
alt_bn128_G2
>
public_values
(
t
,
libff
::
alt_bn128_G2
::
zero
());
for
(
size_t
i
=
0
;
i
<
n
;
++
i
)
{
for
(
size_t
i
=
0
;
i
<
n
;
++
i
)
{
for
(
size_t
j
=
0
;
j
<
t
;
++
j
)
{
for
(
size_t
j
=
0
;
j
<
t
;
++
j
)
{
libff
::
alt_bn128_G2
public_share
;
libff
::
alt_bn128_G2
public_share
;
...
@@ -408,7 +407,7 @@ vector<string> calculateAllBlsPublicKeys(const vector<string>& public_shares) {
...
@@ -408,7 +407,7 @@ vector<string> calculateAllBlsPublicKeys(const vector<string>& public_shares) {
public_keys
[
i
].
to_affine_coordinates
();
public_keys
[
i
].
to_affine_coordinates
();
}
}
vector
<
string
>
result
(
n
);
vector
<
string
>
result
(
n
);
for
(
size_t
i
=
0
;
i
<
n
;
++
i
)
{
for
(
size_t
i
=
0
;
i
<
n
;
++
i
)
{
result
[
i
]
=
convertG2ToString
(
public_keys
[
i
]);
result
[
i
]
=
convertG2ToString
(
public_keys
[
i
]);
}
}
...
@@ -421,7 +420,7 @@ string decryptDHKey(const string &polyName, int ind) {
...
@@ -421,7 +420,7 @@ string decryptDHKey(const string &polyName, int ind) {
int
errStatus
=
0
;
int
errStatus
=
0
;
string
DH_key_name
=
polyName
+
"_"
+
to_string
(
ind
)
+
":"
;
string
DH_key_name
=
polyName
+
"_"
+
to_string
(
ind
)
+
":"
;
shared_ptr
<
string
>
hexEncrKeyPtr
=
SGXWalletServer
::
readFromDb
(
DH_key_name
,
"DKG_DH_KEY_"
);
shared_ptr
<
string
>
hexEncrKeyPtr
=
SGXWalletServer
::
readFromDb
(
DH_key_name
,
"DKG_DH_KEY_"
);
spdlog
::
debug
(
"encr DH key is {}"
,
*
hexEncrKeyPtr
);
spdlog
::
debug
(
"encr DH key is {}"
,
*
hexEncrKeyPtr
);
...
@@ -446,8 +445,8 @@ string decryptDHKey(const string &polyName, int ind) {
...
@@ -446,8 +445,8 @@ string decryptDHKey(const string &polyName, int ind) {
return
DHKey
;
return
DHKey
;
}
}
vector
<
string
>
mult_G2
(
const
string
&
x
)
{
vector
<
string
>
mult_G2
(
const
string
&
x
)
{
vector
<
string
>
result
(
4
);
vector
<
string
>
result
(
4
);
libff
::
alt_bn128_Fr
el
(
x
.
c_str
());
libff
::
alt_bn128_Fr
el
(
x
.
c_str
());
libff
::
alt_bn128_G2
elG2
=
el
*
libff
::
alt_bn128_G2
::
one
();
libff
::
alt_bn128_G2
elG2
=
el
*
libff
::
alt_bn128_G2
::
one
();
elG2
.
to_affine_coordinates
();
elG2
.
to_affine_coordinates
();
...
...
DKGCrypto.h
View file @
ecdc091e
...
@@ -43,9 +43,9 @@ bool verifyShares(const char* publicShares, const char* encr_sshare, const char
...
@@ -43,9 +43,9 @@ bool verifyShares(const char* publicShares, const char* encr_sshare, const char
string
decryptDHKey
(
const
string
&
polyName
,
int
ind
);
string
decryptDHKey
(
const
string
&
polyName
,
int
ind
);
bool
C
reateBLSShare
(
const
string
&
blsKeyName
,
const
char
*
s_shares
,
const
char
*
encryptedKeyHex
);
bool
c
reateBLSShare
(
const
string
&
blsKeyName
,
const
char
*
s_shares
,
const
char
*
encryptedKeyHex
);
vector
<
string
>
G
etBLSPubKey
(
const
char
*
encryptedKeyHex
);
vector
<
string
>
g
etBLSPubKey
(
const
char
*
encryptedKeyHex
);
vector
<
string
>
mult_G2
(
const
string
&
x
);
vector
<
string
>
mult_G2
(
const
string
&
x
);
...
@@ -55,6 +55,6 @@ string convertG2ToString(const libff::alt_bn128_G2& elem, int base = 10, const s
...
@@ -55,6 +55,6 @@ string convertG2ToString(const libff::alt_bn128_G2& elem, int base = 10, const s
vector
<
string
>
calculateAllBlsPublicKeys
(
const
vector
<
string
>&
public_shares
);
vector
<
string
>
calculateAllBlsPublicKeys
(
const
vector
<
string
>&
public_shares
);
bool
Test
C
reateBLSShare
(
const
char
*
s_shares
);
bool
Test
c
reateBLSShare
(
const
char
*
s_shares
);
#endif //SGXD_DKGCRYPTO_H
#endif //SGXD_DKGCRYPTO_H
SGXWalletServer.cpp
View file @
ecdc091e
...
@@ -489,7 +489,7 @@ SGXWalletServer::createBLSPrivateKeyImpl(const string &_blsKeyName, const string
...
@@ -489,7 +489,7 @@ SGXWalletServer::createBLSPrivateKeyImpl(const string &_blsKeyName, const string
shared_ptr
<
string
>
encryptedKeyHex_ptr
=
readFromDb
(
_ethKeyName
);
shared_ptr
<
string
>
encryptedKeyHex_ptr
=
readFromDb
(
_ethKeyName
);
bool
res
=
C
reateBLSShare
(
_blsKeyName
,
_secretShare
.
c_str
(),
encryptedKeyHex_ptr
->
c_str
());
bool
res
=
c
reateBLSShare
(
_blsKeyName
,
_secretShare
.
c_str
(),
encryptedKeyHex_ptr
->
c_str
());
if
(
res
)
{
if
(
res
)
{
spdlog
::
info
(
"BLS KEY SHARE CREATED "
);
spdlog
::
info
(
"BLS KEY SHARE CREATED "
);
}
else
{
}
else
{
...
@@ -519,7 +519,7 @@ Json::Value SGXWalletServer::getBLSPublicKeyShareImpl(const string &_blsKeyName)
...
@@ -519,7 +519,7 @@ Json::Value SGXWalletServer::getBLSPublicKeyShareImpl(const string &_blsKeyName)
}
}
shared_ptr
<
string
>
encryptedKeyHex_ptr
=
readFromDb
(
_blsKeyName
);
shared_ptr
<
string
>
encryptedKeyHex_ptr
=
readFromDb
(
_blsKeyName
);
vector
<
string
>
public_key_vect
=
G
etBLSPubKey
(
encryptedKeyHex_ptr
->
c_str
());
vector
<
string
>
public_key_vect
=
g
etBLSPubKey
(
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
);
}
}
...
...
common.h
View file @
ecdc091e
...
@@ -32,6 +32,8 @@ using namespace std;
...
@@ -32,6 +32,8 @@ using namespace std;
#include <map>
#include <map>
#include <memory>
#include <memory>
#include <boost/throw_exception.hpp>
#include <gmp.h>
#include <gmp.h>
#include "secure_enclave/Verify.h"
#include "secure_enclave/Verify.h"
#include "InvalidStateException.h"
#include "InvalidStateException.h"
...
@@ -74,4 +76,5 @@ BOOST_THROW_EXCEPTION(runtime_error(__ERR_STRING__)); \
...
@@ -74,4 +76,5 @@ BOOST_THROW_EXCEPTION(runtime_error(__ERR_STRING__)); \
}
}
#endif //SGXWALLET_COMMON_H
#endif //SGXWALLET_COMMON_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment