Topal 74

Topal is an application that links GnuPG and Pine/Alpine.
Topal is an application that links GnuPG and Pine/Alpine. It offers facilities to encrypt, decrypt, sign and verify emails.

Installation and configuration

Compilation and installation

To compile Topal, you need a working C compiler and the GNU Ada Compiler (GNAT). There is a makefile: simply type `make'. Type `make install' to see what files need copying (it doesn't actually do the copy).

MIME features require an installation of mime-construct and metamail.

Pine/Alpine configuration

Assuming that the topal binary is installed in /usr/local/bin, set up the Pine/Alpine sending and display filters as follows:

display-filters=_BEGINNING("-----BEGIN PGP ")_ /usr/local/bin/topal -display _TMPFILE_ _RESULTFILE_

sending-filters=/usr/local/bin/topal -send _TMPFILE_ _RESULTFILE_ _RECIPIENTS_,
/usr/local/bin/topal -sendmime _TMPFILE_ _RESULTFILE_ _MIMETYPE_ _RECIPIENTS_

You can choose either or both of the sending filters. The -sendmime option allows the user to choose the MIME type of the outbound email. (Legacy fixes are in place that make -decrypt and -verify behave the same as -display.) Note that _RECIPIENTS_ should be last.

For -sendmime to work, you will need to patch Pine/Alpine. There are patches for versions 4.44, 4.50, 4.53, 4.58. 4.60 and 4.64 of Pine. (They're all more-or-less the same patch.) cd into the pine4.xx directory and use the patch command.

There is one patch for Alpine: version 1.00. Please note that the Alpine patches also modify Alpine's configuration. There is a hidden preference `enable Topal hack' (enable-topal-hack) that you need to switch on.

It doesn't seem to have broken anything else.... It seems to work for sending via an SMTP server - it might break for sending via /usr/lib/sendmail (if it does, please send me a debug trace by invoking pine with `-d 9').

You can also add --read-from _INCLUDEALLHDRS_ before send and -sendmime. This makes Topal attempt to guess a suitable key for signing and self-encryption. If multiple possible keys match, then you'll be offered a menu of the keys.

Mailcap configuration

To decode MIME RFC2015/3156 multipart/signed and /encrypted messages requires the assistance of metamail. Add in either the user mailcap configuration (.mailcap) or the system configuration (/etc/mailcap) the lines
multipart/signed; /usr/local/bin/topal -mime '%s' '%t'; needsterminal
multipart/encrypted; /usr/local/bin/topal -mime '%s' '%t'; needsterminal
application/pgp; /usr/local/bin/topal -mimeapgp '%s' '%t'; needsterminal

Procmail configuration

In your procmailrc, add the recipe:

| /usr/local/bin/topal --fix-email

This examines all inbound emails. Those with top-level multipart/signed or multipart/encrypted MIME types are modified to add a multipart/misc wrapper so that Pine/Alpine can hand it off to Topal. All other emails are left unchanged.

I strongly advise that you also use one of the backup recipes from the procmail manual. See also the notes in fixing multipart emails.

Topal configuration

Create a directory called `${HOME}/.topal'. This is currently hard-coded into Topal. Create the basic configuration file by running topal with the -dump or -default options. This file should be named `config'.

All .topal files are silently ignored if they cannot be found. Parsing errors cause an exception.

If you want to include strings with spaces, you'll need to quote them with double-quotes ("). Double-quotes themselves can be included by `stuffing' ("").

Main features:

  • In-place decryption/verification, dealing with multiple blocks embedded in text.
  • Caching of output to reduce need for passphrase (at expense of storing decrypts and verification output).
  • Receiving of MIME RFC2015/3156 multipart/signed and multipart/encrypted messages. Top-level multipart items need some modification: see the README section `fixing multipart emails'. These features are available to any program that uses .mailcap files.
  • Sending of MIME RFC2015/3156 multipart/signed and multipart/encrypted messages. (Needs a patch to Pine/Alpine.)
  • Sending and receiving of the old application/pgp content-type (sending requires the same patch as the previous item).
  • Offers user the opportunity to check output before sending it.
  • Rich configuration options.
  • Shortcuts for selecting keys, as well as general key selection routines when sending email.
  • Few arbitrary limits.

last updated on:
June 24th, 2011, 9:31 GMT
developed by:
Phillip J. Brooke
license type:
GPL v3 
ROOT \ Communications \ Email


In a hurry? Add it to your Download Basket!

user rating 14



3 Screenshots
What's New in This Release:
  • Documentation updates and minor improvements to attachment and multipart detection.
read full changelog

Add your review!