#64 closed enhancement (fixed)

implement plaintext/crypttext merkle trees

Reported by: warner Owned by: warner
Priority: minor Milestone: 0.3.0
Component: code Version: 0.2.0
Keywords: Cc:
Launchpad Bug:

Description

the "thingA" block (scheduled to be renamed in #62) should include the root hashes of a pair of merkle trees: one computed over the segments of plaintext, and another computed over the segments of crypttext.

This will give us the ability to validate individual segments of plaintext (such that we can detect corrupted encryption keys, or bugs in FEC or decryption). At the moment the only form of validation which can detect such problems is the FileID, which cannot be computed until the entire file has been downloaded.

The hash trees themselves are stored in the Bucket, and accessed with a get/set method pair for each tree. All buckets store the same data.

For a first cut, we'll retrieve all the hashes at the same time. A later enhancement should be to retrieve only the hashes we actually need for any given block, to improve the alacrity.

Change History (3)

comment:1 Changed at 2007-06-07T20:37:59Z by warner

this is fully implemented now (I think c81f2b01ffc6d6c7 was the last fix). It needs more exhaustive unit tests to exercise the failure cases, but that's not a blocker for 0.2.1.

comment:2 Changed at 2007-06-07T20:38:53Z by warner

  • Status changed from new to assigned

comment:3 Changed at 2007-06-08T04:55:00Z by warner

  • Resolution set to fixed
  • Status changed from assigned to closed

ok, I implemented a huge collection of tests for this, and I'm now pretty confident that all the possible error cases are sufficiently exercised.

Note: See TracTickets for help on using tickets.