linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David A. Wheeler" <dwheeler@dwheeler.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Paul Jakma <paul@clubi.ie>, Sean <seanlkml@sympatico.ca>,
	Thomas Glanzmann <sithglan@stud.uni-erlangen.de>,
	David Woodhouse <dwmw2@infradead.org>,
	Jan Dittmer <jdittmer@ppp0.net>, Greg KH <greg@kroah.com>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: Git-commits mailing list feed.
Date: Sun, 24 Apr 2005 23:08:51 -0400	[thread overview]
Message-ID: <426C5F43.8010705@dwheeler.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0504241846290.18901@ppc970.osdl.org>

Linus Torvalds wrote:
> 
> On Sun, 24 Apr 2005, David A. Wheeler wrote:
> 
>>It may be better to have them as simple detached signatures, which are
>>completely separate files (see gpg --detached).
> 
> Actually, if we do totally separate files, then the detached thing is ok, 
> and we migth decide to not call the objects at all, since that seems to be 
> unnecessarily complex.
> 
> Maybe we'll just have signed tags by doing exactly that: just a collection 
> of detached signature files. The question becomes one of how to name such 
> things in a distributed tree. That is the thing that using an object for 
> them would have solved very naturally.

I agree, naming signatures using the same way other objects are named
would be very clean.  So, why not? It's perfectly reasonable to
just store detached signatures as hashed objects, just like the rest;
just create a new object type ("signature").
If 3 different keys are used to sign the same object, the detached
signatures will have different hash values, so they'll get named easily.

Now you just have to FIND the signature of a signed object,
i.e. efficiently go the "other way" from signed object to detached
signature.  A separate directory with this mapping, or embedding the
mapping inside the object directory (HASH.d/<list>) both solve it.

The more I think about it, the more I think a separate "reverse"
index directory would be a better idea. It just needs to from
"me" to "who references me", at least so that you can quickly
find all signatures of a given object. If the reverse directory
gets wonky, anyone can just delete the reverse index directory
at any time & reconstruct it by iterating the objects.
Before "-----BEGIN PGP SIGNATURE-----" you should add:
  signatureof HASHVALUE
