====================================================
ADDING ALGORITHMS NOT IN SSLEAY (Download, Dearchive, and Drop in):

The Makefile automatically creates stubs if these don't exist.

Safer can be obtained from:
ftp://ftp.isi.ee.ethz.ch/pub/simpl/safer.V1.2.tar.Z
Copy safer.c and safer.h from the archive into this directory.

Haval is at
http://ds.dial.pipex.com/george.barwood/haval.c
http://ds.dial.pipex.com/george.barwood/haval.h
In haval.h YOU MAY NEED TO MODIFY #undef LITTLE_ENDIAN yourself. Note only 5
pass 160 bits are needed.

-----------------------------------------------------------------
SSLeay notes:

Although I support PGP keyrings, a better method might be to save the private
keys using SSLeay's PEM functions which have passphrase callbacks.
Where I am using fread/fgetc fwrite/fputc, they should be replaced with SSLeay
BIO calls.

-----------------------------------------------------------------
Deviations from the OpenPGP spec:

ElGamal signatures are supported.

V3 RSA key output is also supported (with a separate routine).

---------------------------------
OpenPGP spec compliance.

sections 1-3.5, and 12-15 are general info

3.6.*, string to key.  All types supported.

4.*, packet formats - only V4 packets are created, but a CTB conversion routine
allows conversion to V3 packets.  Both V3 and V4 are accepted as input.

If the literal header is fragmented the extraction will fail.  Symmetrical
decryption will fail if the first 11 bytes are fragmented.

5-5.1 All supported.

5.2 Supported, also El Gamal signatures

5.2.1 All V3 sigs Supported.  Also supports all in DSA, in LSB if < 160 bits.

5.2.2 Supported, only keyid subpacket is used, subpacket streams are user
generated, except for an auto hashed timestamp, unhashed keyid designed to
equal the V3 functionality.

5.2.2.1 and 2 - see above.  There is a limit to the size of the subpacket
stream (1024 bytes).  No support for interpreting or extracting the different
subpackets - that is left to the user.

5.2.3 Sigtype is a user parameter (material signed is not checked).

5.2.4 Supported.

5.3 Supported.

5.4 Supported.  Consistency is not verified (params are from one pass header
and not checked against the sig but it will simply fail).

5.5 Support to generate DSA/DH in pairs or separately.  Defaults to first key
on pubring.pkr for parameters.  Can generate any size (see SSLeay
documentation).  Supports writing out unsigned key export packets which can be
imported, or simply concatenated.  Primitive key lookup support and packet
extraction to allow signing.  RSA keys are also handled as V4 (which PGP 5.0
dislikes for secret keys), but V3 support is available using getkey2.

Keyring and web-of-trust management is not handled, only generation,
extraction, and loading of key packets from rings.

5.6 Supported.  Implemented by glue to libz.

5.7 Supported, Since no listed algorithm has a cipher block size > 8, all use
the 10 byte prefix with reset and a longer cipher will probably not work
without finding the reset calls (or disabling by cipher number in cfbreset).
See cfbconv.c to see how things are arranged.

5.8 Generated for PK encrypted messages.  Ignored when decrypting same.

5.9 Supported.  Type (text/bin) and filename are params.  Text is not checked
for <CR><LF> endings.  For deliteraling, the filename is ignored.

5.10 Only generated trivially to allow use or importation.

5.11 Included in DH/DSS and RSA keyout and limited matching.

6.* Supported except generating multipart messages.  Version is OpenPrivacy
x.y, but this can be overridden.  Multipart messages must be sorted and merged
externally, but a complete stream will be accepted.

7. Supported

8. Not used.

9.1 18,19, and 21 aren't implemented

9.2 All except DES/SK, including Plaintext and ROT-N, but these haven't been
verified except as a self-test.

9.3 zip implented

9.4 All implmented (HAVAL as 5 round/160 bit - see hashdef to enable fake OID).

10 Packets are generated as separate entities and are assembled by external
concatenation.  Packet parsing is very limited and is not supposed to be part
of the library.

11. Web of Trust and other key issues aren't part of this library.  Limited
support for using V4 keyrings, and V3 keyrings for RSA is provided, but will
also work with an unsigned, isolated packet without any trust inf.  RSA V4
keys are returned with V3 IDs, but matched with either.
