$Id: README,v 1.8 2002/07/12 23:59:37 btrott Exp $

This is Crypt::OpenPGP. It provides a pure-Perl implementation of the
OpenPGP standard, including support for all versions of PGP and
GnuPG.

PREREQUISITES

Crypt::OpenPGP requires the following Perl modules:

    * MIME::Base64
    * Data::Buffer
    * Math::Pari
    * Compress::Zlib

Depending on which symmetric ciphers you use, you will require
at least one of the following modules:

    * Crypt::DES_EDE3 (for 3DES)
    * Crypt::IDEA (for IDEA)
    * Crypt::Blowfish (for Blowfish)
    * Crypt::Twofish (for Twofish)
    * Crypt::Rijndael (for Rijndael)
    * Crypt::CAST5_PP (for CAST5)

Depending on which digest algorithms you use, you will require at
least one of the following modules:

    * Digest::MD5 (for MD5)
    * Digest::SHA1 (for SHA-1)
    * Crypt::RIPEMD160 (for RIPE-MD/160)

Depending on which public key algorithms you use, you will
require at least one of the following modules:

    * Crypt::RSA (for RSA encryption/decryption and signatures)
    * Crypt::DSA (for DSA signatures)

Note that currently ElGamal for encryption and decryption is
provided by Crypt::OpenPGP itself; once Crypt::ElGamal is up on
CPAN, Crypt::OpenPGP will be switched to use that support instead.

INSTALLATION

Crypt::OpenPGP installation is straightforward. If your cpan shell is
set up, you should just be able to do

    % perl -MCPAN -e 'install Crypt::OpenPGP'

Answer the questions as to which ciphers/publickey algorithms you prefer
to use, and you'll be on your way.

If you don't like that, you can download the distribution; the
latest version on CPAN can be found in

    ftp://ftp.cpan.org/pub/CPAN/authors/id/B/BT/BTROTT/

Download it, unpack it, then build it as per the usual:

    % perl Makefile.PL
    % make && make test

Then install it:

    % make install

SAMPLES/TUTORIALS

Take a look at bin/pgplet for an example of usage of Crypt::OpenPGP.
It gives you an example of using the four main major methods (encrypt,
sign, decrypt, and verify), as well as the various parameters to those
methods. It also demonstrates usage of the callback parameters (eg.
PassphraseCallback).

bin/pgplet currently does not have any documentation, but its interface
mirrors that of gpg.

Benjamin Trott / ben@rhumba.pair.com
