| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 | # Makefile based on the sample Cxx17SGXDemo/Makefile in the SGX SDK:## Copyright (C) 2011-2021 Intel Corporation. All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:##   * Redistributions of source code must retain the above copyright#     notice, this list of conditions and the following disclaimer.#   * Redistributions in binary form must reproduce the above copyright#     notice, this list of conditions and the following disclaimer in#     the documentation and/or other materials provided with the#     distribution.#   * Neither the name of Intel Corporation nor the names of its#     contributors may be used to endorse or promote products derived#     from this software without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.### Turn this on to output log lines when messages are sent and receivedTRACE_SOCKIO ?= 0######## SGX SDK Settings ########SGX_SDK ?= /opt/intel/sgxsdkSGX_MODE ?= HWSGX_ARCH ?= x64SGX_DEBUG ?= 1ifeq ($(shell getconf LONG_BIT), 32)	SGX_ARCH := x86else ifeq ($(findstring -m32, $(CXXFLAGS)), -m32)	SGX_ARCH := x86endififeq ($(SGX_ARCH), x86)	SGX_COMMON_FLAGS := -m32	SGX_LIBRARY_PATH := $(SGX_SDK)/lib	SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x86/sgx_sign	SGX_EDGER8R := $(SGX_SDK)/bin/x86/sgx_edger8relse	SGX_COMMON_FLAGS := -m64 -maes -msse2	SGX_LIBRARY_PATH := $(SGX_SDK)/lib64	SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x64/sgx_sign	SGX_EDGER8R := $(SGX_SDK)/bin/x64/sgx_edger8rendififeq ($(SGX_DEBUG), 1)ifeq ($(SGX_PRERELEASE), 1)$(error Cannot set SGX_DEBUG and SGX_PRERELEASE at the same time!!)endifendififeq ($(SGX_DEBUG), 1)        SGX_COMMON_FLAGS += -O3 -gelse        SGX_COMMON_FLAGS += -O3endififeq ($(TRACE_SOCKIO), 1)	SGX_COMMON_FLAGS += -DTRACE_SOCKIOendifSGX_COMMON_FLAGS += -Wall -Wextra -Winit-self -Wpointer-arith -Wreturn-type \                    -Waddress -Wsequence-point -Wformat-security \                    -Wmissing-include-dirs -Wfloat-equal -Wundef -Wshadow \                    -Wcast-align -Wcast-qual -Wconversion -Wredundant-declsSGX_COMMON_CFLAGS := $(SGX_COMMON_FLAGS) -Wjump-misses-init -Wstrict-prototypes -Wunsuffixed-float-constantsSGX_COMMON_CXXFLAGS := $(SGX_COMMON_FLAGS) -Wnon-virtual-dtor -std=c++17######## App Settings ########ifneq ($(SGX_MODE), HW)	Urts_Library_Name := sgx_urts_simelse	Urts_Library_Name := sgx_urtsendifApp_Cpp_Files := $(wildcard App/*.cpp Untrusted/*.cpp)App_Include_Paths := -IApp -IUntrusted -I$(SGX_SDK)/includeApp_C_Flags := -fPIC -Wno-attributes $(App_Include_Paths)# Three configuration modes - Debug, prerelease, release#   Debug - Macro DEBUG enabled.#   Prerelease - Macro NDEBUG and EDEBUG enabled.#   Release - Macro NDEBUG enabled.ifeq ($(SGX_DEBUG), 1)        App_C_Flags += -DDEBUG -UNDEBUG -UEDEBUGelse ifeq ($(SGX_PRERELEASE), 1)        App_C_Flags += -DNDEBUG -DEDEBUG -UDEBUGelse        App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUGendifApp_Cpp_Flags := $(App_C_Flags)App_Link_Flags := -lboost_thread -L$(SGX_LIBRARY_PATH) -l$(Urts_Library_Name) -lpthreadApp_Cpp_Objects := $(App_Cpp_Files:.cpp=.o)App_Name := App/teems######## Client Settings ########Client_Cpp_Files := $(wildcard Client/*.cpp)Client_Include_Paths := -IApp -IUntrusted -I$(SGX_SDK)/includeClient_Cpp_Flags := -fPIC -Wno-attributes $(Client_Include_Paths)Client_Cpp_Objects := $(Client_Cpp_Files:.cpp=.o)Client_Link_Flags := -lboost_thread -lpthread -lssl3 -lcryptoClient_Name := Client/clients######## Enclave Settings ########Enclave_Version_Script := Enclave/Enclave_debug.ldsifeq ($(SGX_MODE), HW)ifneq ($(SGX_DEBUG), 1)ifneq ($(SGX_PRERELEASE), 1)	# Choose to use 'Enclave.lds' for HW release mode	Enclave_Version_Script = Enclave/Enclave.ldsendifendifendififneq ($(SGX_MODE), HW)	Trts_Library_Name := sgx_trts_sim	Service_Library_Name := sgx_tservice_simelse	Trts_Library_Name := sgx_trts	Service_Library_Name := sgx_tserviceendifCrypto_Library_Name := sgx_tcryptoEnclave_Cpp_Files := $(wildcard Enclave/*.cpp Enclave/OblivAlgs/*.cpp)Enclave_Include_Paths := -IEnclave -IEnclave/OblivAlgs -I$(SGX_SDK)/include -I$(SGX_SDK)/include/libcxx -I$(SGX_SDK)/include/tlibcEnclave_C_Flags := -nostdinc -fvisibility=hidden -fpie -fstack-protector -fno-builtin-printf $(Enclave_Include_Paths)Enclave_Cpp_Flags := $(Enclave_C_Flags) -nostdinc++# Enable the security flagsEnclave_Security_Link_Flags := -Wl,-z,relro,-z,now,-z,noexecstack# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:#    1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,#       so that the whole content of trts is included in the enclave.#    2. For other libraries, you just need to pull the required symbols.#       Use `--start-group' and `--end-group' to link these libraries.# Do NOT move the libraries linked with `--start-group' and `--end-group' within `--whole-archive' and `--no-whole-archive' options.# Otherwise, you may get some undesirable errors.Enclave_Link_Flags := $(Enclave_Security_Link_Flags) \    -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \	-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \	-Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -lsgx_pthread -Wl,--end-group \	-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \	-Wl,-pie,-eenclave_entry -Wl,--export-dynamic  \	-Wl,--defsym,__ImageBase=0 \	-Wl,--version-script=$(Enclave_Version_Script)Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)Enclave_Name := Enclave/enclave.soSigned_Enclave_Name := App/enclave.signed.soEnclave_Config_File := Enclave/Enclave.config.xmlEnclave_Test_Key := Enclave/Enclave_private_test.pemifeq ($(SGX_MODE), HW)ifeq ($(SGX_DEBUG), 1)	Build_Mode = HW_DEBUGelse ifeq ($(SGX_PRERELEASE), 1)	Build_Mode = HW_PRERELEASEelse	Build_Mode = HW_RELEASEendifelseifeq ($(SGX_DEBUG), 1)	Build_Mode = SIM_DEBUGelse ifeq ($(SGX_PRERELEASE), 1)	Build_Mode = SIM_PRERELEASEelse	Build_Mode = SIM_RELEASEendifendif.PHONY: all run targetall: .config_$(Build_Mode)_$(SGX_ARCH)	@$(MAKE) targetifeq ($(Build_Mode), HW_RELEASE)target: $(App_Name) $(Enclave_Name) $(Client_Name)	@echo "The project has been built in release hardware mode."	@echo "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."	@echo "To sign the enclave use the command:"	@echo "   $(SGX_ENCLAVE_SIGNER) sign -key <your key> -enclave $(Enclave_Name) -out <$(Signed_Enclave_Name)> -config $(Enclave_Config_File)"	@echo "You can also sign the enclave using an external signing tool."	@echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."elsetarget: $(App_Name) $(Signed_Enclave_Name) $(Client_Name)ifeq ($(Build_Mode), HW_DEBUG)	@echo "The project has been built in debug hardware mode."else ifeq ($(Build_Mode), SIM_DEBUG)	@echo "The project has been built in debug simulation mode."else ifeq ($(Build_Mode), HW_PRERELEASE)	@echo "The project has been built in pre-release hardware mode."else ifeq ($(Build_Mode), SIM_PRERELEASE)	@echo "The project has been built in pre-release simulation mode."else	@echo "The project has been built in release simulation mode."endifendifrun: allifneq ($(Build_Mode), HW_RELEASE)	@echo "RUN  =>  $(App_Name) [$(SGX_MODE)|$(SGX_ARCH), OK]"	@$(CURDIR)/$(App_Name)endif.config_$(Build_Mode)_$(SGX_ARCH):	@rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) Untrusted/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*	@touch .config_$(Build_Mode)_$(SGX_ARCH)######## App Objects ########Untrusted/Enclave_u.h: $(SGX_EDGER8R) Enclave/Enclave.edl	@echo "GEN  =>  $@"	@cd Untrusted && $(SGX_EDGER8R) --untrusted ../Enclave/Enclave.edl --search-path ../Enclave --search-path $(SGX_SDK)/includeUntrusted/Enclave_u.c: Untrusted/Enclave_u.hUntrusted/Enclave_u.o: Untrusted/Enclave_u.c Untrusted/Enclave_u.h	@echo "CC   <=  $<"	@$(CC) $(SGX_COMMON_CFLAGS) $(App_C_Flags) -c $< -o $@Untrusted/%.o: Untrusted/%.cpp Untrusted/Enclave_u.h	@echo "CXX  <=  $<"	@$(CXX) $(SGX_COMMON_CXXFLAGS) $(App_Cpp_Flags) -c $< -o $@App/%.o: App/%.cpp Untrusted/Enclave_u.h	@echo "CXX  <=  $<"	@$(CXX) $(SGX_COMMON_CXXFLAGS) $(App_Cpp_Flags) -c $< -o $@$(App_Name): Untrusted/Enclave_u.o $(App_Cpp_Objects)	@echo "LINK =>  $@"	@$(CXX) $^ -o $@ $(App_Link_Flags)######## Enclave Objects ########Enclave/Enclave_t.h: $(SGX_EDGER8R) Enclave/Enclave.edl	@echo "GEN  =>  $@"	@cd Enclave && $(SGX_EDGER8R) --trusted ../Enclave/Enclave.edl --search-path ../Enclave --search-path $(SGX_SDK)/includeEnclave/Enclave_t.c: Enclave/Enclave_t.hEnclave/Enclave_t.o: Enclave/Enclave_t.c Enclave/Enclave_t.h	@echo "CC   <=  $<"	@$(CC) $(SGX_COMMON_CFLAGS) $(Enclave_C_Flags) -c $< -o $@Enclave/%.o: Enclave/%.cpp	@echo "CXX  <=  $<"	@$(CXX) $(SGX_COMMON_CXXFLAGS) $(Enclave_Cpp_Flags) -c $< -o $@Enclave/asm/%.s: Enclave/%.cpp	@echo "CXXASM  <=  $<"	@mkdir -p $$(dirname $@)	@$(CXX) $(SGX_COMMON_CXXFLAGS) $(Enclave_Cpp_Flags) -S $< -o $@$(Enclave_Cpp_Objects): Enclave/Enclave_t.h$(Enclave_Name): Enclave/Enclave_t.o $(Enclave_Cpp_Objects)	@echo "LINK =>  $@"	@$(CXX) $^ -o $@ $(Enclave_Link_Flags)$(Signed_Enclave_Name): $(Enclave_Name) $(Enclave_Config_File)ifeq ($(wildcard $(Enclave_Test_Key)),)	@echo "There is no enclave test key<Enclave_private_test.pem>."	@echo "The project will generate a key<Enclave_private_test.pem> for test."	@openssl genrsa -out $(Enclave_Test_Key) -3 3072endif	@echo "SIGN =>  $@"	@$(SGX_ENCLAVE_SIGNER) sign -key $(Enclave_Test_Key) -enclave $(Enclave_Name) -out $@ -config $(Enclave_Config_File)######## Client Objects ########Clients/clients.o: Clients/clients.cppClient/%.o: Client/%.cpp	@echo "CXX  <=  $<"	@$(CXX) $(Client_Cpp_Flags) -c $< -o $@$(Client_Name): $(Client_Cpp_Objects)	@echo "LINK =>  $@"	@$(CXX) $^ -o $@ $(Client_Link_Flags).PHONY: cleanclean:	@rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) Untrusted/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*depend:	makedepend -Y -- -IApp -IUntrusted -- $(App_Cpp_Files)	makedepend -a -Y -- -IEnclave -IEnclave/OblivAlgs -- $(Enclave_Cpp_Files)# DO NOT DELETEApp/appconfig.o: Untrusted/Untrusted.hpp Enclave/enclave_api.hApp/appconfig.o: App/appconfig.hppApp/net.o: Untrusted/Enclave_u.h Enclave/enclave_api.hApp/net.o: Untrusted/Untrusted.hpp App/net.hpp App/appconfig.hppApp/start.o: Untrusted/Untrusted.hpp Enclave/enclave_api.h App/start.hppApp/start.o: App/net.hpp App/appconfig.hppApp/teems.o: Untrusted/Untrusted.hpp Enclave/enclave_api.h App/appconfig.hppApp/teems.o: App/net.hpp App/start.hppUntrusted/Untrusted.o: Untrusted/Untrusted.hpp Enclave/enclave_api.hUntrusted/Untrusted.o: Untrusted/Enclave_u.hEnclave/comms.o: Enclave/Enclave_t.h Enclave/enclave_api.hEnclave/comms.o: Enclave/OblivAlgs/utils.hpp Enclave/OblivAlgs/CONFIG.hEnclave/comms.o: Enclave/OblivAlgs/oasm_lib.h Enclave/OblivAlgs/oasm_lib.tccEnclave/comms.o: Enclave/OblivAlgs/foav.h Enclave/config.hppEnclave/comms.o: Enclave/enclave_api.h Enclave/route.hpp Enclave/comms.hppEnclave/config.o: Enclave/Enclave_t.h Enclave/enclave_api.h Enclave/comms.hppEnclave/config.o: Enclave/enclave_api.h Enclave/config.hppEnclave/config.o: Enclave/OblivAlgs/utils.hpp Enclave/OblivAlgs/CONFIG.hEnclave/config.o: Enclave/OblivAlgs/oasm_lib.h Enclave/OblivAlgs/oasm_lib.tccEnclave/config.o: Enclave/OblivAlgs/foav.h Enclave/route.hpp Enclave/ingest.hppEnclave/obliv.o: Enclave/OblivAlgs/oasm_lib.h Enclave/OblivAlgs/CONFIG.hEnclave/obliv.o: Enclave/OblivAlgs/oasm_lib.tcc Enclave/OblivAlgs/foav.hEnclave/obliv.o: Enclave/enclave_api.h Enclave/obliv.hppEnclave/route.o: Enclave/Enclave_t.h Enclave/enclave_api.h Enclave/config.hppEnclave/route.o: Enclave/enclave_api.h Enclave/OblivAlgs/utils.hppEnclave/route.o: Enclave/OblivAlgs/CONFIG.h Enclave/OblivAlgs/oasm_lib.hEnclave/route.o: Enclave/OblivAlgs/oasm_lib.tcc Enclave/OblivAlgs/foav.hEnclave/route.o: Enclave/sort.hpp Enclave/OblivAlgs/WaksmanNetwork.hppEnclave/route.o: Enclave/OblivAlgs/RecursiveShuffle.hppEnclave/route.o: Enclave/OblivAlgs/TightCompaction_v2.hppEnclave/route.o: Enclave/OblivAlgs/TightCompaction_v2.tccEnclave/route.o: Enclave/OblivAlgs/RecursiveShuffle.tccEnclave/route.o: Enclave/OblivAlgs/aes.hppEnclave/route.o: Enclave/OblivAlgs/WaksmanNetwork.tcc Enclave/sort.tccEnclave/route.o: Enclave/comms.hpp Enclave/obliv.hpp Enclave/storage.hppEnclave/route.o: Enclave/route.hppEnclave/ingest.o: Enclave/Enclave_t.h Enclave/enclave_api.h Enclave/config.hppEnclave/ingest.o: Enclave/route.hppEnclave/sort.o: Enclave/sort.hpp Enclave/OblivAlgs/WaksmanNetwork.hppEnclave/sort.o: Enclave/OblivAlgs/oasm_lib.h Enclave/OblivAlgs/CONFIG.hEnclave/sort.o: Enclave/OblivAlgs/oasm_lib.tcc Enclave/OblivAlgs/foav.hEnclave/sort.o: Enclave/OblivAlgs/utils.hpp Enclave/Enclave_t.hEnclave/sort.o: Enclave/enclave_api.h Enclave/OblivAlgs/RecursiveShuffle.hppEnclave/sort.o: Enclave/OblivAlgs/TightCompaction_v2.hppEnclave/sort.o: Enclave/OblivAlgs/TightCompaction_v2.tccEnclave/sort.o: Enclave/OblivAlgs/RecursiveShuffle.tccEnclave/sort.o: Enclave/OblivAlgs/aes.hppEnclave/sort.o: Enclave/OblivAlgs/WaksmanNetwork.tcc Enclave/sort.tccEnclave/storage.o: Enclave/OblivAlgs/utils.hpp Enclave/Enclave_t.hEnclave/storage.o: Enclave/enclave_api.h Enclave/OblivAlgs/CONFIG.hEnclave/storage.o: Enclave/OblivAlgs/oasm_lib.hEnclave/storage.o: Enclave/OblivAlgs/oasm_lib.tcc Enclave/OblivAlgs/foav.hEnclave/storage.o: Enclave/config.hpp Enclave/enclave_api.hEnclave/storage.o: Enclave/OblivAlgs/ORExpand.hppEnclave/storage.o: Enclave/OblivAlgs/ORExpand.tcc Enclave/sort.hppEnclave/storage.o: Enclave/OblivAlgs/WaksmanNetwork.hppEnclave/storage.o: Enclave/OblivAlgs/RecursiveShuffle.hppEnclave/storage.o: Enclave/OblivAlgs/TightCompaction_v2.hppEnclave/storage.o: Enclave/OblivAlgs/TightCompaction_v2.tccEnclave/storage.o: Enclave/OblivAlgs/RecursiveShuffle.tccEnclave/storage.o: Enclave/OblivAlgs/aes.hppEnclave/storage.o: Enclave/OblivAlgs/WaksmanNetwork.tcc Enclave/sort.tccEnclave/storage.o: Enclave/storage.hpp Enclave/route.hppEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/ORExpand.hppEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/utils.hpp Enclave/Enclave_t.hEnclave/OblivAlgs/ORExpand.o: Enclave/enclave_api.hEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/CONFIG.hEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/oasm_lib.hEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/oasm_lib.tccEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/foav.hEnclave/OblivAlgs/ORExpand.o: Enclave/OblivAlgs/ORExpand.tccEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/oasm_lib.hEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/CONFIG.hEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/oasm_lib.tccEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/foav.hEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/utils.hppEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/Enclave_t.hEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/enclave_api.hEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/RecursiveShuffle.hppEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/TightCompaction_v2.hppEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/TightCompaction_v2.tccEnclave/OblivAlgs/RecursiveShuffle.o: Enclave/OblivAlgs/RecursiveShuffle.tccEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/SortingNetwork.hppEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/oasm_lib.hEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/CONFIG.hEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/oasm_lib.tccEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/foav.hEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/utils.hppEnclave/OblivAlgs/SortingNetwork.o: Enclave/Enclave_t.h Enclave/enclave_api.hEnclave/OblivAlgs/SortingNetwork.o: Enclave/OblivAlgs/SortingNetwork.tccEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/TightCompaction_v2.hppEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/oasm_lib.hEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/CONFIG.hEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/oasm_lib.tccEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/foav.hEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/utils.hppEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/Enclave_t.hEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/enclave_api.hEnclave/OblivAlgs/TightCompaction_v2.o: Enclave/OblivAlgs/TightCompaction_v2.tccEnclave/OblivAlgs/utils.o: Enclave/OblivAlgs/utils.hpp Enclave/Enclave_t.hEnclave/OblivAlgs/utils.o: Enclave/enclave_api.h Enclave/OblivAlgs/CONFIG.hEnclave/OblivAlgs/utils.o: Enclave/OblivAlgs/oasm_lib.hEnclave/OblivAlgs/utils.o: Enclave/OblivAlgs/oasm_lib.tccEnclave/OblivAlgs/utils.o: Enclave/OblivAlgs/foav.hEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/SortingNetwork.hppEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/oasm_lib.hEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/CONFIG.hEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/oasm_lib.tccEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/foav.hEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/utils.hppEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/Enclave_t.h Enclave/enclave_api.hEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/SortingNetwork.tccEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/WaksmanNetwork.hppEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/RecursiveShuffle.hppEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/TightCompaction_v2.hppEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/TightCompaction_v2.tccEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/RecursiveShuffle.tccEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/aes.hppEnclave/OblivAlgs/WaksmanNetwork.o: Enclave/OblivAlgs/WaksmanNetwork.tcc
 |