Compare commits
6 Commits
6909e0359c
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 2519f799fd | |||
| 32f563a28d | |||
| 7b471948b4 | |||
| d2363c8ad8 | |||
| 9306ad5043 | |||
| 54d031bc27 |
31
README.md
31
README.md
@@ -18,7 +18,7 @@ To clone the source code and compile, use the following commands.
|
||||
```
|
||||
git clone --recursive https://git.spengler.co.za/deon/gnuk.git gnuk
|
||||
cd gnuk/src
|
||||
./configure --vidpid=1209:2440
|
||||
./configure --vidpid=1337:0010
|
||||
make
|
||||
```
|
||||
|
||||
@@ -30,17 +30,9 @@ How to flash the Gnuk firmware
|
||||
==============================
|
||||
In order to flash the firmware ensure that you have openocd installed.
|
||||
|
||||
Now create a file called stm32f103.cfg with the following content
|
||||
```
|
||||
telnet_port 4444
|
||||
source [find interface/stlink.cfg]
|
||||
source [find target/stm32f1x.cfg]
|
||||
set WORKAREASIZE 0x10000
|
||||
```
|
||||
|
||||
Execute openocd and connect with telnet
|
||||
```
|
||||
openocd -f stm32f103.cfg
|
||||
openocd -f ../misc/stm32f103.cfg
|
||||
telnet localhost 4444
|
||||
```
|
||||
|
||||
@@ -49,11 +41,28 @@ Use the following commands to unlock, flash the firmware and lock the device aga
|
||||
reset halt
|
||||
stm32f1x unlock 0
|
||||
reset halt
|
||||
flash write_bank 0 ./src/build/gnuk.bin 0
|
||||
flash write_bank 0 ./build/gnuk.bin 0
|
||||
stm32f1x lock 0
|
||||
reset halt
|
||||
```
|
||||
|
||||
How to reflash the ST-LINK
|
||||
==========================
|
||||
To reflash the ST-LINK, connect the device to a programmer as before while keeping pins 7 and 8 shorted. While the LED is blinking, run openocd. Once it’s running (i.e. it doesn’t show any errors), you can unshort the pins.
|
||||
|
||||
Then use the following to unlock and reflash.
|
||||
```
|
||||
reset halt
|
||||
stm32f1x unlock 0
|
||||
reset halt
|
||||
stm32f1x mass_erase 0
|
||||
flash write_bank 0 ./build/gnuk.bin 0
|
||||
stm32f1x lock 0
|
||||
reset halt
|
||||
```
|
||||
|
||||
***Note: That reprograming will wipe the flash memory and you will lose all key's that was on the device.***
|
||||
|
||||
Testing Gnuk
|
||||
============
|
||||
Type following command to see if GnuPG detects the Gnuk token.
|
||||
|
||||
2
chopstx
2
chopstx
Submodule chopstx updated: e12a7e0bb3...a8e9074faf
@@ -1,7 +0,0 @@
|
||||
FROM gnuk:latest
|
||||
|
||||
LABEL Description="Image for checking gnuK"
|
||||
|
||||
RUN apt install -y shellcheck
|
||||
RUN apt install -y clang libfindbin-libs-perl
|
||||
RUN apt clean
|
||||
@@ -1,4 +0,0 @@
|
||||
FROM gnuk:latest
|
||||
LABEL Description="Image for building gnuK with debugging"
|
||||
|
||||
RUN apt install -y gdb-arm-none-eabi && apt clean
|
||||
@@ -1,6 +0,0 @@
|
||||
FROM debian:latest
|
||||
LABEL Description="Image for building gnuK"
|
||||
|
||||
RUN apt update -y && apt install -y make gcc-arm-none-eabi && apt clean
|
||||
|
||||
CMD ["/bin/sh", "-c", "cd /gnuk/src && make clean && ./configure $GNUK_CONFIG && make"]
|
||||
@@ -1,36 +0,0 @@
|
||||
ifndef GNUK_CONFIG
|
||||
$(warning configuration flags not set in GNUK_CONFIG)
|
||||
endif
|
||||
|
||||
all: ../chopstx docker-build-release
|
||||
docker run --user=`id -u` --env GNUK_CONFIG --rm -v `pwd`/..:/gnuk/ -t gnuk:latest
|
||||
|
||||
clean: docker-build-release
|
||||
docker run --user=`id -u` --env GNUK_CONFIG --rm -v `pwd`/..:/gnuk/ -w /gnuk/src -t gnuk:latest make clean
|
||||
|
||||
gdb: docker-build-debug
|
||||
docker run --net host --rm -i -v `pwd`/..:/gnuk/ -t gnuk:latest-debug arm-none-eabi-gdb /gnuk/src/build/gnuk.elf
|
||||
|
||||
shellcheck: docker-build-check
|
||||
docker run --rm -v `pwd`/..:/gnuk/ -t gnuk:latest-check shellcheck /gnuk/src/configure
|
||||
|
||||
CHECKERS=security optin nullability core deadcode alpha.core alpha.security
|
||||
scan-build: clean docker-build-check
|
||||
docker run --user=`id -u` --rm -v `pwd`/..:/gnuk/ -w /gnuk/src -t gnuk:latest-check scan-build -o scan-build \
|
||||
-analyze-headers -stats $(addprefix -enable-checker ,$(CHECKERS)) -k \
|
||||
--use-cc=arm-none-eabi-gcc \
|
||||
make
|
||||
../chopstx:
|
||||
git submodule update --init
|
||||
|
||||
docker-build-release:
|
||||
docker build -t gnuk:latest -f `pwd`/Dockerfile.release ..
|
||||
|
||||
docker-build-debug: docker-build-release
|
||||
docker build -t gnuk:latest-debug -f `pwd`/Dockerfile.debug ..
|
||||
|
||||
docker-build-check: docker-build-release
|
||||
docker build -t gnuk:latest-check -f `pwd`/Dockerfile.check ..
|
||||
|
||||
.PHONY: all clean gdb shellcheck scan-build \
|
||||
docker-build-release docker-build-debug docker-build-check
|
||||
4
misc/stm32f103.cfg
Normal file
4
misc/stm32f103.cfg
Normal file
@@ -0,0 +1,4 @@
|
||||
telnet_port 4444
|
||||
source [find interface/stlink.cfg]
|
||||
source [find target/stm32f1x.cfg]
|
||||
set WORKAREASIZE 0x10000
|
||||
2
src/configure
vendored
2
src/configure
vendored
@@ -44,7 +44,7 @@ pinpad=no
|
||||
certdo=no
|
||||
hid_card_change=no
|
||||
factory_reset=yes
|
||||
ackbtn_support=no
|
||||
ackbtn_support=yes
|
||||
flash_override=""
|
||||
kdf_do=${kdf_do:-optional}
|
||||
# For emulation
|
||||
|
||||
@@ -31,6 +31,7 @@ USB_PRODUCT_LIST=[
|
||||
{ 'vendor' : 0x234b, 'product' : 0x0000 }, # FSIJ Gnuk Token
|
||||
{ 'vendor' : 0x20a0, 'product' : 0x4211 }, # Nitrokey Start
|
||||
{ 'vendor' : 0x1209, 'product' : 0x2440 }, # GnuPG e.V.
|
||||
{ 'vendor' : 0x1337, 'product' : 0x0010 }, # DTS Gnuk Token
|
||||
]
|
||||
|
||||
# USB class, subclass, protocol
|
||||
|
||||
Reference in New Issue
Block a user