mirror of
https://github.com/linuxboot/heads.git
synced 2025-01-30 16:14:01 +00:00
Merge pull request #761 from Nitrokey/hotp-neutral
Fix branding issue with HOTP USB Security Dongles
This commit is contained in:
commit
7ea13ee000
@ -8,13 +8,13 @@ stages:
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
retry: 2
|
retry: 1
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
- packages
|
- packages
|
||||||
- crossgcc
|
- crossgcc
|
||||||
- build
|
- build
|
||||||
key: "heads-$GITLAB_USER_LOGIN"
|
key: "heads-$GITLAB_USER_LOGIN-2"
|
||||||
script:
|
script:
|
||||||
- dnf install -y @development-tools gcc-c++ gcc-gnat zlib-devel perl-Digest-MD5 perl-Digest-SHA uuid-devel pcsc-tools ncurses-devel lbzip2 libuuid-devel lzma elfutils-libelf-devel bc bzip2 bison flex git gnupg iasl m4 nasm patch python wget libusb-devel cmake automake pv bsdiff autoconf libtool cpio texinfo
|
- dnf install -y @development-tools gcc-c++ gcc-gnat zlib-devel perl-Digest-MD5 perl-Digest-SHA uuid-devel pcsc-tools ncurses-devel lbzip2 libuuid-devel lzma elfutils-libelf-devel bc bzip2 bison flex git gnupg iasl m4 nasm patch python wget libusb-devel cmake automake pv bsdiff autoconf libtool cpio texinfo
|
||||||
- git fetch origin
|
- git fetch origin
|
||||||
@ -75,6 +75,8 @@ build:
|
|||||||
- cat ./build/qemu-coreboot/hashes.txt
|
- cat ./build/qemu-coreboot/hashes.txt
|
||||||
- echo "Archiving qemu-coreboot logs..."
|
- echo "Archiving qemu-coreboot logs..."
|
||||||
- tar zcvf ./build/qemu-coreboot/logs.tar.gz ./build/log/*
|
- tar zcvf ./build/qemu-coreboot/logs.tar.gz ./build/log/*
|
||||||
|
- echo "Calculate used space for cache"
|
||||||
|
- du -shc packages crossgcc build
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- ./build/qemu-coreboot
|
- ./build/qemu-coreboot
|
||||||
|
2
Makefile
2
Makefile
@ -428,7 +428,7 @@ bin_modules-$(CONFIG_FLASHTOOLS) += flashtools
|
|||||||
bin_modules-$(CONFIG_NEWT) += newt
|
bin_modules-$(CONFIG_NEWT) += newt
|
||||||
bin_modules-$(CONFIG_CAIRO) += cairo
|
bin_modules-$(CONFIG_CAIRO) += cairo
|
||||||
bin_modules-$(CONFIG_FBWHIPTAIL) += fbwhiptail
|
bin_modules-$(CONFIG_FBWHIPTAIL) += fbwhiptail
|
||||||
bin_modules-$(CONFIG_LIBREMKEY) += libremkey-hotp-verification
|
bin_modules-$(CONFIG_HOTPKEY) += hotp-verification
|
||||||
bin_modules-$(CONFIG_MSRTOOLS) += msrtools
|
bin_modules-$(CONFIG_MSRTOOLS) += msrtools
|
||||||
|
|
||||||
$(foreach m, $(bin_modules-y), \
|
$(foreach m, $(bin_modules-y), \
|
||||||
|
@ -22,7 +22,7 @@ CONFIG_TPMTOTP=y
|
|||||||
#CONFIG_NEWT=y
|
#CONFIG_NEWT=y
|
||||||
CONFIG_CAIRO=y
|
CONFIG_CAIRO=y
|
||||||
CONFIG_FBWHIPTAIL=y
|
CONFIG_FBWHIPTAIL=y
|
||||||
CONFIG_LIBREMKEY=y
|
CONFIG_HOTPKEY=y
|
||||||
|
|
||||||
CONFIG_LINUX_USB=y
|
CONFIG_LINUX_USB=y
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ CONFIG_TPMTOTP=y
|
|||||||
#CONFIG_NEWT=y
|
#CONFIG_NEWT=y
|
||||||
CONFIG_CAIRO=y
|
CONFIG_CAIRO=y
|
||||||
CONFIG_FBWHIPTAIL=y
|
CONFIG_FBWHIPTAIL=y
|
||||||
CONFIG_LIBREMKEY=y
|
CONFIG_HOTPKEY=y
|
||||||
|
|
||||||
CONFIG_LINUX_USB=y
|
CONFIG_LINUX_USB=y
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ CONFIG_TPMTOTP=y
|
|||||||
#CONFIG_NEWT=y
|
#CONFIG_NEWT=y
|
||||||
CONFIG_CAIRO=y
|
CONFIG_CAIRO=y
|
||||||
CONFIG_FBWHIPTAIL=y
|
CONFIG_FBWHIPTAIL=y
|
||||||
CONFIG_LIBREMKEY=y
|
CONFIG_HOTPKEY=y
|
||||||
|
|
||||||
CONFIG_LINUX_USB=y
|
CONFIG_LINUX_USB=y
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ CONFIG_TPMTOTP=y
|
|||||||
#CONFIG_NEWT=y
|
#CONFIG_NEWT=y
|
||||||
CONFIG_CAIRO=y
|
CONFIG_CAIRO=y
|
||||||
CONFIG_FBWHIPTAIL=y
|
CONFIG_FBWHIPTAIL=y
|
||||||
CONFIG_LIBREMKEY=y
|
CONFIG_HOTPKEY=y
|
||||||
|
|
||||||
CONFIG_LINUX_USB=y
|
CONFIG_LINUX_USB=y
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ CONFIG_DROPBEAR=y
|
|||||||
#CONFIG_NEWT=y
|
#CONFIG_NEWT=y
|
||||||
CONFIG_CAIRO=y
|
CONFIG_CAIRO=y
|
||||||
CONFIG_FBWHIPTAIL=y
|
CONFIG_FBWHIPTAIL=y
|
||||||
CONFIG_LIBREMKEY=y
|
CONFIG_HOTPKEY=y
|
||||||
|
|
||||||
CONFIG_LINUX_USB=y
|
CONFIG_LINUX_USB=y
|
||||||
CONFIG_LINUX_E1000E=y
|
CONFIG_LINUX_E1000E=y
|
||||||
|
@ -92,10 +92,10 @@ update_totp()
|
|||||||
{
|
{
|
||||||
echo "Scan the QR code to add the new TOTP secret"
|
echo "Scan the QR code to add the new TOTP secret"
|
||||||
/bin/seal-totp
|
/bin/seal-totp
|
||||||
if [ -x /bin/libremkey_hotp_verification ]; then
|
if [ -x /bin/hotp_verification ]; then
|
||||||
echo "Once you have scanned the QR code, hit Enter to configure your Librem Key"
|
echo "Once you have scanned the QR code, hit Enter to configure your HOTP USB Security Dongle (e.g. Librem Key or Nitrokey)"
|
||||||
read
|
read
|
||||||
/bin/seal-libremkey
|
/bin/seal-hotpkey
|
||||||
else
|
else
|
||||||
echo "Once you have scanned the QR code, hit Enter to continue"
|
echo "Once you have scanned the QR code, hit Enter to continue"
|
||||||
read
|
read
|
||||||
@ -118,7 +118,7 @@ clean_boot_check()
|
|||||||
[ $GPG_KEY_COUNT -ne 0 ] && return
|
[ $GPG_KEY_COUNT -ne 0 ] && return
|
||||||
|
|
||||||
# check for USB security token
|
# check for USB security token
|
||||||
if [ "$CONFIG_LIBREMKEY" = "y" ]; then
|
if [ "$CONFIG_HOTPKEY" = "y" ]; then
|
||||||
enable_usb
|
enable_usb
|
||||||
if ! gpg --card-status > /dev/null ; then
|
if ! gpg --card-status > /dev/null ; then
|
||||||
return
|
return
|
||||||
@ -140,6 +140,13 @@ else
|
|||||||
mount_boot
|
mount_boot
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Use stored HOTP key branding
|
||||||
|
if [ -r /boot/kexec_hotp_key ]; then
|
||||||
|
HOTPKEY_BRANDING="$(cat /boot/kexec_hotp_key)"
|
||||||
|
else
|
||||||
|
HOTPKEY_BRANDING="HOTP USB Security Dongle"
|
||||||
|
fi
|
||||||
|
|
||||||
last_half=X
|
last_half=X
|
||||||
while true; do
|
while true; do
|
||||||
MAIN_MENU_OPTIONS=""
|
MAIN_MENU_OPTIONS=""
|
||||||
@ -188,14 +195,16 @@ while true; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$totp_confirm" = "i" -o -z "$totp_confirm" ]; then
|
if [ "$totp_confirm" = "i" -o -z "$totp_confirm" ]; then
|
||||||
if [ -x /bin/libremkey_hotp_verification ]; then
|
if [ -x /bin/hotp_verification ]; then
|
||||||
HOTP=`unseal-hotp`
|
HOTP=`unseal-hotp`
|
||||||
enable_usb
|
enable_usb
|
||||||
if ! libremkey_hotp_verification info ; then
|
if ! hotp_verification info ; then
|
||||||
whiptail $CONFIG_WARNING_BG_COLOR --clear --title 'WARNING: Please Insert Your Librem Key' --msgbox "Your Librem Key was not detected.\n\nPlease insert your Librem Key" 30 90
|
whiptail $CONFIG_WARNING_BG_COLOR --clear \
|
||||||
|
--title "WARNING: Please Insert Your $HOTPKEY_BRANDING" \
|
||||||
|
--msgbox "Your $HOTPKEY_BRANDING was not detected.\n\nPlease insert your $HOTPKEY_BRANDING" 30 90
|
||||||
fi
|
fi
|
||||||
# Don't output HOTP codes to screen, so as to make replay attacks harder
|
# Don't output HOTP codes to screen, so as to make replay attacks harder
|
||||||
libremkey_hotp_verification check $HOTP
|
hotp_verification check $HOTP
|
||||||
case "$?" in
|
case "$?" in
|
||||||
0 )
|
0 )
|
||||||
HOTP="Success"
|
HOTP="Success"
|
||||||
@ -205,7 +214,7 @@ while true; do
|
|||||||
MAIN_MENU_BG_COLOR=$CONFIG_ERROR_BG_COLOR
|
MAIN_MENU_BG_COLOR=$CONFIG_ERROR_BG_COLOR
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
HOTP="Error checking code, Insert Librem Key and retry"
|
HOTP="Error checking code, Insert $HOTPKEY_BRANDING and retry"
|
||||||
MAIN_MENU_BG_COLOR=$CONFIG_WARNING_BG_COLOR
|
MAIN_MENU_BG_COLOR=$CONFIG_WARNING_BG_COLOR
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -84,9 +84,9 @@ cat "$KEY_DEVICES" | cut -d\ -f1 | xargs /bin/qubes-measure-luks \
|
|||||||
|| die "Unable to measure the LUKS headers"
|
|| die "Unable to measure the LUKS headers"
|
||||||
luks_pcr=`tpm calcfuturepcr -ix 16 -if /tmp/luksDump.txt`
|
luks_pcr=`tpm calcfuturepcr -ix 16 -if /tmp/luksDump.txt`
|
||||||
|
|
||||||
# Librem Key loads USB modules which changes PCR5.
|
# HOTP USB Secrity Dongle loads USB modules which changes PCR5.
|
||||||
# In the event Librem Key is enabled, skip verification of PCR5
|
# In the event HOTP USB Security Dongle is enabled, skip verification of PCR5
|
||||||
if [ -x /bin/libremkey_hotp_verification ]; then
|
if [ -x /bin/hotp_verification ]; then
|
||||||
pcr_5="X"
|
pcr_5="X"
|
||||||
else
|
else
|
||||||
pcr_5="0000000000000000000000000000000000000000"
|
pcr_5="0000000000000000000000000000000000000000"
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Retrieve the sealed TOTP secret and initialize a Librem Key with it
|
# Retrieve the sealed TOTP secret and initialize a USB Security dongle with it
|
||||||
|
|
||||||
. /etc/functions
|
. /etc/functions
|
||||||
|
|
||||||
HOTP_SEALED="/tmp/secret/hotp.sealed"
|
HOTP_SEALED="/tmp/secret/hotp.sealed"
|
||||||
HOTP_SECRET="/tmp/secret/hotp.key"
|
HOTP_SECRET="/tmp/secret/hotp.key"
|
||||||
HOTP_COUNTER="/boot/kexec_hotp_counter"
|
HOTP_COUNTER="/boot/kexec_hotp_counter"
|
||||||
|
HOTP_KEY="/boot/kexec_hotp_key"
|
||||||
|
|
||||||
mount_boot()
|
mount_boot()
|
||||||
{
|
{
|
||||||
@ -16,6 +17,13 @@ mount_boot()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Use stored HOTP key branding (this might be useful after OEM reset)
|
||||||
|
if [ -r /boot/kexec_hotp_key ]; then
|
||||||
|
HOTPKEY_BRANDING="$(cat /boot/kexec_hotp_key)"
|
||||||
|
else
|
||||||
|
HOTPKEY_BRANDING="HOTP USB Security Dongle"
|
||||||
|
fi
|
||||||
|
|
||||||
tpm nv_readvalue \
|
tpm nv_readvalue \
|
||||||
-in 4d47 \
|
-in 4d47 \
|
||||||
-sz 312 \
|
-sz 312 \
|
||||||
@ -49,26 +57,35 @@ mount_boot
|
|||||||
counter_value=1
|
counter_value=1
|
||||||
|
|
||||||
enable_usb
|
enable_usb
|
||||||
if ! libremkey_hotp_verification info ; then
|
if ! hotp_verification info ; then
|
||||||
echo "Insert your Librem Key and press Enter to configure it"
|
echo "Insert your $HOTPKEY_BRANDING and press Enter to configure it"
|
||||||
read
|
read
|
||||||
if ! libremkey_hotp_verification info ; then
|
if ! hotp_verification info ; then
|
||||||
# don't leak key on failure
|
# don't leak key on failure
|
||||||
shred -n 10 -z -u "$HOTP_SECRET" 2> /dev/null
|
shred -n 10 -z -u "$HOTP_SECRET" 2> /dev/null
|
||||||
die "Unable to find Librem Key"
|
die "Unable to find $HOTPKEY_BRANDING"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Set HOTP USB Security Dongle branding based on VID
|
||||||
|
if [ ! $(lsusb | grep -q "20a0:") ]; then
|
||||||
|
HOTPKEY_BRANDING="Nitrokey"
|
||||||
|
elif [ ! $(lsusb | grep -q "316d:") ]; then
|
||||||
|
HOTPKEY_BRANDING="Librem Key"
|
||||||
|
else
|
||||||
|
HOTPKEY_BRANDING="HOTP USB Security Dongle"
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e ""
|
echo -e ""
|
||||||
read -s -p "Enter your Librem Key Admin PIN: " admin_pin
|
read -s -p "Enter your $HOTPKEY_BRANDING Admin PIN: " admin_pin
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
|
|
||||||
libremkey_hotp_initialize "$admin_pin" $HOTP_SECRET $counter_value
|
hotp_initialize "$admin_pin" $HOTP_SECRET $counter_value "$HOTPKEY_BRANDING"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
read -s -p "Error setting HOTP secret, re-enter Admin PIN and try again: " admin_pin
|
read -s -p "Error setting HOTP secret, re-enter Admin PIN and try again: " admin_pin
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
if ! libremkey_hotp_initialize "$admin_pin" $HOTP_SECRET $counter_value ; then
|
if ! hotp_initialize "$admin_pin" $HOTP_SECRET $counter_value "$HOTPKEY_BRANDING" ; then
|
||||||
# don't leak key on failure
|
# don't leak key on failure
|
||||||
shred -n 10 -z -u "$HOTP_SECRET" 2> /dev/null
|
shred -n 10 -z -u "$HOTP_SECRET" 2> /dev/null
|
||||||
die "Setting HOTP secret failed"
|
die "Setting HOTP secret failed"
|
||||||
@ -90,11 +107,15 @@ counter_value=`expr $counter_value + 1`
|
|||||||
echo $counter_value > $HOTP_COUNTER \
|
echo $counter_value > $HOTP_COUNTER \
|
||||||
|| die "Unable to create hotp counter file"
|
|| die "Unable to create hotp counter file"
|
||||||
|
|
||||||
|
# Store/overwrite HOTP USB Security Dongle branding found out beforehand
|
||||||
|
echo $HOTPKEY_BRANDING > $HOTP_KEY \
|
||||||
|
|| die "Unable to store hotp key file"
|
||||||
|
|
||||||
#sha256sum /tmp/counter-$counter > $HOTP_COUNTER \
|
#sha256sum /tmp/counter-$counter > $HOTP_COUNTER \
|
||||||
#|| die "Unable to create hotp counter file"
|
#|| die "Unable to create hotp counter file"
|
||||||
mount -o remount,ro /boot
|
mount -o remount,ro /boot
|
||||||
|
|
||||||
echo -e "\nLibrem Key initialized successfully. Press Enter to continue."
|
echo -e "\n$HOTPKEY_BRANDING initialized successfully. Press Enter to continue."
|
||||||
read
|
read
|
||||||
|
|
||||||
exit 0
|
exit 0
|
@ -1,2 +1,2 @@
|
|||||||
# empty placeholder file
|
# empty placeholder file
|
||||||
# This submodule is defined in modules/libremkey-hotp-verification
|
# This submodule is defined in modules/hotp-verification
|
||||||
|
37
modules/hotp-verification
Normal file
37
modules/hotp-verification
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
modules-$(CONFIG_HOTPKEY) += hotp-verification
|
||||||
|
|
||||||
|
hotp-verification_depends := libusb $(musl_dep)
|
||||||
|
|
||||||
|
hotp-verification_version := 5fb260e631b237a298b6dcca47bbd728f2c5ac3a
|
||||||
|
hotp-verification_dir := hotp-verification-$(hotp-verification_version)
|
||||||
|
hotp-verification_tar := nitrokey-hotp-verification-$(hotp-verification_version).tar.gz
|
||||||
|
hotp-verification_url := https://github.com/Nitrokey/nitrokey-hotp-verification/archive/$(hotp-verification_version).tar.gz
|
||||||
|
hotp-verification_hash := 5d98d158ba97fb970061d68e2c6f41582395e687b7752efb1a8038762b0e7b79
|
||||||
|
|
||||||
|
hotp-verification_target := \
|
||||||
|
$(MAKE_JOBS) \
|
||||||
|
$(CROSS_TOOLS) \
|
||||||
|
|
||||||
|
hotp-verification_output := \
|
||||||
|
hotp_verification \
|
||||||
|
hotp_initialize
|
||||||
|
|
||||||
|
hotp-verification_configure := \
|
||||||
|
INSTALL="$(INSTALL)" \
|
||||||
|
CROSS="$(CROSS)" \
|
||||||
|
$(CROSS_TOOLS) $(MAKE) LDFLAGS="$(INSTALL)/lib/libusb-1.0.so" GITVERSION="" LIBUSB_FLAGS="-I/usr/include/libusb-1.0" PKGCONFIG="" && $(MAKE) install INSTALL="$(INSTALL)"
|
||||||
|
|
||||||
|
hotp-verification_depends += hidapi
|
||||||
|
modules-y += hidapi
|
||||||
|
|
||||||
|
hidapi_version := e5ae0d30a523c565595bdfba3d5f2e9e1faf0bd0
|
||||||
|
hidapi_dir := hotp-verification-$(hotp-verification_version)/hidapi
|
||||||
|
hidapi_tar := hidapi-$(hidapi_version).tar.xz
|
||||||
|
hidapi_url := https://github.com/Nitrokey/hidapi/archive/$(hidapi_version).tar.gz
|
||||||
|
hidapi_hash := acc2a5089a8917085c2b3ebe9446065a21c760ba7e13cb54917043c4122188e0
|
||||||
|
|
||||||
|
|
||||||
|
## hidapi will be built as part of hotp-verification
|
||||||
|
## so nothing to do here (but need make to be happy)
|
||||||
|
hidapi_output := .built
|
||||||
|
hidapi_configure := echo -e 'all:\n\ttouch .built' > Makefile
|
@ -1,37 +0,0 @@
|
|||||||
modules-$(CONFIG_LIBREMKEY) += libremkey-hotp-verification
|
|
||||||
|
|
||||||
libremkey-hotp-verification_depends := libusb $(musl_dep)
|
|
||||||
|
|
||||||
libremkey-hotp-verification_version := 809953b9b4bef97a4cffaa20d675bd7fe9d8da53
|
|
||||||
libremkey-hotp-verification_dir := libremkey-hotp-verification-$(libremkey-hotp-verification_version)
|
|
||||||
libremkey-hotp-verification_tar := nitrokey-hotp-verification-$(libremkey-hotp-verification_version).tar.gz
|
|
||||||
libremkey-hotp-verification_url := https://github.com/Nitrokey/nitrokey-hotp-verification/archive/$(libremkey-hotp-verification_version).tar.gz
|
|
||||||
libremkey-hotp-verification_hash := 251e5cef74e4e45eeddc49e4a1da1e22d1de774cd32cb0451a9030579ae958ba
|
|
||||||
|
|
||||||
libremkey-hotp-verification_target := \
|
|
||||||
$(MAKE_JOBS) \
|
|
||||||
$(CROSS_TOOLS) \
|
|
||||||
|
|
||||||
libremkey-hotp-verification_output := \
|
|
||||||
libremkey_hotp_verification \
|
|
||||||
libremkey_hotp_initialize
|
|
||||||
|
|
||||||
libremkey-hotp-verification_configure := \
|
|
||||||
INSTALL="$(INSTALL)" \
|
|
||||||
CROSS="$(CROSS)" \
|
|
||||||
$(CROSS_TOOLS) $(MAKE) LDFLAGS="$(INSTALL)/lib/libusb-1.0.so" && $(MAKE) install INSTALL="$(INSTALL)"
|
|
||||||
|
|
||||||
libremkey-hotp-verification_depends += hidapi
|
|
||||||
modules-y += hidapi
|
|
||||||
|
|
||||||
hidapi_version := e5ae0d30a523c565595bdfba3d5f2e9e1faf0bd0
|
|
||||||
hidapi_dir := libremkey-hotp-verification-$(libremkey-hotp-verification_version)/hidapi
|
|
||||||
hidapi_tar := hidapi-$(hidapi_version).tar.xz
|
|
||||||
hidapi_url := https://github.com/Nitrokey/hidapi/archive/$(hidapi_version).tar.gz
|
|
||||||
hidapi_hash := acc2a5089a8917085c2b3ebe9446065a21c760ba7e13cb54917043c4122188e0
|
|
||||||
|
|
||||||
|
|
||||||
## hidapi will be built as part of libremkey-hotp-verification
|
|
||||||
## so nothing to do here (but need make to be happy)
|
|
||||||
hidapi_output := .built
|
|
||||||
hidapi_configure := echo -e 'all:\n\ttouch .built' > Makefile
|
|
@ -1,73 +0,0 @@
|
|||||||
--- nitrokey-hotp-verification-a/Toolchain-heads.cmake 2018-05-22 09:55:46.907209235 -0700
|
|
||||||
+++ nitrokey-hotp-verification-b/Toolchain-heads.cmake 2018-05-22 09:55:26.659371966 -0700
|
|
||||||
@@ -0,0 +1,27 @@
|
|
||||||
+SET(CMAKE_SYSTEM_NAME Linux)
|
|
||||||
+SET(CMAKE_SYSTEM_VERSION 1)
|
|
||||||
+
|
|
||||||
+# Specify the cross compiler
|
|
||||||
+SET(CMAKE_C_COMPILER $ENV{CROSS}gcc)
|
|
||||||
+SET(CMAKE_CXX_COMPILER $ENV{CROSS}gcc)
|
|
||||||
+
|
|
||||||
+#sysroot location
|
|
||||||
+set(MYSYSROOT $ENV{INSTALL})
|
|
||||||
+
|
|
||||||
+# compiler/linker flags
|
|
||||||
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=${MYSYSROOT}" CACHE INTERNAL "" FORCE)
|
|
||||||
+set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} --sysroot=${MYSYSROOT}" CACHE INTERNAL "" FORCE)
|
|
||||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --sysroot=${MYSYSROOT}" CACHE INTERNAL "" FORCE)
|
|
||||||
+set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} --sysroot=${MYSYSROOT}" CACHE INTERNAL "" FORCE)
|
|
||||||
+
|
|
||||||
+# Where is the target environment
|
|
||||||
+SET(CMAKE_FIND_ROOT_PATH "${MYSYSROOT}")
|
|
||||||
+
|
|
||||||
+# Search for programs only in the build host directories
|
|
||||||
+SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
+
|
|
||||||
+# Search for libraries and headers only in the target directories
|
|
||||||
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
+
|
|
||||||
+INCLUDE_DIRECTORIES(hidapi)
|
|
||||||
--- libremkey-hotp-verification/device.c 2018-06-20 16:13:36.417804210 -0700
|
|
||||||
+++ libremkey-hotp-verification-b/device.c 2018-06-20 16:14:34.532367723 -0700
|
|
||||||
@@ -34,7 +34,7 @@
|
|
||||||
const unsigned short m_vid = 0x20a0;
|
|
||||||
const unsigned short m_pid = 0x4108;
|
|
||||||
|
|
||||||
-static const int CONNECTION_ATTEMPTS_COUNT = 80;
|
|
||||||
+static const int CONNECTION_ATTEMPTS_COUNT = 2;
|
|
||||||
|
|
||||||
static const int CONNECTION_ATTEMPT_DELAY_MICRO_SECONDS = 1000*1000/2;
|
|
||||||
|
|
||||||
--- libremkey-hotp-verification/libremkey_hotp_initialize
|
|
||||||
+++ libremkey-hotp-verification-b/libremkey_hotp_initialize
|
|
||||||
@@ -14,9 +14,9 @@ fi
|
|
||||||
PIN=$1
|
|
||||||
SECRET=$2
|
|
||||||
COUNTER=$3
|
|
||||||
-SECRET_B32=$(echo -n $SECRET | base32)
|
|
||||||
+SECRET_B32=$(cat $SECRET | base32)
|
|
||||||
|
|
||||||
-libremkey_hotp_verification set $SECRET_B32 $PIN
|
|
||||||
+libremkey_hotp_verification set $SECRET_B32 "$PIN"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "ERROR: Setting HOTP secret on Librem Key failed!"
|
|
||||||
exit 1
|
|
||||||
@@ -25,7 +25,7 @@ fi
|
|
||||||
i=9
|
|
||||||
while [ "$i" -lt "$COUNTER" ]; do
|
|
||||||
echo "Updating counter to $i"
|
|
||||||
- HOTP_CODE=$(echo $SECRET | hotp $i)
|
|
||||||
+ HOTP_CODE=$(hotp $i < $SECRET)
|
|
||||||
libremkey_hotp_verification check $HOTP_CODE > /dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "HOTP check failed for counter=$i, code=$HOTP_CODE"
|
|
||||||
@@ -34,7 +34,7 @@ while [ "$i" -lt "$COUNTER" ]; do
|
|
||||||
let "i += 10"
|
|
||||||
done
|
|
||||||
|
|
||||||
-HOTP_CODE=$(echo $SECRET | hotp $COUNTER)
|
|
||||||
+HOTP_CODE=$(hotp $COUNTER < $SECRET)
|
|
||||||
libremkey_hotp_verification check $HOTP_CODE > /dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "HOTP check failed for counter=$COUNTER, code=$HOTP_CODE"
|
|
Loading…
x
Reference in New Issue
Block a user