We test building and running release-mode enclaves on Ubuntu 18.04 LTS Server x86-64.
With some limitations, it's possible to run Conclave enclaves even if the host Operating System isn't Linux. The table below correlates the Operating System and the possible Conclave running modes.
: Using WSL or Docker with Linux.
Although it is not possible to run all modes on every operating system, it is possible to develop and build enclaves on Linux, macOS and Windows. You can develop and test your enclaves using mock mode then build a simulation, debug or release mode enclave for deployment to a Linux platform for testing or production.
In order to build a simulation, debug or release mode enclave on macOS or Windows (or to run a simulation mode enclave
on macOS or Windows), Conclave needs access to a Linux build environment. This is automatically created during the build
process using Docker. If you do not have Docker installed then the build will generate an error prompting you to
install Docker on your system. Once Docker is installed and added to your
PATH environment variable you can proceed
to build Simulation, Debug or Release mode enclaves. Docker is not required if you are using a Linux system.
We test building and running conclave applications using the latest OpenJDK 8 and 11, as of the most recent release.
All code inside the enclave module must be compatible with Java 8. The Conclave gradle plugin will automatically compile the enclave module to Java 8 bytecode, regardless of the Java version used to build the rest of the application.
Host and Client¶
The host and client are normal Java libraries targeting Java 8, so all code outside the enclave module can be written and built with any Java version that is 8 or higher.