Skip to content

Commit 3f1a18f

Browse files
dgarskedanielinux
authored andcommitted
Fixed unused warning fixes and missing errno.h in keygen.c. Update tools/keytools Makefile to build keygen. Cleanup to support using C version of "sign" and "keygen" after "make keytools".
1 parent 5c66492 commit 3f1a18f

5 files changed

Lines changed: 41 additions & 36 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ src/rsa4096_pub_key.c
5757

5858
# keygen binaries
5959
tools/keytools/sign
60+
tools/keytools/keygen
6061

6162
# Vim swap files
6263
.*.swp

Makefile

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -217,29 +217,22 @@ standalone:
217217
include tools/test.mk
218218

219219
ed25519.der:
220-
@python3 tools/keytools/keygen.py $(KEYGEN_OPTIONS) src/ed25519_pub_key.c
221-
220+
@$(KEYGEN_TOOL) $(KEYGEN_OPTIONS) src/ed25519_pub_key.c
222221
ecc256.der:
223-
@python3 tools/keytools/keygen.py $(KEYGEN_OPTIONS) src/ecc256_pub_key.c
222+
@$(KEYGEN_TOOL) $(KEYGEN_OPTIONS) src/ecc256_pub_key.c
224223

225224
rsa2048.der:
226-
@python3 tools/keytools/keygen.py $(KEYGEN_OPTIONS) src/rsa2048_pub_key.c
225+
@$(KEYGEN_TOOL) $(KEYGEN_OPTIONS) src/rsa2048_pub_key.c
227226

228227
rsa4096.der:
229-
@python3 tools/keytools/keygen.py $(KEYGEN_OPTIONS) src/rsa4096_pub_key.c
228+
@$(KEYGEN_TOOL) $(KEYGEN_OPTIONS) src/rsa4096_pub_key.c
230229

231230
keytools:
232231
@make -C tools/keytools
233232

234233
factory.bin: $(BOOT_IMG) wolfboot-align.bin $(PRIVATE_KEY)
235234
@echo "\t[SIGN] $(BOOT_IMG)"
236-
ifneq ("$(wildcard ./tools/keytools/sign)","")
237-
@echo "\n./tools/keytools/sign $(SIGN_OPTIONS) $(BOOT_IMG) $(PRIVATE_KEY) 1"
238-
$(Q)./tools/keytools/sign $(SIGN_OPTIONS) $(BOOT_IMG) $(PRIVATE_KEY) 1
239-
else
240-
@echo "\npython3 tools/keytools/sign.py $(SIGN_OPTIONS) $(BOOT_IMG) $(PRIVATE_KEY) 1"
241-
$(Q)python3 tools/keytools/sign.py $(SIGN_OPTIONS) $(BOOT_IMG) $(PRIVATE_KEY) 1
242-
endif
235+
$(Q)$(SIGN_TOOL) $(SIGN_OPTIONS) $(BOOT_IMG) $(PRIVATE_KEY) 1
243236
@echo "\t[MERGE] $@"
244237
@cat wolfboot-align.bin test-app/image_v1_signed.bin > $@
245238

tools/keytools/Makefile

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
# wolfBoot Signing Tool
1+
# wolfBoot KeyGen and Signing Tool
22

3-
TARGET = sign
43
CC = gcc
54
WOLFDIR = ../../lib/wolfssl/
65
CFLAGS = -Wall -I. -DWOLFSSL_USER_SETTINGS -I$(WOLFDIR)
@@ -14,8 +13,7 @@ OPTIMIZE = -Os
1413
CFLAGS+=$(OPTIMIZE)
1514

1615
# Sources
17-
SRC=sign.c \
18-
$(WOLFDIR)wolfcrypt/src/asn.c \
16+
SRC=$(WOLFDIR)wolfcrypt/src/asn.c \
1917
$(WOLFDIR)wolfcrypt/src/ecc.c \
2018
$(WOLFDIR)wolfcrypt/src/coding.c \
2119
$(WOLFDIR)wolfcrypt/src/ed25519.c \
@@ -38,15 +36,19 @@ SRC=sign.c \
3836

3937
.PHONY: clean all
4038

41-
all: $(TARGET)
39+
all: sign keygen
4240

4341
debug: CFLAGS+=$(DEBUG_FLAGS)
4442
debug: all
4543

4644
# build template
47-
$(TARGET):
48-
@echo "Building C signing tool"
49-
@$(CC) -o $(TARGET) $(SRC) $< $(CFLAGS)
45+
sign:
46+
@echo "Building signing tool"
47+
@$(CC) -o $@ $@.c $(SRC) $< $(CFLAGS)
48+
49+
keygen:
50+
@echo "Building keygen tool"
51+
@$(CC) -o $@ $@.c $(SRC) $< $(CFLAGS)
5052

5153
clean:
52-
rm -f $(TARGET)
54+
rm -f sign keygen

tools/keytools/keygen.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
#include <limits.h>
5252
#include <sys/stat.h>
5353
#include <sys/types.h>
54+
#include <errno.h>
5455

5556
#ifdef _WIN32
5657
#define PATH_MAX 256
@@ -158,9 +159,7 @@ static void keygen_ecc256(WC_RNG *rng, char *pubkfile)
158159
uint32_t qxsize = ECC256_KEY_SIZE,
159160
qysize = ECC256_KEY_SIZE,
160161
dsize = ECC256_KEY_SIZE;
161-
uint8_t priv_der[ECC256_KEY_SIZE * 4];
162162
FILE *fpriv, *fpub;
163-
uint32_t outsize = ECC256_KEY_SIZE * 4;
164163
char priv_fname[20] = "";
165164

