将SHA256摘要添加到RPM软件包

4
我希望为我的RPM软件包添加头部和负载的SHA256摘要。
目前,它正在使用sha1摘要构建。
以下是rpm --checksig --verbose pkg_name.rpm 的输出:
    Header SHA1 digest: OK
    MD5 digest: OK

环境 - RHEL6

这是我目前尝试的:

  • 将RPM升级到版本4.14.3,该版本默认支持sha256算法进行摘要。
  • 通过在$HOME/.rpmmacros文件或/etc/rpm/macros文件中添加以下行来覆盖摘要算法的宏参考
%_source_filedigest_algorithm 8
%_binary_filedigest_algorithm 8
  • 在将要传递给 rpmbuild 命令的 pkg.spec 文件中添加上述宏,格式如下:
%define _source_filedigest_algorithm 8
%define _binary_filedigest_algorithm 8

但以上解决方案都没有对我起作用,即使在重建后,我仍然看到我的软件包仍然使用sha1和md5作为摘要算法。
请注意每个上述解决方案的rpm --showrc | grep "digest_algo"命令的输出如下:
-13: _binary_filedigest_algorithm       8
-13: _source_filedigest_algorithm       8

1个回答

0
在构建RPM软件包的用户的主文件夹中创建名为.rpmmacros的文件,并将以下内容放入该文件中:
%_gpg_name My Key ID
%_gpg_digest_algo sha256
%_binary_filedigest_algorithm SHA256
%_source_filedigest_algorithm SHA256 
%__gpg_sign_cmd %{__gpg} \
gpg --force-v3-sigs --batch --no-verbose --no-armor --passphrase "%{getenv:KEYPASSWORD}" \
%{?_gpg_digest_algo:--digest-algo %{_gpg_digest_algo}} \
--no-secmem-warning \
-u "%{_gpg_name}" -sbo %{__signature_filename} %{__plaintext_filename}
  • 用生成的GPG密钥的名称替换"My Key ID"
  • 设置环境变量KEYPASSWORD

然后,您可以使用以下命令添加签名:

rpmsign --addsign package.rpm

注意:您需要rpm >= 4.14.3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接