gpg(1)							   gpg(1)


NAME
       gpg -- encryption and signing tool

SYNOPSIS
       gpg  [--homedir name]  [--options file]	[options]  command  [args]

DESCRIPTION
       gpg is the main program for the GnuPG system.


       This  man  page only lists the commands and options avail-
       able.  For a more verbose documentation get the	GNU  Pri-
       vacy    Handbook	   (GPH),    which    is   available   at
       http://www.gnupg.org/gph/ .  You will find a list of HOWTO
       documents at http://www.gnupg.org/docs.html .

COMMANDS
       gpg recognizes these commands:

       -s, --sign
		 Make  a  signature. This command may be combined
		 with --encrypt.

       --clearsign
		 Make a clear text signature.

       -b, --detach-sign
		 Make a detached signature.

       -e, --encrypt
		 Encrypt data. This option may be  combined  with
		 --sign.

       -c, --symmetric
		 Encrypt  with	symmetric cipher only.	This com-
		 mand asks for a passphrase.

       --store	 Store only (make a simple RFC1991 packet).

       --decrypt [file]
		 Decrypt file (or stdin if no file is  specified)
		 and  write  it	 to stdout (or the file specified
		 with --output). If the decrypted file is signed,
		 the  signature	 is  also  verified. This command
		 differs from the default operation, as it  never
		 writes	 to the filename which is included in the
		 file and it rejects files which don't begin with
		 an encrypted message.

       --verify [[sigfile]  [signed-files]]
		 Assume that sigfile is a signature and verify it
		 without generating any output.	  With	no  argu-
		 ments,	 the signature packet is read from stdin.
		 If only a sigfile is given, it may be a complete
		 signature or a detached signature, in which case
		 the signed stuff is expected in a  file  without
		 the  ".sig" or ".asc" extension.  With more than
		 1 argument, the first should be a detached  sig-
		 nature	 and  the  remaining files are the signed
		 stuff.	 To read the signed stuff from stdin, use
		 -  as the second filename.  For security reasons
		 a detached  signature	cannot	read  the  signed
		 material  from	 stdin without denoting it in the
		 above way.

       --verify-files [files]
		 This is a special version of the  --verify  com-
		 mand  which  does  not work with detached signa-
		 tures.	 The command expects the files to be ver-
		 ified	either	on  the command line or reads the
		 filenames from stdin;	each name must be on sep-
		 arate	line.  The  command is intended for quick
		 checking of many files.

       --list-keys [names]

       --list-public-keys [names]
		 List all keys from the public keyrings, or  just
		 the ones given on the command line.

       --list-secret-keys [names]
		 List  all keys from the secret keyrings, or just
		 the ones given on the command line.

       --list-sigs [names]
		 Same as  --list-keys,	but  the  signatures  are
		 listed too.

       --check-sigs [names]
		 Same as --list-sigs, but the signatures are ver-
		 ified.

       --fingerprint [names]
		 List all keys with their fingerprints.	 This  is
		 the  same  output  as	--list-keys  but with the
		 additional output of a	 line  with  the  finger-
		 print.	 May also be combined with --list-sigs or
		 --check-sigs.	If this command is  given  twice,
		 the  fingerprints  of	all  secondary	keys  are
		 listed too.

       --list-packets
		 List only  the	 sequence  of  packets.	 This  is
		 mainly useful for debugging.

       --gen-key Generate  a  new  key pair. This command is nor-
		 mally only used interactively.
		 There is an experimental  feature  which  allows
		 you  to  create keys in batch mode. See the file
		 doc/DETAILS in the source distribution on how to
		 use this.

       --edit-key name
		 Present  a  menu which enables you to do all key
		 related tasks:

		 sign	   Make a signature on key of  user  name
			   If  the  key	 is not yet signed by the
			   default user (or the users given  with
			   -u), the program displays the informa-
			   tion of the key again,  together  with
			   its	fingerprint  and  asks whether it
			   should be  signed.  This  question  is
			   repeated  for all users specified with
			   -u.

		 lsign	   Same as --sign but  the  signature  is
			   marked   as	non-exportable	and  will
			   therefore never  be	used  by  others.
			   This	 may  be  used to make keys valid
			   only in the local environment.

		 revsig	   Revoke a signature.	 GnuPG	asks  for
			   every signature which has been done by
			   one of  the	secret	keys,  whether	a
			   revocation  certificate should be gen-
			   erated.

		 trust	   Change the  owner  trust  value.  This
			   updates  the	 trust-db immediately and
			   no save is required.

		 disable

		 enable	   Disable or enable  an  entire  key.	A
			   disabled  key can normally not be used
			   for encryption.

		 adduid	   Create an alternate user id.

		 deluid	   Delete a user id.

		 addkey	   Add a subkey to this key.

		 delkey	   Remove a subkey.

		 revkey	   Revoke a subkey.

		 expire	   Change the key expiration time.  If	a
			   key	is selected, the time of this key
			   will be changed.   With  no	selection



								3





