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
c2e1e4f1
Unverified
Commit
c2e1e4f1
authored
3 years ago
by
Oleh Nikolaiev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SKALE-3951 add req methods
parent
003b4fca
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
379 additions
and
2 deletions
+379
-2
Makefile.am
Makefile.am
+1
-1
ReqMessage.cpp
zmq_src/ReqMessage.cpp
+186
-0
ReqMessage.h
zmq_src/ReqMessage.h
+181
-0
ZMQMessage.cpp
zmq_src/ZMQMessage.cpp
+11
-1
No files found.
Makefile.am
View file @
c2e1e4f1
...
...
@@ -71,7 +71,7 @@ bin_PROGRAMS = sgxwallet testw sgx_util
COMMON_SRC
=
SGXException.cpp ExitHandler.cpp zmq_src/ZMQClient.cpp zmq_src/BLSSignRspMessage.cpp
\
zmq_src/ECDSASignRspMessage.cpp zmq_src/
ECDSASignReqMessage.cpp zmq_src/BLSSign
ReqMessage.cpp
\
zmq_src/ECDSASignRspMessage.cpp zmq_src/ReqMessage.cpp
\
zmq_src/ZMQMessage.cpp zmq_src/ZMQServer.cpp zmq_src/ServerWorker.cpp
\
InvalidStateException.cpp Exception.cpp InvalidArgumentException.cpp Log.cpp
\
SGXWalletServer.cpp SGXRegistrationServer.cpp CSRManagerServer.cpp BLSCrypto.cpp
\
...
...
This diff is collapsed.
Click to expand it.
zmq_src/ReqMessage.cpp
0 → 100644
View file @
c2e1e4f1
/*
Copyright (C) 2018- SKALE Labs
This file is part of sgxwallet.
sgxwallet is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
sgxwallet is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with sgxwallet. If not, see <https://www.gnu.org/licenses/>.
@file ReqMessage.cpp
@author Oleh Nikolaiev
@date 2021
*/
#include "SGXWalletServer.hpp"
#include "ReqMessage.h"
Json
::
Value
ECDSASignReqMessage
::
process
()
{
auto
base
=
getUint64Rapid
(
"base"
);
auto
keyName
=
getStringRapid
(
"keyName"
);
auto
hash
=
getStringRapid
(
"messageHash"
);
auto
result
=
SGXWalletServer
::
ecdsaSignMessageHashImpl
(
base
,
keyName
,
hash
);
result
[
"type"
]
=
ZMQMessage
::
ECDSA_SIGN_RSP
;
return
result
;
}
Json
::
Value
BLSSignReqMessage
::
process
()
{
auto
keyName
=
getStringRapid
(
"keyShareName"
);
auto
hash
=
getStringRapid
(
"messageHash"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
result
=
SGXWalletServer
::
blsSignMessageHashImpl
(
keyName
,
hash
,
t
,
n
);
result
[
"type"
]
=
ZMQMessage
::
BLS_SIGN_RSP
;
return
result
;
}
Json
::
Value
importBLSReqMessage
::
process
()
{
auto
keyName
=
getStringRapid
(
"keyShareName"
);
auto
keyShare
=
getStringRapid
(
"keyShare"
);
auto
result
=
SGXWalletServer
::
importBLSKeyShareImpl
(
keyShare
,
keyName
);
result
[
"type"
]
=
ZMQMessage
::
IMPORT_BLS_RSP
;
return
result
;
}
Json
::
Value
importECDSAReqMessage
::
process
()
{
auto
keyName
=
getStringRapid
(
"keyName"
);
auto
key
=
getStringRapid
(
"key"
);
auto
result
=
SGXWalletServer
::
importECDSAKeyImpl
(
key
,
keyName
);
result
[
"type"
]
=
ZMQMessage
::
IMPORT_ECDSA_RSP
;
return
result
;
}
Json
::
Value
generateECDSAReqMessage
::
process
()
{
auto
result
=
SGXWalletServer
::
generateECDSAKeyImpl
();
result
[
"type"
]
=
ZMQMessage
::
GENERATE_ECDSA_RSP
;
return
result
;
}
Json
::
Value
getPublicECDSAReqMessage
::
process
()
{
auto
keyName
=
getStringRapid
(
"keyName"
);
auto
result
=
SGXWalletServer
::
getPublicECDSAKeyImpl
(
keyName
);
result
[
"type"
]
=
ZMQMessage
::
GET_PUBLIC_ECDSA_RSP
;
return
result
;
}
Json
::
Value
generateDKGPolyReqMessage
::
process
()
{
auto
polyName
=
getStringRapid
(
"polyName"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
result
=
SGXWalletServer
::
generateDKGPolyImpl
(
polyName
,
t
);
result
[
"type"
]
=
ZMQMessage
::
GENERATE_DKG_POLY_RSP
;
return
result
;
}
Json
::
Value
getVerificationVectorReqMessage
::
process
()
{
auto
polyName
=
getStringRapid
(
"polyName"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
result
=
SGXWalletServer
::
getVerificationVectorImpl
(
polyName
,
t
,
n
);
result
[
"type"
]
=
ZMQMessage
::
GET_VV_RSP
;
return
result
;
}
Json
::
Value
getSecretShareReqMessage
::
process
()
{
auto
polyName
=
getStringRapid
(
"polyName"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
pubKeys
=
getJsonArray
(
"publicKeys"
);
auto
result
=
SGXWalletServer
::
getSecretShareImpl
(
polyName
,
pubKeys
,
t
,
n
);
result
[
"type"
]
=
ZMQMessage
::
GET_SECRET_SHARE_RSP
;
return
result
;
}
Json
::
Value
dkgVerificationReqMessage
::
process
()
{
auto
ethKeyName
=
getStringRapid
(
"ethKeyName"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
idx
=
getUint64Rapid
(
"index"
);
auto
pubShares
=
getStringRapid
(
"publicShares"
);
auto
secretShare
=
getStringRapid
(
"secretShare"
);
auto
result
=
SGXWalletServer
::
dkgVerificationImpl
(
pubShares
,
ethKeyName
,
secretShare
,
t
,
n
,
idx
);
result
[
"type"
]
=
ZMQMessage
::
DKG_VERIFY_RSP
;
return
result
;
}
Json
::
Value
createBLSPrivateKeyReqMessage
::
process
()
{
auto
blsKeyName
=
getStringRapid
(
"blsKeyName"
);
auto
ethKeyName
=
getStringRapid
(
"ethKeyName"
);
auto
polyName
=
getStringRapid
(
"polyName"
);
auto
secretShare
=
getStringRapid
(
"secretShare"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
result
=
SGXWalletServer
::
createBLSPrivateKeyImpl
(
blsKeyName
,
ethKeyName
,
polyName
,
secretShare
,
t
,
n
);
result
[
"type"
]
=
ZMQMessage
::
CREATE_BLS_PRIVATE_RSP
;
return
result
;
}
Json
::
Value
getBLSPublicReqMessage
::
process
()
{
auto
blsKeyName
=
getStringRapid
(
"blsKeyName"
);
auto
result
=
SGXWalletServer
::
getBLSPublicKeyShareImpl
(
blsKeyName
);
result
[
"type"
]
=
ZMQMessage
::
GET_BLS_PUBLIC_RSP
;
return
result
;
}
Json
::
Value
getAllBLSPublicKeysReqMessage
::
process
()
{
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
pubShares
=
getJsonArray
(
"publicShares"
);
auto
result
=
SGXWalletServer
::
calculateAllBLSPublicKeysImpl
(
pubShares
,
t
,
n
);
result
[
"type"
]
=
ZMQMessage
::
GET_ALL_BLS_PUBLIC_RSP
;
return
result
;
}
Json
::
Value
complaintResponseReqMessage
::
process
()
{
auto
polyName
=
getStringRapid
(
"polyName"
);
auto
t
=
getUint64Rapid
(
"t"
);
auto
n
=
getUint64Rapid
(
"n"
);
auto
idx
=
getUint64Rapid
(
"ind"
);
auto
result
=
SGXWalletServer
::
complaintResponseImpl
(
polyName
,
t
,
n
,
idx
);
result
[
"type"
]
=
ZMQMessage
::
COMPLAINT_RESPONSE_RSP
;
return
result
;
}
Json
::
Value
multG2ReqMessage
::
process
()
{
auto
x
=
getStringRapid
(
"x"
);
auto
result
=
SGXWalletServer
::
multG2Impl
(
x
);
result
[
"type"
]
=
ZMQMessage
::
MULT_G2_RSP
;
return
result
;
}
Json
::
Value
isPolyExistsReqMessage
::
process
()
{
auto
polyName
=
getStringRapid
(
"polyName"
);
auto
result
=
SGXWalletServer
::
isPolyExistsImpl
(
polyName
);
result
[
"type"
]
=
ZMQMessage
::
IS_POLY_EXISTS_RSP
;
return
result
;
}
Json
::
Value
getServerStatusReqMessage
::
process
()
{
auto
result
=
SGXWalletServer
::
getServerStatusImpl
();
result
[
"type"
]
=
ZMQMessage
::
GET_SERVER_STATUS_RSP
;
return
result
;
}
Json
::
Value
getServerVersionReqMessage
::
process
()
{
auto
result
=
SGXWalletServer
::
getServerVersionImpl
();
result
[
"type"
]
=
ZMQMessage
::
GET_SERVER_VERSION_RSP
;
return
result
;
}
Json
::
Value
deleteBLSKeyReqMessage
::
process
()
{
auto
blsKeyName
=
getStringRapid
(
"blsKeyName"
);
auto
result
=
SGXWalletServer
::
deleteBlsKeyImpl
(
blsKeyName
);
result
[
"type"
]
=
ZMQMessage
::
DELETE_BLS_KEY_RSP
;
return
result
;
}
This diff is collapsed.
Click to expand it.
zmq_src/ReqMessage.h
0 → 100644
View file @
c2e1e4f1
/*
Copyright (C) 2018- SKALE Labs
This file is part of sgxwallet.
sgxwallet is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
sgxwallet is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with sgxwallet. If not, see <https://www.gnu.org/licenses/>.
@file ReqMessage.h
@author Oleh Nikolaiev
@date 2021
*/
#ifndef SGXWALLET_REQMESSAGE_H
#define SGXWALLET_REQMESSAGE_H
#include "ZMQMessage.h"
class
ECDSASignReqMessage
:
public
ZMQMessage
{
public
:
ECDSASignReqMessage
(
shared_ptr
<
rapidjson
::
Document
>
&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
BLSSignReqMessage
:
public
ZMQMessage
{
public
:
BLSSignReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
importBLSReqMessage
:
public
ZMQMessage
{
public
:
importBLSReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
importECDSAReqMessage
:
public
ZMQMessage
{
public
:
importECDSAReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
generateECDSAReqMessage
:
public
ZMQMessage
{
public
:
generateECDSAReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getPublicECDSAReqMessage
:
public
ZMQMessage
{
public
:
getPublicECDSAReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
generateDKGPolyReqMessage
:
public
ZMQMessage
{
public
:
generateDKGPolyReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getVerificationVectorReqMessage
:
public
ZMQMessage
{
public
:
getVerificationVectorReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getSecretShareReqMessage
:
public
ZMQMessage
{
public
:
getSecretShareReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
dkgVerificationReqMessage
:
public
ZMQMessage
{
public
:
dkgVerificationReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
createBLSPrivateKeyReqMessage
:
public
ZMQMessage
{
public
:
createBLSPrivateKeyReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getBLSPublicReqMessage
:
public
ZMQMessage
{
public
:
getBLSPublicReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getAllBLSPublicKeysReqMessage
:
public
ZMQMessage
{
public
:
getAllBLSPublicKeysReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
complaintResponseReqMessage
:
public
ZMQMessage
{
public
:
complaintResponseReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
multG2ReqMessage
:
public
ZMQMessage
{
public
:
multG2ReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
isPolyExistsReqMessage
:
public
ZMQMessage
{
public
:
isPolyExistsReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getServerStatusReqMessage
:
public
ZMQMessage
{
public
:
getServerStatusReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
getServerVersionReqMessage
:
public
ZMQMessage
{
public
:
getServerVersionReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
class
deleteBLSKeyReqMessage
:
public
ZMQMessage
{
public
:
deleteBLSKeyReqMessage
(
shared_ptr
<
rapidjson
::
Document
>&
_d
)
:
ZMQMessage
(
_d
)
{};
virtual
Json
::
Value
process
();
};
#endif //SGXWALLET_REQMESSAGE_H
This diff is collapsed.
Click to expand it.
zmq_src/ZMQMessage.cpp
View file @
c2e1e4f1
...
...
@@ -48,7 +48,17 @@ Json::Value ZMQMessage::getJsonArray(const char *_name) {
CHECK_STATE
(
d
->
HasMember
(
_name
));
const
rapidjson
::
Value
&
a
=
(
*
d
)[
_name
];
CHECK_STATE
(
a
.
IsArray
());
return
a
.
GetUint64
();
rapidjson
::
StringBuffer
buffer
;
rapidjson
::
Writer
<
rapidjson
::
StringBuffer
>
writer
(
buffer
);
a
.
Accept
(
writer
);
std
::
string
strRequest
=
buffer
.
GetString
();
Json
::
Reader
reader
;
Json
::
Value
root
;
reader
.
parse
(
strRequest
,
root
,
false
);
return
root
;
}
string
ZMQMessage
::
getStringRapid
(
const
char
*
_name
)
{
...
...
This diff is collapsed.
Click to expand it.
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