将 SHA256 摘要添加到 RPM 包

问题描述 投票:0回答:1

我想将标头和负载的 SHA256 摘要添加到我的 RPM 包中。

目前正在使用 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
  • pkg.spec文件中添加上述宏,如下所示,该文件将传递给rpmbuild命令
%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

linux hash sha256 rpmbuild rpm-spec
1个回答
1
投票

在构建 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}
  • 将“
    My Key ID
    ”替换为生成的 GPG 密钥的名称
  • 设置环境变量
    KEYPASSWORD

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

rpmsign --addsign package.rpm

注意: 您需要 rpm >= 4.14.3

支持的宏参考

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.