@@ -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