sigstore/protobuf-specs
GitHub: sigstore/protobuf-specs
定义 Sigstore 软件供应链安全体系中各组件间通信的 Protocol Buffer 消息格式规范,支持多语言代码生成。
Stars: 34 | Forks: 50
# protobuf-specs
本仓库包含用于 Sigstore 消息的 protobuf 规范。
## Protobuf
如果您更改了 protobuf 定义,则需要通过对已更改的 `.proto` 文件运行 protocol buffer 编译器来重新生成代码。
您需要安装 [Docker](https://docs.docker.com/get-docker/) 并将其配置为 [以非 root 用户运行](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) 才能生成 protobuf 存根。然后运行,
```
$ make all
```
以在 `gen/` 下生成 Go 和 Python 文件。
## 添加新算法
随着 NIST 对后量子密码学签名算法的标准化,
ML-DSA (FIPS 204, Dilithium) 和 SLH-DSA (FIPS 205, SPHINCS+),以及正在进行的
标准化 [另一组算法](https://csrc.nist.gov/projects/pqc-dig-sig) 的工作,
Sigstore 将接受额外的算法来签名工件和验证材料。
要添加新算法,您必须首先通过更新
[算法注册表规范](https://github.com/sigstore/architecture-docs/blob/main/algorithm-registry.md) 与社区达成共识。
标记客户端维护者以确保其生态系统能够支持新算法。
算法不必被所有客户端支持,但您不应提议
尚未广泛标准化的算法。算法必须在 Go 中受支持,因为 Fulcio 和 Rekor
需要更新以支持签名验证,并且 Go 库应是
知名且经过审查的,而不是基于带有 Go 绑定的 C 实现。
更新规范后,更新
[`PublicKeyDetails`](https://github.com/sigstore/protobuf-specs/blob/c30eb14cece57d88c08579197ecfdb57a5f1aba5/protos/sigstore_common.proto#L63)
以包含新的签名算法标识符。如果该算法还使用新的哈希算法,请更新
[`HashAlgorithm`](https://github.com/sigstore/protobuf-specs/blob/c30eb14cece57d88c08579197ecfdb57a5f1aba5/protos/sigstore_common.proto#L37)。
## Service Builder
本项目将容器发布到 [`ghcr.io/sigstore/protobuf-specs-service-builder`](https://github.com/sigstore/protobuf-specs/pkgs/container/protobuf-specs-service-builder)
其中包含所有必要的 protoc 工具、.proto 文件和 .proto 依赖项,用于为 sigstore 服务(如 rekor 和 fulcio)生成服务
定义。此容器不打算供任何其他
人使用,将不提供任何请求或支持。
## 弃用通知
- 自 2025 年 7 月 17 日起:gen/jsonschema/schemas/ 中的 jsonschema 生成文件已从本仓库中移除。
标签:API 规范, CVE, DevSecOps, Docker, FIPS 204, FIPS 205, Go, JSONLines, ML-DSA, Protocol Buffers, Python, Ruby工具, Sigstore, SLH-DSA, 上游代理, 互操作性, 代码生成, 加密算法, 后量子密码学, 安全防御评估, 工件验证, 数字签名, 数据格式, 无后门, 日志审计, 渗透测试工具, 请求拦截, 软件供应链安全, 远程方法调用, 逆向工具, 零信任