                            PGP Shell

                           Version 0.9
                            June 1994

                        by Randy Hoekstra

               Copyright (c) 1994  Randy Hoekstra



PGP Shell is a simple Atari GEM interface for Philip Zimmermann's
Pretty Good Privacy (PGP) public-key encryption software.  PGP is
available for many different computer platforms with a command
line interface requiring the memorization of command codes and
syntax.  On the Atari ST/TT/Falcon computers it has been compiled
into a TTP type program.  It seems only fitting that there should
be a better user interface on a computer line that offers a
Graphical User Interface built-in to the system.

For more information on PGP and public-key encryption, refer to
the documentation included in the distribution package of PGP.

This project began as a request from Morgan Shannon for someone
to make his life easier by providing a simpler interface for PGP.
Although the Atari market is currently on the decline and there
is little monetary incentive to spend time on projects like this,
I will continue to develop this and other programs for the Atari
platform as long as I know it is making life easier for even a
few users.  I appreciate the encouragement, ideas, suggestions,
bug reports, etc. given by Morgan and others like him and hope
that you would also let me know your suggestions for improving
the program.  Any monetary support you can offer by sending in a
shareware contribution will also be greatly appreciated.

Version 0.6 & 0.9 are a result of input from Travis Guy, who was
one of the few who bothered to report the bugs and make
suggestions for improvements (and even helped with the code).
Thanks to Travis for taking the time to help me make this version
a bit cleaner and more user friendly.

Setting Up
==========

PGPSHELL.PRG and PGPSHELL.RSC should be located in the same
directory and ideally they should be in the same directory with
PGP.TTP and it's support files.  If you want to put the shell
program in a different location, the first time PGPSHELL.PRG is
run it will ask you to locate PGP.TTP.  You will then need to
save the configuration so PGPSHELL.PRG will know where to locate
PGP.TTP the next time it is run.

If you have been using PGP.TTP already, then you do not need to
change anything in your current set-up.  You should be able to
run PGPSHELL.PRG and very easily make use of it's simple GEM
interface to accomplish most of what you have been doing from the
command line.  Not all commands are currently implemented, but
hopefully the most used ones are there and I am working on the
rest.

If you are just starting out with PGP, there is a menu item in
PGPSHELL.PRG that will help you get your key files set up.  In
the "File" menu the first item is "Generate Keys...". Selecting
this item will take you to a screen that will explain a bit about
generating your public and private key pairs and also introduce
you to the two other menu items that make up the heart of PGP
Shell.

Once you have generated the key pair, you are ready to begin
encrypting and decrypting private e-mail to/from other users of
PGP on any computer platform.

Using PGP Shell
===============

The following describes the menu items available in PGP Shell.

PGPShell
--------

About PGPShell...- This, of course, is the standard credits
-----------------  dialog which shows the current version of the
program and copyright information.  You can also select the 'INFO'
button to bring up a window explaining how to register in North
America or the United Kingdom.

When you are not interacting with one of PGP Shells dialogs, your
other accessories will be available for use under the "PGPShell"
menu.

File
----

Generate Keys... ^G - This item will bring up a simple dialog
-------------------   which will allow you to generate your
private and public key pairs if you have not been previously
using PGP. Select "EXECUTE" to call PGP.TTP and cause it to
generate your key pair.  You will be prompted for additional
information required to generate the keys.  When PGP.TTP has
finished its work, you will be prompted to press a key or mouse
button to return to the shell.

Quick Commands... ^W - This command will call up a dialog
--------------------   allowing you to edit a list of up to ten
commands that can be executed with the press of a function key.

At the top of the dialog is a text field allowing you to type in
the command.  There are scroll arrows to the left and right of
the field allowing you to enter commands longer than the text
field itself.

After typing in the command, select one of the F-key lines in the
lower window of the dialog to assign the command to that function
key.  If a command is currently assigned to that key, it will be
overwritten.

To execute the command without assigning it to a function key,
select the 'EXECUTE' button.

You can edit an existing command by double clicking the F-key
line to load that command into the editable text field.  After
making changes, select the F-key line to re-assign the command to
that function key.  Note that the scrolling text field will not
properly handle inserting text into the middle of the command
line.  If the command text extends past the right end of the text
field, inserting text into the middle of the displayed text field
will cause characters to be lost at the end of the displayed text
field.

Note: The Quick Commands dialog can also be called up from inside
the Encrypt/Decrypt dialog and the Key Management dialog.  From
these dialogs you can set up your command options as desired and
then hold down the Alternate key while selecting 'EXECUTE'.  This
will call up the Quick Commands dialog with the command text
field loaded with the command that would have been sent to
PGP.TTP.  You can then edit the command as desired and save it to
a function key.

Encrypt/Decrypt... ^E - This item will bring up a dialog allowing
---------------------   you to encrypt text files and decrypt
previously encrypted files.  There are fields allowing the input
of the textfile and ciphertext file names, a field for entering
your userid, a field for entering other userids, and several
selectable buttons for determining the commands to be used.
Refer to the PGP documentation for details of what options should
be used for encrypting and decrypting files.

Note that you can double click on the file name fields to call up
the standard file selector.

You can also double click on the 'My Userid' and 'Other Userid'
text fields to call up a userid selector.  The userid selector
allows you to select, add, delete, and change userids from a
saved list of userids.  Simply double click on the userid in the
main window to select that userid.  You can type in a new userid
and select 'ADD' to add it to the list.  If you select an
existing userid with a single click, it will be loaded into the
editable text field where you can change or delete it.  When
exiting the userid selector, if changes have been made you will
be prompted to save the changes to disk.

