~ubuntu-branches/ubuntu/precise/topal/precise

« back to all changes in this revision

Viewing changes to README.txt

  • Committer: Bazaar Package Importer
  • Author(s): Phil Brooke
  • Date: 2008-07-18 07:57:38 UTC
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20080718075738-i1szqvmxz0evz32p
Tags: upstream-62
ImportĀ upstreamĀ versionĀ 62

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
2
     _________________________________________________________________
3
3
 
4
 
                         `Topal': GPG/Pine integration
 
4
                 Topal: GPG/GnuPG and Alpine/Pine integration
5
5
 
6
 
   Copyright (C) 2001--2003 Phillip J. Brooke
 
6
   Copyright (C) 2001--2008 Phillip J. Brooke
7
7
     _________________________________________________________________
8
8
 
9
9
Contents
10
10
 
11
11
     * [1]Introduction
12
12
     * [2]Features
13
 
     * [3]Important Changes from Previous Stable Versions
14
 
     * [4]Installation and Configuration
15
 
          + [5]Compilation and Installation
16
 
          + [6]Pine Configuration
17
 
          + [7]Mailcap Configuration
18
 
          + [8]Topal Configuration
19
 
     * [9]Topal Usage
 
13
     * [3]Important changes from previous stable versions
 
14
     * [4]Installation and configuration
 
15
          + [5]Compilation and installation
 
16
          + [6]Pine/Alpine configuration
 
17
          + [7]Mailcap configuration
 
18
          + [8]Topal configuration
 
19
     * [9]Topal usage
20
20
          + [10]Help!
21
 
          + [11]Interactive Configuration
22
 
          + [12]Decryption/Verification
 
21
          + [11]Interactive configuration
 
22
          + [12]Decryption/verification
23
23
          + [13]Sending
24
24
          + [14]Command-line usage
25
 
     * [15]Additional Programs
26
 
     * [16]Notes
27
 
          + [17]The Pine hack, and sending other attachments
28
 
          + [18]Key IDs
29
 
          + [19]Errors
30
 
          + [20]Decrypting attachments
31
 
          + [21]Cleaning up the cache
32
 
          + [22]New releases
33
 
     * [23]Author
34
 
     * [24]License
35
 
     * [25]To do
36
 
     * [26]Version History
37
 
          + [27]Most recent changes
 
25
          + [15]Remote and server mode
 
26
     * [16]Fixing multipart emails
 
27
     * [17]Notes
 
28
          + [18]The Pine/Alpine hack, and sending other attachments
 
29
          + [19]Key IDs and keylists
 
30
          + [20]Errors
 
31
          + [21]Decrypting attachments
 
32
          + [22]Locale problems
 
33
          + [23]Cleaning up the cache
 
34
          + [24]Remote and server mode
 
35
          + [25]New releases
 
36
          + [26]Release numbering
 
37
     * [27]Author
 
38
     * [28]Licence
 
39
     * [29]To do
 
40
     * [30]Version history
 
41
          + [31]Most recent changes
38
42
     _________________________________________________________________
39
43
 
40
44
Introduction
41
45
 
42
 
   Topal is a `glue' program that links [28]GnuPG and [29]Pine. It offers
43
 
   facilities to encrypt, decrypt, sign and verify emails. See the list
44
 
   of [30]features below.
 
46
   Topal is a `glue' program that links [32]GnuPG and
 
47
   [33]Pine/[34]Alpine. It offers facilities to encrypt, decrypt, sign
 
48
   and verify emails. See the list of [35]features below.
45
49
     _________________________________________________________________
46
50
 
47
51
Features
50
54
       embedded in text.
51
55
     * Caching of output to reduce need for passphrase (at expense of
52
56
       storing decrypts and verification output).
53
 
     * Receiving of MIME RFC2015 multipart/signed and multipart/encrypted
54
 
       messages. (Top-level multipart items need some help from a script,
55
 
       topal-fix-email, invoked by procmail.) These features are
56
 
       available to any program that uses .mailcap files.
57
 
     * Sending of MIME RFC2015 multipart/signed and multipart/encrypted
58
 
       messages. (Needs a patch to Pine.)
 
57
     * Receiving of MIME RFC2015/3156 multipart/signed and
 
58
       multipart/encrypted messages. Top-level multipart items need some
 
59
       modification: see the README section `fixing multipart emails'.
 
60
       These features are available to any program that uses .mailcap
 
61
       files.
 
62
     * Sending of MIME RFC2015/3156 multipart/signed and
 
63
       multipart/encrypted messages. (Needs a patch to Pine/Alpine.)
59
64
     * Sending and receiving of the old application/pgp content-type
60
65
       (sending requires the same patch as the previous item).
 
66
     * Basic support for verifying S/MIME multipart/signed messages.
61
67
     * Offers user the opportunity to check output before sending it.
 
68
     * Remote sending mode for when reading email on a distant computer
 
69
       via ssh with secret keys on the local computer.
62
70
     * Rich configuration options.
63
71
     * Shortcuts for selecting keys, as well as general key selection
64
72
       routines when sending email.
65
73
     * Few arbitrary limits.
66
74
     _________________________________________________________________
67
75
 
68
 
Important Changes from Previous Stable Versions
69
 
 
70
 
   The previous stable releases were 0.7.2, 0.7.8 and 0.7.9.
71
 
 
72
 
  Important Changes in Version 0.7.10
 
76
Important changes from previous stable versions
 
77
 
 
78
   The previous stable releases were 0.7.2, 0.7.8, 0.7.9 and 0.7.13.6.
 
79
   Release numbering has changed since then. The subsequent stable
 
80
   releases were 55, 56, ....
 
81
 
 
82
  Important changes in release 60
 