gpg(1)							   gpg(1)


			   the	key expiration of the primary key
			   is changed.

		 passwd	   Change the passphrase  of  the  secret
			   key.

		 uid n	   Toggle selection of user id with index
			   n.  Use 0 to deselect all.

		 key n	   Toggle selection of subkey with  index
			   n.  Use 0 to deselect all.

		 check	   Check all selected user ids.

		 pref	   List preferences.

		 showpref  More verbose preferences listing.

		 toggle	   Toggle  between  public and secret key
			   listing.

		 save	   Save all changes to the key rings  and
			   quit.

		 quit	   Quit	 the program without updating the
			   key rings.

		 The listing shows you the key with its secondary
		 keys and all user ids. Selected keys or user ids
		 are indicated by an asterisk. The trust value is
		 displayed with the primary key: the first is the
		 assigned owner trust and the second is the  cal-
		 culated  trust	 value.	 Letters are used for the
		 values:

		 -	   No ownertrust assigned / not yet  cal-
			   culated.

		 e	   Trust calculation has failed; probably
			   due to an expired key.

		 q	   Not enough  information  for	 calcula-
			   tion.

		 n	   Never trust this key.

		 m	   Marginally trusted.

		 f	   Fully trusted.

		 u	   Ultimately trusted.

       --sign-key name
		 Sign  a public key with your secret key. This is



								4





gpg(1)							   gpg(1)


		 a shortcut version of the subcommand "sign" from
		 --edit.

       --lsign-key name
		 Sign  a public key with your secret key but mark
		 it as non-exportable.	This is a  shortcut  ver-
		 sion of the subcommand "lsign" from --edit.

       --trusted-key long key ID
		 Assume	 that  the  specified  key (which must be
		 given as a  full 8 byte key ID) is as	trustwor-
		 thy  as one of your own secret keys. This option
		 is useful if you don't want to keep your  secret
		 keys  (or  one of them) online but still want to
		 be able to check the validity of a given recipi-
		 ent's or signator's key.

       --delete-key name
		 Remove key from the public keyring

       --delete-secret-key  name
		 Remove key from the secret and public keyring

       --delete-secret-and-public-key  name
		 Same  as  --delete-key,  but  if  a  secret  key
		 exists, it will be removed first.

       --gen-revoke
		 Generate a revocation certificate for	the  com-
		 plete	key.  To  revoke a subkey or a signature,
		 use the --edit command.

       --export [names]
		 Either	 export	 all  keys  from   all	 keyrings
		 (default   keyrings  and  those  registered  via
		 option --keyring), or if at least  one	 name  is
		 given,	 those of the given name. The new keyring
		 is written to stdout or to the file  given  with
		 option	 "output".   Use together with --armor to
		 mail those keys.

       --send-keys [names]
		 Same as --export but sends the keys  to  a  key-
		 server.  Option --keyserver must be used to give
		 the name of this keyserver. Don't send your com-
		 plete keyring to a keyserver - select only those
		 keys which are new or changed by you.

       --export-all [names]
		 Same as --export, but also  exports  keys  which
		 are not compatible with OpenPGP.

       --export-secret-keys [names]




								5





gpg(1)							   gpg(1)


       --export-secret-subkeys [names]
		 Same  as  --export,  but exports the secret keys
		 instead.  This is normally not very useful and a
		 security  risk.   The second form of the command
		 has the special property to  render  the  secret
		 part  of  the primary key useless; this is a GNU
		 extension to OpenPGP and  other  implementations
		 can  not be expected to successfully import such
		 a key.

       --import [files]

       --fast-import [files]
		 Import/merge keys. This adds the given	 keys  to
		 the  keyring.	 The  fast version does not build
		 the trustdb; this can be done at any  time  with
		 the command --update-trustdb.

		 There	are a few other options which control how
		 this command works.  Most notable  here  is  the
		 --merge-only  option  which  does not insert new
		 keys but does only the	 merging  of  new  signa-
		 tures,	 user-IDs  and	subkeys.   See	also  the
		 option --allow-secret-key-import.

       --recv-keys key IDs
		 Import the keys with the given key  IDs  from	a
		 HKP  keyserver.  Option --keyserver must be used
		 to give the name of this keyserver.

       --export-ownertrust
		 List the assigned  ownertrust	values	in  ASCII
		 format for backup purposes.

       --import-ownertrust [files]
		 Update	 the  trustdb  with the ownertrust values
		 stored in files (or stdin if not given);  exist-
		 ing values will be overwritten.

       --print-md algo [files]
		 Print	message	 digest of algorithm ALGO for all
		 given files of stdin.	If "*" is  used	 for  the
		 algorithm,  digests for all available algorithms
		 are printed.

       --gen-random 0|1|2		  [count]
		 Emit COUNT random bytes  of  the  given  quality
		 level. If count is not given or zero, an endless
		 sequence  of  random  bytes  will  be	 emitted.
		 PLEASE,  don't	 use this command unless you know
		 what you  are	doing;	it  may	 remove	 precious
		 entropy from the system!





								6





