Merge branch 'jc/push-cert'
commitfb06b5280ea05d75515fa780cf08d4ec9d6fe101
authorJunio C Hamano <gitster@pobox.com>
Wed, 8 Oct 2014 20:05:15 +0000 (8 13:05 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 Oct 2014 20:05:25 +0000 (8 13:05 -0700)
tree9d7c7032df370076149f31f3373e067b69248169
parent325602ce120e7bd7321b9ed409b49b48fd20888e
parent6f5ef44e0d8933621fcd50127518557013002313
Merge branch 'jc/push-cert'

Allow "git push" request to be signed, so that it can be verified and
audited, using the GPG signature of the person who pushed, that the
tips of branches at a public repository really point the commits
the pusher wanted to, without having to "trust" the server.

* jc/push-cert: (24 commits)
  receive-pack::hmac_sha1(): copy the entire SHA-1 hash out
  signed push: allow stale nonce in stateless mode
  signed push: teach smart-HTTP to pass "git push --signed" around
  signed push: fortify against replay attacks
  signed push: add "pushee" header to push certificate
  signed push: remove duplicated protocol info
  send-pack: send feature request on push-cert packet
  receive-pack: GPG-validate push certificates
  push: the beginning of "git push --signed"
  pack-protocol doc: typofix for PKT-LINE
  gpg-interface: move parse_signature() to where it should be
  gpg-interface: move parse_gpg_output() to where it should be
  send-pack: clarify that cmds_sent is a boolean
  send-pack: refactor inspecting and resetting status and sending commands
  send-pack: rename "new_refs" to "need_pack_data"
  receive-pack: factor out capability string generation
  send-pack: factor out capability string generation
  send-pack: always send capabilities
  send-pack: refactor decision to send update per ref
  send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
  ...
13 files changed:
Documentation/config.txt
Documentation/git-push.txt
Documentation/technical/pack-protocol.txt
builtin/receive-pack.c
builtin/send-pack.c
commit.c
gpg-interface.c
remote-curl.c
send-pack.c
t/t5541-http-push-smart.sh
t/test-lib.sh
transport-helper.c
transport.c