summaryrefslogtreecommitdiffstats
path: root/scripts/sign_images.sh
blob: f37c2f5016c43c1e9a5a3969a051425708466f8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

# directory where search for images
TOP_DIR="${TOP_DIR:-./bin/targets}"
# key to sign images
BUILD_KEY="${BUILD_KEY:-key-build}" # TODO unify naming?
# remove other signatures (added e.g.  by buildbot)
REMOVE_OTER_SIGNATURES="${REMOVE_OTER_SIGNATURES:-1}"

# find all sysupgrade images in TOP_DIR
# factory images don't need signatures as non OpenWrt system doesn't check them anyway
for image in $(find $TOP_DIR -type f -name "*-sysupgrade.bin"); do
	# check if image actually support metadata
	if fwtool -i /dev/null "$image"; then
		# remove all previous signatures
		if [ -n "$REMOVE_OTER_SIGNATURES" ]; then
			while [ "$?" = 0 ]; do
				fwtool -t -s /dev/null "$image"
			done
		fi
		# run same operation as build root does for signing
		cp "$BUILD_KEY.ucert" "$image.ucert"
		usign -S -m "$image" -s "$BUILD_KEY" -x "$image.sig"
		ucert -A -c "$image.ucert" -x "$image.sig"
		fwtool -S "$image.ucert" "$image"
	fi
done