Source code for "TEEMS: Trusted Execution Environment based Metadata-protected Messaging System" This code produced the data reported in Section 6 of our paper. You will need: - A machine with one or more SGX2-enabled processors - The SGX SDK (https://github.com/intel/linux-sgx) installed (we used version 2.22) - The "numactl" program installed (even if you don't have a NUMA machine) The code is designed to run on a single machine with two 40-core processors (Intel 8380). We allocate 36 cores on each processor for the servers, and the last 4 cores on each processor for the clients. If you have a different configuration, change the cores assigned to clients by setting "prefix" in Client/clientlaunch and the -t option to clientlaunch in run_experiments.py. Change the cores assigned to servers in the gen_manifest.py program. Change the maximum number of servers for a given number of cores in the M_MAX dictionary in run_experiments.py. Decide what experiments you want to run: - Set the numbers of users (N), the numbers of servers (M), and the numbers of cores per server (T) in run_experiments.py. - Set whether you want to test the private or public channel by setting "private_routing:" in gen_manifest.py to True or False respectively. Build and run the code, and collect the output: - make - ./run_experiments.py - ./logs_to_csv.py Experiments_test results.csv