On Tue, Aug 20, 2013 at 9:03 PM, John Long <[email protected]> wrote:

> is called gpgme (gpg made easy) IIRC. I think it's not something you have
> to
> link and you should be able to tell if it's present or not.
>

i can't personally commit to it, but maybe someone who's listening can.


> My understanding is you already compute checksums on commits.


At a lot of places. "Blob content" is referenced by its content SHA1, so
any change there invalidates it. A commit contains two checksums: one is
the checksum of the content of the checkin manifest (basically: the formal
list of changes, but not the changes themselves, similar to a PGP
signature). The second one is a checksum of the names/sizes/content of each
file in the commit manifest (basically: each file that changed). Fossil
ignores/skips over/elides the PGP wrapper for purposes of checksums.

Fossil only does PGP plaintext signing, btw, unless i'm sorely mistaken.

If that's
> true I would say if you verify any signed commit (and again it's not clear
> how multiple files are handled unless every file is signed individually)
>

The signing happens at the commit level, and a commit contains N files.


> then you should not have to do anything further, maybe not even note that
> it's PGP signed. The PGP signing is about authenticating that some user X
> is
> really the guy who did this update. Once that has been established it goes
> into the repo and nothing more has to happen.
>

There's the problem for the current architecture: "when it goes in the
repo." Let's say for a second that one of the signed commits in Fossil's
repo is currently invalid. Now we add this feature. The next time fossil is
rebuilt, it would have to reject that commit, which would break the whole
rebuild, effectively leaving us with a repo we can't upgrade because PGP
decided we shouldn't. Fossil has no useful recovery strategy there other
than to not let you rebuild the db (==update its schema to a newer version,
which also rebuilds all derivable/calculable data contained in the repo). i
think "flag and accept" would be the best Fossil could sanely do.

What i can envision is, assuming validation has hypothetically been added:

a) show yellow/green/red in the timeline, and something similar in CLI
b) a 'pgp' command which takes a list of UUIDs to verify.

But i don't think Fossil is capable of rejecting failures without seriously
endangering backwards compatibility in the case of an age-old signature
(==predating this feature) which is invalid. Maybe it could, or maybe it
could offer an option/flag to allow failed sigs or not. i'm not in any way,
shape, or form a cryptographer, i'm just thinking out loud here :/.

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to