【问题标题】:Is there a way to create hash(sha256) for images in Yocto's swupdate layer?有没有办法为 Yocto 的 swupdate 层中的图像创建哈希(sha256)?
【发布时间】:2019-09-18 18:30:43
【问题描述】:

我的目标是,

  1. 为所有需要的文件创建sha256(进入.swu
  2. 使用RSA 算法签署sw-description 文件。

我的.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层为上述所有文件(sw-description除外)生成sha256并将这些生成的sha256添加到sw-description文件中?

我可以通过在我的配方文件中定义SWUPDATE_SIGNINGSWUPDATE_PRIVATE_KEY 变量来签署sw-description,但是

如何生成sha256

【问题讨论】:

  • 再次不要重新发明轮子,meta-swupdate 已经做得很好了。如果你想自己做,可以使用bb.utils.sha256_filepython函数
  • 你能告诉我我应该怎么做才能在 meta-swupdate 中启用sha256 生成,因为我在任何地方都找不到它。任何需要设置的配置或环境变量
  • 我在您之前的帖子中添加了一条评论,提供了相关信息。
  • 我浏览了这些链接,但在 sha256 上没有找到任何东西,这让我发布了这个问题
  • 也许this page 解释得更好。您只需在sw-description 中添加sha256 = "@panther2-usb-panther2.ext4"; 即可自动生成sha256,然后您需要在recipe 中添加SWUPDATE_SIGNING SWUPDATE_IMAGES SWUPDATE_IMAGES_FSTYPES 变量。

标签: yocto sha256 software-update rsa-sha256


【解决方案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.ext4SWUPDATE_IMAGES 变量中列出的工件。

更多详情请见:

【讨论】:

    猜你喜欢
    • 2019-11-10
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多