我的目标是
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
?
答案 0 :(得分:1)
meta-swupdate Yocto层负责签名的图像。
Swupdate图片配方应包含例如:
SWUPDATE_SIGNING = "RSA"
SWUPDATE_PRIVATE_KEY = "/path/to/key"
然后,在sw-description file
中使用以下语法自动计算sha256:
sha256 = "@panther2-usb-panther2.ext4";
panther2-usb-panther2.ext4
是SWUPDATE_IMAGES
变量中列出的工件。
更多详细信息,请参见: