Teaclave Java TEE SDK Configuration Illustration

Configure file

Teaclave Java TEE SDK provides a java_enclave_configure.json template file for user to set customized parameters. It provides six parameters:

keyvalue(default)illustration
debuggablefalseAllow TEE_SDK Enclave or EMBEDDED_LIB_OS Enclave to be debuggable or not, debuggable mode help to debug. Should make it to be not debuggable when the project is online service for security.
enclave_typeTEE_SDKWhen creating an enclave instance with method EnclaveFactory.create(), TEE_SDK kind of Enclave will be created by default, key enclave_type could be one of MOCK_IN_JVM MOCK_IN_SVM TEE_SDK EMBEDDED_LIB_OS.
metric_trace_enablefalseEnable Teaclave Java TEE SDK performance metric or not.
metric_trace_file_path""Customized Teaclave Java TEE SDK metric log file path. Teaclave Java TEE SDK Metric feature could help to measure the cost of every service invocation and service loading/unloading.
enclave_max_thread50The max thread number which enclave allows to be e-called into TEE_SDK Enclave or EMBEDDED_LIB_OS Enclave.
enclave_max_epc_memory_size_MB1500The max physical epc memory size in TEE_SDK, EMBEDDED_LIB_OS Enclave

debuggableenclave_typemetric_trace_enable and metric_trace_file_pathcould also be set by -Dproperty way. Butenclave_max_thread and enclave_max_epc_memory_size_MB could only be changed or set by java_enclave_configure.json file in enclave submodule's resource dir.

Property Configuration Setting

Teaclave Java TEE SDK provides some customized property setting for different scene.

propertyvalueillustration
org.apache.teaclave.javasdk.enclave.typeMOCK_IN_JVM/MOCK_IN_SVM/TEE_SDK/EMBEDDED_LIB_OSsame as be described in Configure file
org.apache.teaclave.javasdk.enclave.debuggabletrue/falsesame as be described in Configure file
org.apache.teaclave.javasdk.enclave.metric.enabletrue/falsesame as be described in Configure file
org.apache.teaclave.javasdk.enclave.metric.logcustomized metric log file pathsame as be described in Configure file

MOCK_IN_SVM Enclave Property Configuration Setting

propertyvalueillustration
org.apache.teaclave.javasdk.enclave.mockinsvm.maxheap_MBgc max heap size(MB) in mock_in_svm enclave.

TEE_SDK Enclave Property Configuration Setting

propertyvalueillustration
org.apache.teaclave.javasdk.enclave.teesdk.symbol.tracetrue(false)help to trace undefined symbols invocation in TEE_SDK, default value is disable.
org.apache.teaclave.javasdk.enclave.teesdk.maxheap_MBgc max heap size(MB) in tee sdk enclave.

EMBEDDED_LIB_OS Enclave Property Configuration Setting

propertyvalueillustration
org.apache.teaclave.javasdk.enclave.agent.thread.pool.size5agent http server thread pool size in enclave, default value is 5.
org.apache.teaclave.javasdk.enclave.embedded.startup.timeout_ms60000the max startup timeout for lib os enclave startup, default timeout is 60000ms.
org.apache.teaclave.javasdk.enclave.embedded.keepalive.timeout_s300enclave agent http long connection keep alive timeout, default timeout is 300s.
org.apache.teaclave.javasdk.enclave.embedded.keepalive.max100max agent http router, default number is 100.
org.apache.teaclave.javasdk.enclave.embedded.connect.timeout_ms1000agent http connection timeout, default is 1000ms.
org.apache.teaclave.javasdk.enclave.embedded.read.timeout_ms2000agent http reading timeout, default is 2000ms.
org.apache.teaclave.javasdk.enclave.embedded.ra.timeout_ms10000embedded lib os remote attestation generation and verification timeout, default is 10000ms.
org.apache.teaclave.javasdk.enclave.embedded.log.level“off”enable enclave log or not, default is off.
org.apache.teaclave.javasdk.enclave.embedded.jvm.args“-Dsun.net.httpserver.nodelay=true, -XX:-UseCompressedOops, -Xmx800m, -Dos.name=Linux”jvm's startup args in embedded lib os enclave.