Open znewman01 opened 1 year ago
Can I work on this?
I’d recommend doing this in a non-breaking way given we just rolled out 2.0 and shouldn’t introduce breaking behavior right away. This might introduce a lot of flag confusion though, so we need to be mindful of that.
Some of the signing and verification refactors might also tie in with the Sigstore-go library work.
@ivanayov that'd be awesome.
+1 to being careful here about compatibility.
I think there's a nice story for rolling this out:
Especially if done over 6+ months, I think this is a reasonable transition for users
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days.
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days.
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days.
Is this still open?
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days.
This issue was closed because it has been stalled for 5 days with no activity.
I think these are all fine as incremental improvements. If I'm allowed to dream big:
My overall philosophy here is to have flags to specify really clearly what's going on, and then set sensible defaults so most people don't have to think about them. I think "boolean" is the wrong type for many of these flags, which can interact in complicated ways.
So here's a proposal:
--tuf-root=URL
(default: Sigstore public good)--fulcio-root
(replaces--certificate-chain
; default: comes from TUF root)--rekor-root
(default: comes from TUF root)--ct-log-root
(default: comes from TUF root)--rekor-url=URL
,--fulcio-url=URL
,--tsa-url=URL
(defaults: URLs provided from the TUF root)--rekor-verification={offline,fallback,online,insecure}
(defaultfallback
)--sct-verification={offline,fallback,online,insecure}
(defaultfallback
; replaces--enforce-sct
flag)--tsa-verification={offline,fallback,online}
(defaultfallback
)DATA
(positional): file name forverify-blob
,gcr.io/foo:latest
forverify
--bundle
(the new bundle format)--rekor-bundle=FILE
--certificate=FILE
--signature=FILE
--offline
flag doesn't affect fetching verification material from OCI registry!--certificate-issuer
AND--certificate-identity
(optionally: also--certificate-github-*
)--key
--sk
(and optional--slot
, which should be renamed to--sk-slot
)--offline
: force all of the flags above tooffline
(except probably fetching the image from the OCI registry)I believe this accomplishes the following goals:
One point I'd like to respond to:
(Related also to "Remove the CheckOpt for TSAClient. It's not used for verification, and only used as a toggle for whether we should verify against the TSA.")
I'd like folks to be more explicit about what they're expecting here (with a reasonable default). This strikes me as a potential source of confusion.
Originally posted by @znewman01 in https://github.com/sigstore/cosign/issues/2466#issuecomment-1320213278