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

Support GPG signature verification #127

Open
ddiss opened this issue Jan 26, 2017 · 11 comments
Open

Support GPG signature verification #127

ddiss opened this issue Jan 26, 2017 · 11 comments
Assignees

Comments

@ddiss
Copy link

ddiss commented Jan 26, 2017

git commits and tags can be be GPG signed using the -S and -s parameters respectively. Verification can be performed using git verify-commit/verify-tag.

tar_scm should provide the ability to verify commit/tag GPG signatures against a public key stored in the project repository.

@aspiers
Copy link
Member

aspiers commented Jan 31, 2017

Thanks, that sounds like an excellent idea!

@ddiss
Copy link
Author

ddiss commented Jan 31, 2017

Thanks for the feedback.
I have a rough WIP set of changes in my repo at https://github.com/ddiss/obs-service-tar_scm/tree/wip_gpg_signature_check . Hoping to have them cleaned up, fully tested and submitted in the next day or so.

@aspiers
Copy link
Member

aspiers commented Jan 31, 2017

@ddiss That's awesome! Please don't hate me too much, but unfortunately you'll have to rebase and fix some merge conflicts due to a reorganisation of the code which just landed in master (see #125 and #128) and is still ongoing - I'm still working on merging the remainder of commits from #123. However IIUC the main restructuring (introducing separate classes for each SCM and then splitting them out into separate files) is already in master.

@ddiss
Copy link
Author

ddiss commented Jan 31, 2017

Thanks! Yeah, I saw the new refactoring, and have rebased + pushed to the same branch.
It's still work-in-progress, but is starting to take shape.

@aspiers
Copy link
Member

aspiers commented Jan 31, 2017

Great. Sorry I lied, the splitting into separate files is not there yet but will be soon.

@ddiss
Copy link
Author

ddiss commented Jan 31, 2017

Okay, is there a branch with all of the pending changes, that I can as a staging area?

@aspiers
Copy link
Member

aspiers commented Feb 6, 2018

Sorry, somehow I missed this question (for some reason GitHub wasn't sending me email for a whole bunch of notifications before). But in any case the codebase is now stable again so it would be great if this work was rebased against latest master.

@ddiss
Copy link
Author

ddiss commented Feb 6, 2018

Yeah, sorry about the wait here. I've been pretty busy with other things, but I'll hopefully get back to it soon.

@cryptomilk
Copy link

I hope so too :-)

@bmwiedemann
Copy link
Member

How will trusted PGP keys be specified?
Other parts of OBS use a file like zsh/zsh.keyring
Can we use the same file here or will OBS then expect a signed tarball?
or maybe we add files like
foo-commit
foo-commit.asc
foo.keyring
and leave the verification to the existing code?

@ddiss
Copy link
Author

ddiss commented Feb 7, 2018

How will trusted PGP keys be specified?

it's currently implemented as an extra verify-revision-key tar_scm parameter

Other parts of OBS use a file like zsh/zsh.keyring
Can we use the same file here or will OBS then expect a signed tarball?

I guess adding the git tag verification key to the tarball keyring would be an option, but I'd like to hear from others whether that's desired.

or maybe we add files like
foo-commit
foo-commit.asc
foo.keyring
and leave the verification to the existing code?

That'd also be an option. Again, I'm open to input, I'd like to find some consensus on what would be the most suitable interface.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants