This page describes how to install programs in this repository.
The device is an Arduino sketch targeting ESP32 development boards with ESP32-D0WD or similar chips. It also contains certain instrumentation features.
To install the program to a microcontroller:
- Install Arduino IDE, Arduino core for the ESP32 v2.0.14, NimBLE and esp8266ndn libraries.
- Clone this repository to
$HOME/Arduino/libraries
. - Copy
sample.config.hpp
toconfig.hpp
, and modify as necessary. - In Arduino Tools menu, select "Board: ESP32 Dev Module" and "Partition Scheme: No OTA (2MB APP/2MB FATFS)".
- Flash the firmware as usual.
The authenticator is a CLI program for Linux. It can be installed on Ubuntu 20.04 with the programs/install.sh script.
The certificate authority is a Node.js program.
To install the program:
- Install Node.js 20.x with nvm or NodeSource APT.
corepack pnpm install
.- Modify
.env
as necessary.
To start the program:
corepack pnpm -s start --nop
enables "nop" challenge, for obtaining authenticator certificate.corepack pnpm -s start
enables "possession" challenge only, for normal operation.
pcapparse is a Go program for parsing packet dump from an experiment.
To install the program:
- Install Go 1.22.
go install ./cmd/pion-pcapparse
sudo install -t /usr/local/bin ~/go/bin/pion-pcapparse
The experiment script is a Node.js program.
Installation procedure is same as the certificate authority.
To run the experiment:
- Setup the environment according to experiment system setup.
- Install the authenticator and the PCAP parser.
- Create an authenticator certificate (see below).
- Start the certificate authority normally.
pipenv install
.corepack pnpm -s start --count N
runs the experiment N times, default is 1.
To create an authenticator certificate, start the certificate authority with "nop" challenge enabled, then:
export NDNPH_UPLINK_UDP=127.0.0.1
export NDNPH_UPLINK_UDP_PORT=6363
unset NDNPH_UPLINK_MTU
export NDNPH_KEYCHAIN=./runtime/keychain
ndnph-keychain keygen a /my-network/32=pion-authenticator/$(openssl rand -hex 4) >/dev/null
ndnph-ndncertclient -P ../ca/runtime/profile.data -i a | ndnph-keychain certimport a
ndnph-keychain certinfo a