bitcoin/contrib/verify-commits
Peter Todd 1e9aab0dbf
Remove sipa's old revoked key from verify-commits
Now that the trusted root is past all commits signed by that key we don't need
it in the trusted-keys list, nor do we need to whitelist those commits in
allow-revsig-commits
2016-06-18 20:53:17 -04:00
..
allow-revsig-commits Remove sipa's old revoked key from verify-commits 2016-06-18 20:53:17 -04:00
gpg.sh Make verify-commits POSIX-compliant 2016-05-21 11:26:06 +02:00
pre-push-hook.sh Fix pre-push-hook regexes 2015-10-22 19:50:01 -07:00
README.md Add README for verify-commits 2016-06-09 13:58:29 -04:00
trusted-git-root Remove keys that are no longer used for merging 2016-05-21 11:29:01 +02:00
trusted-keys Remove sipa's old revoked key from verify-commits 2016-06-18 20:53:17 -04:00
verify-commits.sh Remove pointless warning 2016-05-21 11:26:21 +02:00

Tooling for verification of PGP signed commits

This is an incomplete work in progress, but currently includes a pre-push hook script (pre-push-hook.sh) for maintainers to ensure that their own commits are PGP signed (nearly always merge commits), as well as a script to verify commits against a trusted keys list.

Using verify-commits.sh safely

Remember that you can't use an untrusted script to verify itself. This means that checking out code, then running verify-commits.sh against HEAD is not safe, because the version of verify-commits.sh that you just ran could be backdoored. Instead, you need to use a trusted version of verify-commits prior to checkout to make sure you're checking out only code signed by trusted keys:

git fetch origin && \
  ./contrib/verify-commits/verify-commits.sh origin/master && \
  git checkout origin/master

Note that the above isn't a good UI/UX yet, and needs significant improvements to make it more convenient and reduce the chance of errors; pull-reqs improving this process would be much appreciated.