[bittorrent] Encryption, Azureus Extended Messaging and reserved bits...

Joris Guisson joris.guisson at gmail.com
Mon Sep 11 03:52:29 EDT 2006

On 9/11/06, Alan McGovern <alan.mcgovern at gmail.com> wrote:
> I've completed a C# based bittorrent library, and i've been busy extending
> it to support the fast peers extensions (complete-ish for the moment) and
> implementing the connection Encryption methods. Now, the problem i'm coming
> across is that there is no listing of what each bit in the reserved 8 bytes
> is currently being used for, so I'm at a loss for finding out if a remote
> peer does support Encryption/Extended Messaging, i don't even know how to
> advertise that i support encryption/extended messaging.

For the bits in use you should check bittorrent.org (site seems down at the
moment), but several other clients probably use other bits, to indicate
additional stuff.

Is there a list somewhere of what bits are currently being used for what
> purposes? Also, is there anything that's more detailed than http://www.azureuswiki.com/index.php/Message_Stream_Encryption
> for when it comes to actually implementing encryption? What messages need
> to be passed to and from the peers. From what i was able to figure out from
> extensive googling is that the handshaking procedure is greatly modified for
> the encrypted connections. Is it a case of assuming that encryption is
> enabled and then retrying the connection if it fails?

Something like that, first you try encrypted then unencrypted. Everything
pretty much remains the same with encryption, the only difference is the
encrypted handshake and after the handshake everything is sent encrypted.

For Peer Exchange, i can't seem to find anything which explains how this is
> supposed to be implemented. Are there any documents available anywhere?

Not that I know of, I have been trying to find some info on this and haven't
found much usefull.

Lastly, there are competing DHT implementations out there. What ones are
> documented? Which one is recommended to use? I can't find documentation for
> either of them, and i *really* don't want to have to resort to examining
> python/java code.

You can find the mainline DHT spec on bittorrent.org. You are lucky, I had
to resort to 'reverse engineering' python code, which is bloody annoying.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ibiblio.org/pipermail/bittorrent/attachments/20060911/8ebf7104/attachment.html 

More information about the BitTorrent mailing list