Communication between plug-ins

Tomasz Wasilczyk tomkiewicz at
Mon Aug 19 12:34:18 EDT 2013


I've just started working on pidgin-otr integration into Pidgin 3.0.0 tree.
My idea is to extend libpurple API with some kind of
verification/encryption framework.

I don't know all the aspects yet, but I guess there is a room for
improvements, just like it was in the case of keyrings. I think we will
work out some nice API together, flexible enough to support such plugins

In the meantime, you could describe, what exactly your pidgin-otr fork does.

17 sie 2013 19:04, "Daniel Kraft" <d at> napisał(a):

> Hash: SHA512
> Hi,
> I've patched the Pidgin OTR plug-in to allow verification of
> fingerprints via the Namecoin identity system:
>   git clone -b namecoin-verify
> This was however only a proof-of-concept implementation, because it is
> unlikely that the OTR folks will integrate Namecoin into their
> official code.  However, they indicated interest in a general
> "verification framework" for Pidgin-OTR that would allow other
> plug-ins to provide additional verification methods just like mine,
> and I want to implement that.
> The basic idea is like this:  Users have the official Pidgin-OTR
> plug-in installed, and additionally a separate Namecoin plug-in.  When
> the fingerprint verification process is started from the OTR plugin,
> it looks through all installed plug-ins, determines which of those
> provide fingerprint verification and then adds those as additional
> options in the UI dialog.
> Is something like this possible, and if so, how would I best implement
> it?  In particular, how can the communication between the OTR plug-in
> and verification plug-ins be done?  I presume that
> purple_plugins_get_loaded is a start which could be used by OTR on
> demand to get a list of all plug-ins installed (rather, active).  But
> how could verification plug-ins signal to OTR that they indeed provide
> verification features?  And how can OTR then tell those plug-ins to
> build their UI, and vice-versa those plug-ins tell OTR to mark
> fingerprints as verified?
> My first idea would be to use signals:  If I understand them
> correctly, one can basically connect any signal to any GObject, thus
> would it be possible to achieve what I have in mind if each
> verification plug-in connected a signal handler for, say,
> "pidgin-otr-start-verification" to its PurplePlugin, and OTR fired
> this signal on every plug-in loaded?  Then only those which are
> actually verification plug-ins would handle the signal, and could take
> appropriate action.  Via the user-data field for the signal handlers,
> pointers to data-structures could be exchanged that can then be used
> to communicate between OTR and the verifiers.
> What do you think, is this a possible approach?  Are there other
> (better) ways to handle my situation?  I've not much experience with
> Glib and libpurple, so any help is very much appreciated!
> Thanks!  Cheers,
> Daniel
> - --
> OpenPGP: 901C 5216 0537 1D2A F071  5A0E 4D94 6EED 04F7 CF52
> - --
> Done:  Arc-Bar-Cav-Hea-Kni-Ran-Rog-Sam-Tou-Val-Wiz
> To go: Mon-Pri
> Version: GnuPG v2.0.19 (GNU/Linux)
> Comment: Using GnuPG with Icedove -
> iQJ8BAEBCgBmBQJSD6zhXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
> ViuGQOS3+ByqU0a8y0PZpy9V52K4XKNuJFGJbt1wuOHPK63eGVlD9FmTdJQc1myj
> dgj7VTUxZ7ngbMrzC0We9CmcVBFckTBoEqFgy+OIEGyxegWqw3LLT6l6RDPfxpNv
> Id8Dx3BputrTlLHwk35HEjPuPwidej0nkchMmolvTBKTVF+8BoXQJ5A90mpnsuhy
> 7dOa1itgxY/EKVwPGlmnhl2Z6Vz4c38rFgylPRSkMqRYwajlAJ8icKfmSXTXX/ya
> jHbahqmnesukbEGB/4DbPbqZnH9yvjkFY+p3soNJ24U2WfQbJPTwx4kDQveu8iT6
> 46m3Wi/AcRMuLeylVVTb3cRn+d5a0By+6gCoNVmyTtMgHPxJwEXzvlIceMyU4DKh
> RZFLIOXpO9wqdQSg1uppwiH9jDbec9cHaxdtt9IZK1kmFWdMwJpl19V27/GC1OSN
> h3ejC8BuSlTk6pOc6b6Xe0aWbwQeGewWHzBdTLtgUZsu86RVRgz/qsoJb5vRmydt
> xQqETxdIklUZoqzLJHakIzMKkCX+Xgwb9g/9AzX9Zpey9a4eqNNWvSpmJasx+Nu+
> Xatm+Nq1xwzvgm6a3Bf5Zy4mI7x7SVhJYEuvIbMhplkPRmHYNZ3xKTjlBjr35hCA
> ORsIdroGMmnX4vGQQedc
> =Di6C
> _______________________________________________
> Devel mailing list
> Devel at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Devel mailing list