Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PGP(1)			     General Commands Manual			  PGP(1)

NAME
     pgp - Pretty Good Privacy encryption system

SYNOPSIS
     pgp [options] pgpfile

     pgp -e [options] file user ...

DESCRIPTION
     PGP  (Pretty Good Privacy) is a public key encryption package to protect E-
     mail and data files.  It lets you communicate securely with  people  you've
     never met, with no secure channels needed for prior exchange of keys.  It's
     well  featured  and fast, with sophisticated key management, digital signa-
     tures, data compression, and good ergonomic design.  If you really want  to
     learn how to use it properly, it's best to read the full documentation that
     comes  with  the  system,	which is very complete.  This is a "quick start"
     guide and reference manual; it is necessarily incomplete, and  assumes  you
     are  already  familiar  with most of the basic concepts, including the con-
     cepts behind public key cryptography.

   Terminology
     user id: an ascii string used to identify a user.	User IDs  tend	to  look
     like  "John  Q. Public <jqp@xyzcorp.com>"; please try sticking to that for-
     mat.  When giving a user id to PGP, you may specify any unique (case-insen-
     sitive) substring.  E.g. john, or jqp@xyz.

     pass phrase: the secret string used to conventionally encipher your private
     key.  It's important that this be kept secret.

     keyring: a file containing a set of public or secret  keys.  Default  names
     for  public  and  secret  rings are "pubring.pgp" and "secring.pgp" respec-
     tively.

     ascii armor: the ascii radix 64 format PGP uses for  transmitting	messages
     over channels like E-Mail; similar in concept to uuencoding.

   Command summary
     To see a quick command usage summary for PGP, just type:
     pgp -h

     To encrypt a plaintext file with the recipient's public key:
     pgp -e textfile her_userid ...

     To sign a plaintext file with your secret key:
     pgp -s textfile [-u your_userid]

     To sign a plaintext file with your secret key, and then encrypt it with the
     recipient's public key:
     pgp -es textfile her_userid ...  [-u your_userid]

     To create a signature certificate that is detached from the document:
     pgp -sb textfile [-u your_userid]

     To encrypt a plaintext file with just conventional cryptography, type:
     pgp -c textfile

     To  decrypt  an  encrypted  file,	or to check the signature integrity of a
     signed file:
     pgp ciphertextfile [-o plaintextfile]

     To see a quick summary of PGP's key-management commands, just type:
     pgp -k

     To generate your own unique public/secret key pair:
     pgp -kg

     To add a public or secret key file's contents to your public or secret  key
     ring:
     pgp -ka keyfile [keyring]

     To remove a key from your public key ring:
     pgp -kr userid [keyring]

     To extract (copy) a key from your public or secret key ring:
     pgp -kx[a] userid keyfile [keyring]

     To view the contents of your public key ring:
     pgp -kv[v] [userid] [keyring]

     To view the "fingerprint" of a public key, to help verify it over the tele-
     phone with its owner:
     pgp -kvc [userid] [keyring]

     To view the contents and check the certifying signatures of your public key
     ring:
     pgp -kc [userid] [keyring]

     To edit the pass phrase for or add a userid to your secret key:
     pgp -ke userid [keyring]

     To edit the trust parameters for a public key:
     pgp -ke userid [keyring]

     To remove a key or just a userid from your public key ring:
     pgp -kr userid [keyring]

     To sign and certify someone else's public key on your public key ring:
     pgp -ks her_userid [-u your_userid] [keyring]

     To remove selected signatures from a userid on a keyring:
     pgp -krs userid [keyring]

     Command  options that can be used in combination with other command options
     (sometimes even spelling interesting words):

     To produce a ciphertext file in ASCII radix-64 format, just add the -a  op-
     tion when encrypting or signing a message or extracting a key:
     pgp -sea textfile her_userid
     pgp -kxa userid keyfile [keyring]

     To  wipe  out  the plaintext file after producing the ciphertext file, just
     add the -w (wipe) option when encrypting or signing a message:
     pgp -sew message.txt her_userid

     To specify that a plaintext file  contains  ASCII	text,  not  binary,  and
     should  be converted to recipient's local text line conventions, add the -t
     (text) option to other options:
     pgp -seat message.txt her_userid

     To view the decrypted plaintext output on your screen (like the  Unix-style
     "more"  command),	without  writing  it to a file, use the -m (more) option
     while decrypting:
     pgp -m ciphertextfile

     To specify that the recipient's decrypted plaintext will be shown	only  on
     her screen and cannot be saved to disk, add the -m option:
     pgp -steam message.txt her_userid

     To recover the original plaintext filename while decrypting, add the -p op-
     tion:
     pgp -p ciphertextfile

     To use a Unix-style filter mode, reading from standard input and writing to
     standard output, add the -f option:
     pgp -feast her_userid <inputfile >outputfile

   The Config File
     PGP  uses a configuration database that is stored in the file "config.txt";
     please see the manual for complete details.  Blank lines and  lines  begin-
     ning  with "#" are comments.  Options take string, numeric, or boolean val-
     ues.  The boolean values are "on" and "off".  These  options  can	also  be
     specified	on the command line, using a syntax such as +armor=on.	Keywords
     can be abbreviated to unique prefixes.  Keywords  are  not  case-sensitive.
     "=on"  is	assumed for boolean options if nothing is specified.  Some high-
     lights:

     MYNAME - Default User ID for Making Signatures

     Default setting:  MYNAME = ""

     The configuration parameter MYNAME specifies the default user ID to use  to
     select the secret key for making signatures.  If MYNAME is not defined, the
     most  recent secret key you installed on your secret key ring is used.  The
     user may also override this setting by specifying a user ID on the PGP com-
     mand line with the -u option.

     TEXTMODE - Assuming Plaintext is a Text File

     Default setting:  TEXTMODE = off

     The configuration parameter TEXTMODE is equivalent to the -t  command  line
     option.   If enabled, it causes PGP to assume the plaintext is a text file,
     not a binary file, and converts it to "canonical  text"  before  encrypting
     it.  Canonical text has a carriage return and a linefeed at the end of each
     line of text.

     This  mode  is  automatically  turned off if PGP detects that the plaintext
     file contains 8-bit binary data.  Thus, it is safe to leave enabled at  all
     times.

     ARMOR - Enable ASCII Armor Output

     Default setting:  ARMOR = off

     The  configuration parameter ARMOR is equivalent to the -a command line op-
     tion.  If enabled, it causes PGP  to  emit  ciphertext  or  keys  in  ASCII
     Radix-64  format suitable for transporting through E-mail channels.  Output
     files are named with the ".asc" extension.

     If you tend to use PGP mostly for E-mail, it may be a good idea  to  enable
     this parameter.

     ARMORLINES - Size of ASCII Armor Multipart Files

     Default setting:  ARMORLINES = 720

     For  large  ASCII	armor  files,  PGP splits them into files named ".asc1",
     ".asc2", ".asc3", etc. so as not to choke mailers, which  typically  starts
     to  happen  around  50,000  bytes.   This specifies the number of (64-byte)
     lines to place in each file.  If set to 0, PGP will not split  ASCII  armor
     files.

     CLEARSIG - Enable Clear-Signed Output

     Default setting:  CLEARSIG = on

     Normally,	a signed and ASCII-armored PGP message is gibberish, even though
     the text is not encrypted.  This prevents munging by mailers, but	requires
     PGP to simply read the message.

     If  CLEARSIG  is enabled, then when signing and ASCII-armoring a text file,
     PGP uses a different format that includes the plaintext  in  human-readable
     form.  Lines beginning with "-" are quoted with "- ".  To cope with some of
     the  stupider  mailers  in  the world, lines beginning with "From" are also
     quoted, and trailing whitespace on lines is stripped.  PGP will remove  the
     quoting  if  you use it to decrypt the message, but the trailing whitespace
     is not recovered.	This is still useful enough to be enabled by default.

     ENCRYPTTOSELF - Add MYNAME to Recipients List

     Default setting:  ENCRYPTTOSELF = off

     If this is emabled, MYNAME will be implcitly added to the list  of  recipi-
     ents  for	any  message you encrypt with a public key.  Since in this case,
     MYNAME is looked up in the public keyring, it is important  that  it  unam-
     biguously specify the right key.

     LANGUAGE - Language To Use

     Default setting:  LANGUAGE = en

     If  you  want to use a different language, and translations are in the lan-
     guage.txt file, setting this option will cause PGP's messages to appear  in
     a	different language.  If a translation for a message is not available, it
     appears in english.

     If you look at the supplied language.txt file, the format should  be  obvi-
     ous.

     CHARSET - Character Set

     Default setting:  CHARSET = noconv

     PGP  tries  to translate all text-mode messages into the ISO Latin-1 alpha-
     bet, or the KOI-8 alphabet for cyrillic alphabets.  This setting  indicates
     the  native  character set, so PGP can do the translation.  Options are no-
     conv, latin1 or koi8, indicating that no translation should be done; cp850,
     indicating that IBM PC code page 850 mappings should be used; ascii,  indi-
     cating  that a minimal ASCII subset should be used; and alt_codes, indicat-
     ing that the IBM PC alt codes should be used for the cyrillic alphabet.

     KEEPBINARY - Preserve Intermediate .pgp File

     Default setting:  KEEPBINARY = off

     If KEEPBINARY is enabled, then PGP will produce a .pgp file in addition  to
     a .asc file when ASCII armor is enabled.

     TMP - Temporary file directory

     Default setting:  TMP = ""

     PGP  produces  temporary files while decrypting a message.  This is the di-
     rectory they are stored in.  If not specified in the config file, the envi-
     ronment variable TMP is used, or the current directory.  It helps	security
     somewhat if this is not a publicly-readable directory.  A local file system
     is also a good idea.

     COMPRESS - Compress Plaintext Before Encrypting

     Default setting:  COMPRESS = on

     PGP  usually compresses the plaintext before encrypting it, so it will have
     less to encrypt and the file you send  will  be  smaller.	 It  also  makes
     cryptanalysis  harder.   This is usually only turned off for debugging pur-
     poses.

     PAGER - Select Shell Command to Display Pager Output

     Default setting:  PAGER = ""

     If set, PGP uses this program to view files when the -m  option  is  speci-
     fied.  By default, PGP uses a simple builtin pager.

     SHOWPASS - Echo Pass Phrase During Entry

     Default setting:  SHOWPASS = off

     If someone is unable to type a long pass phrase reliably without seeing it,
     this can be turned on, at the cost of security.

     INTERACTIVE - Prompt Before Adding Each Key

     Default setting:  INTERACTIVE = off

     By  default,  when  given a file containing new keys, PGP asks if you would
     like to add them to your public key ring.	Since adding keys does not imply
     that you trust them, adding more just wakes up space.  If	this  option  is
     set, PGP asks about each key in a key file.

     VERBOSE - Level of Detail Printed

     Default setting:  VERBOSE = 1

     When  set	to 0, PGP only prints messages that are necessary or indicate an
     error.  When set to 2, PGP prints a significant amount of debugging  infor-
     mation describing what it's doing.  Values above 2 have no effect.

     PUBRING - Public Key Ring Location

     Default setting:  PUBRING = $PGPPATH/pubring.pgp

     This is the path name to the public key ring to use.

     SECRING - Secret Key Ring Location

     Default setting:  SECRING = $PGPPATH/secring.pgp

     This is the path name to the secret key ring to use.

     BAKRING - Backup Secret Key Ring

     Default setting:  BAKRING = ""

     If this is set, when checking your key ring (pgp -kc), PGP will compare the
     normal  secret  key  ring	against  the  given backup copy, usually kept on
     write-protected removable media.  This is to protect against wholesale mod-
     ifications to your key rings in a spoofing attack.

     RANDSEED - Random Number Seed File

     Default setting:  RANDSEED = $PGPPATH/randseed.bin

     This is the path to a random seed file which is part of PGP's random number
     generation algorithm, used to generate session keys.   While  PGP	goes  to
     great  lengths  to  use  every available source of randomness in generating
     session keys, this file is part of the process and protecting it from  dis-
     closure is desirable.

     COMMENT - ASCII Armor Comment

     Default setting:  COMMENT = ""

     If  set to a non-empty string, the value of this variable is printed in the
     header of ASCII armor files, preceded by "Comment: ".

     LEGAL_KLUDGE - Incompatibility with PGP versions prior to 2.6

     Default setting:  LEGAL_KLUDGE = on

     If set, PGP will generate keys and messages in a new format that cannot  be
     read by PGP 2.5 and earlier versions.

   Key certification
     PGP  employs  a system where users specify trusted users who may sign other
     people's public keys.  It is important that you understand how this  mecha-
     nism works; a full description is in the manual.

     Important:  The  manual also describes how to generate and send a "key com-
     promise" certificate that tells readers that your private key has been com-
     promised.	If your key has been compromised, please read the manual section
     on key compromise certificates and how to create them; the faster you  send
     out a key compromise certificate, the smaller the window of opportunity for
     "bad guys" to send forged messages.

   Important Hints
     PGP  automatically tries compressing your input file; there is little point
     in precompressing input for transmission.

     PGP "ascii armor" is only needed on the outer transmitted	message;  as  an
     example,  if you are, say, sending a public key to someone else and you are
     for some reason signing it, simply armor the outer message; it's better  to
     sign the binary form of the key.

   Foreign Languages
     PGP  is  easily customized for foreign language help and error messages; it
     has been translated into a number of non-english languages.  See the manual
     for details on the file "language.txt".

ENVIRONMENT
     PGP uses several special files for its purposes, such as your standard  key
     ring  files  "pubring.pgp"  and  "secring.pgp", the random number seed file
     "randseed.bin", the PGP configuration file "config.txt",  and  the  foreign
     language  string  translation file "language.txt".  These special files can
     be kept in any directory, by setting the environment variable "PGPPATH"  to
     the  desired  pathname.   If PGPPATH remains undefined, these special files
     are assumed to be in the current directory.

     Normally, PGP prompts the user to type a pass phrase whenever PGP	needs  a
     pass  phrase  to unlock a secret key.  But it is possible to store the pass
     phrase in an environment variable	from  your  operating  system's  command
     shell.   The  environment	variable  PGPPASS  can	be used to hold the pass
     phrase that PGP attempts to use first.  If the pass phrase stored	in  PGP-
     PASS  is incorrect, PGP recovers by prompting the user for the correct pass
     phrase.  This dangerous feature makes your life more convenient if you have
     to regularly deal with a large number of  incoming  messages  addressed  to
     your secret key, by eliminating the need for you to repeatedly type in your
     pass  phrase  every time you run PGP.  This is a very dangerous feature; on
     UNIX it is trivial to read someone else's environment using the ps(1)  com-
     mand.   If  you  are  contemplating using this feature, be sure to read the
     sections "How to Protect Secret Keys  from  Disclosure"  and  "Exposure  on
     Multi-user Systems" in the full PGP manual.

     If  the  environment  variable PGPPASSFD is defined, it must have a numeric
     value, which PGP uses as a file descriptor number to  read  a  pass  phrase
     from.  This is done before anything else, so it can be combined with an in-
     put file on standard input.  This is mainly for use by shell scripts, since
     under Unix it is difficult to read the contents of other people's pipes.

RETURN VALUE
     PGP  returns a 0 to the shell on success, and a nonzero error code on fail-
     ure.  See the source code for details on nonzero status return values.

FILES
     *.pgp			    ciphertext, signature, or key file
     *.asc			    ascii armor file
     /usr/local/lib/config.txt	    system-wide configuration file
     $PGPPATH/config.txt	    per-user configuration file
     $PGPPATH/pubring.pgp	    public key ring
     $PGPPATH/secring.pgp	    secret key ring
     $PGPPATH/randseed.bin	    random number seed file
     /usr/local/lib/pgp/language.txt
     $PGPPATH/language.txt	    foreign language translation file
     /usr/local/lib/pgp/pgp.hlp
     $PGPPATH/pgp/pgp.hlp	    online help text file
     /usr/local/lib/pgp/pgpkey.hlp
     $PGPPATH/pgp/pgpkey.hlp	    online key-management help text file

NOTE
     The manual is really good, and it's really important in the long  run  that
     you  read it.  PGP may be an unpickable lock, but you have to put in in the
     door properly to keep out intruders.  So read the manual and find out how!

CAVEATS
     It is impossible to overemphasize the importance of protecting your  secret
     key.   Anyone gaining access to it can forge messages from you or read mail
     addressed to you.	Be very cautious in using PGP  on  any	multi-user  unix
     system.

     PGP is believed by its authors to be the most secure cryptographic software
     available	to the public when used as directed, but then again everyone al-
     ways claims their pet encryption system is secure.  Read the section in the
     manual on "Trusting Snake Oil" and the  section  on  "Vulnerabilities"  for
     caveats.

DIAGNOSTICS
     Mostly self explanatory.

BUGS
     PGP  was initially written for the PC, and behaves very PCish.  In particu-
     lar, its automagic file selection, file extensions, and the like  all  make
     it somewhat alien in the UNIX environment.

     This man page needs to be updated to reflect all the latest features.

AUTHORS
     Originally  written  by Philip R. Zimmermann.  Later augmented by a cast of
     thousands.

LEGAL RESTRICTIONS
     PGP 2.6.3i is freeware, and may be used for non-commercial  purposes  only.
     This  version of PGP is illegal to use within the USA but is fine elsewhere
     in the world. US users should get a copy of MIT PGP 2.6.2 instead, or  pur-
     chase the commercial version 2.7.1 from ViaCrypt.

     For  detailed  information  on  PGP  licensing,  distribution,  copyrights,
     patents, trademarks, liability limitations, and export  controls,	see  the
     "Legal  Issues"  section  in the "PGP User's Guide, Volume II: Special Top-
     ics".

			       PGP Version 2.6.3i			  PGP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pgpin&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help