Opened 14 years ago

Closed 14 years ago

#887 closed Enhancement (wontfix)

Encryption Callback?

Reported by: 09BKyfYz0mi3WBjXLUV1VWo Owned by:
Priority: Normal Milestone: None Set
Component: Transmission Version: 1.11
Severity: Normal Keywords: encryption


As libtransmission does not support encryption for the data itself (as far as I could determine that by reading the source, if I'm wrong, please correct me), I'd like to handle the encryption by myself (using libtransmission in my own project) using a callback function.

Could you implement an appropriate callback-function which is called when a block arrives/is sent?

Change History (4)

comment:1 Changed 14 years ago by charles

I'm not sure what you're talking about here. Do you mean encrypting the data going across the wire, or the data stored on the hard drive?

If the former, yes Transmission supports it.

If the latter, IMO this would be bloat for Transmission and is better handled by an outside mechanism like an encrypted file partition.

comment:2 Changed 14 years ago by 09BKyfYz0mi3WBjXLUV1VWo

Ok, I didn't know transmission actually does it for the single pieces of a torrent file. I thought it'd concern only the "metadata" as peer exchange and stuff.

Is there the possibility to use an own encryption method?

comment:3 Changed 14 years ago by 09BKyfYz0mi3WBjXLUV1VWo

To give a bit more information about what I'm trying to do:

I have an application which should enable quick file sharing, internally using bittorrent. In this application, there are cache-only-clients which should be able to run on un-trusted machines, for example vservers. Because of paranoia, there has to be end-to-end-encryption (seeder and leecher but not the cache). My idea on how to achieve this is the following:

When generating hashes and sending pieces, those are automatically encrypted with blowfish and a key which was determined before in the application. The pieces are - this way - encrypted all the time. Only seeder/leecher have the key, so the cache can only store the file encrypted. On the leecher's machine, the block should be decrypted when arriving.

The problem I'm facing is the following: How to implement callbacks which are so generic that they can be integrated in the mainstream libtransmission (as a patched version of it has to be either distributed with the application itself or is kinda difficult for the user to install)? If you want to, I can attach a patch of what I've written at the moment. It does not yet distinguish between arrived/sent blocks but the encryption callback itself works.

comment:4 Changed 14 years ago by 09BKyfYz0mi3WBjXLUV1VWo

  • Resolution set to wontfix
  • Status changed from new to closed

Sorry to update this so frequently, but probably you're right. I just tried hacking it in but that dindn't work for the 8-byte-blocks that are required by blowfish. The changes which would be needed could not be generic anymore and are too deep.

Probably this is not going to work, if you come up with a good idea however, feel free to reopen :).

Note: See TracTickets for help on using tickets.