Enclave.edl 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. enclave {
  2. include "stdbool.h"
  3. include "sgx_tcrypto.h"
  4. include "sgx_tseal.h"
  5. include "../Enclave/enclave_api.h"
  6. trusted {
  7. public void ecall_identity_key_new(
  8. [out] sgx_ec256_public_t *outpub,
  9. [out,size=610] sgx_sealed_data_t *outsealedpriv);
  10. public bool ecall_identity_key_load(
  11. [out] sgx_ec256_public_t *outpub,
  12. [in,size=610] const sgx_sealed_data_t *insealedpriv);
  13. public bool ecall_config_load(
  14. [in] struct EnclaveAPIParams *apiparams,
  15. [in,count=num_nodes] struct EnclaveAPINodeConfig *apinodeconfigs,
  16. nodenum_t num_nodes, nodenum_t my_node_num);
  17. public bool ecall_comms_start();
  18. public bool ecall_message(
  19. nodenum_t node_num, uint32_t message_len);
  20. public bool ecall_chunk(
  21. nodenum_t node_num,
  22. [user_check] const uint8_t *chunkdata,
  23. uint32_t chunklen);
  24. };
  25. untrusted {
  26. void ocall_print_string(
  27. [in, string] const char *str);
  28. unsigned long ocall_print_string_with_rtclock(
  29. [in, string] const char *str);
  30. unsigned long ocall_print_string_with_rtclock_diff(
  31. [in, string] const char *str, unsigned long before);
  32. uint8_t *ocall_message(
  33. nodenum_t node_num, uint32_t message_len);
  34. uint8_t *ocall_chunk(
  35. nodenum_t node_num,
  36. [user_check] uint8_t *chunkdata,
  37. uint32_t chunklen);
  38. };
  39. };