The TFHE-CLI tool allows developers to use tfhe-rs features through a user-friendly CLI.
This tool can be used locally or through a docker image.
Registry and image name: docker pull ghcr.io/zama-ai/fhevm-tfhe-cli
Tags:
# for x86 CPUs
cargo build --features tfhe/x86_64-unix --release
# for ARM64
cargo build --features tfhe/aarch64-unix --release
Either download latest image:
docker pull ghcr.io/zama-ai/fhevm-tfhe-cli:latest
or build it locally:
docker build -t fhevm-tfhe-cli:latest .
Make sure you either have Docker or the Rust toolchain installed on your host machine.
Please replace FHEVM_TFHE_CLI
with either:
cargo run --features tfhe/aarch64-unix --release --
" - for ARM CPUs when running locally on the hostcargo run --features tfhe/x86_64-unix --release --
" - for x86 CPUs when running locally on the hostdocker run -v $LOCAL_DIR:/usr/local/app ghcr.io/zama-ai/fhevm-tfhe-cli:latest fhevm-tfhe-cli
"
For more information on Docker, see below.
For more information on supported operations and their variations, please see the built-in help:
FHEVM_TFHE_CLI help
mkdir -p /path/to/keys/directory
FHEVM_TFHE_CLI generate-keys -d /path/to/keys/directory
It will generate 3 keys in /path/to/keys/directory
:
cks
: the private key, used for data decryption, that should never be shared publicly.pks
: the public key, used for data encryption, that could be shared publicly.sks
: the evaluation key, used for performing operations, that could be shared publicly.# Encryption requires the public key `pks`.
FHEVM_TFHE_CLI public-encrypt-integer32 -c ./ciphertext -p /path/to/keys/directory/pks -v 42
# Decryption requires the secret key `cks`.
FHEVM_TFHE_CLI decrypt-ciphertext -c ./ciphertext -s /path/to/keys/directory/cks