Improved service.

This commit is contained in:
2018-08-12 13:03:59 +00:00
parent 5c908d8530
commit d513724b0e
5 changed files with 80 additions and 4 deletions

View File

@@ -1 +0,0 @@
/usr/bin/isticktoit_usb

View File

@@ -15,7 +15,7 @@ U2FDevice: $(OBJECTS) libuECC.o libcppb64.o
install: U2FDevice
install -m775 -t /usr/bin U2FDevice
install -m775 -t /etc/systemd/system U2FDevice.service
install -m775 -t /etc/systemd/system Services/U2FDevice.service
install -d /usr/share/U2FDevice/
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp

View File

@@ -1,13 +1,22 @@
To make HID work
sudo install -m755 Scripts/Kernel_HID_Config.sh /usr/bin/Kernel_HID_Config.sh
sudoedit /etc/rc.local # Add '/usr/bin/Kernel_HID_Config.sh' on a new line before 'exit 0'
Things to install
//To provide HW RNG facilities
To provide HW RNG facilities
sudo apt-get install rng-tools
//To provide ECC facilities
To provide ECC facilities
git submodule update --init --recursive
cp Scripts/uECC-Makefile micro-ecc/Makefile
cp Scripts/cpp-base64-Makefile cpp-base64/Makefile
To change the Attestation certificate, see the Attestation readme
To build
make

68
Scripts/Kernel_HID_Config.sh Executable file
View File

@@ -0,0 +1,68 @@
#!/usr/bin/env bash
# Directly from http://isticktoit.net/?p=1383
# Load libcomposite
modprobe libcomposite
cd /sys/kernel/config/usb_gadget/
# Create gadget
mkdir -p /sys/kernel/config/usb_gadget/hidraw
cd /sys/kernel/config/usb_gadget/hidraw
# Add basic information
echo 0x0100 > bcdDevice # Version 1.0.0
echo 0x0200 > bcdUSB # USB 2.0
# For this part, used the Linux idVendor
# Of course, no official spec for Raspberry Pi 0 acting as U2F device, so self defined product here we go
echo 0x1d6b > idVendor # Linux Foundation
echo 0x0400 > idProduct # Self defined U2F device
echo 0x0000 > bDeviceClass # RAW HID?
echo 0x0000 > bDeviceSubClass #
echo 0x0040 > bMaxPacketSize0 # Max Packet Size
# Create English locale
mkdir -p strings/0x409
# Obviously, feel free to change these however you want
echo "Michael Kuc" > strings/0x409/manufacturer
echo "Raspberry U2f" > strings/0x409/product
echo "0123456789" > strings/0x409/serialnumber
# Create HIDRAW function
mkdir -p functions/hid.usb0
echo 0 > functions/hid.usb0/protocol
echo 8 > functions/hid.usb0/report_length
echo 1 > functions/hid.usb0/subclass
printf '\x06\xD0\xF1\x09\x01\xA1\x01\x09\x20\x15\x00\x26\xFF\x00\x75\x08\x95\x40\x81\x02\x09\x21\x15\x00\x26\xFF\x00\x75\x08\x95\x40\x91\x02\xC0' > functions/hid.usb0/report_desc
# Create ECM function
mkdir -p functions/ecm.usb0
# An attempt at keeping addresses constant
echo "DD:03:52:23:18:4C" > functions/ecm.usb0/host_addr
echo "62:30:54:93:06:DE" > functions/ecm.usb0/dev_addr
# Create configuration
mkdir -p configs/c.1
mkdir -p configs/c.1/strings/0x409
echo 0x80 > configs/c.1/bmAttributes
echo 200 > configs/c.1/MaxPower
echo "HIDRAW" > configs/c.1/strings/0x409/configuration
# Link HID function to configuration
ln -s functions/hid.usb0 configs/c.1
# Link g_ether function to configuration
ln -s functions/ecm.usb0 configs/c.1
# Sleep for 1 second
sleep 1
# Enable gadget
ls /sys/class/udc > UDC