gpg(1)							   gpg(1)


       --gen-prime mode			 bits		  [qbits]
		 Use the source, Luke :-). The output  format  is
		 still subject to change.

       --version Print	version	 information along with a list of
		 supported algorithms.

       --warranty
		 Print warranty information.

       -h, --help
		 Print usage information.  This is a really  long
		 list even though it doesn't list all options.

OPTIONS
       Long  options  can  be  put  in	an  options file (default
       "~/.gnupg/options").  Do not write the 2 dashes, but  sim-
       ply  the	 name  of  the option and any required arguments.
       Lines with a hash as the first  non-white-space	character
       are  ignored.  Commands	may  be put in this file too, but
       that does not make sense.

       gpg recognizes these options:

       -a, --armor
		 Create ASCII armored output.

       -o, --output file
		 Write output to file.

       -u, --local-user name
		 Use name as the user ID to sign.  This option is
		 silently  ignored for the list commands, so that
		 it can be used in an options file.

       --default-key name
		 Use name as default user ID for signatures.   If
		 this  is  not	used  the  default user ID is the
		 first user ID found in the secret keyring.

       -r, --recipient name

		 Encrypt for user id name. If this option is  not
		 specified,  GnuPG  asks  for  the user-id unless
		 --default-recipient is given

       --default-recipient name
		 Use name as default recipient if option --recip-
		 ient  is  not	used  and  don't ask if this is a
		 valid one. name must be non-empty.

       --default-recipient-self
		 Use the default  key  as  default  recipient  if
		 option	 --recipient is not used and don't ask if



								7





gpg(1)							   gpg(1)


		 this is a valid one.  The  default  key  is  the
		 first one from the secret keyring or the one set
		 with --default-key.

       --no-default-recipient
		 Reset --default-recipient and	--default-recipi-
		 ent-self.

       --encrypt-to name
		 Same as --recipient but this one is intended for
		 use in the options file and  may  be  used  with
		 your own user-id as an "encrypt-to-self".  These
		 keys are only used when there are other  recipi-
		 ents  given  either  by use of --recipient or by
		 the asked user id.  No trust  checking	 is  per-
		 formed for these user ids and even disabled keys
		 can be used.

       --no-encrypt-to
		 Disable the use of all --encrypt-to keys.

       -v, --verbose
		 Give more information during processing. If used
		 twice, the input data is listed in detail.

       -q, --quiet
		 Try to be as quiet as possible.

       -z n	 Set  compression  level to n. A value of 0 for n
		 disables compression.	Default	 is  to	 use  the
		 default  compression level of zlib (normally 6).

       -t, --textmode
		 Use  canonical	 text  mode.   If  -t  (but   not
		 --textmode)  is  used together with armoring and
		 signing,  this	 enables  clearsigned	messages.
		 This  kludge  is  needed  for PGP compatibility;
		 normally you would use --sign or --clearsign  to
		 selected the type of the signature.

       -n, --dry-run
		 Don't	make  any changes (this is not completely
		 implemented).

       -i, --interactive
		 Prompt before overwriting any files.

       --batch	 Use batch mode.  Never ask, do not allow  inter-
		 active commands.

       --no-tty	 Make  sure that the TTY (terminal) is never used
		 for any output.  This option is needed	 in  some
		 cases because GnuPG sometimes prints warnings to
		 the TTY if --batch is used.



								8





gpg(1)							   gpg(1)


       --no-batch
		 Disable batch mode.   This  may  be  of  use  if
		 --batch is enabled from an options file.

       --yes	 Assume "yes" on most questions.

       --no	 Assume "no" on most questions.

       --always-trust
		 Skip  key  validation	and assume that used keys
		 are always fully trusted.  You	 won't	use  this
		 unless	 you have installed some external valida-
		 tion scheme.

       --keyserver name
		 Use name to lookup keys which	are  not  yet  in
		 your keyring.	This is only done while verifying
		 messages with signatures.  The	 option	 is  also
		 required  for the command --send-keys to specify
		 the keyserver to where the keys should be  send.
		 All  keyservers synchronize with each other - so
		 there is no need to send keys to more	than  one
		 server.   Using  the  command "host -l pgp.net |
		 grep wwwkeys" gives you a  list  of  keyservers.
		 Because  there	 is  load  balancing using round-
		 robin DNS you may notice that you get	different
		 key servers.

       --no-auto-key-retrieve
		 This option disables the automatic retrieving of
		 keys from a  keyserver	 while	verifying  signa-
		 tures.	 This  option  allows  you to keep a key-
		 server in the options file for	 the  --send-keys
		 and --recv-keys commands.

       --honor-http-proxy
		 Try  to  access the keyserver over the proxy set
		 with the variable "http_proxy".

       --keyring file
		 Add file to  the  list	 of  keyrings.	 If  file
		 begins	 with  a  tilde	 and  a	 slash, these are
		 replaced by the HOME directory. If the	 filename
		 does not contain a slash, it is assumed to be in
		 the home-directory ("~/.gnupg" if  --homedir  is
		 not  used).  The filename may be prefixed with a
		 scheme:

		 "gnupg-ring:" is the default one.

		 "gnupg-gdbm:" may be used for a GDBM ring.  Note
		 that  GDBM  is	 experimental  and  likely  to be
		 removed in future versions.




								9





gpg(1)							   gpg(1)


		 It might make sense  to  use  it  together  with
		 --no-default-keyring.

       --secret-keyring file
		 Same as --keyring but for the secret keyrings.

       --homedir directory
		 Set  the name of the home directory to directory
		 If this  option  is  not  used	 it  defaults  to
		 "~/.gnupg".  It  does not make sense to use this
		 in a options file. This also overrides the envi-
		 ronment variable "GNUPGHOME".

       --charset name
		 Set  the name of the native character set.  This
		 is used to convert some strings to proper  UTF-8
		 encoding.  Valid values for name are:

		 iso-8859-1
			   This is the default Latin 1 set.

		 iso-8859-2
			   The Latin 2 set.

		 koi8-r	   The usual Russian set (rfc1489).

		 utf-8	   Bypass  all	translations  and  assume
			   that the OS uses native  UTF-8  encod-
			   ing.

       --utf8-strings

       --no-utf8-strings
		 Assume	 that  the arguments are already given as
		 UTF8 strings.	The  default  (--no-utf8-strings)
		 is  to	 assume that arguments are encoded in the
		 character set as specified by	--charset.  These
		 options  affect  all  following arguments.  Both
		 options may be used multiple times.

       --options file
		 Read options from file and do not  try	 to  read
		 them  from the default options file in the home-
		 dir (see --homedir). This option is  ignored  if
		 used in an options file.

       --no-options
		 Shortcut for "--options /dev/null".  This option
		 is detected before an attempt to open an  option
		 file.

       --load-extension name
		 Load  an extension module. If name does not con-
		 tain	 a    slash    it    is	   searched    in



							       10





gpg(1)							   gpg(1)


		 "/usr/local/lib/gnupg"	 See  the manual for more
		 information about extensions.

       --debug flags
		 Set debugging flags. All  flags  are  or-ed  and
		 flags may be given in C syntax (e.g. 0x0042).

       --debug-all
		 Set all useful debugging flags.

       --status-fd n
		 Write	 special   status  strings  to	the  file
		 descriptor n.	See the file DETAILS in the docu-
		 mentation for a listing of them.

       --logger-fd n
		 Write log output to file descriptor n and not to
		 stderr.

       --no-comment
		 Do  not  write	 comment  packets.   This  option
		 affects    only   the	 generation   of   secret
		 keys.	Please note, that this has nothing to  do
		 with the comments in clear text signatures.

       --comment string
		 Use  string as comment string in clear text sig-
		 natures.   To	suppress  those	 comment  strings
		 entirely, use an empty string here.

       --default-comment
		 Force	to  write  the standard comment string in
		 clear text signatures.	 Use this to overwrite	a
		 --comment from a config file.

       --no-version
		 Omit  the  version  string  in clear text signa-
		 tures.

       --emit-version
		 Force to write the version string in clear  text
		 signatures.   Use  this  to overwrite a previous
		 --no-version from a config file.

       -N, --notation-data name=value
		 Put the name value pair into  the  signature  as
		 notation   data.   name  must	consist	 only  of
		 alphanumeric characters, digits  or  the  under-
		 score;	 the first character must not be a digit.
		 value may be any printable string;  it	 will  be
		 encoded  in  UTF8, so you should check that your
		 --charset is set correctly.  If you prefix  name
		 with an exclamation mark, the notation data will
		 be flagged as critical (rfc2440:5.2.3.15).



							       11





gpg(1)							   gpg(1)


       --set-policy-url string
		 Use  string  as  Policy   URL	 for   signatures
		 (rfc2440:5.2.3.19).   If  you	prefix it with an
		 exclamation mark, the policy URL packet will  be
		 flagged as critical.

       --set-filename string
		 Use  string  as the name of file which is stored
		 in messages.

       --use-embedded-filename
		 Try to create a file with a name as embedded  in
		 the  data.  This can be a dangerous option as it
		 allows to overwrite files.

       --completes-needed n
		 Number of completely trusted users to	introduce
		 a new key signer (defaults to 1).

       --marginals-needed n
		 Number	 of marginally trusted users to introduce
		 a new key signer (defaults to 3)

       --max-cert-depth n
		 Maximum depth of a certification chain	 (default
		 is 5).

       --cipher-algo name
		 Use   name as cipher algorithm. Running the pro-
		 gram with the command --version yields a list of
		 supported  algorithms.	 If  this is not used the
		 cipher algorithm is selected  from  the  prefer-
		 ences stored with the key.

       --digest-algo name
		 Use   name  as message digest algorithm. Running
		 the program with the command --version yields	a
		 list  of supported algorithms.	 Please note that
		 using	this  option  may  violate  the	  OpenPGP
		 requirement,  that  a 160 bit hash is to be used
		 for DSA.

       --s2k-cipher-algo name
		 Use  name as the cipher algorithm used	 to  pro-
		 tect	secret	 keys.	 The  default  cipher  is
		 BLOWFISH.  This cipher is also used for  conven-
		 tional encryption if --cipher-algo is not given.

       --s2k-digest-algo name
		 Use  name as the digest algorithm used to mangle
		 the passphrases.  The default algorithm is RIPE-
		 MD-160.  This digest algorithm is also used  for
		 conventional  encryption if --digest-algo is not
		 given.



							       12





gpg(1)							   gpg(1)


       --s2k-mode n
		 Selects how passphrases are mangled. If n is 0 a
		 plain passphrase (which is not recommended) will
		 be used, a  1	(default)  adds	 a  salt  to  the
		 passphrase  and a 3 iterates the whole process a
		 couple of times.  Unless --rfc1991 is used, this
		 mode is also used for conventional encryption.

       --compress-algo n
		 Use compress algorithm	 n. Default is 2 which is
		 RFC1950 compression. You may use 1  to	 use  the
		 old zlib version (RFC1951) which is used by PGP.
		 The default algorithm may  give  better  results
		 because the window size is not limited to 8K. If
		 this is not used the OpenPGP behavior	is  used,
		 i.e.  the compression algorithm is selected from
		 the preferences; note, that this can't	 be  done
		 if you do not encrypt the data.

       --disable-cipher-algo name
		 Never allow the use of name as cipher algorithm.
		 The given name will not be  checked  so  that	a
		 later	loaded algorithm will still get disabled.

       --disable-pubkey-algo name
		 Never allow the use of name as public key  algo-
		 rithm.	  The  given  name will not be checked so
		 that a later loaded  algorithm	 will  still  get
		 disabled.

       --no-sig-cache
		 Do not cache the verification status of key sig-
		 natures.  Caching gives a  much  better  perfor-
		 mance	in key listings.  However, if you suspect
		 that your public keyring  is  not  save  against
		 write	modifications, you can use this option to
		 disable the caching.  It probably does not  make
		 sense	to  disable it because all kind of damage
		 can be done if someone else has write access  to
		 your public keyring.

       --no-sig-create-check
		 GnuPG	normally  verifies  each  signature right
		 after creation to protect against bugs and hard-
		 ware malfunctions which could leak out bits from
		 the secret key.  This extra  verification  needs
		 some time (about 115% for DSA keys), and so this
		 option can be used to disable it.  However,  due
		 to  the  fact	that the signature creation needs
		 manual	 interaction,  this  performance  penalty
		 does not matter in most settings.

       --throw-keyid
		 Do  not  put  the  keyid into encrypted packets.



							       13





