Pretty Good Privacy (PGP) version 2.6.2 was released by MIT on October 24, 1994. 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, and also will list any 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.
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:
$(CPP) $(ASMDEF) sparc.S | grep -v '^# ' | sed -e '/% [iol]/s/% /%/' > _sparc.s
*** /tmp/,RCSt1a25744 Fri Dec 23 11:07:33 1994 --- pgp.c Fri Dec 23 11:07:34 1994 *************** *** 1084,1091 **** } else { strcpy(name, inputfile); drop_extension(name); - } - if (no_extension(name)) { if (emit_radix_64) force_extension(name, ASC_EXTENSION); else if (sign_flag && separate_signature) --- 1084,1089 ----
*** /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
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]?
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
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:06This can't be true, usually GMT is just one hour behind central European 24 Oct 94
#ifdef SYSV ==> #if defined(SYSV) || defined(__ELF__)
# 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-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
dgux: $(MAKE) all CPP=/lib/cpp CC=gcc LD=gcc\ CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO \ -DIDEA32 -DHIGHFIRST"
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 <ctype.h> ! #ifdef __QNX__ #include <unistd.h> ! #endif #include "zip.h" #include "zrevisio.h" --- 14,20 ---- #define NOCPYRT /* this is not a main module */ #include <ctype.h> ! #include "system.h" /* Mainly for <unistd.h> */ #include "zip.h" #include "zrevisio.h" *************** *** 39,47 **** # include <fcntl.h> # 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 <fcntl.h> # 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
*** 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 + { + #include <sys/pstat.h> + union pstun pst; char psbuf[80]; + pst.pst_command =psbuf; + sprintf(psbuf, "pgp"); + pstat(PSTAT_SETCMD, pst,0, 0, 0); + } + #endif /* __hpux */ while (*p) *p++ = ' '; /* Add to tail of linked list of passwords */8 Dec 94
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
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
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
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
Last Modified: $Date: 1994/12/23 17:07:13 $