P2FA/README.md
2024-11-26 18:35:31 -05:00

1.5 KiB

P2FA

Hardware 2FA Manager

Prep build environment:

  • LG:
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
make
sudo make install
  • BCM2835
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install 

Required libs:

  • make
  • cmake
  • python3
  • python3-pip
  • gpiod
  • libgpiod-dev
  • libpng-dev
  • libncurses-dev

Build

./build.sh

Executable will be in the "c" directory If moving to an alternate directory, ensure the c/libs/libgo_p2fa.so is copied.

To add a config, create a text file in the ~/.totp directory (if it doesn't exist then create it). The name of the file will be what is populated on the device.
Ex: "google.txt" will be displayed as "google"

File Format:

key: (Base32 Key, REQUIRED)
hash: (sha1, sha256, sha512, or hmac. OPTIONAL) (default is sha1)
timestep: (int representing duration in seconds between codes, default is 30, OPTIONAL)
counter: (int between 6 and 10 inclusive, HOTP counter, default is 6, OPTIONAL)
digits: (int between 1 and 10 inclusive, how many digits to generate, default is 6, OPTIONAL) 

Example:

key: GGAMSYNKW3H7HEKK
hash: sha1
timestep: 30
counter: 6
digits: 6