Skip to content

Commit dd8fb02

Browse files
committed
keytools: Added tests for new features
1 parent 56be972 commit dd8fb02

File tree

1 file changed

+92
-4
lines changed

1 file changed

+92
-4
lines changed

.github/workflows/test-keytools.yml

Lines changed: 92 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,96 @@ jobs:
145145
run: |
146146
./tools/keytools/sign --rsa2048 --sha256 --manual-sign test-app/image.elf public-key.der 1 test-app/image_v1.sig
147147
148+
# SIGN tool options
149+
- name: make clean
150+
run: |
151+
make distclean
152+
153+
- name: Select config
154+
run: |
155+
cp config/examples/sim.config .config && make include/target.h
156+
157+
- name: Build tools
158+
run: |
159+
make -C tools/keytools && make -C tools/bin-assemble
160+
161+
- name: Build wolfboot
162+
run: |
163+
make SIGN=ECC256 HASH=SHA256
164+
165+
- name: Sign without timestamp
166+
run: |
167+
./tools/keytools/sign --ecc256 --sha256 --no-ts test-app/image.elf wolfboot_signing_private_key.der 2
168+
169+
# TODO: requires hexdump
170+
#- name: Check that timestamp is not included in the signed image
171+
# run: |
172+
# ! (hexdump -C -n 256 test-app/image_v3_signed.bin |grep "02 00 08 00")
173+
174+
# Universal keystore
175+
- name: make clean
176+
run: |
177+
make distclean
178+
179+
- name: Select config
180+
run: |
181+
cp config/examples/sim.config .config && make include/target.h
182+
183+
- name: Build tools
184+
run: |
185+
make -C tools/keytools && make -C tools/bin-assemble
186+
187+
- name: Generate external RSA2048 key
188+
run: |
189+
openssl genrsa -out private-key.pem 2048
190+
191+
- name: Convert to DER
192+
run: |
193+
openssl rsa -in private-key.pem -inform PEM -out private-key.der -outform DER
194+
195+
- name: Export external public key
196+
run: |
197+
openssl rsa -inform DER -outform DER -in private-key.der -out public-rsa2048-key.der -pubout
198+
199+
- name: Add different keys to the keystore (two generated ECC with different curves, one imported RSA)
200+
run: |
201+
./tools/keytools/keygen --rsa2048 -i public-rsa2048-key.der --ecc256 -g wolfboot_signing_private_key.der --ecc384 -g ecc384-priv-key.der
202+
203+
- name: Build wolfboot with universal keystore
204+
run: |
205+
make SIGN=ECC256 HASH=SHA256 WOLFBOOT_UNIVERSAL_KEYSTORE=1
206+
207+
# keygen option: masks
208+
- name: make clean
209+
run: |
210+
make distclean
211+
212+
- name: Select config
213+
run: |
214+
cp config/examples/sim.config .config && make include/target.h
215+
216+
- name: Build tools
217+
run: |
218+
make -C tools/keytools && make -C tools/bin-assemble
219+
220+
- name: Run keygen with no specific mask
221+
run: |
222+
./tools/keytools/keygen --ecc256 -g wolfboot_signing_private_key.der | grep "mask" | grep "ffffffff"
223+
224+
- name: Delete generated key
225+
run: |
226+
rm -f wolfboot_signing_private_key.der
227+
228+
- name: Run keygen with --id 0
229+
run: |
230+
./tools/keytools/keygen --id 0 --ecc256 -g wolfboot_signing_private_key.der | grep "mask" | grep "00000001"
231+
232+
- name: Delete generated key
233+
run: |
234+
rm -f wolfboot_signing_private_key.der
235+
236+
- name: Run keygen with test id set
237+
run: |
238+
./tools/keytools/keygen --id 1,3,5,10,11,13,14 --ecc256 -g wolfboot_signing_private_key.der | grep "mask" | grep "00006c2a"
239+
148240
149-
# TODO: Test WOLFBOOT_UNIVERSAL_KEYSTORE
150-
# TODO: Test sign "--no-ts"
151-
# TODO: Test keygen with --id "keygen --ecc256 -g generic.key --id 1,2,3 -g restricted.key"
152-
# TODO: Test keygen with -i "keygen --ecc256 -g a.key --ecc384 -g b.key --rsa2048 -i rsa-pub.der"

0 commit comments

Comments
 (0)