Private Contact Discovery
Install cmake, ninja and intel sgx sdk, or use the cppbuilder docker image.
cd ./tools/docker/cppbuilder
docker build -t cppbuilder:latest .
docker run -it --rm -v $PWD:/builder -u $(id -u) cppbuilder
rm -rf build
cmake -B build -G Ninja
ninja -C build
ninja -C build test
ninja -C build cppcheck
rm -rf build # Needed after the CC/CXX export or after changing the CMAKE_BUILD_TYPE
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
ninja -C build
source /startsgxenv.sh
cd applications/signal
make
The datapoints are collected from some file in tests/ and the scripts to generate the graphs are in tools/scripts.
They are generated by the last step of the gitlab-ci pipeline, using some artifacts from previous steps in the pipeline.
ods operation otree (otree/otree.hpp - otree algorithm implementation) oram_interface (otree/oram_interface.hpp manages allocating and freeing blocks, and talking to the oram implementation) oram implementation client (oramtype/oram.hpp oram algorithm implementation) oram client interface (oram_client_interface.hpp manages encrypting / decrypting blocks/buckets) oram_server (server/fileServer.hpp - the part of the algorithm that is public as everything is encrypted and looks random, equivalent to public ram where oram is built on top of).
chrome://tracing/
It's also possible to view in qt creator as described here: https://doc.qt.io/qtcreator/creator-ctf-visualizer.html
https://ui.perfetto.dev/ seems ok also