PGP 2.6.2: Frequently Asked Questions about Known Bugs, and
Improvements
Pretty Good Privacy (PGP) version 2.6.2 was released by MIT on
October 24, 1994. If it available via anonymous ftp to
net-dist.mit.edu:/pub/PGP. Alternatively, you can use a
forms interface to obtain
PGP from the Web.
Once you get PGP and start using it, you might want to consider using
the PGP
Public Keyserver, which is available on the Web. Alternatively,
you can learn how to use the
Keyservers
by email to add your Public Key to the public keyservers.
This page lists a number of frequently asked questions about PGP
2.6.2 known bugs that we either have fixed or
do not intend to fix. By looking at this page, you might save
yourself the time of sending an email, and saving us the time of
answering a question many times over.
Frequently Asked Questions
Q: I just tried generating a set of keys and was told that the program
could not create the files /(blah)/gjcoram/.pgp/(whatever), perhaps
because I did not have a directory called /.pgp ? In any case, I had
to go through the whole procedure; it said "key generation completed",
and I couldn't find any keys in my directory.
A: If you read the documentation, it states that if you do not have
PGPPATH set, it will put a key into the directory $HOME/.pgp, which
you must have previously created. Since you didn't set PGPPATH, and
you didn't create $HOME/.pgp, it failed. Perhaps it should not have
said that the Key Generation completed successfully.... Maybe this
should be considered a bug.
Q: I don't know what a "bin directory" means. I didn't know how to
create a sub-directory "~/.pgp" because I don't know what "~" means.
And I don't know how to "set the environment variable "PGPPATH"".
A: Well, this depends on whether you are on UNIX, MS-DOS, or some
other platform. A bin directory is a directory that you have
created in which to hold binary programs. If you are system
administrator, then this usually means a system binary directory, like
/usr/local/bin. If you ar just a normal user, then a bin
directory can mean ~/bin, or some directory in your home
directory in which you keep your personal binaries and programs. The
~ character stands for your home directory, or
$HOME.
To create a directory, you use the mkdir command:
To set an environment variable depends on the platform you are on.
For DOS, to set the PGPPATH environment variable, you do:
For UNIX, it depends on the shell. For csh, you use the setenv
command:
setenv PGPPATH /path/to/your/directory
For sh, you have to do something similar to DOS:
PGPPATH=/path/to/your/directory; export PATH
Known Bugs (with Fixes when available)
SunCC fails to compile sparc.S
You need to fix the makefile so that it uses this rule instead of
the old one to make _sparc.s from sparc.S. 21 Aug 95
$(CPP) $(ASMDEF) sparc.S | grep -v '^# ' | sed -e '/% [iol]/s/% /%/' > _sparc.s
Using -o doesn't use that file
I noticed that when you use the -o option, PGP still appends a type
to it. So, for example, if you say pgp -sat -o foo bar it
would output foo.pgp. I considered this a bug. The fix is a short
patch to pgp.c:
*** /tmp/,RCSt1a25744 Fri Dec 23 11:07:33 1994
--- pgp.c Fri Dec 23 11:07:34 1994
***************
*** 1084,1091 ****
} else [Macro error: Can't compile this script because of a syntax error.]
- if (no_extension(name)) {
if (emit_radix_64)
force_extension(name, ASC_EXTENSION);
else if (sign_flag && separate_signature)
--- 1084,1089 ----
Problems with the 3b1 platform
Someone reported that the 3b1 platform make rules didn't work
properly. This was fixed by adding memmove.o to the makefile,
and by changing the 3b168010.o to 3b168000.o There are also
problems with struct timeval and gettimeofday being missing,
but I don't have patches for that, yet. 16 Dec 94
Bug using -o and same file
If you run PGP with -o, and give it the same output file and
the input file, PGP may do the wrong thing. It appears to only
be a problem with clearsigned messages. The fix is a short patch
to pgp.c:
*** /tmp/,RCSt1a25686 Fri Dec 23 11:02:33 1994
--- pgp.c Fri Dec 23 11:01:54 1994
***************
*** 974,980 ****
/* for clear signatures we create a separate signature */
status = signfile(nestflag, separate_signature || (clearfile != NULL),
my_name, workfile, tempf, literal_mode, literal_file);
! rmtemp(workfile);
workfile = tempf;
if (status < 0) { /* signfile failed */
--- 974,985 ----
/* for clear signatures we create a separate signature */
status = signfile(nestflag, separate_signature || (clearfile != NULL),
my_name, workfile, tempf, literal_mode, literal_file);
!
! if (clearfile) {
! rmtemp(clearfile);
! clearfile = workfile;
! } else
! rmtemp(workfile);
workfile = tempf;
if (status < 0) { /* signfile failed */
Reported 2 Dec 94; Fixed 23 Dec 94
PGP is case-sensitive with file extensions
I received this bug report. I have not verified it, yet.
When decrypting a PKZIP'ed file, and the -o command is
used to specify the output filename, and the ".ZIP"
extension is entered in upper case, PGP does not
recognize that a .ZIP extension is being supplied:
C:DOS>pgp foo.pgp -o foo.ZIP
Plaintext filename: foo.ZIP
Plaintext file 'foo.ZIP' looks like a PKZIP file.
Should 'foo.ZIP' be renamed to 'foo.zip' [Y/n]?
PGP Doesn't use CTB length-of-length?
Someone reported that PGP doesn't use the length-of-length bits (1,0)
of the CTB byte. This has not, yet, been verified as a real bug.
8 Nov 94
Building PGP 2.6.2 under BSD 4.3
This has been verified to fail given the released code. Patches
forthcoming. 25 Oct 94
Makefile bug for Sun4-Sunos5-acc
There is a bug in the Makefile for sun4sunos5acc: The original says:
sun4sunos5acc:
$(MAKE) all CC=cc LD=gcc OBJS_EXT=sparc.o
This should be changed to read:
$(MAKE) all CC=cc LD=cc OBJS_EXT=sparc.o
This will allow PGP to be linked properly on this platform. 25 Oct 94
Building RSAREF under VMS
The RSAREF package was not updated from 2.6.1, and when trying to
build the RSAREF library for VMS, an error will occur looking for the
file global.h. The fix is to copy the file from
rsaref/install/unix to rsaref/source. 25 Oct 94
The Mysterious Missing strtol() Some platforms do not have the
strtol() function in their library. If you have this problem, then
you should ftp strtol.c from some site.
This is just from the public domain berkeley sources in lib/libc/stdlib.
24 Oct 94
GMT not calculated correctly (Unverified bug report)
Someone sent me this bug report:
For your information, I believe PGP 2.6.1 does not calculate GMT correctly.
Because I'm in central Europe, I did set the TZ environment variable to
MET-1DST.
Here are some examples:
Actual time is: 17:50 05:50 12:06
PGP reports: 06:50 18:50 01:06
This can't be true, usually GMT is just one hour behind central European
24 Oct 94
New Improvements
Linux/ELF changes
THe PGP 2.6.2 sources do not build under Linux/ELF. If you want to
build 2.6.2 as an ELF binary, you need to make two changes, one each
to 80386.S and zmatch.S. Near the beginning of the file you will
find a #if directive for SYSV. Apply the appropriate change to the
appropriate file to get it to work 13 Oct 95:
#ifndef SYSV ==> #if !defined(SYSV) && !defined(__ELF__)
#ifdef SYSV ==> #if defined(SYSV) || defined(__ELF__)
Apollo running DomainOS
If you want to build PGP on an apollo, you should use these rules.
20 Aug 95
# Apollo running DomainOS Release 10.4 (bsd4.3)
apollo:
$(MAKE) all CC=cc LD=cc
CFLAGS="$(RSAINCDIR) -O -I. -DHIGHFIRST -DBSD -DUNIX -DPORTABLE
-DUSE_SELECT"
# Apollo running DomainOS Release 10.4 (bsd4.3) and gcc 2.6.0
apollo-gcc:
$(MAKE) all CC=gcc LD=gcc
CFLAGS="$(RSAINCDIR) -O -I. -DHIGHFIRST -DBSD -DUNIX -DPORTABLE
-DUSE_SELECT"
SCO OpenDesktop 3.0 Development System (no GCC)
For SCO 3.0, without gcc, someone sent in this makefile rule 20 Aug
95:
sco-3.0:
$(MAKE) all CC=cc LD=cc CPP=/lib/cpp OBJS_EXT=_80386.o
ASMDEF=-DSYSV CFLAGS="$(RSAINCDIR) -Dsco -O -DUNIX -DIDEA32
-DUSE_NBIO" LDFLAGS="-lsocket"
sco-3.0-gcc:
$(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/xcpp OBJS_EXT=_80386.o
ASMDEF=-DSYSV CFLAGS="-traditional-cpp $(RSAINCDIR) -Dsco -O
-DUNIX -DIDEA32 -DUSE_NBIO" LIBS_EXT=-lsocket
Data General AViiON mc88100
Try this for a Data General unix using GCC 20 Aug 95:
dgux:
$(MAKE) all CPP=/lib/cpp CC=gcc LD=gcc
CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO
-DIDEA32 -DHIGHFIRST"
HP/UX PA-Risc assembly
If you are running HP/UX on a PA-risk platform, you may want to look
at this. The patches at MIT contain HP-PA
assembly patches which will supposedly speed up PGP performance
on the HP/PA platform. 17 Dec 94
FreeBSD patches
If you add this rule to the makefile and then make a short change
to zipup.c, you can compile PGP 2.6.2 for FreeBSD. First, the
makefile change:
freebsd:
$(MAKE) all LD="$(CC) -s" OBJS_EXT="_80386.o _zmatch.o"
CFLAGS="-O2 -DUNIX -DIDEA32 -DASM -DMAX_NAMELEN=255"
Then in zipup.c you need to #include "system.h" and then change the
check where lseek() is defined.
*** /tmp/,RCSt1a17971 Thu Dec 22 16:16:56 1994
--- zipup.c Thu Dec 22 15:56:49 1994
***************
*** 14,22 ****
#define NOCPYRT /* this is not a main module */
#include
! #ifdef __QNX__
! #include
! #endif
#include "zip.h"
#include "zrevisio.h"
--- 14,20 ----
#define NOCPYRT /* this is not a main module */
#include
! #include "system.h" /* Mainly for */
#include "zip.h"
#include "zrevisio.h"
***************
*** 39,47 ****
# include
# define fhow (O_RDONLY|O_BINARY)
# else /* !MSDOS */
! #if !(defined(AMIGA) || defined(__NetBSD__))
long lseek();
! #endif /* AMIGA */
# define fhow 0
# endif /* ?MSDOS */
typedef int ftype;
--- 37,45 ----
# include
# define fhow (O_RDONLY|O_BINARY)
# else /* !MSDOS */
! #ifndef HAVE_UNISTD_H
long lseek();
! #endif /* HAVE_UNISTD_H */
# define fhow 0
# endif /* ?MSDOS */
typedef int ftype;
14 Dec 94
Fix for -z under HP/UX
This patch will fix the -z option for HP/UX to supposedly hide
the options from ps. I haven't tried it, since I don't have an
HP to test it on.
*** pgp.c.orig Thu Dec 8 22:49:00 1994
--- pgp.c Thu Dec 8 22:44:14 1994
***************
*** 474,479 ****
--- 474,488 ----
hpw = xmalloc(sizeof(struct hashedpw));
hashpass(p, strlen(p), hpw->hash);
/* Wipe password */
+ #ifdef __hpux
+ [Macro error: Can't compile this script because of a syntax error.]
+ #endif /* __hpux */
while (*p)
*p++ = ' ';
/* Add to tail of linked list of passwords */
8 Dec 94
Makefile addition for Mips R3230 running RISC/os 5.01
Try this make rule:
riscos501:
$(MAKE) all CC="cc -systype svr4" LD="cc -systype svr4"
CFLAGS="$(RSAINCDIR) -DPORTABLE -DUNIX -DHIGHFIRST -DIDEA32
-DMPORTABLE -DUSE_SELECT -DMERRITT"
It was sent in by a loyal customer! :-) 8 Nov 94
Makefile addition for ConvexCS
Someone with a convex sent in this makefile rule:
convexos:
$(MAKE) all CC=gcc LD=gcc
CFLAGS="$(RSAINCDIR) -O -DHIGHFIRST -DUNIX
-DPORTABLE -DIDEA32"
Add this somewhere in the makefile to get it to build on this platform.
8 Nov 94
Makefile addition for SCO-386/CC
Someone sent in a makefile addition for SCO running on a 386, using the
standard cc compiler:
sco386cc:
$(MAKE) all CPP=/usr/lib/xcpp OBJS_EXT=_80386.o ASMDEF=-DSYSV
CFLAGS="$(RSAINCDIR) -Dsco -O -DUNIX -DIDEA32 -DUSE_NBIO -I."
LDFLAGS="-lsocket"
Add this to your makefile to get it to work. 8 Nov 94
Makefile rules for SYSV/GCC platforms
I received two new makerules for sysv machines using the GCC compiler
to build PGP. One is for sysv, the other is for sysv_386.
sysvgcc:
$(MAKE) all CC=gcc LD=gcc CPP=/lib/cpp
CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO $(BYTEORDER)"
# gcc tested on ESIX 4.0.3a with gcc 2.5.8
sysv_386_gcc:
$(MAKE) all CC=gcc LD=gcc CPP="/lib/cpp -DSYSV"
OBJS_EXT="_80386.o _zmatch.o"
CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DASM"
Just add either of these to your makefile to use them. 8 Nov 94
Exclude Keys
Someone sent me some patches to pgp to allow it to exclude keys. In
particular, this patch allows you to setup an exclude file, which will
disallow any keys on the exclude list to be added to the
keyring. This allows someone, such as a keyserver admin, to
permanently remove keys which might be offensive. This patch is too
large to fit on this page, so I created an exclude patch page
which has the patch on it. Note, this patch is from PGP 2.6.1, and may
not patch cleanly to later versions. 1 Sep 94
Written by: Derek Atkins
Last Modified: $Date: 1994/12/23 17:07:13 $
|