gpg(1)							   gpg(1)


		 This option hides the receiver	 of  the  message
		 and  is  a countermeasure against traffic analy-
		 sis.  It may slow down	 the  decryption  process
		 because all available secret keys are tried.

       --not-dash-escaped
		 This  option  changes	the behavior of cleartext
		 signatures so that they can be	 used  for  patch
		 files.	 You should not send such an armored file
		 via email because all spaces  and  line  endings
		 are hashed too.  You can not use this option for
		 data which has 5 dashes at the	 beginning  of	a
		 line,	patch  files  don't  have this. A special
		 armor header line tells GnuPG about this cleart-
		 ext signature option.

       --escape-from-lines
		 Because  some mailers change lines starting with
		 "From " to "<From " it is good	 to  handle  such
		 lines	in  a special way when creating cleartext
		 signatures. All other PGP versions  do	 it  this
		 way  too.  This option is not enabled by default
		 because it would violate rfc2440.

       --passphrase-fd n
		 Read the passphrase from file descriptor  n.  If
		 you  use  0  for  n, the passphrase will be read
		 from stdin.	 This can only be  used	 if  only
		 one  passphrase  is  supplied.	  Don't	 use this
		 option if you can avoid it.

       --command-fd n
		 This is a replacement for the deprecated shared-
		 memory	 IPC  mode.   If  this option is enabled,
		 user input on questions is not expected from the
		 TTY  but  from	 the  given  file descriptor.  It
		 should be used together  with	--status-fd.  See
		 the  file doc/DETAILS in the source distribution
		 for details on how to use it.

       --use-agent
		 Try to use the	 GnuPG-Agent.  Please  note  that
		 this  agent  is  still	 under development.  With
		 this option, GnuPG first tries to connect to the
		 agent before it asks for a passphrase.

       --rfc1991 Try to be more RFC1991 (PGP 2.x) compliant.

       --openpgp Reset	all  packet, cipher and digest options to
		 OpenPGP behavior. Use this option to  reset  all
		 previous   options   like   --rfc1991,	 --force-
		 v3-sigs, --s2k-*,  --cipher-algo,  --digest-algo
		 and --compress-algo to OpenPGP compliant values.
		 All PGP workarounds are also disabled.



							       14





gpg(1)							   gpg(1)


       --force-v3-sigs
		 OpenPGP states	 that  an  implementation  should
		 generate v4 signatures but PGP 5.x recognizes v4
		 signatures only on key	 material.   This  option
		 forces v3 signatures for signatures on data.

       --force-mdc
		 Force the use of encryption with appended manip-
		 ulation code.	This  is  always  used	with  the
		 newer	ciphers	 (those	 with a blocksize greater
		 than 64 bit).	This option might not  be  imple-
		 mented yet.

       --allow-non-selfsigned-uid
		 Allow the import of keys with user IDs which are
		 not self-signed, but have at  least  one  signa-
		 ture.	This only allows the import - key valida-
		 tion will fail and you have to check the  valid-
		 ity  of  the  key  my other means.  This hack is
		 needed for some German keys generated	with  pgp
		 2.6.3in.  You	should	really	avoid  using  it,
		 because OpenPGP has better mechanics to do sepa-
		 rate signing and encryption keys.

       --allow-freeform-uid
		 Disable  all  checks  on the form of the user ID
		 while generating a new one.  This option  should
		 only  be used in very special environments as it
		 does not ensure the de-facto standard format  of
		 user IDs.

       --ignore-time-conflict
		 GnuPG	normally checks that the timestamps asso-
		 ciated with keys and signatures  have	plausible
		 values.  However, sometimes a signature seems to
		 be older than the key	due  to	 clock	problems.
		 This option makes these checks just a warning.

       --ignore-crc-error
		 The ASCII armor used by OpenPG is protected by a
		 CRC checksum against transmission errors.  Some-
		 times it happens that the CRC gets mangled some-
		 where on the transmission channel but the actual
		 content   (which  is  anyway  protected  by  the
		 OpenPGP protocol) is still  okay.   This  option
		 will let gpg ignore CRC errors.

       --lock-once
		 Lock  the  databases  the  first  time a lock is
		 requested and do not release the lock until  the
		 process terminates.

       --lock-multiple
		 Release the locks every time a lock is no longer



							       15





