enclave { include "sys/types.h" include "sgx_key.h" from "sgx_tstdc.edl" import *; from "sgx_tprotected_fs.edl" import *; trusted { public int ecall_protect([in, string] const char* input_path, [in, string] const char* output_path); public int ecall_show([in, string] const char* input_path, [in, string] const char* output_path); public int ecall_show_mac([in, string] const char* input_path); }; untrusted { // File operations int ocall_open_for_write([in, string] const char* path); int ocall_open_for_read([in, string] const char* path); ssize_t ocall_read(int fd, [out, size=size] void* buf, size_t size); ssize_t ocall_write(int fd, [in, size=size] const void* buf, size_t size); int ocall_close(int fd); // Print to the standard output void ocall_print([in, string] const char* msg); // Print to the standard error void ocall_eprint([in, string] const char* msg); }; };