cscvs to tla changeset 111
[onak.git] / README
1 onak 0.2.1
2 Copyright 2003 Project Purple. Written by Jonathan McDowell
3 http://www.earth.li/projectpurple/progs/onak.html
4
5
6 Introduction:
7
8 onak is an OpenPGP compatible keyserver. It's primary purpose is the
9 storage and retrieval of OpenPGP keys but it also has features that make
10 use of the stored keys for various other purposes. The most useful of
11 these is probably the pathfinder. This takes two keys, a & b, and
12 attempts to find a path of trust from a to b in the key database. I
13 started work on it because at the time there was no DFSG compliant
14 server that supported multiple subkeys and could act as a drop in
15 replacement for pksd, which I was running (and still am).
16
17
18 Installation:
19
20 onak has been mainly developed under Linux with a bit of work on FreeBSD
21 at times also. It's i386 specific at present thanks to the bit of
22 assembly in bithelp.h. Feel free to submit a patch for your arch. :)
23
24 Typing "make" should produce a version of onak with support for the DB3
25 backend. If you want to choose a different backend (see below for a
26 discussion about the options) you'll need to edit the Makefile first.
27
28 Once make has completed you'll end up with various binaries:
29
30 * onak
31   This is the main program. It's intended to be run from the command
32   line and allows the addition, deletion and searching of keys in the
33   database.
34
35 * onak-mail.pl
36   The mail processor. Takes incoming mail (usually to
37   pgp-public-keys@host) and calls onak to do the necessary work.
38   Currently only supports INCREMENTAL mails for syncing with other
39   keyservers.
40
41 * add, lookup & gpgwww
42   The CGI programs. add & lookup are common to all PGP keyservers while
43   gpgwww is the pathfinder component of onak. To get a keyserver that
44   clients such as GPG can sync with you'll need to put these in a /pks
45   directory on a web server running on port 11371. There's an example
46   mathopd.conf file provided that I used for testing, but I'm now using
47   Apache for the public test rig as it's already present on the host
48   running it.
49
50
51 Config:
52
53 I've finally added config file support. onak.conf is an example config;
54 the main thing to change is the db_dir to whereever you want to put your
55 database files. You can change CONFIGFILE in onak-conf.h to specify
56 where onak should look for this file. By default it's
57 "/home/noodles/projects/onak/onak.conf" as this suits my development. No
58 doubt it'll become a compile option at some point.
59
60
61 Backends:
62
63 Currently there is support for 4 different database backends:
64
65 * file
66   The original backend. Very simple and ideal for testing. Stores each
67   key as a separate file. Doesn't support searching based on key text.
68
69 * pg (PostgreSQL)
70   Once the preferred backend. Use onak.sql to create the tables
71   necessary to run with this. Unfortunately although suitable for the
72   keyserver side it was found to be too slow for running the pathfinder
73   with a large number of keys. This may well be due to my use of it - if
74   you can help speed it up info would be appreciated.
75
76 * db2 (Berkeley libdb2)
77   Only added to provide the ability to run the pathfinder with a key
78   database produced by pksd. Currently only supports pulling keys out by
79   keyid - no key updating or searching by key test. Found to be
80   tempramental and prone to deadlock in the db2 library.
81
82 * db3 (Berkeley libdb3)
83   The currently preferred backend. Supports the full range of functions
84   like the pg backend but is considerably faster. Also easier to setup
85   assuming you have libdb3 installed; there's no need to have an SQL
86   database running and configured.
87
88
89 Other keyservers:
90
91 I'm aware of the following other keyservers. If you know of any more
92 please let me know and I'll add them.
93
94 * pks
95   http://sf.net/projects/pks/
96   The prodominant keyserver I believe; certainly what I run on
97   wwwkeys.uk.pgp.net. Recently development restarted on this (when I
98   started writing onak it had been dormant for some time) so it should
99   hopefully get its problems sorted out soon. The main issue with pks is
100   that it lacks support for keys with multiple subkeys bound to them and
101   unfortunately mangles them.
102
103 * CryptNET Keyserver
104   http://www.cryptnet.net/fsp/cks/
105   A GPLed server with support for multiple subkeys, but unfortunately
106   when I looked at it there was no support for syncing via email which
107   means it can't replace a pks server to act as part of pgp.net.
108
109 * OpenPKSD
110   http://openpksd.org/
111   Don't really know a lot about this. Primarily Japanese development
112   AFAICT.
113
114 * SKS
115   http://sks.sourceforge.net/
116   A reasonably new keyserver concentrating more on the whole issue of
117   syncronization between keyservers.
118
119
120 Contacting the author:
121
122 I can be reached via email as noodles@earth.li. I'm usually on IRC on
123 OFTC (irc.oftc.net) as Noodles.
124
125 All constructive criticism, bugs reports, patches and ideas are welcome.
126
127
128 License:
129
130 onak is distributed under the GNU Public License, a copy of which should
131 have been provided with this archive as LICENSE.
132
133 $Id: README,v 1.6 2003/10/11 22:28:22 noodles Exp $