diff --git a/goRicochetMobile.go b/goRicochetMobile.go index f3dc352..43c07e0 100644 --- a/goRicochetMobile.go +++ b/goRicochetMobile.go @@ -6,6 +6,9 @@ import ( "log" "net/http" "time" + "github.com/s-rah/go-ricochet/connection" + "github.com/yawning/bulb/utils/pkcs1" + "crypto/rsa" ) func GeneratePrivateKey() (string, error) { @@ -17,7 +20,13 @@ func GeneratePrivateKey() (string, error) { } func GetOnionAddress(privateKey string) string { - return utils.GetOnionAddr(privateKey) + pk, _ := utils.ParsePrivateKey([]byte(privateKey)) + pubKey := rsa.PublicKey(pk.PublicKey) + addr, err := pkcs1.OnionAddr(&pubKey) + if err != nil || addr == "" { + return "" + } + return addr } func TestNet() (ok bool, ex error) { @@ -28,27 +37,35 @@ func TestNet() (ok bool, ex error) { return true, nil } +type ODClient struct { + connection.AutoConnectionHandler + messages chan string + deviceName string + deviceLevel int + batteryLevel string +} + +/******** Testing by standing up an echobot ******/ + func EchoBot(privateKeyData string) { privateKey, err := utils.ParsePrivateKey([]byte(privateKeyData)) - if err != nil { log.Fatal("error parsing private key: %v", err) } - echobot := new(application.RicochetApplication) - log.Println("SetupOnion()...") + log.Println("Setup onion hidden service via tor control...") l, err := application.SetupOnion("127.0.0.1:9051", "tcp4","", privateKey, 9878) - //l, err := application.SetupOnion("/data/data/org.torproject.android/app_bin/control.txt", "unix","", privateKey, 9878) - if err != nil { log.Fatalf("error setting up onion service: %v", err) } - echobot.Init(privateKey, new(application.AcceptAllContactManager)) + echobot := new(application.RicochetApplication) + echobot.Init(privateKey, new(application.RejectAllContactManager)) + echobot.OnChatMessage(func(rai *application.RicochetApplicationInstance, id uint32, timestamp time.Time, message string) { log.Printf("message from %v - %v", rai.RemoteHostname, message) rai.SendChatMessage(message) }) - log.Printf("echobot listening on %s", l.Addr().String()) + log.Printf("echobot started on %s", l.Addr().String()) echobot.Run(l) }