166165

@@ -250,7 +249,6 @@ static void keygen_ed25519(WC_RNG *rng, char *pubkfile)
250249

251250
int main(int argc, char** argv)
252251
{
253-
int ret = 0;
254252
int i;
255253
int force = 0;
256254
int keytype;

tools/test.mk

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,42 @@ TEST_UPDATE_VERSION?=2
22
WOLFBOOT_VERSION?=0
33
EXPVER=tools/test-expect-version/test-expect-version
44
SPI_CHIP=SST25VF080B
5-
SIGN_TOOL=/bin/false
6-
75
SPI_OPTIONS=SPI_FLASH=1 WOLFBOOT_PARTITION_SIZE=0x80000 WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x00000 WOLFBOOT_PARTITION_SWAP_ADDRESS=0x80000
6+
SIGN_ARGS=
7+
8+
ifneq ("$(wildcard ./tools/keytools/keygen)","")
9+
KEYGEN_TOOL=./tools/keytools/keygen
10+
else
11+
KEYGEN_TOOL=python3 ./tools/keytools/keygen.py
12+
endif
13+
14+
ifneq ("$(wildcard ./tools/keytools/sign)","")
15+
SIGN_TOOL=./tools/keytools/sign
16+
else
17+
SIGN_TOOL=python3 ./tools/keytools/sign.py
18+
endif
819

920
ifeq ($(SIGN),ED25519)
10-
SIGN_TOOL=tools/keytools/sign.py --ed25519
21+
SIGN_ARGS+= --ed25519
1122
endif
1223

1324
ifeq ($(SIGN),ECC256)
14-
SIGN_TOOL=tools/keytools/sign.py --ecc256
25+
SIGN_ARGS+= --ecc256
1526
endif
1627

1728
ifeq ($(SIGN),RSA2048)
18-
SIGN_TOOL=tools/keytools/sign.py --rsa2048
29+
SIGN_ARGS+= --rsa2048
1930
endif
2031

2132
ifeq ($(SIGN),RSA4096)
22-
SIGN_TOOL=tools/keytools/sign.py --rsa4096
33+
SIGN_ARGS+= --rsa4096
2334
endif
2435

2536
ifeq ($(HASH),SHA256)
26-
SIGN_TOOL+= --sha256
37+
SIGN_ARGS+= --sha256
2738
endif
2839
ifeq ($(HASH),SHA3)
29-
SIGN_TOOL+= --sha3
40+
SIGN_ARGS+= --sha3
3041
endif
3142

3243
$(EXPVER):
@@ -86,7 +97,7 @@ test-tpm-on: FORCE
8697

8798
test-update: test-app/image.bin FORCE
8899
@dd if=/dev/zero bs=131067 count=1 2>/dev/null | tr "\000" "\377" > test-update.bin
89-
@python3 $(SIGN_TOOL) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION)
100+
@$(SIGN_TOOL) $(SIGN_ARGS) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION)
90101
@dd if=test-app/image_v$(TEST_UPDATE_VERSION)_signed.bin of=test-update.bin bs=1 conv=notrunc
91102
@printf "pBOOT" >> test-update.bin
92103
@make test-reset
@@ -100,20 +111,20 @@ test-self-update: wolfboot.bin test-app/image.bin FORCE
100111
@make clean
101112
@rm src/*_pub_key.c
102113
@make factory.bin RAM_CODE=1 WOLFBOOT_VERSION=$(WOLFBOOT_VERSION) SIGN=$(SIGN)
103-
@python3 $(SIGN_TOOL) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION)
114+
@$(SIGN_TOOL) $(SIGN_ARGS) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION)
104115
@st-flash --reset write test-app/image_v2_signed.bin 0x08020000 || \
105116
(make test-reset && sleep 1 && st-flash --reset write test-app/image_v2_signed.bin 0x08020000) || \
106117
(make test-reset && sleep 1 && st-flash --reset write test-app/image_v2_signed.bin 0x08020000)
107118
@dd if=/dev/zero bs=131067 count=1 2>/dev/null | tr "\000" "\377" > test-self-update.bin
108-
@python3 $(SIGN_TOOL) --wolfboot-update wolfboot.bin private_key.old $(WOLFBOOT_VERSION)
119+
@$(SIGN_TOOL) $(SIGN_ARGS) --wolfboot-update wolfboot.bin private_key.old $(WOLFBOOT_VERSION)
109120
@dd if=wolfboot_v$(WOLFBOOT_VERSION)_signed.bin of=test-self-update.bin bs=1 conv=notrunc
110121
@printf "pBOOT" >> test-self-update.bin
111122
@st-flash --reset write test-self-update.bin 0x08040000 || \
112123
(make test-reset && sleep 1 && st-flash --reset write test-self-update.bin 0x08040000) || \
113124
(make test-reset && sleep 1 && st-flash --reset write test-self-update.bin 0x08040000)
114125

115126
test-update-ext: test-app/image.bin FORCE
116-
@python3 $(SIGN_TOOL) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION)
127+
@$(SIGN_TOOL) $(SIGN_ARGS) test-app/image.bin $(PRIVATE_KEY) $(TEST_UPDATE_VERSION)
117128
@(dd if=/dev/zero bs=1M count=1 | tr '\000' '\377' > test-update.rom)
118129
@dd if=test-app/image_v$(TEST_UPDATE_VERSION)_signed.bin of=test-update.rom bs=1 count=524283 conv=notrunc
119130
@printf "pBOOT" | dd of=test-update.rom obs=1 seek=524283 count=5 conv=notrunc

0 commit comments

Comments
 (0)