Opened at 2007-06-07T19:12:29Z
Closed at 2007-06-08T04:55:00Z
#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
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.
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.