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
24b2d824
Unverified
Commit
24b2d824
authored
Jan 21, 2020
by
svetaro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Separate scripts and data
parent
27185d43
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
71 additions
and
28 deletions
+71
-28
Dockerfile
Dockerfile
+1
-1
SGXRegistrationServer.cpp
SGXRegistrationServer.cpp
+4
-4
SGXWalletServer.cpp
SGXWalletServer.cpp
+6
-6
ServerInit.cpp
ServerInit.cpp
+13
-6
042b18a31b77c13d9aa2972aded1935e98920dfc854b86abae1e986bf13574ef.csr
...7c13d9aa2972aded1935e98920dfc854b86abae1e986bf13574ef.csr
+17
-0
ca.config
cert/ca.config
+5
-5
create_CA
cert/create_CA
+9
-4
create_client_cert
cert/create_client_cert
+0
-0
create_server_cert
cert/create_server_cert
+14
-0
sgxwallet_common.h
sgxwallet_common.h
+2
-2
No files found.
Dockerfile
View file @
24b2d824
...
@@ -15,7 +15,7 @@ COPY *.ac ./
...
@@ -15,7 +15,7 @@ COPY *.ac ./
COPY
*.json ./
COPY
*.json ./
COPY
docker ./docker
COPY
docker ./docker
COPY
build-aux ./build-aux
COPY
build-aux ./build-aux
COPY
cert ./cert
COPY
cert ./cert
COPY
intel-sgx-ssl ./intel-sgx-ssl
COPY
intel-sgx-ssl ./intel-sgx-ssl
COPY
jsonrpc ./jsonrpc
COPY
jsonrpc ./jsonrpc
COPY
leveldb ./leveldb
COPY
leveldb ./leveldb
...
...
SGXRegistrationServer.cpp
View file @
24b2d824
...
@@ -78,7 +78,7 @@ Json::Value SignCertificateImpl(const std::string& csr, bool auto_sign = false){
...
@@ -78,7 +78,7 @@ Json::Value SignCertificateImpl(const std::string& csr, bool auto_sign = false){
}
}
if
(
auto_sign
)
{
if
(
auto_sign
)
{
std
::
string
csr_name
=
"
sgx_data/
cert/"
+
hash
+
".csr"
;
std
::
string
csr_name
=
"cert/"
+
hash
+
".csr"
;
std
::
ofstream
outfile
(
csr_name
);
std
::
ofstream
outfile
(
csr_name
);
outfile
<<
csr
<<
std
::
endl
;
outfile
<<
csr
<<
std
::
endl
;
outfile
.
close
();
outfile
.
close
();
...
@@ -86,7 +86,7 @@ Json::Value SignCertificateImpl(const std::string& csr, bool auto_sign = false){
...
@@ -86,7 +86,7 @@ Json::Value SignCertificateImpl(const std::string& csr, bool auto_sign = false){
throw
RPCException
(
FILE_NOT_FOUND
,
"Csr does not exist"
);
throw
RPCException
(
FILE_NOT_FOUND
,
"Csr does not exist"
);
}
}
std
::
string
genCert
=
"cd
sgx_data/
cert && ./create_client_cert "
+
hash
;
std
::
string
genCert
=
"cd cert && ./create_client_cert "
+
hash
;
if
(
system
(
genCert
.
c_str
())
==
0
){
if
(
system
(
genCert
.
c_str
())
==
0
){
spdlog
::
info
(
"CLIENT CERTIFICATE IS SUCCESSFULLY GENERATED"
);
spdlog
::
info
(
"CLIENT CERTIFICATE IS SUCCESSFULLY GENERATED"
);
...
@@ -130,7 +130,7 @@ Json::Value GetSertificateImpl(const std::string& hash){
...
@@ -130,7 +130,7 @@ Json::Value GetSertificateImpl(const std::string& hash){
int
status
=
std
::
atoi
(
status_str_ptr
->
c_str
());
int
status
=
std
::
atoi
(
status_str_ptr
->
c_str
());
if
(
status
==
0
){
if
(
status
==
0
){
std
::
string
crt_name
=
"
sgx_data/
cert/"
+
hash
+
".crt"
;
std
::
string
crt_name
=
"cert/"
+
hash
+
".crt"
;
//if (access(crt_name.c_str(), F_OK) == 0){
//if (access(crt_name.c_str(), F_OK) == 0){
std
::
ifstream
infile
(
crt_name
);
std
::
ifstream
infile
(
crt_name
);
if
(
!
infile
.
is_open
())
{
if
(
!
infile
.
is_open
())
{
...
@@ -144,7 +144,7 @@ Json::Value GetSertificateImpl(const std::string& hash){
...
@@ -144,7 +144,7 @@ Json::Value GetSertificateImpl(const std::string& hash){
cert
=
ss
.
str
();
cert
=
ss
.
str
();
infile
.
close
();
infile
.
close
();
std
::
string
remove_crt
=
"cd
sgx_data/
cert && rm -rf "
+
hash
+
".crt && rm -rf "
+
hash
+
".csr"
;
std
::
string
remove_crt
=
"cd cert && rm -rf "
+
hash
+
".crt && rm -rf "
+
hash
+
".csr"
;
if
(
system
(
remove_crt
.
c_str
())
==
0
){
if
(
system
(
remove_crt
.
c_str
())
==
0
){
//std::cerr << "cert removed" << std::endl;
//std::cerr << "cert removed" << std::endl;
spdlog
::
info
(
" cert removed "
);
spdlog
::
info
(
" cert removed "
);
...
...
SGXWalletServer.cpp
View file @
24b2d824
...
@@ -82,14 +82,14 @@ void debug_print(){
...
@@ -82,14 +82,14 @@ void debug_print(){
int
init_https_server
(
bool
check_certs
)
{
int
init_https_server
(
bool
check_certs
)
{
std
::
string
rootCAPath
=
"sgx_data/cert
/rootCA.pem"
;
std
::
string
rootCAPath
=
std
::
string
(
SGXDATA_FOLDER
)
+
"cert_data
/rootCA.pem"
;
std
::
string
keyCAPath
=
"sgx_data/cert
/rootCA.key"
;
std
::
string
keyCAPath
=
std
::
string
(
SGXDATA_FOLDER
)
+
"cert_data
/rootCA.key"
;
if
(
access
(
rootCAPath
.
c_str
(),
F_OK
)
!=
0
||
access
(
keyCAPath
.
c_str
(),
F_OK
)
!=
0
){
if
(
access
(
rootCAPath
.
c_str
(),
F_OK
)
!=
0
||
access
(
keyCAPath
.
c_str
(),
F_OK
)
!=
0
){
spdlog
::
info
(
"YOU DO NOT HAVE ROOT CA CERTIFICATE"
);
spdlog
::
info
(
"YOU DO NOT HAVE ROOT CA CERTIFICATE"
);
spdlog
::
info
(
"ROOT CA CERTIFICATE IS GOING TO BE CREATED"
);
spdlog
::
info
(
"ROOT CA CERTIFICATE IS GOING TO BE CREATED"
);
std
::
string
genRootCACert
=
"cd
sgx_data/
cert && ./create_CA"
;
std
::
string
genRootCACert
=
"cd cert && ./create_CA"
;
if
(
system
(
genRootCACert
.
c_str
())
==
0
){
if
(
system
(
genRootCACert
.
c_str
())
==
0
){
spdlog
::
info
(
"ROOT CA CERTIFICATE IS SUCCESSFULLY GENERATED"
);
spdlog
::
info
(
"ROOT CA CERTIFICATE IS SUCCESSFULLY GENERATED"
);
...
@@ -100,14 +100,14 @@ int init_https_server(bool check_certs) {
...
@@ -100,14 +100,14 @@ int init_https_server(bool check_certs) {
}
}
}
}
std
::
string
certPath
=
"sgx_data/cert
/SGXServerCert.crt"
;
std
::
string
certPath
=
std
::
string
(
SGXDATA_FOLDER
)
+
"cert_data
/SGXServerCert.crt"
;
std
::
string
keyPath
=
"sgx_data/cert
/SGXServerCert.key"
;
std
::
string
keyPath
=
std
::
string
(
SGXDATA_FOLDER
)
+
"cert_data
/SGXServerCert.key"
;
if
(
access
(
certPath
.
c_str
(),
F_OK
)
!=
0
||
access
(
certPath
.
c_str
(),
F_OK
)
!=
0
){
if
(
access
(
certPath
.
c_str
(),
F_OK
)
!=
0
||
access
(
certPath
.
c_str
(),
F_OK
)
!=
0
){
spdlog
::
info
(
"YOU DO NOT HAVE SERVER CERTIFICATE"
);
spdlog
::
info
(
"YOU DO NOT HAVE SERVER CERTIFICATE"
);
spdlog
::
info
(
"SERVER CERTIFICATE IS GOING TO BE CREATED"
);
spdlog
::
info
(
"SERVER CERTIFICATE IS GOING TO BE CREATED"
);
std
::
string
genCert
=
"cd
sgx_data/
cert && ./create_server_cert"
;
std
::
string
genCert
=
"cd cert && ./create_server_cert"
;
if
(
system
(
genCert
.
c_str
())
==
0
){
if
(
system
(
genCert
.
c_str
())
==
0
){
spdlog
::
info
(
"SERVER CERTIFICATE IS SUCCESSFULLY GENERATED"
);
spdlog
::
info
(
"SERVER CERTIFICATE IS SUCCESSFULLY GENERATED"
);
...
...
ServerInit.cpp
View file @
24b2d824
...
@@ -64,26 +64,33 @@ void init_daemon() {
...
@@ -64,26 +64,33 @@ void init_daemon() {
libff
::
init_alt_bn128_params
();
libff
::
init_alt_bn128_params
();
std
::
string
sgx_data_folder
=
SGXDATA_FOLDER
;
struct
stat
info
;
struct
stat
info
;
if
(
stat
(
"sgx_data"
,
&
info
)
!=
0
){
if
(
stat
(
sgx_data_folder
.
c_str
(),
&
info
)
!=
0
){
spdlog
::
info
(
"there is no sgx_data folder"
);
spdlog
::
info
(
"going to create sgx_data folder"
);
std
::
string
make_sgx_data_folder
=
"mkdir "
+
sgx_data_folder
;
if
(
system
(
make_sgx_data_folder
.
c_str
())
==
0
){
spdlog
::
info
(
"sgx_data folder was created"
);
}
else
{
spdlog
::
info
(
"creating sgx_data folder failed"
);
exit
(
-
1
);
exit
(
-
1
);
}
}
}
static
std
::
string
dbName
(
"./"
WALLETDB_NAME
)
;
static
std
::
string
dbName
=
sgx_data_folder
+
WALLETDB_NAME
;
levelDb
=
new
LevelDB
(
dbName
);
levelDb
=
new
LevelDB
(
dbName
);
static
std
::
string
csr_dbname
=
"sgx_data/
CSR_DB"
;
static
std
::
string
csr_dbname
=
sgx_data_folder
+
"
CSR_DB"
;
csrDb
=
new
LevelDB
(
csr_dbname
);
csrDb
=
new
LevelDB
(
csr_dbname
);
static
std
::
string
csr_status_dbname
=
"sgx_data/
CSR_STATUS_DB"
;
static
std
::
string
csr_status_dbname
=
sgx_data_folder
+
"
CSR_STATUS_DB"
;
csrStatusDb
=
new
LevelDB
(
csr_status_dbname
);
csrStatusDb
=
new
LevelDB
(
csr_status_dbname
);
std
::
shared_ptr
<
std
::
string
>
encr_SEK_ptr
=
levelDb
->
readString
(
"SEK"
);
std
::
shared_ptr
<
std
::
string
>
encr_SEK_ptr
=
levelDb
->
readString
(
"SEK"
);
if
(
encr_SEK_ptr
==
nullptr
){
if
(
encr_SEK_ptr
==
nullptr
){
spdlog
::
info
(
"SEK was not created yet"
);
spdlog
::
info
(
"SEK was not created yet"
);
}
}
}
}
...
...
cert/042b18a31b77c13d9aa2972aded1935e98920dfc854b86abae1e986bf13574ef.csr
0 → 100644
View file @
24b2d824
-----BEGIN CERTIFICATE REQUEST-----
MIICkDCCAXgCAQAwSzFJMEcGA1UEAwxAMDFlNWQ0OGY4N2E3ZDBlYTA0OTM0ZDFl
NDE4MDYxNjFjZTRjMDRhNGFjMTg3ZTZkMWM0YWM3MDUxMjIxZjE3NjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAL26xPSctnyHebtKy4ahn609WgWSTyM0
9peytK7AWiC7CBpKJ4KlWdIS26NiC4eW8WkQxEDI/vClRwa/JE1QMZQQiIS8gB7G
yQUnn9HIgFZEhVZiImX2GK0BuHbcSgrA/bG3/tfjeDp6GLt/Fi5fDeer/rawf5G2
tshae/XZK3MrSnNXjUM8O1oDJDsddnbVWUwzyAy+jHxlko4Zrs07doq7MsBI2GRS
Ip4H1i12UcqgPxY8Gh4q74Z6sZeiAbkraQUWI2qzpfFYrGHEgXjjCXG6WmUrg7u/
D53/mvtSZyi/4CcLRpIGIFC09WCld9R8fRJ4jIN0uVi5iVeph8prZ/kCAwEAAaAA
MA0GCSqGSIb3DQEBCwUAA4IBAQBYK5yjRdsG//w8lr297kfAzU9M9Zd/s0cxsAfK
8rEq8hGinnP0uOnE4QY00mon/C0JbBAyfaE3tnhWgJxWFM2Uq0bBomKuMfQB3KmF
R/5HCkiEVpzgMA6ev0iBK4BexMY0TwTyPJ5IledjQY2qXodDOqZuOCmt0hf+1ypa
34zVBws/jeQ5Gl89QPpnbtR+6NNQ6auB77E97U8tz1grrPC7un0xNYxtx5lvZGi0
uweEQlkbq92rUiADm9o5lpUVYk/mtESjF4Gw6s5McObANFc3nPDL2YLZmnJSNJRS
VnxbYhdDIt+22uOviRS17hCkaoCdncBrIEQqmeD9OoPMvA2R
-----END CERTIFICATE REQUEST-----
sgx_data/
cert/ca.config
→
cert/ca.config
View file @
24b2d824
...
@@ -5,16 +5,16 @@
...
@@ -5,16 +5,16 @@
[
CA_CLIENT
]
[
CA_CLIENT
]
dir
= .
# Каталог для служебных файлов
dir
= .
# Каталог для служебных файлов
certs
= $
dir
/
certs
# Каталог для сертификатов
certs
= $
dir
/
certs
# Каталог для сертификатов
new_certs_dir
=
$
dir
/
new_certs
# Каталог для новых сертификатов
new_certs_dir
=
../
sgx_data
/
cert_data
/
new_certs
# Каталог для новых сертификатов
database
=
$
dir
/
index
.
txt
# Файл с базой данных
database
=
../
sgx_data
/
cert_data
/
index
.
txt
# Файл с базой данных
# подписанных сертификатов
# подписанных сертификатов
serial
=
$
dir
/
serial
# Файл содержащий серийный номер
serial
=
../
sgx_data
/
cert_data
/
serial
# Файл содержащий серийный номер
RANDFILE
= $
dir
/.
rnd
RANDFILE
= $
dir
/.
rnd
# сертификата
# сертификата
# (в шестнадцатиричном формате)
# (в шестнадцатиричном формате)
certificate
= ./
rootCA
.
pem
# Файл сертификата CA
certificate
= .
./
sgx_data
/
cert_data
/
rootCA
.
pem
# Файл сертификата CA
private_key
= ./
rootCA
.
key
# Файл закрытого ключа CA
private_key
= .
./
sgx_data
/
cert_data
/
rootCA
.
key
# Файл закрытого ключа CA
default_days
=
3650
# Срок действия подписываемого
default_days
=
3650
# Срок действия подписываемого
# сертификата
# сертификата
...
...
sgx_data/
cert/create_CA
→
cert/create_CA
View file @
24b2d824
#!/bin/bash
#!/bin/bash
cd
../sgx_data
mkdir
cert_data
cd
cert_data
mkdir
new_certs
touch
index.txt
touch
index.txt.attr
echo
"01"
>
serial
# Generate root CA key
# Generate root CA key
openssl genrsa
-out
rootCA.key 2048
openssl genrsa
-out
rootCA.key 2048
# Create an X.509 cert from the CA key
# Create an X.509 cert from the CA key
openssl req
-x509
-sha256
-nodes
-days
1024
-newkey
rsa:2048
-key
rootCA.key
-out
rootCA.pem
-subj
"/CN=SGXCACertificate"
openssl req
-x509
-sha256
-nodes
-days
1024
-newkey
rsa:2048
-key
rootCA.key
-out
rootCA.pem
-subj
"/CN=SGXCACertificate"
mkdir
new_certs
touch
index.txt
touch
index.txt.attr
echo
"01"
>
serial
sgx_data/
cert/create_client_cert
→
cert/create_client_cert
View file @
24b2d824
File moved
sgx_data/
cert/create_server_cert
→
cert/create_server_cert
View file @
24b2d824
#!/bin/bash
#!/bin/bash
# Generate server key
# Generate server key
openssl genrsa
-out
"SGXServerCert.key"
2048
openssl genrsa
-out
../sgx_data/cert_data/SGXServerCert.key
2048
# Create server certificate request
# Create server certificate request
#openssl req -new -key "SGXServer.key" -out "SGXServer.csr" -subj "/CN=SGXCACertificate"
#openssl req -new -key "SGXServer.key" -out "SGXServer.csr" -subj "/CN=SGXCACertificate"
openssl req
-new
-sha256
-nodes
-out
"SGXServerCert.csr"
-newkey
rsa:2048
-keyout
"SGXServerCert.key"
-subj
/CN
=
SGXServer
openssl req
-new
-sha256
-nodes
-out
../sgx_data/cert_data/SGXServerCert.csr
-newkey
rsa:2048
-keyout
../sgx_data/cert_data/SGXServerCert.key
-subj
/CN
=
SGXServer
# Sign and generate the user certificate from the
# Sign and generate the user certificate from the
#openssl x509 -req -in "SGXServer.csr" -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out "SGXServerCertificate.crt" -days 3650
#openssl x509 -req -in "SGXServer.csr" -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out "SGXServerCertificate.crt" -days 3650
yes
| openssl ca
-config
ca.config
-in
"SGXServerCert.csr"
-out
"SGXServerCert.crt"
yes
| openssl ca
-config
ca.config
-in
../sgx_data/cert_data/SGXServerCert.csr
-out
../sgx_data/cert_data/SGXServerCert.crt
sgxwallet_common.h
View file @
24b2d824
...
@@ -92,9 +92,9 @@ extern int is_sgx_https;
...
@@ -92,9 +92,9 @@ extern int is_sgx_https;
#define BASE_PORT 1026
#define BASE_PORT 1026
#define WALLETDB_NAME "sgx
_data/sgx
wallet.db"//"test_sgxwallet.db"//
#define WALLETDB_NAME "sgxwallet.db"//"test_sgxwallet.db"//
#define ENCLAVE_NAME "secure_enclave.signed.so"
#define ENCLAVE_NAME "secure_enclave.signed.so"
#define SGXDATA_FOLDER "sgx_data/"
...
...
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