VERIFY-SIG.ECLASS
部分: eclass-manpages (5)更新时间: 2024 年 11 月
索引 返回主内容
名称
verify-sig.eclass - 用于验证分发文件上游签名的 Eclass描述
verify-sig eclass 提供了一种简化的方式来验证分发文件上游签名。它的主要目的是允许开发人员在更新软件包时轻松验证签名。Eclass 消除了开发人员忘记执行验证或以不正确的方式执行验证(例如,由于本地密钥环中存在额外的密钥)的风险。它还允许用户验证开发人员的工作。要使用此 Eclass,首先将上游的密钥打包为 sec-keys/openpgp-keys-*。然后继承此 Eclass,将分离的签名添加到 SRC_URI 并设置 VERIFY_SIG_OPENPGP_KEY_PATH。Eclass 提供 verify-sig USE 标志来切换验证。
如果您需要使用 signify,您可能需要将分发文件复制到 WORKDIR 以解决“符号链接层级过多”错误。
更完整的指南可以在以下网址找到: https://mgorny.pl/articles/verify-sig-by-example.html
支持的 EAPIS
7 8示例
示例用法
inherit verify-sig SRC_URI="https://example.org/${P}.tar.gz verify-sig? ( https://example.org/${P}.tar.gz.sig )" BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-example )" VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/example.asc
函数
- verify-sig_verify_detached <文件> <签名文件> [<密钥文件>]
- 从 <签名文件> 读取分离的签名,并使用它验证 <文件>。<密钥文件> 可以直接传递,或者默认为 VERIFY_SIG_OPENPGP_KEY_PATH。如果验证失败,该函数将终止。
- verify-sig_verify_message <文件> <输出文件> [<密钥文件>]
- 验证文件('-' 代表标准输入)是否包含有效的已签名的 PGP 消息,并将消息写入 <输出文件>('-' 代表标准输出)。<密钥文件> 可以直接传递,或者默认为 VERIFY_SIG_OPENPGP_KEY_PATH。如果验证失败,该函数将终止。请注意,使用 <输出文件> 的输出很重要,因为它可以防止注入未签名的数据。
- verify-sig_verify_unsigned_checksums <校验和文件> <格式> <文件>
- 使用 <校验和文件> 验证在空格分隔的列表 <文件>(类似于 ${A})中列出的所有文件的校验和。<格式> 指定校验和文件格式。<校验和文件> 可以是 '-' 代表标准输入。
支持以下格式
- sha256 -- sha256sum (<哈希> <文件名>)
- openssl-dgst -- openssl dgst (<算法>(<文件名>)=<哈希>)如果其中一个文件与校验和不匹配或在校验和文件中缺失,该函数将终止。
请注意,此函数本身只能验证文件的完整性。为了验证其真实性,<校验和文件> 必须先针对签名进行验证,例如使用 verify-sig_verify_detached。如果它包含内联签名,请使用 verify-sig_verify_signed_checksums 代替。
- verify-sig_verify_signed_checksums <校验和文件> <算法> <文件> [<密钥文件>]
- 使用签名的 <校验和文件> 验证在空格分隔的列表 <文件>(类似于 ${A})中列出的所有文件的校验和。<算法> 指定校验和算法(例如 sha256)。<密钥文件> 可以直接传递,或者默认为 VERIFY_SIG_OPENPGP_KEY_PATH。
如果签名验证失败,校验和文件包含未签名的数据,其中一个文件与校验和不匹配或在校验和文件中缺失,该函数将终止。
- verify-sig_src_unpack
- 默认的 src_unpack 覆盖,如果启用了 'verify-sig' 标志,则会验证所有分发文件的签名。如果任何签名验证失败或任何分发文件未签名,该函数将终止。如果您需要执行部分验证,请自己编写 src_unpack()。
Eclass 变量
- VERIFY_SIG_METHOD ?= openpgp (在继承之前设置)
- 要使用的签名验证方法。允许的值是
- minisig -- 使用 (base64) Ed25519 公钥使用 app-crypt/minisign 验证签名
- openpgp -- 使用 app-crypt/gnupg 验证 PGP 签名(默认值)
- sigstore -- 使用 dev-python/sigstore 验证签名
- signify -- 使用 Ed25519 公钥使用 app-crypt/signify 验证签名 - VERIFY_SIG_OPENPGP_KEY_PATH
- 用于执行验证的密钥捆绑包的路径。这在使用默认的 src_unpack 时是必需的。或者,密钥路径可以直接传递给验证函数。
BROOT 的值将自动添加到此路径的前面。
此变量也用于非 OpenPGP 签名。名称包含 "OPENPGP" 是出于历史原因。它不用于 sigstore,因为它使用单个受信任的根。
- VERIFY_SIG_CERT_IDENTITY
- 传递给 sigstore 调用的 --cert-identity。
- VERIFY_SIG_CERT_OIDC_ISSUER
- 传递给 sigstore 调用的 --cert-oidc-issuer。
- VERIFY_SIG_OPENPGP_KEYSERVER
- 用于刷新密钥的密钥服务器。如果未指定,将使用密钥中的密钥服务器首选项。如果密钥未指定首选项,将使用 GnuPG 默认值。
仅支持 OpenPGP。
- VERIFY_SIG_OPENPGP_KEY_REFRESH ?= no (用户变量)
- 尝试通过 WKD/密钥服务器刷新密钥。在 make.conf 中将其设置为 "yes" 以启用。请注意,这需要有效的互联网连接。
支持 OpenPGP 和 sigstore。
维护者
Michał Górny <[email protected]>报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug文件
verify-sig.eclass另请参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/verify-sig.eclass
索引
此文档由 man2html 使用手册页创建。
时间: 2024 年 11 月 12 日,格林威治标准时间 03:27:00