As pointed out by prettygoodusername on a Reddit post about libsimplepgp, there IS another open-source implementation of the OpenPGP standard in dynamic library format.
It is tightly incorporated into the NetBSD distribution, but developed as a stand-alone product. It seems to be full-featured, complete, and cross-platform. The only dependency I have noticed is OpenSSL, which is also quite portable.
The only issue with netpgp is that it practically doesn’t exist. Search for it on Google and you just find a few discussions on mailing lists and bug trackers, but you don’t find the product itself.
prettygoodusername tracked it down for me. At least, what scarce Internet presence it has:
There is a library, libnetpgp (check dist/src/lib/ directory in repository), and an application frontend: netpgp.
Unfortunately, the only documentation for the library seems to be the man page.
I haven’t used it, so I may be wrong, but it looks like it expects input and output in the form of files or stdin/stdout instead of character buffers, which may not be ideal in an embedded environment. There might be ways around that.
I verified that it will build a static library for iOS, so maybe this is an option for PGP support in iPhone applications. Here’s the nasty configure line:
1 $ ./configure –host=“arm-apple-darwin” –enable-static –disable-shared –disable-dependency-tracking CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp CXXCPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp CXX=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gccAR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib NM=/Developer/Platforms/iPhoneOS