enclave {
    from "sgx_tkey_exchange.edl" import *;

    include "sgx_key_exchange.h"
    include "sgx_trts.h"

    trusted {
        public sgx_status_t enclave_init_ra(int b_pse, [out] sgx_ra_context_t *p_context);

        public sgx_status_t enclave_ra_close(sgx_ra_context_t context);

        public sgx_status_t verify_att_result_mac(sgx_ra_context_t context,
													[in,size=message_size] uint8_t* message,
													size_t message_size,
													[in,size=mac_size] uint8_t* mac,
													size_t mac_size);

        public sgx_status_t verify_secret_data(sgx_ra_context_t context,
												[in,size=secret_size] uint8_t* p_secret,
												uint32_t secret_size,
												[in,count=16] uint8_t* gcm_mac,
												uint32_t max_verification_length,
												[out, count=16] uint8_t *p_ret);

    };

};












