Skip to content

消费证明

PyPI 通过简单的索引(HTML)和简单的 JSON API 提供文件的认证信息。

有关完整的 API 参考,请参阅Integrity API 文档。

内部

由于一个分发文件可以包含多个认证,而 PyPI 将这些认证作为一个单独的 JSON 文件提供,因此该 JSON 文件将这些认证分组到一个来源对象中。该对象包含按用于签名它们的受信任发布者身份分组的认证包。

要手动验证 PyPI 工件是否与其来源对象相符,pypi-attestations可以使用 CLI 工具:

export WHEEL_DIRECT_URL=https://files.pythonhosted.org/packages/d7/73/c16e5f3f0d37c60947e70865c255a58dc408780a6474de0523afd0ec553a/sampleproject-4.0.0-py3-none-any.whl

pypi-attestations verify pypi --repository https://github.com/pypa/sampleproject $WHEEL_DIRECT_URL

它会从 PyPI 下载 wheel 文件及其对应的来源 JSON 文件(使用 Integrity API),检查来源中指定的受信任发布者是否与--repository用户传递的参数匹配,最后根据包含的证明对 wheel 文件进行加密验证。