https://github.com/efeslab/tee_service
TEE-Service
https://github.com/efeslab/tee_service
Last synced: 9 months ago
JSON representation
TEE-Service
- Host: GitHub
- URL: https://github.com/efeslab/tee_service
- Owner: efeslab
- License: mit
- Created: 2018-02-06T19:38:59.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-06T19:44:07.000Z (over 8 years ago)
- Last Synced: 2025-01-10T01:51:34.441Z (over 1 year ago)
- Language: C++
- Size: 172 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: security_todo.txt
Awesome Lists containing this project
README
# openssm
##General
Software Security Module, alternative to HSM (Hardware Security Module)
##Prequisites
The `Makefile` assumes GoogleTest framework is in '..'.
To install:
```
cd ..
git clone https://github.com/google/googletest.git
cd googletest
cd googletest
autoreconf -fvi
g++ -isystem ./include -I. \
-isystem ../googlemock/include -I../googlemock \
-pthread -c ./src/gtest-all.cc
ar -rv libgtest.a gtest-all.o
cd ../googlemock
autoreconf -fvi
g++ -isystem ./include -I. \
-isystem ../googletest/include -I../googletest \
-pthread -c ./src/gmock-all.cc
ar -rv libgmock.a ../googletest/gtest-all.o gmock-all.o
cd ..
```
##Building and running tests
`make` will compile in real-hardware mode, and will run the c++ unit tests and the python end-to-end test/
'make SGX_MODE=SIM` will compile in simulation mode
To run the unit tests seperately run
```
./RunTests
```
To run the end-to-end python tests:
```
cd testing
python run_tests.py
```
##General structure
### OpenSSMServer class
The main class, managing the SSM.
###OpenSSMEnclave class
The enclave part of the SSM
###NetworkManager class
Helper class, used by OpenSSMServer to communicate on the network
###testing/run_tests.py
Running end-to-end tests, using Python UnitTest framework
###testing/run_tests.cpp
The main file running unit tests, implemented in GoogleTest framework and GoogleMock
##Contributing
This project is developed in a relaxed Test Driven Development method. I.e., for any high level functionality, first write the test, and then write the bare minimuim code to implement it (that's ideal, at least). Then, since you were about to write code to test the SSM anyhow, add a end-toend test in run_tests.py .