Release signing and verification
- Dominant language
- Rust
- Stars
- 659
- Forks
- 36
- Avg merge
- 18m
- Merged PRs (30d)
- 2
Description
Once the manifest format is designed and basic support is implemented (#321), we should add functionality to verify releases.
Verification can mean a few things:
- Verifying that a manifest has a given secure hash.
- Checking the contents against the manifest.
- Checking that included signatures are valid.
- Checking that one or more keys provided signatures with a given intent.
- Checking that something more abstract than a key provided a signature. For example, that someone trusted in some keyring signed, or a particular keybase user signed.
I would like to have first-class support for keybase. I don't like that keybase can be censored and that it's centralized, but PKI other than keybase is very bad, so we've got to make do.
I'd also like to support signing with non-keybase PGP agents and keys, but those systems are so fiddly and have such bad defaults that support will likely be limited.
There are many reasons that someone might want to sign something, so signatures should include an "intent".
Intents might include:
- I created this
- I packaged this
- I released this
- I think this is non-malicious
- I think this is correct
- I think this is good
It should be possible to sign with multiple intents, like "I released this and I think this is non malicious".
Contributor guide
Assessment
This issue has not been assessed yet.