-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Encrypted torrents for Bittorrent v2 #68
base: master
Are you sure you want to change the base?
Conversation
- remove section on keys in torrents - specify separate torrent key files instead - better single file / multi file handling
- don't include infohashes in key file
- mandate single-file layout for public data - mandatory shadow dictionary
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, other than a few minor editorial issues
beps/bep_0054.rst
Outdated
|
||
If a client has access to at least a shadow key it may want to check consistency, such as the length and number of pieces, between the encrypted representation and the plaintext metadata in the shadow dictionary. | ||
It may also want to display the metadata of the plaintext to the user instead of the encrypted representation. | ||
Since the shadow dictionary also contains merkle roots for each file correct decryption can also be verified at the file granularity level. Transfer of plaintext merkle layers is not supported, but clients can still use deduplication if they other files with identical plaintext. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in last sentence.
if they have other files with identical plaintext.
beps/bep_0054.rst
Outdated
8. verify ``SIV`` | ||
9. derive ``payload_nonce`` from ``infohash_plain`` and ``salt`` | ||
10. if ``payload_key`` is available decrypt ``plaintext_padded`` | ||
11. split `plaintext_padded`` according to file layout information in the plaintext info dictionary |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing opening backtick for plaintext_padded
beps/bep_0054.rst
Outdated
17. add the following key value pair to the info dictionary of the encrypted torrent: ``"enc mac": mac`` | ||
|
||
This construction | ||
* obscures the exact size of the plaintext by rounding to the nearest piece size |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There needs to be a blank line inserted above this one to get the bulleted list formatting.
I have realized that info-dictionary level encryption metadata is in conflict with or would significantly complicate mutable torrents, torrent feeds etc. |
I have revised my draft to be based around BEP52
drawback: needs 2 passes over the content
It's still a WIP since I need to update my prototype to generate test data