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

Discuss and implement PGP support. #58

Open
dpc opened this issue Dec 13, 2018 · 10 comments
Open

Discuss and implement PGP support. #58

dpc opened this issue Dec 13, 2018 · 10 comments
Labels
design How should it work enhancement New feature or request help needed Extra help is needed

Comments

@dpc
Copy link
Collaborator

dpc commented Dec 13, 2018

I am a heavy GPG user, and I belive it's a PITA for a mass audience. But it's almost the only game in town for hardware keys support, so security-minded people will probably want to use that.

GPG support is not implemented, but can be added at later time.

The identity would look like this:

from:
  id-type: pgp
  id:  4488680DA3CF5F2B4756ED873D23EC2392F2EDE7
  url: "https:/someuser/crev-proofs"

The exported public key will be embedded into git repo somewhere.The pgp WoT won't be involved at all here: just 1:1 match between the ID and gpg identity to use to check the signatures against.

Also, review timestamp should be checked to within time of life of a PGP identity.

When the PGP key goes out of life, the author will just create a new one, and set the trust to the old one as high.

It should be fairly straightforward to add, but it is not high on my personal priority list.

@dpc dpc added enhancement New feature or request help needed Extra help is needed design How should it work labels Dec 13, 2018
@stevenroose
Copy link

I think it makes sense to reuse existing key infrastructure like PGP yes. Though trusting a PGP identity should of course not be equal to trusting his code reviews ;)

@dpc
Copy link
Collaborator Author

dpc commented Dec 14, 2018

@stevenroose Yes. GPG's WoT is completely out of the picture for Crev. WoT-s between GPG and Crev serve different purposes: confirming that underlying identity is true vs trusting someones code reviews.

@stevenroose
Copy link

But that doesn't take away the utility of using PGP identities for crev, though.

@dpc
Copy link
Collaborator Author

dpc commented Dec 18, 2018

I have created this ticket for a reason. I'm not disputing utility of supporting PGP. 😎

@tiziano88
Copy link

In terms of integration with cargo-crev, what would be considered acceptable?

I can think of the following models, in increasing level of complexity:

  • cargo crev just outputs unsigned files, then the user manually signs them using plain gpg, then cargo crev reimports the signed files
  • cargo crev invokes the gpg cli to automatically sign the files (I think it should work as long as gpg-agent is running in the same session, but I am not 100% sure)
  • cargo crev integrates natively with gpg via Rust somehow (not sure there are even the necessary bindings for this)

@tiziano88
Copy link

I guess a similar interface to git for signing commits may be used: https://help.github.com/en/github/authenticating-to-github/telling-git-about-your-signing-key

@dpc
Copy link
Collaborator Author

dpc commented Jun 13, 2020

https://sequoia-pgp.org/ , haven't checked if they have SC support already.

@dignifiedquire
Copy link

there is a pure rust pgp implementation available under the pgp crate. this is currently used in rustup for signature validation, so already is in use by the wider rust community

disclaimer: I maintain that crate

@chpio
Copy link

chpio commented Oct 27, 2021

https://sequoia-pgp.org/ , haven't checked if they have SC support already.

this issue seems related: https://gitlab.com/sequoia-pgp/sequoia/-/issues/114

@JanZerebecki
Copy link
Contributor

Another way is to only cross link identities, as you can not only use email in gpg identities. See e.g.: https:/wiktor-k/openpgp-proofs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design How should it work enhancement New feature or request help needed Extra help is needed
Projects
None yet
Development

No branches or pull requests

6 participants