83
 
 
84
     * MIME sending now requires MIME-tool; mime-construct is no longer
 
85
       used. See [36]compilation and installation.
 
86
 
 
87
  Important changes in release 58
 
88
 
 
89
     * The default configuration no longer uses absolute paths.
 
90
 
 
91
  Important changes in release 55
 
92
 
 
93
     * If you use a non-English locale, please check that Topal still
 
94
       works as expected (replaced code that fixed some locale problems).
 
95
     * The Alpine patch is based off my old Pine patches, but does a
 
96
       little more. You will need to set the Enable Topal hack for
 
97
       OpenPGP/MIME messages option in the hidden configuration list. Bug
 
98
       reports welcome.
 
99
     * The --fix-email wrapper no longer creates a multipart/alternative:
 
100
       it creates a multipart/misc wrapper instead. Please check that
 
101
       your procmail recipe includes a suitable backup in case this
 
102
       doesn't work for you.
 
103
 
 
104
  Important changes in version 0.7.10
73
105
 
74
106
   The recommended procmail recipe has been changed.
75
107
 
76
 
  Important Changes in Version 0.7.8
 
108
  Important changes in version 0.7.8
77
109
 
78
110
   topal-fix-email and topal-fix-folder have been replaced by the main
79
111
   topal binary. Change topal-fix-email in your .procmailrc to be topal
89
121
   via topal -config).
90
122
 
91
123
   Finally, the send menu has a new option: `Pass through unchanged'.
92
 
   This does nothing to the message (except for forcing the content-type
93
 
   to be text/plain when invoked with -sendmime; this is useful for
94
 
   dealing with an obscure bug in Pine 4.44). Moreover, you can always
95
 
   have Topal invoked for sending.
 
124
   This does nothing to the message so, you can always have Topal invoked
 
125
   as a filter for sending.
96
126
     _________________________________________________________________
97
127
 
98
 
Installation and Configuration
99
 
 
100
 
  Compilation and Installation
101
 
 
102
 
   You need a working C compiler and the GNU Ada Compiler (GNAT). There
103
 
   is a makefile: simply type `make'. Type `make install' to see what
104
 
   files need copying (it doesn't actually do the copy).
105
 
 
106
 
  Pine Configuration
107
 
 
108
 
   Assuming that the topal binary is installed in /usr/local/bin, set up
109
 
   the Pine sending & display filters as follows:
110
 
display-filters=_BEGINNING("-----BEGIN PGP ")_ /usr/local/bin/topal -display _TMPFILE_ _RESULTFILE_
111
 
 
112
 
sending-filters=/usr/local/bin/topal -send _TMPFILE_ _RESULTFILE_ _RECIPIENTS_,
113
 
                /usr/local/bin/topal -sendmime _TMPFILE_ _RESULTFILE_ _MIMETYPE_ _RECIPIENTS_
 
128
Installation and configuration
 
129
 
 
130
  Compilation and installation
 
131
 
 
132
   To compile Topal, you need a working C compiler and the GNU Ada
 
133
   Compiler (GNAT). There is a makefile: simply type make. Type make
 
134
   install to actually install. The default location is /usr, so you'll
 
135
   need to be root to install. Alternatively, use make install
 
136
   INSTALLPATH=/usr/local to install into /usr/local. (Or use the more
 
137
   specific variables INSTALLPATHBIN, INSTALLPATHMAN, INSTALLPATHDOC and
 
138
   INSTALLPATHPATCHES.)
 
139
 
 
140
   MIME sending requires the Topal version of mime-tool (included with
 
141
   the Topal sources, and compiled and installed at the same time using
 
142
   the Makefile). MIME viewing can be handled via metamail, run-mailcap,
 
143
   or by saving to a file in the ~/.topal directory and viewed with
 
144
   Alpine.
 
145
 
 
146
  Pine/Alpine configuration
 
147
 
 
148
   Assuming that the topal binary is installed in /usr/bin, set up the
 
149
   Pine/Alpine sending and display filters as follows:
 
150
display-filters=_BEGINNING("-----BEGIN PGP ")_ /usr/bin/topal -display _TMPFILE_ _RESULTFILE_
 
151
 
 
152
sending-filters=/usr/bin/topal -send _TMPFILE_ _RESULTFILE_ _RECIPIENTS_,
 
153
                /usr/bin/topal -sendmime _TMPFILE_ _RESULTFILE_ _MIMETYPE_ _RECIPIENTS_
114
154
 
115
155
   You can choose either or both of the sending filters. The -sendmime
116
156
   option allows the user to choose the MIME type of the outbound email.
117
157
   (Legacy fixes are in place that make -decrypt and -verify behave the
118
 
   same as -display.)
119
 
 
120
 
   For -sendmime to work, you will need to patch Pine. There are patches
121
 
   for versions [31]4.44, [32]4.50 and [33]4.53 of Pine. (They're all
122
 
   more-or-less the same patch. It's pretty easy to apply them against
123
 
   Pine versions 4.51 and 4.52 if you feel so inclined.) `cd' into the
124
 
   pine4.xx directory and use the command `patch -p1 <
125
 
   wherever/the/patch/is'.
 
158
   same as -display.) Note that _RECIPIENTS_ should be last.
 
159
 
 
160
   For -sendmime to work, you will need to patch Pine/Alpine. There are
 
161
   patches for versions [37]4.44, [38]4.50, [39]4.53, [40]4.58. [41]4.60
 
