Announcing libsimplepgp

related: libsimplepgp , pgp , source , c , library

I already linked to it in a previous post, but this is more official:

libsimplepgp is released(ish) (version 1.0RC2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
libsimplepgp - C library for parsing OpenPGP messages.

Copyright 2011 Trevor Bentley
Provided under Apache License, Version 2.0
See LICENSE file for details

libsimplepgp is a library for loading PGP keys and decrypting PGP messages.

Instead of aiming to support the entire OpenPGP standard, as GnuPG does, this
project aims to support only the most common PGP message formats used for
encrypting e-mail messages.

Initial goals are:
 * Parse secret and public keys
 * Store secret keys in an in-memory keychain
 * Decrypt message formats commonly found in e-mail communication:
   - DSA/Elgamal asymmetric keys
   - TripleDES, CAST5, and AES-256 symmetric ciphers
   - SHA-1 hashes
   - ZIP and ZLIB compression
 * Support PC (UNIX-ish) platforms
 * Support iOS (iPhone) platforms

Known limitations:
 * No support for RSA keys
 * No support for creating messages (encryption)
 * No support for validating signatures
 * No support for old formats, or deprecated message types
 * Not thread-safe


Build for desktop with included autoconf script:
 # ./configure && make && make install

Build static iOS library with Xcode or command-line:
 # make ios

There is still a long way to go in terms of generalizing it to support more OpenPGP combinations and features, but it is usable as it stands and ready to incorporate into your desktop and iOS projects.

See my earlier post, GnuPG Is Not A Library, for why this is handy.