Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / crypto / external / bsd / netpgp / dist / doc / deliverable.txt
blobb0849d785deb6bb3b3005ce7303144dd66a52087
1 An open source library and command-line tools, licensed under the BSD
2 licence, written in C, using the OpenSSL library and providing
3 approximately the functionality specified below.
5 The libraries and tools will compile and run on the following
6 operating systems:
8 FreeBSD
9 Linux (Debian and Red Hat)
10 Solaris
12 but will be written such that porting to other operating systems
13 supported by OpenSSL will be possible.
15 As is usual with software, there will be no guarantee of 100% correct
16 functionality, but the software will be written to professional
17 standards. This specification does not constitute a commitment to
18 fixing bugs or adding enhancements once the initial version is
19 complete.
21 The library will comply with the IETF specification currently known as
22 RFC2440bis.
24 API
25 ---
27 * Load keyring
29 * Save keyring
31 * Generate key
33 * Add key to keyring
35 * Find key in loaded keyring (by key ID, by UID)
37 * Generate subkey
39 * Revoke subkey
41 * Delete subkey
43 * Update subkey
45 * Delete key from keyring
47 * Add/remove UID
49 * Certify UID
51 * Revoke certification
53 * Sign message
55 * Verify, using any key in the keyring
57 * Verify, using specified key
59 * Encrypt, using a key
61 * Decrypt, using a key
63 * Import any object to GPG/PGP (key, keyring)
65 * Export any object
67 * (?)Query keyservers for keys
69 * (?)Export keys to keyservers
71 Keyserver stuff will be done if time/budget permits, otherwise will be
72 a to-do item, since we can always use GPG externally to do it.
74 Also, "save/load/find/add/import/export keyring" will be pluggable, so
75 we can use databases instead of flat files and in-memory keyrings.
77 We will support verification of signatures using v3 keys, and
78 decryption of messages encrypted to v3 keys, but not signing or
79 encryption.
81 Command-line
82 ------------
84 * List keys
86 * Find key
88 * Export key/keyring
90 * Import key/keyring
92 * Generate key
94 * Delete key
96 * Generate subkey
98 * Revoke subkey
100 * Delete subkey
102 * Update subkey
104 * Add UID
106 * Remove UID
108 * Certify UID
110 * Revoke certification
112 * Encrypt
114 * Decrypt
116 * Sign
118 * Verify
120 Note that at least the first phase is not aiming at super-smooth
121 command-line utilities - these will be good enough for testing, rather
122 than for general use.