<div dir="ltr">Thank you very much for your quick response :) I will be in touch. <div><br></div><div>Cheers,</div><div>Agnieszka</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 3 February 2014 12:56, Quentin Glidic <span dir="ltr"><<a href="mailto:sardemff7+pidgin@sardemff7.net" target="_blank">sardemff7+pidgin@sardemff7.net</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 03/02/2014 02:29, Agnieszka Pachuta wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi :)<br>
</blockquote>
<br>
Hi,<div class="im"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
My name is Agnieszka. I study Computer Science at University of<br>
Warsaw. As my master thesis, I'm going to create Pidgin plugin which<br>
implements a cryptographic protocol described in the following paper:<br>
<a href="https://eprint.iacr.org/2009/562.pdf" target="_blank">https://eprint.iacr.org/2009/<u></u>562.pdf</a> (In short, I want to execute the<br>
protocol before the start of conversation in order to establish a<br>
secure communication key.) I've dug into libpurple code, but I still<br>
have some problems. I would really appreciate your help with some of<br>
them or just giving me some hints..<br>
<br>
1. Is there any way to find out if a conversation partner has loaded<br>
my plugin? If the other person haven't loaded the plugin, he sees<br>
every message my plugin sent to him. I tried to use<br>
purple_conv_im_send_with_flags but the messages are still being<br>
displayed (maybe I don't know how to use these flags..) I know that<br>
I can cancel the message by returning TRUE in receiving_im_msg<br>
callback, but it will work only if the other person has loaded my<br>
plugin.<br>
</blockquote>
<br></div>
It would require protocol specific support, and not all protocols can do<br>
that. XMPP probably can with an extension.<br>
I think a common practice is to send an handshake message with a human<br>
readable part asking the user to install the plugin. If the handshake is<br>
unsuccessful, the plugin can inform the sender user that the<br>
conversation will not be secure.<br>
You should look at the Pidgin-OTR plugin, they do something really<br>
similar IIUC.<div class="im"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2. The protocol require users to solve captcha puzzles. To show the<br>
captcha image and get an answer from a user, I use<br>
purple_request_fields. However, when the pop-up shows, user is able<br>
to ignore it and start to communicate without solving a captcha. Is<br>
there any way to block the possibility of communication until he<br>
solves the captcha? I would like to wait for his answer somehow..<br>
One of solution to this problem is to display captcha image directly<br>
in the communication window. Is it possible?<br>
</blockquote>
<br></div>
I think you can use purple_conv_im_write() with markup and flags to<br>
display an image and just drop any outgoing message if it is not the<br>
captcha, directly in the conversation window.<div class="im"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3. I would like to create my own libraries and linked them to my main<br>
plugin file. However, the example Makefile is really huge and I don't<br>
know how to do that. I'm stuck with this problem..<br>
</blockquote>
<br></div>
In your case, I recommend to use a separate project with its own build<br>
system. Here is a little plugin of mine which uses and provides a<br>
library. It uses the GNU Autotools (you will need the autoconf,<br>
automake and libtool packages installed on your system). The relevant<br>
files are <a href="http://configure.ac" target="_blank">configure.ac</a> and Makefile.am. They should be small enough to<br>
be easy for you to understand even with basic Autotools knowledge.<br>
<br>
<a href="https://github.com/sardemff7/purple-events" target="_blank">https://github.com/sardemff7/<u></u>purple-events</a><br>
<br>
Here is a quick guide on Autotools:<br>
<a href="https://www.flameeyes.eu/autotools-mythbuster/index.html" target="_blank">https://www.flameeyes.eu/<u></u>autotools-mythbuster/index.<u></u>html</a><br>
<br>
Feel free to ask anything you might need, or to send over your files for a review if you want.<div class="im"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'm sorry for a lot of text. I'll appreciate any clue :)<br>
</blockquote>
<br></div>
This is exactly what this mailing list is here for. :-)<br>
<br>
<br>
Cheers,<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
<br>
Quentin “Sardem FF7” Glidic<br>
</font></span></blockquote></div><br></div>