Unifying different ChipWhisperer devices and side-channel simulations to a common and easy-to-use API.
-
Install prerequisites:
- Git
- Python >=3.8
- Make
- arm-none-eabi-gcc, libnewlib-arm-none-eabi (for Arm victims)
- avr-gcc, avr-libc (for CWLITEXMEGA)
-
Clone and setup ChipWhisperer:
git clone https://github.com/newaetech/chipwhisperer.git $HOME/work/chipwhisperer export CWFIRMWAREPATH=$HOME/chipwhisperer/hardware/victims/firmware
Tip: If you are using VSCode you can omit setting the environment variable globally by adding a
.env
file in you workspace-root with the contentCWFIRMWAREPATH=$HOME/chipwhisperer/hardware/victims/firmware
. -
If necessary: Adjust udev rules as described here: https://chipwhisperer.readthedocs.io/en/latest/linux-install.html#installing-chipwhisperer
-
Add
cwtoolbox
as requirement to your project:pyproject.toml
:[tool.poetry.dependencies] cwtoolbox = {git = "https://github.com/hackenbergstefan/cwtoolbox.git", tag="v0.3.0"}
requirements.txt
:git+https://github.com/hackenbergstefan/cwtoolbox.git@v0.3.0#egg=cwtoolbox
-
Install ChipWhisperer as described here: https://chipwhisperer.readthedocs.io/en/latest/windows-install.html#windows-bundled-installer.
-
Assuming you installed ChipWhisperer to
C:\cw
.Add the following folders to your
PATH
:C:\cw\cw\usr\bin;C:\cw\cw\home\portable\armgcc\bin;C:\cw\cw\home\portable\avrgcc\bin
Create the following environment variable:
CWFIRMWAREPATH=C:\cw\cw\home\portable\chipwhisperer\hardware\victims\firmware
Tip: If you are using VSCode you can achieve that settings per workspace by adding a
.env
file with the following content:PATH=C:\cw\cw\usr\bin;C:\cw\cw\home\portable\armgcc\bin;C:\cw\cw\home\portable\avrgcc\bin;$env["PATH"] CWFIRMWAREPATH=C:\cw\cw\home\portable\chipwhisperer\hardware\victims\firmware
-
Add
cwtoolbox
as requirement to your project:pyproject.toml
:[tool.poetry.dependencies] cwtoolbox = {git = "https://github.com/hackenbergstefan/cwtoolbox.git", tag="v0.3.0"}
requirements.txt
:git+https://github.com/hackenbergstefan/cwtoolbox.git@v0.3.0#egg=cwtoolbox