Моя цель:
- Чтобы создать
sha256
для всех необходимых файлов (которые входят в .swu
) - Чтобы подписать
sw-description
файл с RSA
алгоритм.
Мой .swu
состоит из:
- Образ ядра -
bzImage
- система корневых файлов -
panther2-usb-panther2.ext4
- файл описания программного обеспечения -
sw-description
- скрипт после установки -
postinstall_swu.sh
Я создал скрипт, который генерирует sha256
и подписывает sw-description
.Вот сценарий:
#!/bin/bash
IMAGES="bzImage panther2-usb-panther2.ext4"
FILES="sw-description sw-description.sig postinstall_swu.sh $IMAGES"
echo "Executing swu signing script..."
cp ../sw-description .
cp ../postinstall_swu.sh .
cp ../../../../../deploy/images/panther2/bzImage .
cp ../../../../../deploy/images/panther2/panther2-usb-panther2.ext4 .
read -d ' ' SHA_ROOTFS < <(sha256sum panther2-usb-panther2.ext4)
read -d ' ' SHA_BZIMAGE < <(sha256sum bzImage)
read -d ' ' SHA_POSTINSTALL < <(sha256sum postinstall_swu.sh)
sed -i ':a;N;$!ba; s/sha256 = "[0-9A-Za-z]*"/sha256 = '"\"${SHA_ROOTFS}"\"'/1' sw-description
sed -i ':a;N;$!ba; s/sha256 = "[0-9A-Za-z]*"/sha256 = '"\"${SHA_BZIMAGE}"\"'/2' sw-description
sed -i ':a;N;$!ba; s/sha256 = "[0-9A-Za-z]*"/sha256 = '"\"${SHA_POSTINSTALL}"\"'/3' sw-description
openssl dgst -sha256 -sign ../priv.pem -passin file:../passphrase sw-description > sw-description.sig
for i in $FILES;do
echo $i;done | cpio -ov -H crc > panther2-swu-$USER-devbuild.swu
cp panther2-swu-$USER-devbuild.swu ../../../../../deploy/images/panther2
Является ли вышеуказанный подход лучше?
Есть ли способ попросить слой yocto / swupdate сгенерировать sha256
для всех вышеуказанных файлов(кроме sw-description
) и добавить эти сгенерированные sha256
в файл описания sw?
Я могу подписать sw-description
, определив переменные SWUPDATE_SIGNING
и SWUPDATE_PRIVATE_KEY
в моем файле рецептов, но
как сгенерировать sha256
?