- Ubuntu 18.04
- Linux kernel 5.4.0
- Linux kernel header files:
sudo apt install linux-headers-$(uname -r)
- Install wolfSSL 4.8.1 (commit
e5caf5
recommended) - CMake (> 3.10)
Here is a brief introduction of all targets:
kernel_modules
: mainly for the authenticator (i.e., targets with the prefix ofmitm_auth
)common
: common libraries for Gatekeeper sender/receivercan_udp_raw
,lidar_udp_raw
: replay CAN/LiDAR data over UDP via raw socket, acting as Gatekeeper sender/receivercan_udp
,lidar_udp
: replay CAN/LiDAR data over UDP (can be used withmitm_snd
/mitm_recv
, deprecated now)tesla
: TESLA protocol librarytesla_can_udp
,tesla_lidar_udp
: replay CAN/LiDAR data over UDP, using TESLA protocolbenchmark
: benchmark applications the time-lock puzzletests
: unit tests
mkdir build
cd build
cmake ..
make
cp can_udp/udp_client can_udp/udp_server \
can_udp_raw/udp_client_raw can_udp_raw/udp_server_raw \
tesla_can_udp/tesla_udp_client tesla_can_udp/tesla_udp_server \
lidar_udp_raw/lidar_udp_client_raw lidar_udp_raw/lidar_udp_server_raw \
tesla_lidar_udp/tesla_lidar_udp_client tesla_lidar_udp/tesla_lidar_udp_server \
tesla/libtesla.so \
</path/to/SecEthernetEval>
NOTE: SecEthernetEval
cd kernel_modules
# MITM_ROLE=2, for the authenticator
make MITM_ROLE=2
# Can specify other versions of Linux kernel header files
make LINUX_DIR=</path/to/header/files> MITM_ROLE=2
Please refer to NOTES.md for development notes.