CAPACITY: Cryptographically-Authenticated Intra-process Isolation on ARM

April 29, 2024 ยท View on GitHub

Directory Structure

- capacity: The implementation of Capacity
  - kernel-module: the kernel module
  - libcapacity: runtime library
  - llvm-project: source code of LLVM
    - llvm: modified LLVM
  - include: shared header files for kernel module & libcapacity
- scripts: utitily scripts
- config: configuration files & environment variables
- tests: collection of test programs

Testing Capacity's compiler toolchain using QEMU

First, necessary component need to be downloaded and setup. Run the following:

./setup.sh

This script will download necessary dependencies, which includes LLVM 14.0.0, Musl into /tmp and extract the components into $(pwd)/build directory.

Then, build Capacity components with:

./build.sh

Build and run tests with

./run.sh test toolchains

Testing Capacity's kernel module