This is Info file ./pgplib.info, produced by Makeinfo version 1.67 from
the input file pgplib.texi.

   This WAS the same as the README

   Copyright (C) 1997 Magne Rasmussen.


File: pgplib.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)

* Menu:

* Introduction::
* Data structures::
* Concept index::

 -- The Detailed Node Listing --

Introduction

* Caveat emptor::
* Overview::
* Limitations::
* Regarding PGP::
* Your feedback::
* Where to get PGPlib::
* Installing::
* Porting::


File: pgplib.info,  Node: Introduction,  Next: Caveat emptor,  Prev: Top,  Up: Top

Introduction
************

   Welcome to PGPlib.  The purpose of this library is to let programs
either generate packets that can then later be digested by PGP, or
digest packets earlier generated by PGP.  In addition, since the
library known of all the packets PGP generate (and accepts) quite a few
interesting things can be done.

   In addition to the library proper the package includes a few
applications.  Some of them are useful in their own right, most are
included to show how to use the library and to verify that it works
correct.

   The library is, as far as I know, compatible with RFC-1991, which
describes versions 2.x of PGP.  Specifically, versions 2.6 and 2.7
conform to this specification.  Version 2.3 conforms to this
specification with minor differences.

* Menu:

* Caveat emptor::
* Overview::
* Limitations::
* Regarding PGP::
* Your feedback::
* Where to get PGPlib::
* Installing::
* Porting::


File: pgplib.info,  Node: Caveat emptor,  Next: Overview,  Prev: Introduction,  Up: Introduction

Caveat emptor
=============

   This library can be used to enhance security in computer systems.
However, obtaining security (be it privacy, secrecy, integrety or what
have you) is non-trivial.  This library can help with the simplest of
all tasks in connection to this, storing data in a well known format.
There are a few things you probably would like to know before looking
further.

   * his is version 0.2 for the benefit of those interested in a PGP
     libray without sufficient documentation for end users.  The goal
     of this release is to obtain feedback on the overall design and
     usability. The ultimate documentation aside (source code), there is
     almost no documentation

   * This software is certainly not written with your privacy in mind;
     don't trust it without first reading the sources carefully.  Not
     that you can't trust me, but if you don't know me, you shouldn't.

   * (De)Compression is done the way PGP does it.  It will probably
     leave private data on disk.  Use it with extreme care.


File: pgplib.info,  Node: Overview,  Next: Limitations,  Prev: Caveat emptor,  Up: Introduction

Overview
========

   The purpose of PGPlib is to enable programs to either produce or
consume data in a format compatible with RFC1991.  Below is a short
tour through the functionality provided by PGPlib:

   * PGPlib understands literal packets with filename, mode, etc.  A
     literal packet is what PGP uses to store infomation about which
     file you have wncrypted (signed or whatever).  You can create
     literate packages from files, or from buffers, and create files
     from literate packets;

   * Convential encrypted packets, that is IDEA with Zimmermann's
     context sensitive feedback.  The library can both read (decrypt)
     and write (encrypt) convential packets;

   * Armored files.  You can (de)armor a buffer or a file into a buffer
     or a file.

   * UserID packets are read and written from keyrings and buffers;

   * Keys can be obtained from a database or by parsing keyrings.  Both
     private and public keys are understood.  There is code to use DBM
     as supplied from Berkeley or, if you prefer, GDBM from GNU;;

   * Keys can be kept in buffers or on files.  The secret parts of
     private keys are decrypted by a dedicated routine;

   * You can verify signatures on public keys and on buffers or files;

   * You can encrypt data (file or buffer) with public keys.  The DEK
     is naturally written as a separate packet as specified by RFC1991;

   * With a secret key you can sign other keys and buffers.

   You will find included a small program that will (de)armor anything,
a parser to parse PGP files (including decryption and so on), a shell to
manipulate a keydatabase, a keyserver to run on top of such a database,
a program to verify signatures on keys and/or files, a program to split
keyrings in smaller parts and a program that will sign files for you.


File: pgplib.info,  Node: Limitations,  Next: Regarding PGP,  Prev: Overview,  Up: Top

Limitations
===========

   This documentation was provied with version 0.2.  Until we reach
version 1.0 you can expect documentation to be poor.


File: pgplib.info,  Node: Regarding PGP,  Next: Your feedback,  Prev: Limitations,  Up: Top

Regarding PGP
=============

   PGPlib is *not* part of PGP or endorsed by the author of PGP.  The
name has not been choosen to indicate that the library is part of PGP,
rather to indicate that it makes PGP even more useful.


File: pgplib.info,  Node: Your feedback,  Next: Where to get PGPlib,  Prev: Regarding PGP,  Up: Top

Your feedback
=============

   In general, your feedback is solicited.  Since version 0.2 is
regarded as an evaluation release bugs and problems are to be expected.
A mailing list has been set up (by Peter Simons <Peter.Simons@gmd.de>).
To subscribe, send an e-mail to the address
`pgplib-dev-request@petium.rhein.de' and write the command `SUBSCRIBE'
into the body.  If you want to be subscribed under a different address
than the one you're mailing from, you can also use  `SUBSCRIBE
tage@somewhere.else' to do the trick.  To post to the list, send an
e-mail to `pgplib-dev@petium.rhein.de' as usual.

   If you have comments regarding PGPlib in general send me an e-mail at
`tage@acm.org'.

   If you write a nice application based on this library (the ultimate
feedback), please feel free to send it to me and I will include it in
the next release.


File: pgplib.info,  Node: Where to get PGPlib,  Next: Installing,  Prev: Your feedback,  Up: Introduction

Where to get PGPlib
===================

   You can get PGPlib by means of FTP from `dslab1.cs.uit.no' in
directory `pub'.  To get the latest version, retreieve the file
`PGPlib.tar.gz'.  In other words, click on
`ftp://dslab1.cs.uit.no/pub/PGPlib.tar.gz'.  In order to unpack and
verify the code you obtained, follow the following steps First,
uncompressing and un-tar'in the file will create four files in the
*current directory*:
`README'
     This is a text file containing, more or less, the text in this
     section

`PGPlib-X.tar'
     This is the actual source in a tar-file.  It contains the directory
     `./PGPlib-X'.  Note that it creates a new directory.  The letter
     `X' will be substistuted for the version number.

`PGPlib-X.tar.asc'
     A detached signature, made with my public key on the tar-file
     above.

`pubring.pgp'
     My public key.

   Then, to verify that your copy hasn't been tampered with, first run
the command
     	pgp pubring.pgp
   to add my key to you keyring. Then, to verify the signature, invoke
PGP as follows
     	pgp PGPlib-X.tar.asc PGPlib-X.tar
   The output from PGP should be something along the lines of
     Good signature from user "Tage Stabell-Kulo <tage@cs.uit.no>".
     Signature made 1997/05/09 23:26 GMT using 1024-bit key, key ID 71FBD469
   When you are done, you can remove my key from your keyring by running
     	pgp -kr tage@acm.org
   I am confident you are fully aware that you should obtain a copy of
my key (and the associated signatures) from some trusted third party.
You can now remove `pubring.pgp' and `PGPlib-X.tar.asc' and proceed by
un-tar'ing the library.  In the (newly created) directory `PGPlib-X'
you will find file file `INSTALL' which explain, well, yes.


File: pgplib.info,  Node: Installing,  Next: Porting,  Prev: Where to get PGPlib,  Up: Introduction

Installing
==========

   In order to install PGPlib you have to perform two unrelated tasks.
First, recall that PGPlib provides packaging of data in a format PGP
understands.  Thus, PGPlib does not perform any encryption.  For this,
I have choosen SSLeay, and you must have the SSLeay library installed.
I hope SSLeay is a good choice. I did not major in mathematics and can
not judge the quality of their work, although it looks solid (to me).
I link with their version 0.6.6.  I rely on SSLeay for great many
things, in particular their BIGNUMs, RSA encryption and IDEA.
Integration into the SSLeay "error-system" might happen.  You can
obtain SSLeay from `ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/'.  There is
a programmers reference on
`http://www.psy.uq.oz.au/~ftp/Crypto/ssl.html'.

   SSLeay is quite large and I only use a fraction of it.  On the other
hand, SSLeay seems to be well maintained.  I will look into providing a
tailored version of SSLeay with PGPlib.


File: pgplib.info,  Node: Porting,  Next: Data structures,  Prev: Installing,  Up: Introduction

Porting
=======

   PGPlib has been developed on NetBSD 1.2.  The major obstacle for
porting is probably that `unsigned long long' must be 64 bits long.
That is, your compiler must support assignmets like
`x=0x0123456789abcdefLL' where `x' is `unsigned long long'.  Notice
that this is a feature of the compiler, not the underlying architecture.

   A port to `Win32' is planned.  If you port PGPlib to some other
platform, I would be greatful if you would send me patches.


File: pgplib.info,  Node: Data structures,  Next: Concept index,  Prev: Porting,  Up: Top

Data structures
***************


File: pgplib.info,  Node: Concept index,  Prev: Data structures,  Up: Top

Concept Index
*************

* Menu:

* IDEA:                                  Overview.
* RFC1991:                               Introduction.



Tag Table:
Node: Top177
Node: Introduction505
Node: Caveat emptor1515
Node: Overview2657
Node: Limitations4576
Node: Regarding PGP4813
Node: Your feedback5134
Node: Where to get PGPlib6092
Node: Installing7952
Node: Porting9027
Node: Data structures9601
Node: Concept index9727

End Tag Table
