INTRODUCTION AND GENERAL USE PGP 2.6.2 Amiga 1.4 The Amiga version of PGP 2.6.2 was compiled by Robert A. Knop Jr. (rknop@citir5.caltech.edu, rknop@netcom.com, R.KNOP1 on GEnie); makefiles and source modifications were performed by rknop and Jeff Thieleke (thieleke@icaen.uiowa.edu). It was modified slightly from the official PGP 2.6.2 version; only modified and new source files are included in the rsaref/ and src/ subdirectories. Aquire the official PGP 2.6.2 release for the complete set of original source files, if you so desire. Some Amiga specific code was already present in the official PGP 2.6.2 release; some of this was used, and some of it was removed in favor of new Amiga specific code. PGP 2.6.2 for the Amiga works pretty much as the standard PGP 2.6.2 documentation states. You should set the environment variable PGPPATH as the docs state; you can do this on the Amiga with: > setenv PGPPATH sys:pgp > copy env:PGPPATH envarc: Replace "sys:pgp" above with the diretory in which you want PGP to reside. For further usage instructions, read doc/pgpdoc1.txt and doc/pgpdoc2.txt. NOTE: the config file for Amiga PGP 2.6.2 is named "config.txt" as the standard PGP documentation states. This is different from some other Amiga versions of PGP, which use the name "pgp.config". NOTE on ReqTools: if you use input/output redirection (option -f), Amiga PGP will attempt to put up a ReqTools string requester to prompt you for any input it needs. If you do not have ReqTools available, or do not wish to have requesters popping up, don't use the -f option. ReqTools.library should be in libs: for use of the -f flag. ReqTools.library is the popular Amiga requester library; it is available on Aminet and elsewhere. =========================== FILES IN THE ARCHIVES Most of the files in this archive (the documentation files and so forth) are the same as from the official PGP 2.6.1 distribution. Depending on which archive you got, the Amiga specific and other files which I've added will be some or all of: readme-amiga : This file checksums : MD5 checksums for all files in archive pgp : 68000 executable pgp020 : 68020 executable rknop_key.asc : My public key src/#? : Source files modified for the Amiga rsaref/#? : Source files modified for the Amiga The file "checksums" has md5 checksums for all files in this archive. You can verify that the files in the archive you receive are the ones that I intended it to have. If you wish to check the archive, first verify that "checksums" was indeed signed by my public key. Then, use the program md5sum (available on Aminet in directory util/crypt) with the -cv options to check the files in the directory tree you pulled from the archive. Depending on which archive you received, some of the files in the "checksums" file will not be present. This is OK; it just means you downloaded the source-only archive, or the 020-executable-only archive, etc. However, there should not be any files in the archive which do not have a checksum in "checksums" (other than the file "checksums" itself, which is signed with my PGP key). =========================== EXTERNAL COMMAND LINE PARAMETERS You can have command parameters within an external file, by specifying the filename on the command line as @filename. For example, if the file "dist.lis" contained: Alice Bob Carrol and you typed: pgp -seat message.txt @dist.lis -o message.asc it would be equivalent to typing: pgp -seat message.txt Alice Bob Carrol -o message.asc External files may be nested. Different parameters within an external file need not be on separated lines; the need only be separated by whitespace (space, tab, or newline). If you want whitespace within a parameter on the command line or in an external file, enclose that parameter in double quotes. =========================== VERSION HISTORY Amiga 1.4 First PGP 2.6.2 version. Amiga 1.3 Amazingly trivial bugfix. (A blank space was added to a help string.) Amiga 1.2 First PGP 2.6.1 version; PGP 2.6.1 is a bugfix release of PGP 2.6. The Amiga version is basically the same, although now it is residentable. Why would you want to resident a 150K program? Well, this should make it faster to use it with front-end programs that implement a GUI, or an AREXX port. Maybe not as elegant as a shared library would be, but this is a really fast way to get it up and running, and the resultant PGP still works just as the standard PGP does. Amiga 1.1 Small change, increase __stack to 32768. The old value of 10000 was causing problems at least with Jeff Thieleke's PGP-Drop. Amiga 1 First "official" distribution of Amiga PGP 2.6, for what that means. =========================== IMPLEMENTATION NOTES The Amiga specific code in noise.c will read the ExecBase dispatch counter and the video beam position (custom.vhposr) for random noise; additionally, only during key generation, it will take timings from either the system's E-clock (WB2.0 or higher), or the MicroHz clock. =========================== COMPILING PGP If there was a "pgp" and/or "pgp020" executable included with this archive, then you may use those. "pgp" should run on all Amigas; pgp020 requires a 68020 or better processor. If you are sufficiently paranoid to not want to trust the version that I compiled, you should consider these: COMPILATION INSTRUCTIONS (1) Aquire and dearchive the official PGP 2.6.2 distribution. Copy the files in the rsaref/ and src/ directory trees here to the corresponding places in the tree you extracted from the official distribution. (Note that the makefile assumes that the rsaref subdirectory is in the same directory as the src, doc, and other PGP subdirectories. This is new with PGP 2.6.2.) (2) Insure that you have the ReqTools (v38) C header files. You do not need the link library reqtools.lib. ReqTools is available from Aminet and elsewhere. (3) Go to the directory rsaref/install/amiga. Type "smake" to build RSAREF. (4) Go to the directory src, and: > cp makefile.amiga_sasc SMakefile To build a version that any Amiga can use: > smake amiga To build a version that requires a 68020 or better: > smake amiga020 =========================== SOURCE CODE CHANGES The following files in src/ have been changed from the official pgp 2.6.2 distribution. Most (all?) source code changes are marked by the string "RKNOP" (Robert Knop) or "JT" (Jeff Thieleke). amiga__main.c -- New file. This allows use of command line parameters within an external file, specified by @filename. Replaces the standard SAS/C __main() function. amiga_asm.a -- New file, replaces 68000.s. Contents are mostly slightly modified 68000.s code. For 68020 or better processors, add the routine P_SMUL based on the sun3 code in mc68020.s. makefile.amiga_sasc -- New file. Should be renamed to SMakefile before use. mpiio.c -- Small bug fix re: putchar() macro noise.c -- Uses the Amiga E-Clock (V36 or greater) or MicroHz clock, the ExecBase dispatch counter, and the video beam position (custom.vhposr) to generate additional random noise passwd.c -- use requesterdesc similarly to pgp.c pgp.c -- addition of an Amiga version string and the SAS/C __stack variable. Wherever getstring() is called and it is relevant, add an assignment of requesterdesc for use by AmigaRequestString in system.c platform.h -- Add an AMIGA section to use amiga_asm.a random.c -- use Delay(1*50) instead of sleep(1) for the Amgia in trueRandAccum(); also in trueRandAccum(), open and initialize timer.device variables for use in noise.c's function noise(); remove Amiga specific echo handling in getstring(); add Amiga specific ReqTools use in getstring() for the case of noninteractive input (-f option). Fix a putc() macro bug. random.h -- remove a redundant definition. Why this doesn't cause problems with Unix compilers is a mystery to me. system.c -- substantial changes to the AMIGA specific section system.h -- add variables and protos needed for the Amiga ReqTools stuff zdeflate.c -- fix a putc() macro bug.