我想在我的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