Showing posts with label Evolution. Show all posts
Showing posts with label Evolution. Show all posts

6/20/08

The GPG Key selection done!

This week i have completed the GPG key selection in Evolution, using the Seahorse cryptui and its DBus APIs. And I have added a new GPG key frame to the Security tab in account editor. Of course, it is implemented through EPlugin! Following is the snapshot:

snapshot1:adding a new GPG Key frame using EPlugin, replacing the Entry with a ComboBox.
snapshot2: you can select your GPG key from the combobox now:)

Besides, if you are brave enough, you can try it now:
1.svn co svn://www.cipsc.org.cn/seahorse-key seahorse-key
2.mv seahorse-key /path/to/trunk/evolution/plugins/seahorse-key
3.patch the configure.in (using configure.in.diff in seahorse-key) and ./autogen.sh --prefix=/usr && make && make install
4.enjoy it!


Requirements:
a.Seahorse installed.(http://live.gnome.org/Seahorse)
b.Evolution trunk from svn repos( http://svn.gnome.org/svn/evolution/trunk)
c.GNU Autotools

However there are some questions:
1. How to restore the key been selected when restart the Evolution?
Apparently , this info should be stored within the account, but the EAccount structure provides no fields for this. Now i store it in a GHashTable (key is the account->address), this is very ugly.
Worse more, the hashtable will be destroyed and initialized again when the Evolution application restarts, should i write the hashtable to a file? and reload it when the Evolution restarts?
neither is a good way, IMO.

2.How to hide the original GPG Key frame through the EPlugin?
please give me some good pointers if you know that, .

Happy Hacking!

6/14/08

recent updates

hi,
i have tested the seahorse's DBus APIs and written some codes.
i want to change the key input to the key selection in Evolution. eg:
the PGP/GPG key input entry in the evolution account editor, which is needed to input manually(show in the cycle):
So, i intend to change it to a combo box, such as:and the private key list in the combo box:
The next step. i would like to read the source of evolution trunk about the key input, and integrate my combo box to the evolution.

PS: some days earlier, i met a guy from gnome_cn (Yang Hong), who works near to my school. He gave me some good advice. He said that the gpg key encryption/decryption is used more common than certificates, so he suggested me to complete the gpg key selection part first and do something to import the sender's public key automatically. eg:

Thanks Yang hong, and
Happy Hacking!

6/2/08

The week progress of my project

This week i did no/few coding at all, but i have done some research and thought a lot about my project.

The project is implementing a E-Plugin for Evolution to manage the certificates and sign/encryption of message, using Seahorse.
My mentor give me some pointers and intrductions, which is clear and useful. The main step of this project is:
a.Implementation of camel-certdb.h in evolution-data-server's trunk/camel.(but my codes will not planted here)
b.Drawing the UI of certificate management, using the implementation of camel-certdb.h.
c.Test

Mentor also introduces to me a Spanish developer writes the support for libcst in
Tinymail's camel-lite. Camel-lite is a version of Camel that focuses on mobile uses for Tinymail.
And the libcst is similar to Seahorse.

Camel-lite and its libcst implementation:
https://svn.tinymail.org/svn/tinymail/trunk/libtinymail-camel/camel-lite/camel/camel-certdb-cst.c
https://svn.tinymail.org/svn/tinymail/trunk/libtinymail-camel/camel-lite/camel/camel-certdb.c
https://svn.tinymail.org/svn/tinymail/trunk/libtinymail-camel/camel-lite/camel/camel-certdb.h

Camel upstream and its default own implementation:
http://svn.gnome.org/svn/evolution-data-server/trunk/camel/camel-certdb.c
http://svn.gnome.org/svn/evolution-data-server/trunk/camel/camel-certdb.h

Project Progress
-----
Following is my work progress:
1.Some update preparations. ie, svn update to the latest version of Evolution, evolution-data-server, seahorse, configuration. and mess things else. Then i have a new development environment.
2.read the libcst version of manage certificate in Tinymail, as mentioned above.
3.study the Seahorse DBus APIs and write some small code to test and verify.
4.generate a new PGP key pairs(pub key is published on subkeys.pgp.net, UID with my gmail address) and apply for a free certificate from comodo.net, for the future tests.

Next Week Plan
-----
So my next week's plan is to write a camel-certdb-seahorse.c that implements camel-certdb.h, and some other codes necessary.

i am now thingking about my code repository, usually i maintain a subversion repository on one of my lab's server.

Happy Hacking :)