162
   and [42]4.64 of Pine. (They're all more-or-less the same patch.) cd
 
163
   into the pine4.xx directory and use the patch command.
 
164
 
 
165
   There are patches for Alpine: versions [43]1.00 and [44]1.10. Please
 
166
   note that the Alpine patches also modify Alpine's configuration. There
 
167
   is a hidden preference `enable Topal hack' (enable-topal-hack) that
 
168
   you need to switch on.
126
169
 
127
170
   It doesn't seem to have broken anything else.... It seems to work for
128
171
   sending via an SMTP server - it might break for sending via
129
172
   /usr/lib/sendmail (if it does, please send me a debug trace by
130
173
   invoking pine with `-d 9').
131
174
 
132
 
  Mailcap Configuration
133
 
 
134
 
   To decode MIME RFC2015 multipart/signed and /encrypted messages
 
175
   You can also add --read-from _INCLUDEALLHDRS_ before send and
 
176
   -sendmime. This makes Topal attempt to guess a suitable key for
 
177
   signing and self-encryption. If multiple possible keys match, then
 
178
   you'll be offered a menu of the keys.
 
179
 
 
180
  Mailcap configuration
 
181
 
 
182
   To decode MIME RFC2015/3156 multipart/signed and /encrypted messages
135
183
   requires the assistance of metamail. Add in either the user mailcap
136
184
   configuration (.mailcap) or the system configuration (/etc/mailcap)
137
185
   the lines
138
 
multipart/signed; /usr/local/bin/topal -mime '%s' '%t'; needsterminal
139
 
multipart/encrypted; /usr/local/bin/topal -mime '%s' '%t'; needsterminal
140
 
application/pgp; /usr/local/bin/topal -mimeapgp '%s' '%t'; needsterminal
 
186
multipart/signed; /usr/bin/topal -mime '%s' '%t'; needsterminal
 
187
multipart/encrypted; /usr/bin/topal -mime '%s' '%t'; needsterminal
 
188
application/pgp; /usr/bin/topal -mimeapgp '%s' '%t'; needsterminal
141
189
 
142
 
  Procmail Configuration
 
190
  Procmail configuration
143
191
 
144
192
   In your procmailrc, add the recipe:
145
193
:0fw
146
 
| /usr/local/bin/topal --fix-email
 
194
| /usr/bin/topal --fix-email
 
195
 
 
196
   This examines all inbound emails. Those with top-level
 
197
   multipart/signed or multipart/encrypted MIME types are modified to add
 
198
   a multipart/misc wrapper so that Pine/Alpine can hand it off to Topal.
 
199
   All other emails are left unchanged.
147
200
 
148
201
   I strongly advise that you also use one of the backup recipes from the
149
 
   procmail manual. See also the notes in [34]additional programs.
 
202
   procmail manual. See also the notes in [45]fixing multipart emails.
150
203
 
151
 
  Topal Configuration
 
204
  Topal configuration
152
205
 
153
206
   Create a directory called `${HOME}/.topal'. This is currently
154
207
   hard-coded into Topal. Create the basic configuration file by running
155
 
   topal with the -dump or -default option. This file should be named
 
208
   topal with the -dump or -default options. This file should be named
156
209
   `config'.
157
210
 
158
 
   All .topal files are silently ignored if they cannot be found. Parsing
159
 
   errors cause an exception.
 
211
   All .topal files are silently ignored if they cannot be found.
 
212
   Comments begin with a # in the first column, and run to the end of a
 
213
   line. They are totally ignored and are not currently preserved.
 
214
   Parsing errors cause an exception.
160
215
 
161
216
   If you want to include strings with spaces, you'll need to quote them
162
217
   with double-quotes ("). Double-quotes themselves can be included by
163
218
   `stuffing' ("").
164
219
     _________________________________________________________________
165
220
 
166
 
Topal Usage
 
221
Topal usage
167
222
 
168
223
  Help!
169
224
 
172
227
   The help message is derived from the help.txt file (included at
173
228
   compile time).
174
229
 
175
 
   See help.txt for information on [35]non-Pine use of Topal.
176
 
 
177
 
   Send [36]email to me if you're really stuck.
178
 
 
179
 
  Interactive Configuration
 
230
   See help.txt for information on [46]non-Pine use of Topal.
 
231
 
 
232
   Send [47]email to me if you're really stuck.
 
233
 
 
234
  Interactive configuration
180
235
 
181
236
   -config as the first argument brings up the configuration menu.
182
237
 
183
238
   This menu is also available when sending (so that the signing key can
184
239
   be changed).
185
240
 
186
 
  Decryption/Verification
 
241
  Decryption/verification
187
242
 
188
243
   Depending on configuration, Topal will either ignore the file
189
244
   altogether, ask you what you want to do with it, or proceed to process
196
251
   caching mean that you won't be repeatedly asked for your passphrase,
197
252
   at the expense of storing decrypts in the clear.
198
253
 
199
 
   Be warned: Topal often invokes `less' to view something. So you'll
200
 
   need to use `q' to get out of it. `Metamail' is called for anything
201
 
   after MIME processing.
 
254
   Be warned: Topal often invokes less to view something. So you'll need
 
255
   to use q to get out of it. metamail is called for anything after MIME
 
256
   processing.
202
257
 
203
 
   A new option (for version 0.7.8) called `inline-separate-output'
 
258
   A new option (for version 0.7.8) called inline-separate-output
204
259
   concerns inlined (i.e., not MIME) messages. If the option is on, then
205
260
   the Topal/GnuPG output will be shown to you by less. Then the
206
 
   decrypted or verified output will be handed back to Pine. This is the
207
 
   way to approach attachments. However, you will normally want to keep
208
 
   this option off, because if you're reading (for example) BugTraq
209
 
   mailings, then it will want you to hit `q' an awful lot....
 
261
   decrypted or verified output will be handed back to Pine/Alpine. This
 
262
   is the way to approach attachments. However, you will normally want to
 
263
   keep this option off, because if you're reading (for example) BugTraq
 
264
   mailings, then it will want you to hit q an awful lot....
210
265
 
211
266
  Sending
212
267
 
219
274
   Above that, it will indicate picking up keys for each recipient email
220
275
   address. It will also add a key `for self'.
221
276
 
222
 
   `Abort' tells Pine you don't want Topal to process the email anymore.
 
277
   `Abort' tells Pine/Alpine you don't want Topal to process the email
 
278
   anymore.
223
279
 
224
 
   `Pass through unchanged' does nothing to the message (except for
225
 
   forcing the content-type to be text/plain when invoked with -sendmime;
226
 
   this is useful for dealing with an obscure bug in Pine 4.44). This
227
 
   means that you can always have Topal invoked for sending.
 
280
   `Pass through unchanged' does nothing to the message. This means that
 
281
   you can always have Topal invoked for sending.
228
282
 
229
283
   `Add own key' adds an `encrypt to self' key. (It is added by default,
230
284
   but if you remove it, this is a quick way to restore it.)
246
300
   will be offered. This encapsulates a MIME signed message inside an
247
301
   encrypted message. Otherwise, we do both operations at once. (If you
248
302
   choose `clearsign' and `multipart/*', then all trailing blank lines
249
 
   will be deleted. Note also that Pine appears to delete trailing
 
303
   will be deleted. Note also that Pine/Alpine appears to delete trailing
250
304
   whitespace in trailing blank lines.)
251
305
 
252
306
   `Configuration' offers the same menu that is available from the
257
311
  or (s) to select a key after searching in the main keyring
258
312
  or (ak) to add keys from the main keyring (not recommended, use `s')
259
313
  Displaying choices 1 to 2 of 1 to 2    (<,) page up   (>.) page down
260
 
   1 - Details: pub  1024D/50973B91 2000-12-19 Dr Phil Brooke (at home) <P.J.Broo
261
 
   2 - Details: pub  1024D/16BE903A 2001-02-25 Malcolm Gray <malcolm.gray@jobstre
 
314
   1 - 50973B91 2000-12-19 Dr Phil Brooke (at home)
 
315
   2 - 9DAF9B5C 2005-10-21 Dr Phil Brooke
262
316
 
263
317
   `Quit and return to main send menu' sends you back to the first menu.
264
318
 
265
319
   `Add key from main keyring' prompts you for a search pattern. It will
266
 
   do a general search on your GPG keyring. Beware of just pressing enter
267
 
   - it will select all keys on your keyring.
 
320
   do a general search on your GPG keyring and add all matching keys.
 
321
   Beware of just pressing enter - it will select all keys on your
 
322
   keyring.
268
323
 
269
324
   A better alternative is to use the `select after search' option. This
270
325
   also does a search on your GPG keyring, but then you must select one
272
327
 
273
328
   Selecting a key will offer a third menu (a similar menu is offered
274
329
   when selecting a single key):
275
 
  Key: Details: pub  1024D/50973B91 2000-12-19 Dr Phil Brooke (at home) <P.J.Broo
 
330
  Key: 50973B91 2000-12-19 Dr Phil Brooke (at home)
276
331
  (d) Display details of key with less, (v) Verbosely
277
332
  (r) Remove key from list   (kql) Return to key list
278
333
 
286
341
 
287
342
   `Remove key from list' removes the key from this recipient list.
288
343
 
289
 
Command-line usage
 
344
  Command-line usage
290
345
 
291
346
   If you invoke Topal on the command-line with a filename as an
292
347
   argument, it will offer the sending functions on that file. It doesn't
295
350
   original file (this bit is case-sensitive).
296
351
 
297
352
   The main purpose of this mode is for encrypting or signing attachments
298
 
   before they are attached to the message in Pine. Beware that Pine does
299
 
   not feed the attachments to a sending filter.
 
353
   before they are attached to the message in Pine/Alpine. Beware that
 
354
   Pine/Alpine does not feed the attachments to a sending filter.
300
355
 
301
356
   MIME functions are not available in this mode: it makes no sense.
 
357
 
 
358
  Remote and server mode
 
359
 
 
360
   Suppose you are reading your email on a remote host via ssh (as I
 
361
   often do). You now want to compose an email and sign it, but your
 
362
   secret key is only accessible on the local computer. Topal has
 
363
   rudimentary support for this (primarily to support my style of
 
364
   working). This comes in two parts: a `server' mode to run on the local
 
365
   computer (with access to the secret key) and a remote option in the
 
366
   sending menu.
 
367
 
 
368
   The server mode (on the local host) is started by running topal
 
369
   -server. This is where GPG requests for signing are made.
 
370
 
 
371
   When sending, you can choose `remote'. This prompts for the host to
 
372
   connect to using ssh/scp: this host should be running the `server'.
 
373
   The files are sent to the local server, processed by the server, then
 
374
   the results are copied back. ssh and scp are both used: because
 
375
   they're used repeatedly, you might want to use key-based
 
376
   authentication and have the key added to a current ssh-agent.
 
377
 
 
378
   There isn't a remote mode for receiving: my approach is to use unison
 
379
   (or some other file synchroniser or a simple scp) to move the email(s)
 
380
   concerned, then view them on the local computer.
302
381
     _________________________________________________________________
303
382
 
304
 
Additional Modes
 
383
Fixing multipart emails
305
384
 
306
 
   Two scripts used to be included with topal: topal-fix-email and
307
 
   topal-fix-folder. They have been replaced by the --fix-email and
 
385
   Two scripts used to be included with topal (long ago): topal-fix-email
 
386
   and topal-fix-folder. They have been replaced by the --fix-email and
308
387
   --fix-folder command-line options to the main binary.
309
388
 
310
389
   topal --fix-email modifies any email that is (at the top level) a
311
390
   multipart/signed or multipart/encrypted message. It creates a
312
 
   multipart/alternative message. The revised message contains the first
313
 
   part of the original message as one alternative, then the entire
314
 
   original message as an alternative part. Pine can cope with invoking
315
 
   Topal on the (original) subpart. Confused? (It probably isn't clever
316
 
   for /encrypted mail, but at least Topal can get at it.)
 
391
   multipart/misc message instead: this revised message is simply a
 
392
   wrapper version of the original message so that Pine/Alpine can pass
 
393
   the signed or encrypted part to Topal.
317
394
 
318
395
   Usage:
319
396
 
323
400
   topal --fix-email
324
401
          Takes no arguments; it accepts a single email on stdin.
325
402
          Ideally, it should be invoked by procmail (see the
326
 
          [37]configuration section above).
 
403
          [48]configuration section above).
327
404
 
328
405
   topal --fix-email has a simpler mode (--simple) where it pretends that
329
406
   there are two MIME content types: `application/x-topal-encrypted' and
330
407
   `application/x-topal-signed'. You might prefer using this.
 
408
 
 
409
   Why do we need this? If we just set the .mailcap file for, say,
 
410
   multipart/signed, then Alpine (at least version 1.00) is unable to
 
411
   handle a top-level multipart/signed email: an error message starting
 
412
   `Can't find body for requested message' is seen. But multipart/signed
 
413
   inside a multipart/mixed (or multipart/alternative, etc.) can be
 
414
   successfully handed-off to Topal.
 
415
 
 
416
   Replying to such messages is a pain: you'll have to save off the
 
417
   actual message and read it in. Suggestions on fixing this are
 
418
   welcome....
 
419
 
 
420
   See Workaround.Fix_Email in the sources for more details.
331
421
     _________________________________________________________________
332
422
 
333
423
Notes
334
424
 
335
 
  The Pine patch, and sending other attachments
 
425
  The Pine/Alpine patch, and sending other attachments
336
426
 
337
 
   What does the patch to Pine do? It removes some of the safety checking
338
 
   when changing the content-type (_MIMETYPE_) in a filter. Normally, if
339
 
   the returned content-type is not text/*, then the entire content-type
340
 
   is dropped.
 
427
   What does the patch to Pine/Alpine do? It removes some of the safety
 
428
   checking when changing the content-type (_MIMETYPE_) in a filter.
 
429
   Normally, if the returned content-type is not text/*, then the entire
 
430
   content-type is dropped.
341
431
 
342
432
   The patch instead adds a flag, `topal_hack', and sets this if the
343
433
   returned content-type is not text. From time-to-time, we pretend that
345
435
   message is already a multipart message, so hopefully, the normal
346
436
   sending of attachments still works.
347
437
 
348
 
  Key IDs
 
438
  Key IDs and keylists
349
439
 
350
440
   Topal internally lists keys by their fingerprint. It uses GPG to look
351
441
   up key fingerprints by using whatever GPG can cope with.
356
446
   the same key with its fingerprint will add two identical keys).
357
447
 
358
448
   The way that Topal chooses the keys is as follows:
359
 
 
360
449
     * For each recipient email address (supplied by Pine)
361
450
         1. For each matching line in keylist, use the key ID to get a
362
451
            fingerprint, and add the key to the list.
365
454
            configuration entries).
366
455
 
367
456
   The keylist is a way to say, `for this particular email address, use
368
 
   this particular key'.
 
457
   this particular key'. In your config file, include lines such as
 
458
ake=50973B91,philb@soc.plym.ac.uk
 
459
ake=50973B91,pjb@lothlann.freeserve.co.uk
 
460
 
 
461
   These mean `use key 50973B91 for the the given email addresses.
 
462
   Similarly,
 
463
xk=50973B91
 
464
 
 
465
   means `don't use key 50973B91'. There are also similar sake and sxk
 
466
   options for the secret key selection (via --read-from) (although the
 
467
   testing of the secret key listings is less thorough so far).
369
468
 
370
469
  Errors
371
470
 
383
482
   decrypted file with the original attachment filename, plus the various
384
483
   Topal headers.
385
484
 
 
485
  Locale problems
 
486
 
 
487
   GPG does not do any encoding of input data. This means that the
 
488
   encoding is dependent on Pine/Alpine and Topal. If a message is sent
 
489
   with one encoding and received by a user running in a different
 
490
   locale, then we might end up with a good message not verifying (i.e.,
 
491
   bad signature).
 
492
 
 
493
   I currently have no way to automatically fix this. However, the
 
494
   --ask-charset option will ask during inline decryption/verification if
 
495
   you want to change the encoding. If you know that the message was
 
496
   written by a UTF-8 user (and you're in a different locale), this might
 
497
   help. (This only happens if a bad signature is returned.)
 
498
 
 
499
   I know it's a kludge. I'd be interested to hear success and failure
 
500
   reports.
 
501
 
386
502
  Cleaning up the cache
387
503
 
388
504
   You might want to run something like
391
507
   to remove all the cache files that are a bit old (in this example, 7
392
508
   days old or older).
393
509
 
 
510
  Remote and server mode
 
511
 
 
512
   When remote is invoked in a sending menu:
 
513
     * The host has to be chosen for ssh/scp.
 
514
     * Because topal might be outside the normal path, you'll be asked
 
515
       for that too.
 
516
     * The sender scp's the relevant files into .topal/server.
 
517
     * The sender calls ssh (server) -remotesend ... or ssh (server)
 
518
       -remotesendmime ....
 
519
     * The invocation of -remotesend or -remotesendmime triggers the
 
520
       server to run a new instance of Topal on the local computer.
 
521
     * When that instance is finished, the relevant files are copied
 
522
       back, along with the return value.
 
523
 
394
524
  New releases
395
525
 
396
 
   To be notified of new releases of Topal, send an email to me....
 
526
   To be notified of new releases of Topal, send an email to me.
 
527
 
 
528
  Release numbering
 
529
 
 
530
   The old release numbering was making less sense to me. New releases
 
531
   are simple integers. In the event that an earlier release is modified,
 
532
   I'll then add extra components to the release number.
397
533
     _________________________________________________________________
398
534
 
399
535
Author
404
540
 
405
541
   If you like this program, please tell me. If you'd like it better with
406
542
   changes, please tell me what changes you want. If particular items on
407
 
   the [38]`To do' list are important to you, let me know. In particular,
 
543
   the [49]`To do' list are important to you, let me know. In particular,
408
544
   if you find bugs, feel free to tell me the details by email.
409
545
 
410
 
   This package is released under the GPL: see the file [39]COPYING.
 
546
   This package is released under the GPL: see the file [50]COPYING.
411
547
 
412
 
   I can be emailed on [40]pjb@lothlann.freeserve.co.uk
 
548
   I can be emailed on [51]pjb@lothlann.freeserve.co.uk
413
549
 
414
550
   My key ID is 0x50973B91; the key is available from web pages and
415
551
   public key servers.
418
554
   address.
419
555
     _________________________________________________________________
420
556
 
421
 
License
 
557
Licence
422
558
 
423
 
   This program is free software; you can redistribute it and/or modify
424
 
   it under the terms of the GNU General Public License as published by
425
 
   the Free Software Foundation; either version 2 of the License, or (at
426
 
   your option) any later version.
 
559
   This program is free software: you can redistribute it and/or modify
 
560
   it under the terms of the GNU General Public License version 3 as
 
561
   published by the Free Software Foundation.
427
562
 
428
563
   This program is distributed in the hope that it will be useful, but
429
564
   WITHOUT ANY WARRANTY; without even the implied warranty of
431
566
   General Public License for more details.
432
567
 
433
568
   You should have received a copy of the GNU General Public License
434
 
   along with this program; if not, write to the Free Software
435
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
436
 
   USA
 
569
   along with this program. If not, see [52]http://www.gnu.org/licenses/.
437
570
     _________________________________________________________________
438
571
 
439
572
To do...
440
573
 
441
 
     * Fix these known/reported bugs:
442
 
          + `Pine indicating both text elements as shown' problem - no
443
 
            obvious reason for it, though.
444
 
          + Very rarely, some Topal-munged multipart/signed messages
445
 
            aren't handed off to Pine. Not obvious why, yet.
 
574
     * Planned releases:
 
575
          + Add S/MIME support via gpgsm.
 
576
          + Improve attachments code (and add some documentation).
 
577
     * Better error handling, particularly when missing dependencies such
 
578
       as mime-construct or metamail.
446
579
     * Add signal handlers.
447
580
     * Catch GPG keyboard interrupt.
448
581
     * Should we check that the infile matches the cache file even if the
449
582
       MD5 hash matches? (We'd need to store the infile in the cache as
450
583
       well.)
451
584
     * Check through code: all external calls should check return values.
452
 
       General clean-up.
453
 
     * Add pkcs7 signatures via SSL?
454
 
     * Use mimeconstruct to attach attachments that are then
455
 
       signed/encrypted/whatever?
 
585
     * Refactor code.
456
586
     * Add interrupt option at very beginning of execution? (which would
457
587
       bring up the configuration menu?)
458
588
     * Associate extra options with particular keys?
470
600
       (include PID); indicate if the file was changed or not)?
471
601
     _________________________________________________________________
472
602
 
473
 
Version History
 
603
Version history
474
604
 
475
 
   Look in [41]release for the current release number.
 
605
   Look in [53]release for the current release number.
476
606
 
477
607
   06/2001, 0.1
478
608
          First alpha release.
559
689
          binary that is statically linked against the GNAT stuff so that
560
690
          people don't need to acquire GNAT first (this, I believe,
561
691
          complies with the GNAT licence).
562
 
 
563
692
          Added the scripts topal-fix-email and topal-fix-folder. This
564
693
          makes it a lot easier to work with other people's
565
694
          multipart/signed or /encrypted email. Procmail recipe added to
566
695
          this README.
567
 
 
568
696
          Added display of application/pgp messages. Including the text
569
697
          of one of these in a reply might be difficult, but then, it was
570
698
          difficult without topal's mangling. At least they can be
571
699
          verified and read now.
572
 
 
573
700
          -sendmime option added. Hack needed (in topal-pine-patch [now
574
 
          pine-4.44-patch]) to allow non-text/blah content-types in Pine.
 
701
          pine-4.44.patch]) to allow non-text/blah content-types in Pine.
575
702
          RFC2015 send and received done (including micalg detection when
576
703
          sending clearsigned messages: list used from RFC3156.). Ditto
577
704
          for application/pgp, but I'm not sure of some of the
578
705
          parameters, since I've only ever seen signed emails of this
579
706
          form.
580
 
 
581
707
          Removed some of the waits for execution, since it seems
582
708
          reliable. Added error checking on return value of GPG in sends.
583
709
 
585
711
          The Content-Type for MIME sending is displayed on the screen
586
712
          using `cat' rather than `less', which was getting to be
587
713
          annoying.
588
 
 
589
714
          Two changes that are related to how I manage the source code:
590
715
          Slight tweak to makefile for keeping track of RCS files; and
591
716
          using rcs -n<symbolic-name> to tag the released files.
599
724
   4/2002, 0.6.3
600
725
          RFC1847 multipart encapsulation added. (See section 6.1 of
601
726
          RFC3156.) Cleaned up related receiving/caching behaviour.
602
 
 
603
727
          Another MIME clear-signed messages bugfix. This one sorts out
604
728
          line-end conventions correctly.
605
 
 
606
729
          New patch for Pine: this stops a SEGFAULT when using RFC2015
607
730
          stuff and other attachments at the same time.
608
 
 
609
731
          Updated documentation; added man pages for the two scripts.
610
732
 
611
733
   4/2002, 0.6.4
752
874
          Now use -gnatwa and -gnato for all Ada compilation. It was
753
875
          omitted from the main binary build command before. Fixed all
754
876
          the resulting warnings.
 
877
 
 
878
   1/2004; 0.7.13.4
 
879
          Patched externals calls for errno to prevent (in some cases)
 
880
          warnings from ld.so, and in other cases, failures to build.
 
881
 
 
882
   6/2004; 0.7.13.5
 
883
          Added patch against Pine version 4.60. Updated some notices.
 
884
 
 
885
   1/4/2005; 0.7.13.6
 
886
          Calls to the GPG binary now have LANG set to C before exec so
 
887
          that we don't have to worry about different language output in
 
888
          GPG. Thanks for Joern Brederec for the bug report and
 
889
          suggestion of how to fix it.
 
890
 
 
891
   2005-2007
 
892
          Four internal development releases junked.
 
893
 
 
894
   8/1/2008; release 55
 
895
          --fix-email now replaces the original message with a
 
896
          multipart/misc wrapper, rather than expanding it into a
 
897
          multipart/alternative message.
 
898
          Replaced some key selection code. Hopefully, this reduces the
 
899
          number of locale-dependent and GPG version-specific problems.
 
900
          Additionally, revoked, disabled and invalid keys are no longer
 
901
          offered; checks are made to ensure that the key is valid for
 
902
          encryption/signing when applicable.
 
903
          New patch for Alpine 1.00. Includes configuration setting.
 
904
          The `pass through unchanged' send option no longer modifies the
 
905
          content-type to text/plain.
 
906
          Should now build and run on Cygwin.
 
907
          Licence is now GPL-3.
 
908
          Attempt to prevent potential memory leak (if running for a long
 
909
          time) by making the implementation of expanding_array a
 
910
          controlled type.
 
911
          Cleaned up Ada source to reduce warnings.
 
912
          Other minor changes, e.g., better checks on keylists,
 
913
          documentation clean-up.
 
914
          Changed [54]release numbering.
 
915
          HTML cleaned up and CSS added.
 
916
 
 
917
   8/1/2008; release 56
 
918
          --read-from option added to select different signing keys
 
919
          depending on the From line. Also added sake and sxk
 
920
          configurations.
 
921
          Fixed bug in Keys.Remove.Key (didn't match if the full
 
922
          fingerprint wasn't given).
 
923
          Command-line parser now accepts 1 or more hyphens for any
 
924
          option.
 
925
          Improved keylist documentation.
 
926
          Corrected release date for release 55... oops.
 
927
 
 
928
   8/1/2008; release 57
 
929
          Initial attempt at supporting attachments within Topal.
 
930
          Changed MIME boundary detection code (the previous algorithm
 
931
          couldn't cope with multipart included in a signed email).
 
932
          Please tell me if this breaks your emails....
 
933
          Bug fix to _INCLUDEALLHDRS_ - it needs to turn the CRLF back
 
934
          into LF or it might chop off some of your message....
 
935
 
 
936
   22/6/2008; release 58
 
937
          UI improvements (count keys in keylist, clearer indication of
 
938
          position in menus).
 
939
          Added patch for Alpine 1.10. Renamed all patch files.
 
940
          Default paths for binaries are no longer absolute.
 
941
          Configuration files now allow comments, but they're not
 
942
          preserved by Topal.
 
943
          Added more exception handling messages.
 
944
          Sending and receiving both save off original input as tempfiles
 
945
          to help debugging.
 
946
          Added --ask-charset command line option. This is really only
 
947
          for testing a new workaround for locale-related bad signatures.
 
948
          Please see [55]locale problems in the notes and send feedback.
 
949
          Started removing dependency on mime-construct; new source files
 
950
          mime.ad[sb].
 
951
          Build date added to binary.
 
952
 
 
953
   3/7/2008; release 59
 
954
          Added sequence numbers to temporary files to reduce possible
 
955
          name conflicts.
 
956
          The makefile's install target now installs to INSTALLPATH. This
 
957
          can be overridden, e.g., make install INSTALLPATH=/usr/local.
 
958
          The four more specific paths, INSTALLPATHBIN, INSTALLPATHMAN,
 
959
          INSTALLPATHDOC and INSTALLPATHPATCHES can also be overridden.
 
960
          Fixes request from Nils Schlupp re: ebuild.
 
961
          The --ask-charset command-line option is now only used if a bad
 
962
          signature is returned; a second attempt is then made if a
 
963
          different character set is suggested by the user.
 
964
 
 
965
   13/7/2008; release 60
 
966
          Update installation instructions for make install.
 
967
          We now use a modified version of Jeffrey S. Dutky's mime-tool
 
968
          instead of mime-construct for creating MIME messages. We
 
969
          include our modified version in the Topal tarball (since both
 
970
          are GPL, and our modifications are needed if creating MIME
 
971
          messages).
 
972
          MIME viewing can now use metamail, use run-mailcap or save the
 
973
          attachment to the folder ~/.topal/viewmime (which you can then
 
974
          open in Alpine). run-mailcap and saving support are new.
 
975
          Sending menu allows user to view and edit the email. A quicker
 
976
          method for changing/setting the signing (own) key is available.
 
977
 
 
978
   14/7/2008; release 61
 
979
          An initial, rather crude, but (for my purposes at least)
 
980
          effective remote mode for sending.
 
981
          Some history is now saved.
 
982
 
 
983
   17/7/2008; release 62
 
984
          Added basic support for S/MIME verification of messages.
 
985
          Quoted-printable encoder (in MIME-tool) improved (single dots
 
986
          and leading "From ") as per RFC2049.
 
987
          Ignore errors in strip in Makefile (trips up Cygwin, which
 
988
          expects the executable to be foo.exe).
 
989
          Update feature list for remote sending.
 
990
          Internal changes to configuration storage.
755
991
     _________________________________________________________________
756
992
 
757
993
References
758
994
 
759
 
   1. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#introduction
760
 
   2. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#features
761
 
   3. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#important-changes
762
 
   4. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#inst-and-config
763
 
   5. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#comp-and-inst
764
 
   6. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#pine-config
765
 
   7. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#mailcap-config
766
 
   8. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#topal-config
767
 
   9. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#topal-usage
768
 
  10. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#topal-help
769
 
  11. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#interactive-config
770
 
  12. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#decrypt-verify
771
 
  13. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#sending
772
 
  14. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#nonpine
773
 
  15. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#additional-programs
774
 
  16. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#notes
775
 
  17. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#pinehack
776
 
  18. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#keyids
777
 
  19. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#errors
778
 
  20. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#decrypt-attachments
779
 
  21. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#cleaning-cache
780
 
  22. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#new-releases
781
 
  23. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#author
782
 
  24. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#license
783
 
  25. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#todo
784
 
  26. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#changes
785
 
  27. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#last-changes
786
 
  28. http://www.gnupg.org/
787
 
  29. http://www.washington.edu/pine/
788
 
  30. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#features
789
 
  31. file://localhost/home/pjb/projects/topal/STABLE/topal/pine-4.44-patch
790
 
  32. file://localhost/home/pjb/projects/topal/STABLE/topal/pine-4.50-patch
791
 
  33. file://localhost/home/pjb/projects/topal/STABLE/topal/pine-4.53-patch
792
 
  34. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#additional-programs
793
 
  35. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#nonpine
794
 
  36. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#author
795
 
  37. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#procmail-config
796
 
  38. file://localhost/home/pjb/projects/topal/STABLE/topal/README.html#todo
797
 
  39. file://localhost/home/pjb/projects/topal/STABLE/topal/COPYING
798
 
  40. mailto:pjb@lothlann.freeserve.co.uk
799
 
  41. file://localhost/home/pjb/projects/topal/STABLE/topal/release
 
995
   1. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#introduction
 
996
   2. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#features
 
997
   3. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#important-changes
 
998
   4. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#inst-and-config
 
999
   5. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#comp-and-inst
 
1000
   6. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#pine-config
 
1001
   7. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#mailcap-config
 
1002
   8. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#topal-config
 
1003
   9. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#topal-usage
 
1004
  10. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#topal-help
 
1005
  11. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#interactive-config
 
1006
  12. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#decrypt-verify
 
1007
  13. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#sending
 
1008
  14. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#nonpine
 
1009
  15. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#remote
 
1010
  16. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#fix-multipart
 
1011
  17. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#notes
 
1012
  18. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#pinehack
 
1013
  19. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#keyids
 
1014
  20. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#errors
 
1015
  21. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#decrypt-attachments
 
1016
  22. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#locale-problems
 
1017
  23. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#cleaning-cache
 
1018
  24. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#remote-notes
 
1019
  25. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#new-releases
 
1020
  26. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#release-numbering
 
1021
  27. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#author
 
1022
  28. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#licence
 
1023
  29. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#todo
 
1024
  30. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#changes
 
1025
  31. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#last-changes
 
1026
  32. http://www.gnupg.org/
 
1027
  33. http://www.washington.edu/pine/
 
1028
  34. http://www.washington.edu/alpine/
 
1029
  35. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#features
 
1030
  36. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#comp-and-inst
 
1031
  37. file://localhost/home/pjb/projects/topal/STABLE3/topal/pine-4.44.patch
 
1032
  38. file://localhost/home/pjb/projects/topal/STABLE3/topal/pine-4.50.patch
 
1033
  39. file://localhost/home/pjb/projects/topal/STABLE3/topal/pine-4.53.patch
 
1034
  40. file://localhost/home/pjb/projects/topal/STABLE3/topal/pine-4.58.patch
 
1035
  41. file://localhost/home/pjb/projects/topal/STABLE3/topal/pine-4.60.patch
 
1036
  42. file://localhost/home/pjb/projects/topal/STABLE3/topal/pine-4.64.patch
 
1037
  43. file://localhost/home/pjb/projects/topal/STABLE3/topal/alpine-1.00.patch
 
1038
  44. file://localhost/home/pjb/projects/topal/STABLE3/topal/alpine-1.10.patch
 
1039
  45. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#fix-multipart
 
1040
  46. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#nonpine
 
1041
  47. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#author
 
1042
  48. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#procmail-config
 
1043
  49. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#todo
 
1044
  50. file://localhost/home/pjb/projects/topal/STABLE3/topal/COPYING
 
1045
  51. mailto:pjb@lothlann.freeserve.co.uk
 
1046
  52. http://www.gnu.org/licenses/
 
1047
  53. file://localhost/home/pjb/projects/topal/STABLE3/topal/release
 
1048
  54. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#release-numbering
 
1049
  55. file://localhost/home/pjb/projects/topal/STABLE3/topal/README.html#locale-problems