gpg(1)							   gpg(1)


		 needed. Use this to override a previous  --lock-
		 once from a config file.

       --lock-never
		 Disable locking entirely.  This option should be
		 used only in very special environments, where it
		 can  be assured that only one process is access-
		 ing those  files.   A	bootable  floppy  with	a
		 stand-alone  encryption system will probably use
		 this.	Improper usage of this option may lead to
		 data and key corruption.

       --no-random-seed-file
		 GnuPG	uses  a file to store its internal random
		 pool over invocations.	 This makes random gener-
		 ation faster; however sometimes write operations
		 are not desired.  This option	can  be	 used  to
		 achieve that with the cost of slower random gen-
		 eration.

       --no-verbose
		 Reset verbose level to 0.

       --no-greeting
		 Suppress the initial copyright	 message  but  do
		 not enter batch mode.

       --no-secmem-warning
		 Suppress  the warning about "using insecure mem-
		 ory".

       --no-armor
		 Assume the input data is not  in  ASCII  armored
		 format.

       --no-default-keyring
		 Do  not  add the default keyrings to the list of
		 keyrings.

       --skip-verify
		 Skip the signature verification step.	This  may
		 be  used  to  make  the decryption faster if the
		 signature verification is not needed.

       --with-colons
		 Print key listings delimited by colons.

       --with-key-data
		 Print key listings delimited by colons and print
		 the public key data.

       --with-fingerprint
		 Same  as  the	command --fingerprint but changes
		 only the format of the output and  may	 be  used



							       16





gpg(1)							   gpg(1)


		 together with another command.

       --fast-list-mode
		 Changes  the output of the list commands to work
		 faster; this is achieved by leaving  some  parts
		 empty.	 Some applications don't need the user ID
		 and the trust information given in the listings.
		 By  using  this  options  they	 can get a faster
		 listing.  The exact behaviour of this option may
		 change in future versions.

       --fixed-list-mode
		 Do  not merge user ID and primary key in --with-
		 colon listing mode and print all  timestamps  as
		 seconds since 1970-01-01.

       --list-only
		 Changes the behaviour of some commands.  This is
		 like --dry-run but different in some cases.  The
		 semantic  of this command may be extended in the
		 future.  Currently  it	 only  skips  the  actual
		 decryption  pass  and	therefore  enables a fast
		 listing of the encryption keys.

       --no-literal
		 This is not for normal use.  Use the  source  to
		 see for what it might be useful.

       --set-filesize
		 This  is  not for normal use.	Use the source to
		 see for what it might be useful.

       --emulate-md-encode-bug
		 GnuPG versions prior to 1.0.2 had a bug  in  the
		 way  a	 signature  was	 encoded.   This  options
		 enables a workaround by checking  faulty  signa-
		 tures	again  with the encoding used in old ver-
		 sions.	 This may only happen for ElGamal  signa-
		 tures which are not widely used.

       --show-session-key
		 Display  the  session	key used for one message.
		 See --override-session-key for	 the  counterpart
		 of this option.

		 We think that Key-Escrow is a Bad Thing; however
		 the user  should  have	 the  freedom  to  decide
		 whether to go to prison or to reveal the content
		 of one specific message without compromising all
		 messages  ever	 encrypted  for	 one  secret key.
		 DON'T USE IT UNLESS YOU ARE REALLY FORCED TO  DO
		 SO.





							       17





gpg(1)							   gpg(1)


       --override-session-key string
		 Don't	use  the  public  key but the session key
		 string.  The format of this string is	the  same
		 as  the one printed by --show-session-key.  This
		 option is normally not used but comes	handy  in
		 case someone forces you to reveal the content of
		 an encrypted message; using this option you  can
		 do this without handing out the secret key.

       --merge-only
		 Don't	insert	new  keys into the keyrings while
		 doing an import.

       --allow-secret-key-import
		 Allow import of secret keys.  The import command
		 normally  skips secret keys because a secret key
		 can otherwise be used to attack the trust calcu-
		 lation.

       --try-all-secrets
		 Don't	look  at the key ID as stored in the mes-
		 sage but try all secret keys in turn to find the
		 right	decryption  key.   This option forces the
		 behaviour as used by anonymous recipients  (cre-
		 ated  by  using  --throw-keyid)  and  might come
		 handy in case where an	 encrypted  message  con-
		 tains a bogus key ID.

       --enable-special-filenames
		 This  options	enables a mode in which filenames
		 of the form -&n, where n is a non-negative deci-
		 mal  number,  refer to the file descriptor n and
		 not to a file with that name.

       --no-expensive-trust-checks
		 Experimental use only.

How to specify a user ID
       There are different ways on how to specify a  user  ID  to
       GnuPG; here are some examples:




       234567C4

       0F34E556E

       01347A56A

       0xAB123456
		 Here  the  key	 ID  is	 given in the usual short
		 form.




							       18





