在RPM包中添加SHA256 digest



我想在我的RPM包中添加头和有效载荷的SHA256摘要。

目前,它正在构建sha1摘要。

下面的是的输出rpm --checksig --verbose pkg_name.rpm

Header SHA1 digest: OK
MD5 digest: OK

Environment -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

创建文件.rpmmacros在构建RPM包的用户的主文件夹中,并将这些内容放在这个文件中:

%_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

最新更新