I'm working on a project in which I should present security feutures/vulnerabilities of the Intel SGX. For this purpose I must build my project in Release mode. Because I should work on linux platform , I took a the SampleEnclave project from SGX-SDK as an example, and in my application I should just load an enclave push a buffer into and then destroy it.However, the build process works in all modes (Debug/Sim/PreRelease/Release) fine and I can also sign created enclave and enclave_hash but the problem is, when I run the application built in Release mode I receive error, that creating an enclave failed. Additionally, I'm sure that my machine has the SGX and it is enabled.
I had first another problem as I tried to run the application -> ./app Error: please use the correct uRts from psw package. After my searches in this forum I understood for running an application in HW mode the application should use the libsgx_urts.so from psw. therefore I copied this library from psw package to /usr/lib/ which my application looks there for finding the libsgx_urts.so. After copying the lib from psw, I dont receive the choose correct uRts library but execution still fails.
Does anybody know about this problem.
If you want to build the SGX application in release mode, then you need to get the license from Intel. Please refer the below link for your reference
- Intel® SGX Product Licensing - https://software.intel.com/en-us/articles/intel-sgx-product-licensing
- Request a Commercial License - https://software.intel.com/en-us/sgx/commercial-use-license-request
- Intel SGX: Debug, Production, Pre-release what's the difference? - https://software.intel.com/en-us/blogs/2016/01/07/intel-sgx-debug-production-prelease-whats-the-difference