ricochet-im / ricochet

Anonymous peer-to-peer instant messaging
https://ricochet.im/
Other
3.73k stars 401 forks source link

Building chat/non-chat services using Ricochet #443

Open afk11 opened 8 years ago

afk11 commented 8 years ago

Hi there, first of all, great work on this project! I stumbled across it a while ago and finally set aside time for implementing the protocol for PHP.

Is there much interest in developing services leveraging Ricochet? I'm liking that it covers authentication and multiple channels, it seems a reasonable protocol for small apps that require these properties.

I'll post another update when my implementation is compatible with ricochet-im. It'll be fun to experiment with chat bots, even non-chat applications!

psycik commented 8 years ago

I like the idea, would love to see the code when it's ready.

migueldemoura commented 8 years ago

@afk11, why php? Maybe I'm interpreting your idea incorrectly, but it seems to me that the protocol in php would go against part of the point of ricochet:

no servers or operators that could be compromised, exposing your information

If your idea is a local self-contained web version of ricochet with php, then this probably wouldn't be an issue, but I still think there are better languages to achieve this.

The whole integration thing is cool and I'd volunteer to test it, but you'd always have a server other than the ones with tor to trust - the one running your web-app. Still better than the stuff currently available, I'll give you that :smiley:

afk11 commented 8 years ago

@psycik I have the basics of the protocol written, but encountered a blocker.

To briefly describe the issue, sign256 fails to match the test vectors with a message like 'test data' (see ricochets cryptokey tests), whereas signData (hash data and pass for signing) seems to work fine. Of course, signData depends on sign256, so I am both (i) amazed it works at all, and (ii) furious it doesn't work fully!

Unfortunately, this means I can't finish authentication right now. I'll try again, but I've spent a few days on it already. I'll push the code with a big stinking warning about my issue. Maybe the fairies will come along and fix it!

@migueldemoura PHP has seen a lot of progress towards daemonization, and I expect people who start diving into the protocol (or the c++ codebase) will eventually start thinking about telegram like bots. The same stuff you might see if someone codes a bot in Go, but powered by different language bindings.

psycik commented 8 years ago

@afk11 Gotta love those little code demons. I've got some free time so I'll check it out whenever you push.

afk11 commented 8 years ago

Ah nice, it'd be much appreciated! I pushed what I have here: https://github.com/afk11/ricochet-php

script/connect.php should work with a live ricochet client. If you're looking for something without networking, script/sanity{,2}.php are close enough to the test case https://github.com/ricochet-im/ricochet/blob/master/tests/tst_cryptokey/tst_cryptokey.cpp

migueldemoura commented 8 years ago

@afk11 will check it out in the coming days! A short guide about the project structure would be nice as I am currently short of time to analyse the whole codebase properly!