to make reconstruction easy; PGP processors ignore stuff
before "-----".  The PGP data does include a hash, but it's not
easy to get it out (I don't see a way to do it in gpg from the
command line), and it's quite possible that a signer won't
use SHA-1 when they sign something (they may not even
realize it; it depends on their implementation's configuration).
Better to include something about what was signed with the signature.

Hmm, probably worth backtracking to see what's needed.
There needs to be a way to identify tags, and a way to sign that
tag so that you can decide to trust some tags & not others.
There needs to be a way to sign commits, and store that info
for later.  And really, these are special cases of general
assertions about other things; you might want someone to be
able to make other signed assertions (e.g., that it
passed test suite XYZ).

If tags & commits are all you plan to sign for now, well, you
already have commits.  You can just add a "tag" type and a
"signature" type of object (the "signature" is just a detached
OpenPGP signature).  "signature" can sign tag or commit types.
I still like the idea of a more general "assertion" type, esp.
for assertions that something passed a test suite on a certain date
or was reviewed at a certain date by someone, but admittedly
that could be added later in the same manner.

Then you need to be able to quickly find a signature, given a
commit or tag.  A "reverse" directory then does that nicely,
and if you put enough information in front of the signature,
you can regenerate the reverse directory whenever you wish.

--- David A. Wheeler

  parent reply	other threads:[~2005-04-25  3:07 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-21  4:22 Git-commits mailing list feed David Woodhouse
2005-04-21  6:24 ` Jan Dittmer
2005-04-21  6:34   ` David Woodhouse
2005-04-22  0:29   ` Greg KH
2005-04-22  8:03     ` Jan Dittmer
2005-04-23 12:58     ` Jan Dittmer
2005-04-23 14:21       ` David Woodhouse
2005-04-23 14:30         ` Jan Dittmer
2005-04-23 14:35           ` David Woodhouse
2005-04-23 17:31             ` Linus Torvalds
2005-04-23 17:45               ` Linus Torvalds
2005-04-23 17:50               ` Fabian Franz
2005-04-23 17:50               ` Sean
2005-04-23 19:02                 ` Thomas Glanzmann
2005-04-23 18:14                   ` Sean
2005-04-23 19:34                 ` Linus Torvalds
2005-04-23 17:54               ` Thomas Glanzmann
2005-04-23 18:30                 ` Linus Torvalds
2005-04-23 18:06                   ` Sean
2005-04-23 19:38                     ` Linus Torvalds
2005-04-23 18:44                       ` Sean
2005-04-23 19:58                         ` Linus Torvalds
2005-04-23 19:57                       ` Junio C Hamano
2005-04-23 20:23                         ` Linus Torvalds
2005-04-23 20:24                         ` Junio C Hamano
2005-04-24 23:25                       ` Paul Jakma
2005-04-24 23:57                         ` Paul Jakma
2005-04-25  1:01                         ` David A. Wheeler
2005-04-25  1:35                           ` Paul Jakma
2005-04-25  2:13                             ` David A. Wheeler
2005-04-25  3:03                               ` Paul Jakma
2005-04-25  3:08                                 ` Paul Jakma
2005-04-25  1:50                           ` Linus Torvalds
2005-04-25  2:17                             ` Fabian Franz
2005-04-25  2:44                               ` Linus Torvalds
2005-04-25  3:32                                 ` David A. Wheeler
2005-04-25  9:31                                   ` David Greaves
2005-04-25  3:08                             ` David A. Wheeler [this message]
2005-04-25  3:24                               ` Paul Jakma
2005-04-25  3:40                                 ` Paul Jakma
2005-04-25  3:47                                   ` Paul Jakma
2005-04-25  2:34                           ` Matt Domsch
2005-04-25  2:43                             ` Jan Harkes
2005-04-23 18:39                   ` Thomas Glanzmann
2005-04-23 18:44                     ` Thomas Glanzmann
2005-04-23 18:46                   ` Jan Harkes
2005-04-23 20:01                     ` Linus Torvalds
2005-04-23 18:54                   ` Junio C Hamano
2005-04-23 18:35                 ` Bernd Eckenfels
2005-04-23 18:34               ` Jan Harkes
2005-04-23 19:30                 ` Linus Torvalds
2005-04-23 20:49                   ` Jan Harkes
2005-04-23 23:29                     ` Linus Torvalds
2005-04-23 20:15               ` Jeff Garzik
2005-04-25  1:26               ` David Woodhouse
2005-05-04  9:02             ` Jan Dittmer
2005-05-04  9:20               ` David Woodhouse
2005-05-04  9:59                 ` Jan Dittmer
2005-05-04 10:42                 ` Jan Dittmer
2005-04-23 14:43         ` Jan Dittmer
2005-04-21 10:29 ` Arjan van de Ven
2005-04-21 12:23   ` David Woodhouse
     [not found] <3WtO4-5GW-5@gated-at.bofh.it>
     [not found] ` <3WtXG-5Nh-9@gated-at.bofh.it>
     [not found]   ` <3WtXG-5Nh-7@gated-at.bofh.it>
     [not found]     ` <3WwLT-848-13@gated-at.bofh.it>
     [not found]       ` <3WxeV-5S-9@gated-at.bofh.it>
     [not found]         ` <3WxHT-pv-1@gated-at.bofh.it>
     [not found]           ` <3Wyb3-Sj-33@gated-at.bofh.it>
     [not found]             ` <3WyDZ-1a6-7@gated-at.bofh.it>
     [not found]               ` <3WYRN-5lJ-9@gated-at.bofh.it>
     [not found]                 ` <3X0gU-6u6-5@gated-at.bofh.it>
     [not found]                   ` <3X1G1-7ug-9@gated-at.bofh.it>
2005-04-25 15:47                     ` Bodo Eggert <harvested.in.lkml@posting.7eggert.dyndns.org>

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=426C5F43.8010705@dwheeler.com \
    --to=dwheeler@dwheeler.com \
    --cc=dwmw2@infradead.org \
    --cc=git@vger.kernel.org \
    --cc=greg@kroah.com \
    --cc=jdittmer@ppp0.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paul@clubi.ie \
    --cc=seanlkml@sympatico.ca \
    --cc=sithglan@stud.uni-erlangen.de \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).