Note: There appears to be a bug in PGP.TTP preventing the use of
userids with spaces in the string.  According to the PGP docs
you should be able to enclose the string in quotes to allow spaces
in a userid.  However, I have not been able to get this to work.
Until a better solution is found, you must limit your userids to
unique strings without spaces.  Fortunately, PGP can match the
smallest unique string easily with the userids stored in your
keyring files.

Select "EXECUTE" to call PGP.TTP and pass the command parameters
selected.  Some error checking is done by PGP Shell to ensure
that the appropriate parameters are filled in, but it is still
possible to pass incorrect parameters from the "Other Commands"
line.  PGP Shell will either display an alert warning of
incorrect parameters or PGP.TTP will display an error message. If
PGP.TTP is called, regardless of correct parameters or not, when
it has completed processing the commands,you will be prompted to
press a key or mouse button to return to the shell.

Once you have filled in the appropriate fields and selected the
desired commands, you can select "KEEP" to retain the dialog
information and leave the dialog. To save the settings as default
values, select "Save Configuration" from the "File" menu.

If you would like to turn the current command set-up into a quick
command, you can hold down the Alternate key while selecting
'EXECUTE'.  This will call up the Quick Commands dialog with the
command text field loaded with the command that would have been
sent to PGP.TTP.  You can then edit the command as desired and
save it to a function key.

Key Management... ^K - This item will bring up a dialog allowing
--------------------   you to manipulate your key files.  There
are fields allowing the input of the keyring and keyfile names, a
field for entering userids, and a scrolling window of selectable
buttons for determining the commands to be used.  Refer to the
PGP documentation for details of what options should be used for
key management.

Note that you can double click on the file name fields to call up
the standard file selector.

You can also double click on the 'Userid' text field to call up a
userid selector.  The userid selector allows you to select, add,
delete, and change userids from a saved list of userids.  Simply
double click on the userid in the main window to select that
userid.  You can type in a new userid and select 'ADD' to add it
to the list.  If you select an existing userid with a single
click, it will be loaded into the editable text field where you
can change or delete it.  When exiting the userid selector, if
changes have been made you will be prompted to save the changes
to disk.

Note: There appears to be a bug in PGP.TTP preventing the use of
userids with spaces in the string.  According to the PGP docs
you should be able to enclose the string in quotes to allow spaces
in a userid.  However, I have not been able to get this to work.
Until a better solution is found, you must limit your userids to
unique strings without spaces.  Fortunately, PGP can match the
smallest unique string easily with the userids stored in your
keyring files.

Select "EXECUTE" to call PGP.TTP and pass the command parameters
selected.  Some error checking is done by PGP Shell to ensure
that the appropriate parameters are filled in, but it is still
possible to pass incorrect parameters from the "Other Commands"
line.  PGP Shell will either display an alert warning of
incorrect parameters or PGP.TTP will display an error message. If
PGP.TTP is called, regardless of correct parameters or not, when
it has completed processing the commands, you will be prompted to
press a key or mouse button to return to the shell.

Once you have filled in the appropriate fields and selected the
desired commands, you can select "KEEP" to retain the dialog
information and leave the dialog. To save the settings as default
values, select "Save Configuration" from the "File" menu.

If you would like to turn the current command set-up into a quick
command, you can hold down the Alternate key while selecting
'EXECUTE'.  This will call up the Quick Commands dialog with the
command text field loaded with the command that would have been
sent to PGP.TTP.  You can then edit the command as desired and
save it to a function key.

Save Configuration - This item will save all settings in all
------------------   dialogs as the default settings.  This will
create a PGPSHELL.INF file containing these settings.  The next
time PGP Shell is run, the dialogs will be filled in with the
default information.

View Text File... ^V - This item will call up the standard file
--------------------   selector allowing you to pick an ASCII
file to view.  The file will be loaded into memory and displayed
in a standard GEM window.  There is no checking to ensure
characters in the file are within the normal ascii range, so it
is possible to load non ascii files with undesirable effects.
After the file viewing window has been opened, you can scroll
through the file using the GEM scroll bar and size the window
using the GEM window gadgets.  To close the file viewing window,
select the GEM close box in the upper left corner of the window.

You can also scroll through the text file using key commands such
as arrow keys for up and down and 'CLR/HOME' to go to top of page
and 'SHIFT CLR/HOME' to go to bottom of page.

Quit ^Q - Use this item to exit PGP Shell.  All settings in all
-------   dialog boxes will be lost unless a "Save Configuration"
is selected first.

Yet to Come
===========

This program is still in the early stages of development. The
scrolling text fields need to be improved to prevent losing
characters when inserting text.  The userid selector needs
further work to allow reading userids from keyring files.
Eventually there will be a simple text editor allowing you to
write your messages and then encrypt them all from within PGP
Shell.  Of course, there may also be additional features
suggested by you.  When all this will happen depends on how the
users (that's you!) respond.

Send any suggestions or bug reports to:

Randy Hoekstra
3414 Norwood Circle
Richardson, Texas  75082

E-mail to: R.HOEKSTRA1@genie.geis.com

NOTE: All text in this program is located in the resource file
for easy translation to another language.  If you are interested
in translating it to your native language and having it included
in the distribution package, please contact me.
