npm8中文文档
为了确保您从公共 npm 注册表或任何支持签名的注册表下载的包的完整性,您可以使用 npm CLI 验证下载包的注册表签名。
可以使用以下 audit
命令验证注册表签名:
$ npm audit signatures
如果遵循以下约定,npm CLI 支持任何注册表提供的注册表签名和签名密钥:
dist
对象中每个已发布版本的包的 packument
中提供:"dist":{
"..omitted..": "..omitted..",
"signatures": [{
"keyid": "SHA256:{{SHA256_PUBLIC_KEY}}",
"sig": "a312b9c3cb4a1b693e8ebac5ee1ca9cc01f2661c14391917dcb111517f72370809..."
}]
}
查看来自公共 npm 注册表的签名包的 示例。
sig
使用以下模板生成:${package.name}@${package.version}:${package.dist.integrity}
和 keyid
必须匹配下面的公共签名密钥之一。
registry-host.tld/-/npm/v1/keys
以以下格式提供:{
"keys": [{
"expires": null,
"keyid": "SHA256:{{SHA256_PUBLIC_KEY}}",
"keytype": "ecdsa-sha2-nistp256",
"scheme": "ecdsa-sha2-nistp256",
"key": "{{B64_PUBLIC_KEY}}"
}]
}
键响应:
expires
:空或简化扩展 ISO 8601 格式:YYYY-MM-DDTHH:mm:ss.sssZ
keydid
:公钥的sha256指纹keytype
:npm CLI 目前仅支持 ecdsa-sha2-nistp256
scheme
:npm CLI 目前仅支持 ecdsa-sha2-nistp256
key
:base64 编码的公钥请参阅此 来自公共 npm 注册表的示例密钥响应。