/keystone

Keystone Enclave (QEMU + HiFive Unleashed)

Primary LanguageAssemblyOtherNOASSERTION

Keystone: An Open-Source Secure Enclave Framework for RISC-V Processors

Documentation Status Build Status

Visit Project Website for more information.

The dev branch is more up-to-date than master always. Until there are stable releases we suggest only using dev.

Quick Start

git clone https://github.com/keystone-enclave/keystone
cd keystone

Install Dependencies (Ubuntu)

sudo apt update
sudo apt install autoconf automake autotools-dev bc \
bison build-essential curl expat libexpat1-dev flex gawk gcc git \
gperf libgmp-dev libmpc-dev libmpfr-dev libtool texinfo tmux \
patchutils zlib1g-dev wget bzip2 patch vim-common lbzip2 python \
pkg-config libglib2.0-dev libpixman-1-dev libssl-dev \
device-tree-compiler expect makeself unzip

Checkout branch (optional)

git checkout dev

Setup Tools and Submodules

./fast-setup.sh

Build All

make

Test

make run-tests

Rebuilding

Any modifications in a submodule should be built with the top-level make in Keystone.

Adding Files

Any additional files/binaries to be included in the image should be placed in keystone/buildroot_overlay/root/.

The top-level make image will rebuild the image to contain any new files added.

Documentation

See docs for detailed documentation. You may wish to switch to the dev version of the docs, rather than 'latest'.

Contributing

See CONTRIBUTING.md