summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile41
1 files changed, 39 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 8a7381f..7dcd9d5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,49 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright(c) 2019 Bjørn Mork <bjorn@mork.no>
-FILES=version opt.local
+FILES=version opt.local
+PRIKEY=PriKey.pem
+SIGNKEY=signkey.pem
-all: opt.squashfs
+all: fw.tar
version: dcs8000lh-configure.py
sed -ne 's/"//g' -e 's/^VERSION *= *//p' dcs8000lh-configure.py >$@
opt.squashfs: $(FILES)
mksquashfs $(FILES) $@ -all-root -comp xz
+
+aes.key:
+ openssl rand 16 > $@
+
+aes.key.rsa: aes.key $(PRIKEY)
+ openssl rsautl -encrypt -in aes.key -inkey $(PRIKEY) -out $@
+
+### FIXME: This is verified using the pubkey in /etc/db/verify.key, which will fail
+sign.sha1.rsa: sign.sha1 $(SIGNKEY)
+ openssl rsautl -sign -inkey $(SIGNKEY) -out sign.sha1.rsa -in sign.sha1
+
+$(SIGNKEY):
+ openssl genrsa -out $(SIGNKEY)
+
+sign.sha1: update.bin.aes aes.key.rsa certificate.info update.sha1
+ cat $^ | openssl dgst -sha1 | cut -d' ' -f2 > $@
+
+fw.tar: certificate.info aes.key.rsa sign.sha1.rsa update.aes update.bin.aes
+ tar cvf $@ $^
+
+update.sha1: update.aes
+ openssl dgst -sha1 $^ | cut -d' ' -f2 > $@
+
+update.aes: aes.key opt.squashfs
+ openssl aes-128-cbc -md md5 -kfile aes.key -nosalt -e -out $@ -in opt.squashfs
+
+update.bin.aes: aes.key update.bin
+ openssl aes-128-cbc -md md5 -kfile aes.key -nosalt -e -out $@ -in update.bin
+
+clean:
+ rm *.rsa *.aes opt.squashfs sign.sha1
+
+distclean: clean
+ rm aes.key
+