Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create subcommands to help people move to trusted roots and protobuf ("new") bundles #3855

Closed
steiza opened this issue Aug 28, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@steiza
Copy link
Member

steiza commented Aug 28, 2024

Description

We are working on adding support to cosign for trusted roots (#3700) and the protobuf bundle format (#3139).

For folks who have previously signed disparate content, it could be helpful to have a subcommand that helps them assemble it into a new protobuf bundle.

Likewise, for folks with a private Sigstore deployment, it might be helpful to provide a subcommand that takes disparate verification material and assembles a trusted root.

Here's an example of what those commands could look like:

cosign create-new-bundle

Assembles a protobuf ("new") bundle. Has flags similar to `verify-blob` and `verify-blob-attestation`. Includes whatever information is not empty strings.

    --bundle='':
	path to bundle FILE to output

    --certificate='':
	path to the public certificate. The certificate will be verified
	against the Fulcio roots.

    --rfc3161-timestamp='':
	path to RFC3161 timestamp FILE

    --sct='':
	path to a detached Signed Certificate Timestamp, formatted as a
	RFC6962 AddChainResponse struct. If a certificate contains an SCT,
	verification will check both the detached and embedded SCTs.

    --signature='':
	signature content or path or remote URL
cosign create-trusted-root

Defaults to output PGI trusted root, obtained via TUF. Has flags similar to `verify-blob` and `verify-blob-attestation`. Includes whatever information is not empty strings (e.g. if you don't want a timestamp authority in your trusted root, leave off `--timestamp-certificate-chain`). 

    --ca-intermediates='':
	path to a file of intermediate CA certificates in PEM format which
	will be needed when building the certificate chains for the signing
	certificate. The flag is optional and must be used together with
	--ca-roots, conflicts with --certificate-chain.

    --ca-roots='':
	path to a bundle file of CA certificates in PEM format which will be
	needed when building the certificate chains for the signing
	certificate. Conflicts with --certificate-chain.

    --certificate-chain='':
	path to a list of CA certificates in PEM format which will be needed
	when building the certificate chain for the signing certificate. Must
	start with the parent intermediate CA certificate of the signing
	certificate and end with the root certificate. Conflicts with
	--ca-roots and --ca-intermediates.

    --key='':
	path to the public key file, KMS URI or Kubernetes Secret

    --rekor-url='https://rekor.sigstore.dev':
	address of rekor STL server

    --timestamp-certificate-chain='':
	path to PEM-encoded certificate chain file for the RFC3161 timestamp
	authority. Must contain the root CA certificate. Optionally may
	contain intermediate CA certificates, and may contain the leaf TSA
	certificate if not present in the timestamp

    --trusted-root='':
	path to trusted root FILE to output
@steiza
Copy link
Member Author

steiza commented Aug 28, 2024

See #3794 (comment) instead

@steiza steiza closed this as not planned Won't fix, can't repro, duplicate, stale Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant