====================================================
COMPONENTS FOR USING PGP WITH DELPHI - VERSION 4.5.2
====================================================

This file contains a complete file list, install help and my PGP key (use it)!

The files in this package provide interfaces and examples for different ways of
using PGP functions within Delphi applications. They have been (re)written and
tested with Delphi 2, 6 and 2005. A proper installation of PGP (6.5.x or
7.x/8.x/9.x, the latter are required for x509 certificate processing;
S/MIME handling is only supported by PGP 8.1 with SDK 3.2.x and later)
and the included UTF8Sec.dll (see below) is essential!


YOU MAY USE AND MODIFY THESE FILES TO YOUR CONVENIENCE BUT WITHOUT ANY
WARRANTIES BY THEIR AUTHOR: THEY ARE PROVIDED 'AS IS'. ANY COMMENTS AND
SUGGESTIONS ARE WELCOME. PLEASE NOTE THAT THE TRANSLATIONS OF PGP'S HEADER
FILES ARE COVERED BY THE "MOZILLA PUBLIC LICENCE (MPL) Version 1.1"
(see <http://www.mozilla.org/MPL/>)!


========
CONTENTS
========

PGP.dpk			package file for Delphi 2005

CompTest.res:		resource file for the test project

CompTest.dpr:		test project for using the components

TestUnit.dfm:		form file of main form

TestUnit.pas:		main form for test project

PGP2Comp.dcr:		resource file for the PGP components

PGP2Comp.pas:		unit containing the PGP components' code

X509Comp.dcr:		resource file for the X509 components

X509Comp.pas:		unit containing the X509 components' code

---------------

PGP2Comp.hlp:		help file for the components

PGP2Comp.cnt:		contents file for the help file

PGP2Comp.kwf:		index file for Delphi's (v2) help system

---------------

ASN1.pas:		ASN.1 routines for extracting certificate properties

Base64.pas:		Base64 routines for S/MIME handling,
			a customized version of Ralph Junker's
			DIMime.pas/rjMime.pas available at
			<http://www.zeitungsjunge.de/delphi/mime/>
			
Isaac.pas:		An optimized version of Sbastien Sauvage's
			pascal version of Bob Jenkins' random number generator,
			for details see <http://sebsauvage.net/isaac/>

pgpBase.pas:		mainly a translation of pgpBase.h

pgpCL.pas:		declarations from pgpCL.h and pgpKeyServerPrefs.h

pgpErrors.pas:		error codes from pgpErrors.h and pgpPFLErrors.h

pgpEvents.pas:		declarations from pgpEncode.h

pgpGroups.pas:		declarations from pgpGroups.h

pgpKeys.pas:		declarations from pgpKeys.h

pgpKeyServer.pas	declarations from pgpKeyServer.h

pgpMemoryMgr.pas:	declarations from pgpMemoryMgr.h

pgpOptionList.pas:	declarations from pgpOptionList.h

pgpPubTypes.pas:	declarations from pgpPubTypes.h

pgpRandomPool.pas:	declarations from pgpRandomPool.h

pgpSDKPrefs.pas:	declarations from pgpSDKPrefs.h

pgpTLS.pas:		declarations from pgpTLS.h

pgpUI.pas:		declarations from pgpUserInterface.h

pgpUtilities.pas:	declarations from pgpUtilities.h

PGPDialogs.pas:		my implementations of PGP's user interface dialogs

PGPEncode.pas:		the basic TPGPEncodeCustom component

PGPDecode.pas:		the basic TPGPDecodeCustom component

PGPKeyGenerate.pas:	the basic TPGPKeysGenerateCustom component

KeyFuncs.pas:		internal functions for retrieving key properties

KeyPropTypes.pas:	types and structures for retrieving key properties

PrefFuncs.pas:		functions for retrieving PGP's user preferences

PSMimeTools.pas:	provides header pre- and post-processing
			for PGP/MIME and S/MIME messages
			
StrTools.pas		provides optimized string processing
			for several other units

TimeUtils.pas:		a customized version of Primoz Gabrijelcic's Time Zone
			Routines v1.2 (see <http://www.eccentrica.org/gabr/gp/>)

UTF8.pas:		UTF8 / ANSI routines for PGP 8.x/9.x internationalization

X509Funcs.pas		functions implementing PGP's X509 certificate support

X509Types.pas		types and structures for the X509 supporting functions

---------------
UTF8Sec.dll:		UTF-8 conversion functions for Delphi versions 2 - 5
---------------

PGP2Comp_CPPB.zip:	files for installing the PGP components into C++ Builder
			(created by Jesse Reichler, see What'sThis.txt inside)


============
INSTALLATION
============

IF YOU HAVE BEEN USING ANY OF THE PRIOR (1.x.x) VERSIONS OF THESE COMPONENTS
MAKE SURE TO REMOVE THEM FROM DELPHIS COMPONENT LIBRARY
BEFORE INSTALLING THE NEW VERSION!

To install the components within Delphi (v2) copy all these files to a separate
directory of your choice, start Delphi and select Component | Install ... from
the menus. In the upcoming dialog click Add, then Browse (or simply Browse in
later versions) to select the PGP2Comp and X509Comp units from the directory
you put them in. After clicking the appropriate OK buttons the components
will be installed on separate pages of the components palette. In Delphi 6 you
can do it the same way, whereas in Delphi 2005 you have to load PGP.dpk into the
IDE, compile it and install it via right clicking PGP.bpl in the project tree
and selecting the proper menu entry.

UTF8Sec.dll has to be copied to a commonly accessible directory like
..\%WINDIR%\system(32) on your machine for installing these components
within Delphi 2 - 5. Don't forget to distribute a copy of this library
with your application(s) using these components!


To add the components' help to Delphi's help system:
----------------------------------------------------

Delphi 2

Start a program called 'HelpInst.exe' which usually can be found in the
directory ..\Help\Tools of the Delphi path (unfortunately this program is not
very comfortable): BEFORE BUILDING A NEW INDEX FILE BACKUP THE OLD ONE CALLED
'DELPHI.HDX' IN THE BIN DIRECTORY OF DELPHI. Load all *.kwf files in the help
directory (and wherever you have any other components or ocx-files providing
delphi indexes) using the [+] button of HelpInst, including PGP2Comp.kwf. To
create the new Delphi.hdx press the Save button and save Delphi.hdx to the Bin
directory of Delphi.

Delphi 6 - 8

Edit the following files in Delphi's ..\Help directory
(without quotes, YOUR_PATH is the complete path to the help file):

to Delphi6.ohi add a line ":Index PGP Components Help=YOUR_PATH\PGP2Comp.hlp"
to Delphi6.ohl add a line ":Link YOUR_PATH\PGP2Comp.hlp"

Delphi 2005 specific help integration isn't available yet (hints appreciated)!


=======
CONTACT
=======

Before contacting me make sure you are familiar with PGP and have read the
help file thoroughly. If you encounter any problems take a look at the sources
and try to track down their origin(s) using Delphi's built-in debugger. And
don't forget to tell me which version of PGP and the components you're using!

Michael in der Wiesche <idw.doc@t-online.de>, RSA Key, 2048 bits

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: idw's PGP-Frontend 4.9.6.5 / 12-2004 + PGP 8.1.0

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
=3Nc1
-----END PGP PUBLIC KEY BLOCK-----
