Another PGP library - libnetpgp

related: libsimplepgp , pgp , library , netpgp , encryption

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