<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/technical/pack-protocol.txt, branch v2.5.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.5.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.5.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2015-06-16T21:27:08Z</updated>
<entry>
<title>Merge branch 'sb/pack-protocol-mention-smart-http'</title>
<updated>2015-06-16T21:27:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-06-16T21:27:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=486b51bc81e486c654ac35554b284816f4a6ae5c'/>
<id>urn:sha1:486b51bc81e486c654ac35554b284816f4a6ae5c</id>
<content type='text'>
Doc updates.

* sb/pack-protocol-mention-smart-http:
  Documentation/technical/pack-protocol: mention http as possible protocol
</content>
</entry>
<entry>
<title>Documentation/technical/pack-protocol: mention http as possible protocol</title>
<updated>2015-06-02T21:59:59Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2015-06-02T00:02:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=055c7e9fc64cfb1afa8952ce795fcf76514379ca'/>
<id>urn:sha1:055c7e9fc64cfb1afa8952ce795fcf76514379ca</id>
<content type='text'>
Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>doc: fix inconsistent spelling of "packfile"</title>
<updated>2015-05-22T16:00:17Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2015-05-22T06:22:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=bbf431c9ae291f670445ae6cbb15ae3a570c0d45'/>
<id>urn:sha1:bbf431c9ae291f670445ae6cbb15ae3a570c0d45</id>
<content type='text'>
Fix remaining instances where "pack-file" is used instead of
"packfile". Some places remain where we still use "pack-file",
This is the case when we explicitly refer to a file with a
".pack" extension as opposed to a data source providing a pack
data stream.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pack-protocol.txt: fix insconsistent spelling of "packfile"</title>
<updated>2015-05-17T18:25:00Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2015-05-17T06:56:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3890dae97014c2d8da06e26c0e43f12284ac3bdc'/>
<id>urn:sha1:3890dae97014c2d8da06e26c0e43f12284ac3bdc</id>
<content type='text'>
Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/push-cert'</title>
<updated>2014-10-08T20:05:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-10-08T20:05:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fb06b5280ea05d75515fa780cf08d4ec9d6fe101'/>
<id>urn:sha1:fb06b5280ea05d75515fa780cf08d4ec9d6fe101</id>
<content type='text'>
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
  ...
</content>
</entry>
<entry>
<title>signed push: fortify against replay attacks</title>
<updated>2014-09-17T21:27:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-08-21T23:45:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b89363e4a5277038629491f8765c0598f366326c'/>
<id>urn:sha1:b89363e4a5277038629491f8765c0598f366326c</id>
<content type='text'>
In order to prevent a valid push certificate for pushing into an
repository from getting replayed in a different push operation, send
a nonce string from the receive-pack process and have the signer
include it in the push certificate.  The receiving end uses an HMAC
hash of the path to the repository it serves and the current time
stamp, hashed with a secret seed (the secret seed does not have to
be per-repository but can be defined in /etc/gitconfig) to generate
the nonce, in order to ensure that a random third party cannot forge
a nonce that looks like it originated from it.

The original nonce is exported as GIT_PUSH_CERT_NONCE for the hooks
to examine and match against the value on the "nonce" header in the
certificate to notice a replay, but returned "nonce" header in the
push certificate is examined by receive-pack and the result is
exported as GIT_PUSH_CERT_NONCE_STATUS, whose value would be "OK"
if the nonce recorded in the certificate matches what we expect, so
that the hooks can more easily check.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>signed push: add "pushee" header to push certificate</title>
<updated>2014-09-15T20:23:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-08-23T01:15:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9be89160e7382a88e56a02bcf38f4694dd6542d6'/>
<id>urn:sha1:9be89160e7382a88e56a02bcf38f4694dd6542d6</id>
<content type='text'>
Record the URL of the intended recipient for a push (after
anonymizing it if it has authentication material) on a new "pushee
URL" header.  Because the networking configuration (SSH-tunnels,
proxies, etc.) on the pushing user's side varies, the receiving
repository may not know the single canonical URL all the pushing
users would refer it as (besides, many sites allow pushing over
ssh://host/path and https://host/path protocols to the same
repository but with different local part of the path).  So this
value may not be reliably used for replay-attack prevention
purposes, but this will still serve as a human readable hint to
identify the repository the certificate refers to.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>signed push: remove duplicated protocol info</title>
<updated>2014-09-15T20:23:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-08-18T21:38:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4adf569dea052dac88121d822e11c249986b3398'/>
<id>urn:sha1:4adf569dea052dac88121d822e11c249986b3398</id>
<content type='text'>
With the interim protocol, we used to send the update commands even
though we already send a signed copy of the same information when
push certificate is in use.  Update the send-pack/receive-pack pair
not to do so.

The notable thing on the receive-pack side is that it makes sure
that there is no command sent over the traditional protocol packet
outside the push certificate.  Otherwise a pusher can claim to be
pushing one set of ref updates in the signed certificate while
issuing commands to update unrelated refs, and such an update will
evade later audits.

Finally, start documenting the protocol.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pack-protocol doc: typofix for PKT-LINE</title>
<updated>2014-09-15T20:23:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-08-19T21:23:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e543b3f6fee9f910573d53ddfc0750cd2bf88972'/>
<id>urn:sha1:e543b3f6fee9f910573d53ddfc0750cd2bf88972</id>
<content type='text'>
Everywhere else we use PKT-LINE to denote the pkt-line formatted
data, but "shallow/deepen" messages are described with PKT_LINE().

Fix them.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Document LF appearing in shallow command during send-pack/receive-pack</title>
<updated>2014-08-28T22:13:55Z</updated>
<author>
<name>Shawn Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2014-08-27T20:46:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5d146f7a0f43c9e5e3f5b5508e482c6390cc25d2'/>
<id>urn:sha1:5d146f7a0f43c9e5e3f5b5508e482c6390cc25d2</id>
<content type='text'>
The implementation sends an LF, but the protocol documentation was
missing this detail.

Signed-off-by: Shawn Pearce &lt;spearce@spearce.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
