Note: This framework was previously called FHETEST.
Although the name has been updated to HEProgTest in our paper, some commands (e.g.,fhetest) still retain the old name.
They refer to the same framework.
Currently, this project is still in the development phase.
The goal of this project is to test the HE (Homomorphic Encryption) libraries.
Our tool is written in Scala3, so you need to install the Scala3 compiler and build tools. You can find the installation instructions here.
$ git clone https://github.com/kaist-plrg/fhetest.gitInsert the following commands to ~/.bashrc (or ~/.zshrc):
export FHETEST_HOME="<path to the fhetest directory>"
export PATH="$FHETEST_HOME/bin:$PATH"This tool uses the T2-FHE-Compiler-and-Benchmarks with some modifications. So you need to install the submodules.
$ cd $FHETEST_HOME && git submodule update --initYou can install the HE libraries(SEAL, OpenFHE) by running the build.sh script in the T2 directory.
$ cd $FHETEST_HOME/src/main/java/T2-FHE-Compiler-and-Benchmarks/
$ chmod +x .circleci/build_libs.sh
$ .circleci/build_libs.shBecause the T2 project requires some dependencies, you should install them first.
$ apt install cmake make build-essential g++ clang autoconf javacc patchelf openjdk-8-jdk maven m4 tar lzip libfftw3-devNow, you can build the project by sbt.
# build the T2 project and the fhetest project
$ sbt buildT2 && sbt assemblyIf you want to know more about the commands, you can run the following command:
$ fhetest help
# Usage: fhetest <command> [options]
# Commands:
# ...