gpg(1)							   gpg(1)


       234AABBCC34567C4

       0F323456784E56EAB

       01AB3FED1347A5612

       0x234AABBCC34567C4
		 Here the key ID is given in  the  long	 form  as
		 used by OpenPGP.

       1234343434343434C434343434343434

       123434343434343C3434343434343734349A3434

       0E12343434343434343434EAB3484343434343434

       0xE12343434343434343434EAB3484343434343434
		 The best way to specify a key ID is by using the
		 fingerprint of the key.  This avoids any ambigu-
		 ities	in case that there are duplicated key IDs
		 (which are really rare for the long key IDs).

       =Heinrich Heine <heinrichh@uni-duesseldorf.de>
		 Using an exact to match string.  The equal  sign
		 indicates this.

       <heinrichh@uni-duesseldorf.de>
		 Using	the  email  address part which must match
		 exactly.  The left angle bracket indicates  this
		 email address mode.

       +Heinrich Heine duesseldorf
		 All  words  must  match exactly (not case sensi-
		 tive) but can appear in any order  in	the  user
		 ID.  Words are any sequences of letters, digits,
		 the underscore and all	 characters  with  bit	7
		 set.

       #34	 Using	the  Local  ID.	 This is a very low level
		 method and should only be used	 by  applications
		 which	really need it.	 The hash character indi-
		 cates this method.	   An application  should
		 not assume that this is only a number.

       Heine

       *Heine	 By case insensitive substring matching.  This is
		 the default mode but applications  may	 want  to
		 explicitly indicate this by putting the asterisk
		 in front.

       Note that you can append an exclamation mark to key IDs or
       fingerprints.   This flag which tells GnuPG to use exactly
       that primary or secondary key and don't try to figure  out



							       19





gpg(1)							   gpg(1)


       which secondary or primary key to use.


RETURN VALUE
       The  program  returns  0	 if  everything was fine, 1 if at
       least a signature was bad, and other error codes for fatal
       errors.


EXAMPLES
       gpg -se -r Bob file
		 sign and encrypt for user Bob

       gpg --clearsign file
		 make a clear text signature

       gpg -sb	file
		 make a detached signature

       gpg --list-keys	user_ID
		 show keys

       gpg --fingerprint  user_ID
		 show fingerprint

       gpg --verify  pgpfile

       gpg --verify  sigfile [files]
		 Verify the signature of the file but do not out-
		 put the  data.	 The  second  form  is	used  for
		 detached   signatures,	  where	 sigfile  is  the
		 detached  signature  (either  ASCII  armored  of
		 binary) and [files] are the signed data; if this
		 is not given the name of the  file  holding  the
		 signed	 data  is  constructed by cutting off the
		 extension (".asc" or ".sig") of  sigfile  or  by
		 asking the user for the filename.

ENVIRONMENT
       HOME	 Used to locate the default home directory.

       GNUPGHOME If set directory used instead of "~/.gnupg".

       http_proxy
		 Only  honored when the option --honor-http-proxy
		 is set.

FILES
       ~/.gnupg/secring.gpg
		 The secret keyring

       ~/.gnupg/secring.gpg.lock
		 and the lock file




							       20





gpg(1)							   gpg(1)


       ~/.gnupg/pubring.gpg
		 The public keyring

       ~/.gnupg/pubring.gpg.lock
		 and the lock file

       ~/.gnupg/trustdb.gpg
		 The trust database

       ~/.gnupg/trustdb.gpg.lock
		 and the lock file

       ~/.gnupg/random_seed
		 used to preserve the internal random pool

       ~/.gnupg/options
		 May contain options

       /usr[/local]/share/gnupg/options.skel
		 Skeleton options file

       /usr[/local]/lib/gnupg/
		 Default location for extensions

WARNINGS
       Use a *good* password for your user account and	a  *good*
       passphrase to protect your secret key.  This passphrase is
       the weakest part of the whole system.  Programs to do dic-
       tionary	attacks	 on  your secret keyring are very easy to
       write and so you should protect your "~/.gnupg/" directory
       very well.

       Keep  in mind that, if this program is used over a network
       (telnet), it is *very* easy to spy out your passphrase!

       If you are going to verify detached signatures, make  sure
       that  the  program  nows	 about	it; either be giving both
       filenames on the commandline or using - to specify  stdin.

BUGS
       On  many	 systems  this	program	 should	 be  installed as
       setuid(root). This is  necessary	 to  lock  memory  pages.
       Locking	memory	pages  prevents the operating system from
       writing memory pages to disk. If you get no  warning  mes-
       sage  about insecure memory your operating system supports
       locking without being root. The program drops root  privi-
       leges as soon as locked memory is allocated.










							       21


