Hello,
I'm going to write an Android app that needs a hidden service, specifically I want to implement a client for the TorChat protocol on Android. TorChat needs a hidden service to receive incoming connections and it needs to know its own .onion name to be able to advertise it to others.
Some of you might know my first implementation of it for Windows came bundled with the tor executable and simply started and stopped its very own tor process with its own configuration inside its own private directory and then simply read the hostname file from the hidden service directory to learn its own .onion hostname, this was pragmatic and probably not very elegant but it was very robust and very user friendly.
On Android I would now rather make use of Orbot and Orbot's Tor process instead of bundling my own Tor executable. I have seen somewhere in the tor issue tracker it was mentioned (2 years ago) that in Orbot it was planned (and a prototype existed already) to make it possible for another app to use Android's Intent-System to:
* request a hidden service on port xyz * have Orbot started automatically as a result of this * have Orbot automatically configure the HS as requested * tell the App what the hostname of that HS is.
Is that implemented already? If it is, does there exist any documentation or example code that makes use of it?
-Bernd
On 01/09/2013 10:35 PM, Bernd wrote:
I'm going to write an Android app that needs a hidden service, specifically I want to implement a client for the TorChat protocol on Android. TorChat
This is great to hear. I had hoped someone would tackle this.
One idea is that you could implement this as a plug-in for Gibberbot, instead of a standalone app. We have an architecture for this, and as of our last release, multiple account support. I would be happy to work with you to add any new/custom UI setup that might be needed.
- request a hidden service on port xyz
- have Orbot started automatically as a result of this
- have Orbot automatically configure the HS as requested
- tell the App what the hostname of that HS is.
We have created OnionKit library which is both for implementing strong TLS/SSL support as well as interacting with Orbot:
You can find the library and sample project here: https://github.com/guardianproject/onionkit
I am working on adding the hidden service request/callback support in shortly. The Intent call already exists in Orbot itself. You can see a prototype sample for this here: https://github.com/guardianproject/OrbotTalk/blob/master/src/info/guardianpr...
Best, Nathan