Zvkned+Zvbb+Zvbc AES-GCM Proof of Concept
The aes-gcm-test.c file contains a set of functions verifying and
showcasing usage of instructions defined by the Zvkned and Zvbb/Zvbc
extensions to implement AES-GCM algorithm routines.
Pre-requisites:
- riscv64-linux-gnu toolchain available in PATH.
- zvkned, zvbb, and zvbc enabled binutils-gdb available
in PATH overriding the above toolchain.
- zvkned, zvbb, and zbbc enabled Spike available in PATH.
- RISC-V Proxy kernel (riscv-pk) compiled and available in
~/RISC-V/riscv64-linux-gnu/bin/pk (can be overridden with PK make
variable).
The default make target will compile all examples and run them in Spike
simulator.
Example make invocation:
# Build and run aes-gcm-test with default parameters
make run-aes-gcm
# Override riscv-pk location
make run-aes-gcm PK=/opt/prefix/riscv64-linux-gnu/bin/pk
# Override target triplet and riscv-pk location
make run-aes-gcm TARGET=riscv64-unknown-linux-gnu \
PK=/opt/prefix/riscv64-linux-gnu/bin/pk
Make targets:
- aes-gcm-test - compiles the PoC code.
- run-aes-gcm - Executes the compiled binary in Spike.
- clean - Cleans the build artifacts.
Make variables:
- TARGET - Target triplet to use. By default riscv64-linux-gnu.
- PK - Location of the riscv-pk binary. By default it's
~/RISC-V/$(TARGET)/bin/pk
See Makefile for more details.
Signed-off-by:
Kornel Dulęba <mindal@semihalf.com>
Signed-off-by:
Eric Gouriou <ego@rivosinc.com>
parent
b9f50ba9
Please register or sign in to comment