by Thomas Gagné
Download the parcel in now!
LibGPG-0.1.zip
LibGPG-0.1.tgz
Like the LibLDAP parcel, this package interfaces to freely distributed shared libraries to implement its guts. In this case, GNU's Privacy Guard Made Easy library (GPGME). Documentation for the library's functions can be found here.
There is still much to be done. I'm not happy with the factoring. I'm unsure how precisely to implement the classes and methods in a way consistant with the Smalltalk idiom. Having written two other Smalltalk interfaces to open source libraries (libical and libldap) I expected to have a better best-practice developed but am still not there. I'm working towards it, though. I'll probably end up extending some of the collection classes and implementing a library singleton, but that's not there yet.
"So why release them so early" you ask? Because someone else may be looking for something like this and is interested in collaborating on it (like happened with LDAP) or can simply provide me feedback on its use or find some bugs I'm unaware of.
The intent of this interface is not to implement all the functions in the library because there are already tools for doing that (gpg). My intention is to make GPG encryption and decryption available inside Smalltalk programs, while at the same time taking advantage of projects with considerable momentum already behind them. As bugs are found and fixed inside gpgme there will be little need to update the Smalltalk interface, except perhaps to exploit new or not-yet-implemented features. Eventually, all of them may be implemented if someone wanted to create a Smalltalk interface for doing all the GPG key management, etc.
What these clases are able to do is
The best way to see the full-trip through these features is to examine the unit test LibGPG>>#testEncrypt which (when I test it) encrypts a message addressed to me using my public key, then decrypts it using my private key. I know it works when the decrypted message matches the text I sent to be encrypted.
Copyright © 2004, Thomas Gagné