2014-11-07 18:42:37 +01:00
|
|
|
|
@c Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
2010-09-28 18:04:47 +02:00
|
|
|
|
@c 2008, 2009, 2010 Free Software Foundation, Inc.
|
2004-09-30 10:39:08 +02:00
|
|
|
|
@c This is part of the GnuPG manual.
|
|
|
|
|
@c For copying conditions, see the file gnupg.texi.
|
2003-12-09 10:07:09 +01:00
|
|
|
|
|
2015-06-09 21:29:15 +02:00
|
|
|
|
@include defs.inc
|
|
|
|
|
|
2004-09-30 10:39:08 +02:00
|
|
|
|
@node Invoking GPG
|
|
|
|
|
@chapter Invoking GPG
|
|
|
|
|
@cindex GPG command options
|
|
|
|
|
@cindex command options
|
|
|
|
|
@cindex options, GPG command
|
2003-12-09 10:07:09 +01:00
|
|
|
|
|
2016-04-05 15:15:28 +02:00
|
|
|
|
|
|
|
|
|
@c Begin standard stuff
|
|
|
|
|
@ifclear gpgtwohack
|
|
|
|
|
@manpage gpg.1
|
|
|
|
|
@ifset manverb
|
|
|
|
|
.B gpg
|
|
|
|
|
\- OpenPGP encryption and signing tool
|
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
|
|
@mansect synopsis
|
|
|
|
|
@ifset manverb
|
|
|
|
|
.B gpg
|
|
|
|
|
.RB [ \-\-homedir
|
|
|
|
|
.IR dir ]
|
|
|
|
|
.RB [ \-\-options
|
|
|
|
|
.IR file ]
|
|
|
|
|
.RI [ options ]
|
|
|
|
|
.I command
|
|
|
|
|
.RI [ args ]
|
|
|
|
|
@end ifset
|
|
|
|
|
@end ifclear
|
|
|
|
|
@c End standard stuff
|
|
|
|
|
|
|
|
|
|
@c Begin gpg2 hack stuff
|
|
|
|
|
@ifset gpgtwohack
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@manpage gpg2.1
|
|
|
|
|
@ifset manverb
|
|
|
|
|
.B gpg2
|
2006-08-17 21:58:28 +02:00
|
|
|
|
\- OpenPGP encryption and signing tool
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
|
|
@mansect synopsis
|
|
|
|
|
@ifset manverb
|
|
|
|
|
.B gpg2
|
|
|
|
|
.RB [ \-\-homedir
|
|
|
|
|
.IR dir ]
|
|
|
|
|
.RB [ \-\-options
|
|
|
|
|
.IR file ]
|
2011-03-01 17:08:49 +01:00
|
|
|
|
.RI [ options ]
|
2006-08-17 20:01:25 +02:00
|
|
|
|
.I command
|
|
|
|
|
.RI [ args ]
|
|
|
|
|
@end ifset
|
2016-04-05 15:15:28 +02:00
|
|
|
|
@end ifset
|
|
|
|
|
@c End gpg2 hack stuff
|
2014-09-29 11:49:50 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
|
|
|
|
@mansect description
|
2006-09-22 16:38:38 +02:00
|
|
|
|
@command{@gpgname} is the OpenPGP part of the GNU Privacy Guard (GnuPG). It
|
2006-09-08 19:02:06 +02:00
|
|
|
|
is a tool to provide digital encryption and signing services using the
|
2006-09-22 16:38:38 +02:00
|
|
|
|
OpenPGP standard. @command{@gpgname} features complete key management and
|
2016-12-06 12:16:15 +01:00
|
|
|
|
all the bells and whistles you would expect from a full OpenPGP
|
2006-08-17 20:01:25 +02:00
|
|
|
|
implementation.
|
|
|
|
|
|
2016-12-06 12:16:15 +01:00
|
|
|
|
There are two main versions of GnuPG: GnuPG 1.x and GnuPG 2.x. GnuPG
|
|
|
|
|
2.x supports modern encryption algorithms and thus should be preferred
|
|
|
|
|
over GnuPG 1.x. You only need to use GnuPG 1.x if your platform
|
|
|
|
|
doesn't support GnuPG 2.x, or you need support for some features that
|
|
|
|
|
GnuPG 2.x has deprecated, e.g., decrypting data created with PGP-2
|
|
|
|
|
keys.
|
|
|
|
|
|
2016-04-05 15:15:28 +02:00
|
|
|
|
@ifclear gpgtwohack
|
2016-12-06 12:16:15 +01:00
|
|
|
|
If you are looking for version 1 of GnuPG, you may find that version
|
|
|
|
|
installed under the name @command{gpg1}.
|
2016-04-05 15:15:28 +02:00
|
|
|
|
@end ifclear
|
|
|
|
|
@ifset gpgtwohack
|
2016-12-06 12:16:15 +01:00
|
|
|
|
In contrast to the standalone command @command{gpg} from GnuPG 1.x,
|
|
|
|
|
the 2.x version is commonly installed under the name
|
|
|
|
|
@command{@gpgname}.
|
2016-04-05 15:15:28 +02:00
|
|
|
|
@end ifset
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@manpause
|
2003-12-09 10:07:09 +01:00
|
|
|
|
|
2006-09-22 16:38:38 +02:00
|
|
|
|
@xref{Option Index}, for an index to @command{@gpgname}'s commands and options.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mancont
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@menu
|
2011-03-01 17:08:49 +01:00
|
|
|
|
* GPG Commands:: List of all commands.
|
|
|
|
|
* GPG Options:: List of all options.
|
|
|
|
|
* GPG Configuration:: Configuration files.
|
|
|
|
|
* GPG Examples:: Some usage examples.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
Developer information:
|
2011-03-01 17:08:49 +01:00
|
|
|
|
* Unattended Usage of GPG:: Using @command{gpg} from other programs.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end menu
|
|
|
|
|
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@c * GPG Protocol:: The protocol the server mode uses.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@c *******************************************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *************** COMMANDS ****************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *******************************************
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect commands
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@node GPG Commands
|
|
|
|
|
@section Commands
|
|
|
|
|
|
2007-12-13 16:45:40 +01:00
|
|
|
|
Commands are not distinguished from options except for the fact that
|
2016-12-06 12:16:15 +01:00
|
|
|
|
only one command is allowed. Generally speaking, irrelevant options
|
|
|
|
|
are silently ignored, and may not be checked for correctness.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-12-06 12:16:15 +01:00
|
|
|
|
@command{@gpgname} may be run with no commands. In this case it will
|
2019-11-07 10:36:17 +01:00
|
|
|
|
print a warning perform a reasonable action depending on the type of
|
|
|
|
|
file it is given as input (an encrypted message is decrypted, a
|
|
|
|
|
signature is verified, a file containing keys is listed, etc.).
|
|
|
|
|
|
|
|
|
|
If you run into any problems, please add the option @option{--verbose}
|
|
|
|
|
to the invocation to see more diagnostics.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@menu
|
|
|
|
|
* General GPG Commands:: Commands not specific to the functionality.
|
|
|
|
|
* Operational GPG Commands:: Commands to select the type of operation.
|
|
|
|
|
* OpenPGP Key Management:: How to manage your keys.
|
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ********** GENERAL COMMANDS *************
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node General GPG Commands
|
|
|
|
|
@subsection Commands not specific to the function
|
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
@item --version
|
|
|
|
|
@opindex version
|
|
|
|
|
Print the program version and licensing information. Note that you
|
|
|
|
|
cannot abbreviate this command.
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --help
|
|
|
|
|
@itemx -h
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex help
|
2016-12-06 12:16:15 +01:00
|
|
|
|
Print a usage message summarizing the most useful command-line options.
|
2017-02-04 07:28:08 +01:00
|
|
|
|
Note that you cannot arbitrarily abbreviate this command
|
|
|
|
|
(though you can use its short form @option{-h}).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --warranty
|
|
|
|
|
@opindex warranty
|
|
|
|
|
Print warranty information.
|
|
|
|
|
|
|
|
|
|
@item --dump-options
|
|
|
|
|
@opindex dump-options
|
|
|
|
|
Print a list of all available options and commands. Note that you cannot
|
|
|
|
|
abbreviate this command.
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ******** OPERATIONAL COMMANDS ***********
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node Operational GPG Commands
|
|
|
|
|
@subsection Commands to select the type of operation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --sign
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -s
|
|
|
|
|
@opindex sign
|
2016-12-06 12:16:15 +01:00
|
|
|
|
Sign a message. This command may be combined with @option{--encrypt}
|
|
|
|
|
(to sign and encrypt a message), @option{--symmetric} (to sign and
|
|
|
|
|
symmetrically encrypt a message), or both @option{--encrypt} and
|
|
|
|
|
@option{--symmetric} (to sign and encrypt a message that can be
|
|
|
|
|
decrypted using a secret key or a passphrase). The signing key is
|
|
|
|
|
chosen by default or can be set explicitly using the
|
2008-05-15 12:59:35 +02:00
|
|
|
|
@option{--local-user} and @option{--default-key} options.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-09-23 14:10:07 +02:00
|
|
|
|
@item --clear-sign
|
|
|
|
|
@opindex clear-sign
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@itemx --clearsign
|
|
|
|
|
@opindex clearsign
|
2016-12-06 12:16:15 +01:00
|
|
|
|
Make a cleartext signature. The content in a cleartext signature is
|
2008-05-15 12:59:35 +02:00
|
|
|
|
readable without any special software. OpenPGP software is only needed
|
2016-12-06 12:16:15 +01:00
|
|
|
|
to verify the signature. cleartext signatures may modify end-of-line
|
2008-05-15 12:59:35 +02:00
|
|
|
|
whitespace for platform independence and are not intended to be
|
2016-12-06 12:16:15 +01:00
|
|
|
|
reversible. The signing key is chosen by default or can be set
|
|
|
|
|
explicitly using the @option{--local-user} and @option{--default-key}
|
2008-05-15 12:59:35 +02:00
|
|
|
|
options.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --detach-sign
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -b
|
|
|
|
|
@opindex detach-sign
|
|
|
|
|
Make a detached signature.
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --encrypt
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -e
|
|
|
|
|
@opindex encrypt
|
2017-11-17 03:17:08 +01:00
|
|
|
|
Encrypt data to one or more public keys. This command may be combined
|
|
|
|
|
with @option{--sign} (to sign and encrypt a message),
|
2019-08-30 08:32:22 +02:00
|
|
|
|
@option{--symmetric} (to encrypt a message that can be decrypted using a
|
2017-11-17 03:17:08 +01:00
|
|
|
|
secret key or a passphrase), or @option{--sign} and
|
|
|
|
|
@option{--symmetric} together (for a signed message that can be
|
|
|
|
|
decrypted using a secret key or a passphrase). @option{--recipient}
|
|
|
|
|
and related options specify which public keys to use for encryption.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --symmetric
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -c
|
|
|
|
|
@opindex symmetric
|
|
|
|
|
Encrypt with a symmetric cipher using a passphrase. The default
|
2015-06-09 21:29:15 +02:00
|
|
|
|
symmetric cipher used is @value{GPGSYMENCALGO}, but may be chosen with the
|
2016-03-04 17:27:21 +01:00
|
|
|
|
@option{--cipher-algo} option. This command may be combined with
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--sign} (for a signed and symmetrically encrypted message),
|
|
|
|
|
@option{--encrypt} (for a message that may be decrypted via a secret key
|
|
|
|
|
or a passphrase), or @option{--sign} and @option{--encrypt} together
|
|
|
|
|
(for a signed message that may be decrypted via a secret key or a
|
2018-04-11 20:35:40 +02:00
|
|
|
|
passphrase). @command{@gpgname} caches the passphrase used for
|
|
|
|
|
symmetric encryption so that a decrypt operation may not require that
|
|
|
|
|
the user needs to enter the passphrase. The option
|
|
|
|
|
@option{--no-symkey-cache} can be used to disable this feature.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --store
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex store
|
2016-01-18 08:33:55 +01:00
|
|
|
|
Store only (make a simple literal data packet).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --decrypt
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -d
|
|
|
|
|
@opindex decrypt
|
2008-12-08 20:10:42 +01:00
|
|
|
|
Decrypt the file given on the command line (or STDIN if no file
|
|
|
|
|
is specified) and write it to STDOUT (or the file specified with
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--output}). If the decrypted file is signed, the signature is also
|
2006-08-16 16:54:19 +02:00
|
|
|
|
verified. This command differs from the default operation, as it never
|
|
|
|
|
writes to the filename which is included in the file and it rejects
|
2016-12-06 12:16:15 +01:00
|
|
|
|
files that don't begin with an encrypted message.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --verify
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex verify
|
2014-11-13 17:39:31 +01:00
|
|
|
|
Assume that the first argument is a signed file and verify it without
|
|
|
|
|
generating any output. With no arguments, the signature packet is
|
2016-12-06 12:16:15 +01:00
|
|
|
|
read from STDIN. If only one argument is given, the specified file is
|
|
|
|
|
expected to include a complete signature.
|
2014-11-13 17:39:31 +01:00
|
|
|
|
|
2016-12-06 12:16:15 +01:00
|
|
|
|
With more than one argument, the first argument should specify a file
|
|
|
|
|
with a detached signature and the remaining files should contain the
|
|
|
|
|
signed data. To read the signed data from STDIN, use @samp{-} as the
|
|
|
|
|
second filename. For security reasons, a detached signature will not
|
|
|
|
|
read the signed material from STDIN if not explicitly specified.
|
2014-11-13 17:39:31 +01:00
|
|
|
|
|
|
|
|
|
Note: If the option @option{--batch} is not used, @command{@gpgname}
|
2016-12-06 12:16:15 +01:00
|
|
|
|
may assume that a single argument is a file with a detached signature,
|
2014-11-13 17:39:31 +01:00
|
|
|
|
and it will try to find a matching data file by stripping certain
|
|
|
|
|
suffixes. Using this historical feature to verify a detached
|
2016-12-06 12:16:15 +01:00
|
|
|
|
signature is strongly discouraged; you should always specify the data file
|
|
|
|
|
explicitly.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-12-06 12:16:15 +01:00
|
|
|
|
Note: When verifying a cleartext signature, @command{@gpgname} verifies
|
2013-10-04 14:31:35 +02:00
|
|
|
|
only what makes up the cleartext signed data and not any extra data
|
2016-12-06 12:16:15 +01:00
|
|
|
|
outside of the cleartext signature or the header lines directly following
|
2013-10-04 14:31:35 +02:00
|
|
|
|
the dash marker line. The option @code{--output} may be used to write
|
2016-12-06 12:16:15 +01:00
|
|
|
|
out the actual signed data, but there are other pitfalls with this
|
2013-10-04 14:31:35 +02:00
|
|
|
|
format as well. It is suggested to avoid cleartext signatures in
|
|
|
|
|
favor of detached signatures.
|
|
|
|
|
|
2017-01-05 20:25:16 +01:00
|
|
|
|
Note: Sometimes the use of the @command{gpgv} tool is easier than
|
|
|
|
|
using the full-fledged @command{gpg} with this option. @command{gpgv}
|
|
|
|
|
is designed to compare signed data against a list of trusted keys and
|
|
|
|
|
returns with success only for a good signature. It has its own manual
|
|
|
|
|
page.
|
|
|
|
|
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --multifile
|
|
|
|
|
@opindex multifile
|
|
|
|
|
This modifies certain other commands to accept multiple files for
|
2008-12-08 20:10:42 +01:00
|
|
|
|
processing on the command line or read from STDIN with each filename on
|
2006-08-16 16:54:19 +02:00
|
|
|
|
a separate line. This allows for many files to be processed at
|
2006-09-25 20:29:20 +02:00
|
|
|
|
once. @option{--multifile} may currently be used along with
|
|
|
|
|
@option{--verify}, @option{--encrypt}, and @option{--decrypt}. Note that
|
|
|
|
|
@option{--multifile --verify} may not be used with detached signatures.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --verify-files
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex verify-files
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Identical to @option{--multifile --verify}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --encrypt-files
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex encrypt-files
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Identical to @option{--multifile --encrypt}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --decrypt-files
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex decrypt-files
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Identical to @option{--multifile --decrypt}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --list-keys
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -k
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@itemx --list-public-keys
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex list-keys
|
2016-12-06 12:16:15 +01:00
|
|
|
|
List the specified keys. If no keys are specified, then all keys from
|
|
|
|
|
the configured public keyrings are listed.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-12-06 12:16:15 +01:00
|
|
|
|
Never use the output of this command in scripts or other programs.
|
|
|
|
|
The output is intended only for humans and its format is likely to
|
|
|
|
|
change. The @option{--with-colons} option emits the output in a
|
|
|
|
|
stable, machine-parseable format, which is intended for use by scripts
|
|
|
|
|
and other programs.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --list-secret-keys
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx -K
|
|
|
|
|
@opindex list-secret-keys
|
2016-12-06 12:16:15 +01:00
|
|
|
|
List the specified secret keys. If no keys are specified, then all
|
2017-05-18 22:34:37 +02:00
|
|
|
|
known secret keys are listed. A @code{#} after the initial tags
|
2017-04-07 10:26:55 +02:00
|
|
|
|
@code{sec} or @code{ssb} means that the secret key or subkey is
|
|
|
|
|
currently not usable. We also say that this key has been taken
|
2018-04-09 19:46:54 +02:00
|
|
|
|
offline (for example, a primary key can be taken offline by exporting
|
2017-04-07 10:26:55 +02:00
|
|
|
|
the key using the command @option{--export-secret-subkeys}). A
|
|
|
|
|
@code{>} after these tags indicate that the key is stored on a
|
|
|
|
|
smartcard. See also @option{--list-keys}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-10-10 15:20:14 +02:00
|
|
|
|
@item --check-signatures
|
|
|
|
|
@opindex check-signatures
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@itemx --check-sigs
|
|
|
|
|
@opindex check-sigs
|
2017-09-27 17:18:55 +02:00
|
|
|
|
Same as @option{--list-keys}, but the key signatures are verified and
|
|
|
|
|
listed too. Note that for performance reasons the revocation status
|
|
|
|
|
of a signing key is not shown. This command has the same effect as
|
2008-05-07 17:40:36 +02:00
|
|
|
|
using @option{--list-keys} with @option{--with-sig-check}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-09-27 17:18:55 +02:00
|
|
|
|
The status of the verification is indicated by a flag directly
|
|
|
|
|
following the "sig" tag (and thus before the flags described below. A
|
|
|
|
|
"!" indicates that the signature has been successfully verified, a "-"
|
|
|
|
|
denotes a bad signature and a "%" is used if an error occurred while
|
|
|
|
|
checking the signature (e.g. a non supported algorithm). Signatures
|
2018-06-06 17:25:51 +02:00
|
|
|
|
where the public key is not available are not listed; to see their
|
2017-09-27 17:18:55 +02:00
|
|
|
|
keyids the command @option{--list-sigs} can be used.
|
|
|
|
|
|
|
|
|
|
For each signature listed, there are several flags in between the
|
|
|
|
|
signature status flag and keyid. These flags give additional
|
|
|
|
|
information about each key signature. From left to right, they are
|
|
|
|
|
the numbers 1-3 for certificate check level (see
|
|
|
|
|
@option{--ask-cert-level}), "L" for a local or non-exportable
|
|
|
|
|
signature (see @option{--lsign-key}), "R" for a nonRevocable signature
|
|
|
|
|
(see the @option{--edit-key} command "nrsign"), "P" for a signature
|
|
|
|
|
that contains a policy URL (see @option{--cert-policy-url}), "N" for a
|
|
|
|
|
signature that contains a notation (see @option{--cert-notation}), "X"
|
|
|
|
|
for an eXpired signature (see @option{--ask-cert-expire}), and the
|
|
|
|
|
numbers 1-9 or "T" for 10 and above to indicate trust signature levels
|
|
|
|
|
(see the @option{--edit-key} command "tsign").
|
|
|
|
|
|
2007-06-25 13:54:43 +02:00
|
|
|
|
|
2008-05-07 17:40:36 +02:00
|
|
|
|
@item --locate-keys
|
2019-07-04 15:13:26 +02:00
|
|
|
|
@itemx --locate-external-keys
|
2008-05-07 17:40:36 +02:00
|
|
|
|
@opindex locate-keys
|
2019-07-04 15:13:26 +02:00
|
|
|
|
@opindex locate-external-keys
|
2008-05-07 17:40:36 +02:00
|
|
|
|
Locate the keys given as arguments. This command basically uses the
|
2019-10-17 01:29:46 +02:00
|
|
|
|
same algorithm as used when locating keys for encryption and may thus
|
|
|
|
|
be used to see what keys @command{@gpgname} might use. In particular
|
|
|
|
|
external methods as defined by @option{--auto-key-locate} may be used
|
|
|
|
|
to locate a key. Only public keys are listed. The variant
|
|
|
|
|
@option{--locate-external-keys} does not consider a locally existing
|
|
|
|
|
key and can thus be used to force the refresh of a key via the defined
|
|
|
|
|
external methods.
|
2007-06-25 13:54:43 +02:00
|
|
|
|
|
2018-06-06 11:50:58 +02:00
|
|
|
|
@item --show-keys
|
|
|
|
|
@opindex show-keys
|
|
|
|
|
This commands takes OpenPGP keys as input and prints information about
|
2018-06-11 08:46:37 +02:00
|
|
|
|
them in the same way the command @option{--list-keys} does for locally
|
|
|
|
|
stored key. In addition the list options @code{show-unusable-uids},
|
|
|
|
|
@code{show-unusable-subkeys}, @code{show-notations} and
|
|
|
|
|
@code{show-policy-urls} are also enabled. As usual for automated
|
|
|
|
|
processing, this command should be combined with the option
|
2018-06-06 11:50:58 +02:00
|
|
|
|
@option{--with-colons}.
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --fingerprint
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex fingerprint
|
|
|
|
|
List all keys (or the specified ones) along with their
|
2006-09-25 20:29:20 +02:00
|
|
|
|
fingerprints. This is the same output as @option{--list-keys} but with
|
|
|
|
|
the additional output of a line with the fingerprint. May also be
|
2017-09-27 17:18:55 +02:00
|
|
|
|
combined with @option{--check-signatures}. If this
|
2006-09-25 20:29:20 +02:00
|
|
|
|
command is given twice, the fingerprints of all secondary keys are
|
2016-06-06 16:55:03 +02:00
|
|
|
|
listed too. This command also forces pretty printing of fingerprints
|
|
|
|
|
if the keyid format has been set to "none".
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --list-packets
|
|
|
|
|
@opindex list-packets
|
2016-08-18 12:41:55 +02:00
|
|
|
|
List only the sequence of packets. This command is only useful for
|
2015-03-16 19:57:11 +01:00
|
|
|
|
debugging. When used with option @option{--verbose} the actual MPI
|
2016-08-18 12:41:55 +02:00
|
|
|
|
values are dumped and not only their lengths. Note that the output of
|
|
|
|
|
this command may change with new releases.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
|
2016-12-15 14:50:10 +01:00
|
|
|
|
@item --edit-card
|
|
|
|
|
@opindex edit-card
|
|
|
|
|
@itemx --card-edit
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex card-edit
|
|
|
|
|
Present a menu to work with a smartcard. The subcommand "help" provides
|
|
|
|
|
an overview on available commands. For a detailed description, please
|
2006-08-17 20:01:25 +02:00
|
|
|
|
see the Card HOWTO at
|
2015-02-11 12:10:39 +01:00
|
|
|
|
https://gnupg.org/documentation/howtos.html#GnuPG-cardHOWTO .
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --card-status
|
|
|
|
|
@opindex card-status
|
|
|
|
|
Show the content of the smart card.
|
|
|
|
|
|
|
|
|
|
@item --change-pin
|
|
|
|
|
@opindex change-pin
|
|
|
|
|
Present a menu to allow changing the PIN of a smartcard. This
|
|
|
|
|
functionality is also available as the subcommand "passwd" with the
|
2016-12-15 14:50:10 +01:00
|
|
|
|
@option{--edit-card} command.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --delete-keys @var{name}
|
2017-05-08 12:18:19 +02:00
|
|
|
|
@opindex delete-keys
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Remove key from the public keyring. In batch mode either @option{--yes} is
|
2006-08-16 16:54:19 +02:00
|
|
|
|
required or the key must be specified by fingerprint. This is a
|
2019-05-27 10:40:38 +02:00
|
|
|
|
safeguard against accidental deletion of multiple keys. If the
|
|
|
|
|
exclamation mark syntax is used with the fingerprint of a subkey only
|
|
|
|
|
that subkey is deleted; if the exclamation mark is used with the
|
|
|
|
|
fingerprint of the primary key the entire public key is deleted.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --delete-secret-keys @var{name}
|
2015-01-22 17:49:55 +01:00
|
|
|
|
@opindex delete-secret-keys
|
2016-03-04 16:20:47 +01:00
|
|
|
|
Remove key from the secret keyring. In batch mode the key must be
|
2016-05-10 11:01:42 +02:00
|
|
|
|
specified by fingerprint. The option @option{--yes} can be used to
|
|
|
|
|
advice gpg-agent not to request a confirmation. This extra
|
2016-12-06 12:16:15 +01:00
|
|
|
|
pre-caution is done because @command{@gpgname} can't be sure that the
|
2016-05-10 11:01:42 +02:00
|
|
|
|
secret key (as controlled by gpg-agent) is only used for the given
|
2019-05-27 10:40:38 +02:00
|
|
|
|
OpenPGP public key. If the exclamation mark syntax is used with the
|
|
|
|
|
fingerprint of a subkey only the secret part of that subkey is
|
|
|
|
|
deleted; if the exclamation mark is used with the fingerprint of the
|
|
|
|
|
primary key only the secret part of the primary key is deleted.
|
2016-05-10 11:01:42 +02:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --delete-secret-and-public-key @var{name}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex delete-secret-and-public-key
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as @option{--delete-key}, but if a secret key exists, it will be
|
|
|
|
|
removed first. In batch mode the key must be specified by fingerprint.
|
2016-05-10 11:01:42 +02:00
|
|
|
|
The option @option{--yes} can be used to advice gpg-agent not to
|
|
|
|
|
request a confirmation.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --export
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex export
|
|
|
|
|
Either export all keys from all keyrings (default keyrings and those
|
2006-09-25 20:29:20 +02:00
|
|
|
|
registered via option @option{--keyring}), or if at least one name is given,
|
2014-06-24 12:21:54 +02:00
|
|
|
|
those of the given name. The exported keys are written to STDOUT or to the
|
|
|
|
|
file given with option @option{--output}. Use together with
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--armor} to mail those keys.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --send-keys @var{keyIDs}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex send-keys
|
2006-10-23 16:02:13 +02:00
|
|
|
|
Similar to @option{--export} but sends the keys to a keyserver.
|
2019-05-15 09:18:28 +02:00
|
|
|
|
Fingerprints may be used instead of key IDs.
|
|
|
|
|
Don't send your complete keyring to a keyserver --- select
|
2017-07-24 21:29:51 +02:00
|
|
|
|
only those keys which are new or changed by you. If no @var{keyIDs}
|
|
|
|
|
are given, @command{@gpgname} does nothing.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --export-secret-keys
|
|
|
|
|
@itemx --export-secret-subkeys
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex export-secret-keys
|
|
|
|
|
@opindex export-secret-subkeys
|
2014-06-24 12:21:54 +02:00
|
|
|
|
Same as @option{--export}, but exports the secret keys instead. The
|
|
|
|
|
exported keys are written to STDOUT or to the file given with option
|
|
|
|
|
@option{--output}. This command is often used along with the option
|
2016-12-06 12:16:15 +01:00
|
|
|
|
@option{--armor} to allow for easy printing of the key for paper backup;
|
|
|
|
|
however the external tool @command{paperkey} does a better job of
|
2014-06-24 12:21:54 +02:00
|
|
|
|
creating backups on paper. Note that exporting a secret key can be a
|
2016-03-04 16:20:47 +01:00
|
|
|
|
security risk if the exported keys are sent over an insecure channel.
|
2014-06-24 12:21:54 +02:00
|
|
|
|
|
|
|
|
|
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
|
2016-12-06 12:16:15 +01:00
|
|
|
|
import such a key. Its intended use is in generating a full key with
|
|
|
|
|
an additional signing subkey on a dedicated machine. This command
|
|
|
|
|
then exports the key without the primary key to the main machine.
|
2014-06-24 12:21:54 +02:00
|
|
|
|
|
|
|
|
|
GnuPG may ask you to enter the passphrase for the key. This is
|
2016-12-06 12:16:15 +01:00
|
|
|
|
required, because the internal protection method of the secret key is
|
2014-06-24 12:21:54 +02:00
|
|
|
|
different from the one specified by the OpenPGP protocol.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-01-09 11:28:42 +01:00
|
|
|
|
@item --export-ssh-key
|
|
|
|
|
@opindex export-ssh-key
|
|
|
|
|
This command is used to export a key in the OpenSSH public key format.
|
|
|
|
|
It requires the specification of one key by the usual means and
|
|
|
|
|
exports the latest valid subkey which has an authentication capability
|
|
|
|
|
to STDOUT or to the file given with option @option{--output}. That
|
|
|
|
|
output can directly be added to ssh's @file{authorized_key} file.
|
|
|
|
|
|
|
|
|
|
By specifying the key to export using a key ID or a fingerprint
|
|
|
|
|
suffixed with an exclamation mark (!), a specific subkey or the
|
|
|
|
|
primary key can be exported. This does not even require that the key
|
2016-01-14 12:22:33 +01:00
|
|
|
|
has the authentication capability flag set.
|
2016-01-09 11:28:42 +01:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --import
|
|
|
|
|
@itemx --fast-import
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex import
|
|
|
|
|
Import/merge keys. This adds the given keys to the
|
|
|
|
|
keyring. The fast version is currently just a synonym.
|
|
|
|
|
|
|
|
|
|
There are a few other options which control how this command works.
|
2009-03-05 20:19:37 +01:00
|
|
|
|
Most notable here is the @option{--import-options merge-only} option
|
2006-09-25 20:29:20 +02:00
|
|
|
|
which does not insert new keys but does only the merging of new
|
|
|
|
|
signatures, user-IDs and subkeys.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --receive-keys @var{keyIDs}
|
2016-09-23 13:40:55 +02:00
|
|
|
|
@opindex receive-keys
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@itemx --recv-keys @var{keyIDs}
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@opindex recv-keys
|
2019-05-15 09:18:28 +02:00
|
|
|
|
Import the keys with the given @var{keyIDs} from a keyserver.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --refresh-keys
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex refresh-keys
|
|
|
|
|
Request updates from a keyserver for keys that already exist on the
|
|
|
|
|
local keyring. This is useful for updating a key with the latest
|
2006-09-25 20:29:20 +02:00
|
|
|
|
signatures, user IDs, etc. Calling this with no arguments will refresh
|
2019-05-15 09:18:28 +02:00
|
|
|
|
the entire keyring.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --search-keys @var{names}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex search-keys
|
2019-05-15 09:18:28 +02:00
|
|
|
|
Search the keyserver for the given @var{names}. Multiple names given
|
|
|
|
|
here will be joined together to create the search string for the
|
|
|
|
|
keyserver. Note that keyservers search for @var{names} in a different
|
|
|
|
|
and simpler way than gpg does. The best choice is to use a mail
|
|
|
|
|
address. Due to data privacy reasons keyservers may even not even
|
|
|
|
|
allow searching by user id or mail address and thus may only return
|
|
|
|
|
results when being used with the @option{--recv-key} command to
|
|
|
|
|
search by key fingerprint or keyid.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --fetch-keys @var{URIs}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex fetch-keys
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Retrieve keys located at the specified @var{URIs}. Note that different
|
2006-08-16 16:54:19 +02:00
|
|
|
|
installations of GnuPG may support different protocols (HTTP, FTP,
|
2016-04-27 08:18:37 +02:00
|
|
|
|
LDAP, etc.). When using HTTPS the system provided root certificates
|
|
|
|
|
are used by this command.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --update-trustdb
|
|
|
|
|
@opindex update-trustdb
|
|
|
|
|
Do trust database maintenance. This command iterates over all keys and
|
|
|
|
|
builds the Web of Trust. This is an interactive command because it may
|
|
|
|
|
have to ask for the "ownertrust" values for keys. The user has to give
|
|
|
|
|
an estimation of how far she trusts the owner of the displayed key to
|
|
|
|
|
correctly certify (sign) other keys. GnuPG only asks for the ownertrust
|
2006-09-25 20:29:20 +02:00
|
|
|
|
value if it has not yet been assigned to a key. Using the
|
|
|
|
|
@option{--edit-key} menu, the assigned value can be changed at any time.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --check-trustdb
|
|
|
|
|
@opindex check-trustdb
|
|
|
|
|
Do trust database maintenance without user interaction. From time to
|
|
|
|
|
time the trust database must be updated so that expired keys or
|
|
|
|
|
signatures and the resulting changes in the Web of Trust can be
|
|
|
|
|
tracked. Normally, GnuPG will calculate when this is required and do it
|
2006-09-25 20:29:20 +02:00
|
|
|
|
automatically unless @option{--no-auto-check-trustdb} is set. This
|
|
|
|
|
command can be used to force a trust database check at any time. The
|
|
|
|
|
processing is identical to that of @option{--update-trustdb} but it
|
|
|
|
|
skips keys with a not yet defined "ownertrust".
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-25 20:29:20 +02:00
|
|
|
|
For use with cron jobs, this command can be used together with
|
|
|
|
|
@option{--batch} in which case the trust database check is done only if
|
|
|
|
|
a check is needed. To force a run even in batch mode add the option
|
|
|
|
|
@option{--yes}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2009-07-22 12:24:46 +02:00
|
|
|
|
@anchor{option --export-ownertrust}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --export-ownertrust
|
|
|
|
|
@opindex export-ownertrust
|
2008-12-08 20:10:42 +01:00
|
|
|
|
Send the ownertrust values to STDOUT. This is useful for backup purposes
|
2006-08-16 16:54:19 +02:00
|
|
|
|
as these values are the only ones which can't be re-created from a
|
2009-07-22 12:24:46 +02:00
|
|
|
|
corrupted trustdb. Example:
|
|
|
|
|
@c man:.RS
|
|
|
|
|
@example
|
|
|
|
|
@gpgname{} --export-ownertrust > otrust.txt
|
|
|
|
|
@end example
|
|
|
|
|
@c man:.RE
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --import-ownertrust
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex import-ownertrust
|
|
|
|
|
Update the trustdb with the ownertrust values stored in @code{files} (or
|
2009-07-22 12:24:46 +02:00
|
|
|
|
STDIN if not given); existing values will be overwritten. In case of a
|
|
|
|
|
severely damaged trustdb and if you have a recent backup of the
|
2016-03-04 16:20:47 +01:00
|
|
|
|
ownertrust values (e.g. in the file @file{otrust.txt}), you may re-create
|
2009-07-22 12:24:46 +02:00
|
|
|
|
the trustdb using these commands:
|
|
|
|
|
@c man:.RS
|
|
|
|
|
@example
|
|
|
|
|
cd ~/.gnupg
|
|
|
|
|
rm trustdb.gpg
|
|
|
|
|
@gpgname{} --import-ownertrust < otrust.txt
|
|
|
|
|
@end example
|
|
|
|
|
@c man:.RE
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --rebuild-keydb-caches
|
|
|
|
|
@opindex rebuild-keydb-caches
|
2006-09-25 20:29:20 +02:00
|
|
|
|
When updating from version 1.0.6 to 1.0.7 this command should be used
|
2006-08-16 16:54:19 +02:00
|
|
|
|
to create signature caches in the keyring. It might be handy in other
|
|
|
|
|
situations too.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --print-md @var{algo}
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@itemx --print-mds
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex print-md
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Print message digest of algorithm @var{algo} for all given files or STDIN.
|
|
|
|
|
With the second form (or a deprecated "*" for @var{algo}) digests for all
|
2006-08-16 16:54:19 +02:00
|
|
|
|
available algorithms are printed.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --gen-random @var{0|1|2} @var{count}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex gen-random
|
2010-07-16 15:19:45 +02:00
|
|
|
|
Emit @var{count} random bytes of the given quality level 0, 1 or 2. If
|
|
|
|
|
@var{count} is not given or zero, an endless sequence of random bytes
|
|
|
|
|
will be emitted. If used with @option{--armor} the output will be
|
|
|
|
|
base64 encoded. PLEASE, don't use this command unless you know what
|
|
|
|
|
you are doing; it may remove precious entropy from the system!
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --gen-prime @var{mode} @var{bits}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex gen-prime
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use the source, Luke :-). The output format is subject to change
|
|
|
|
|
with ant release.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-25 20:29:20 +02:00
|
|
|
|
|
|
|
|
|
@item --enarmor
|
2016-07-02 16:18:50 +02:00
|
|
|
|
@itemx --dearmor
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@opindex enarmor
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex dearmor
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Pack or unpack an arbitrary input into/from an OpenPGP ASCII armor.
|
|
|
|
|
This is a GnuPG extension to OpenPGP and in general not very useful.
|
|
|
|
|
|
2019-11-04 12:27:30 +01:00
|
|
|
|
@item --unwrap
|
|
|
|
|
@opindex unwrap
|
|
|
|
|
This command is similar to @option{--decrypt} with the change that the
|
|
|
|
|
output is not the usual plaintext but the original message with the
|
|
|
|
|
decryption layer removed. Thus the output will be an OpenPGP data
|
|
|
|
|
structure which often means a signed OpenPGP message. Note that this
|
|
|
|
|
command may or may not remove a compression layer which is often found
|
|
|
|
|
beneath the encryption layer.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --tofu-policy @{auto|good|unknown|bad|ask@} @var{keys}
|
2016-04-29 11:05:55 +02:00
|
|
|
|
@opindex tofu-policy
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
Set the TOFU policy for all the bindings associated with the specified
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{keys}. For more information about the meaning of the policies,
|
|
|
|
|
@pxref{trust-model-tofu}. The @var{keys} may be specified either by their
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
fingerprint (preferred) or their keyid.
|
2015-01-22 17:49:55 +01:00
|
|
|
|
|
|
|
|
|
@c @item --server
|
|
|
|
|
@c @opindex server
|
|
|
|
|
@c Run gpg in server mode. This feature is not yet ready for use and
|
|
|
|
|
@c thus not documented.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
|
2018-10-25 22:52:58 +02:00
|
|
|
|
@c ********************************************
|
|
|
|
|
@c ******* KEY MANAGEMENT COMMANDS **********
|
|
|
|
|
@c ********************************************
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@node OpenPGP Key Management
|
|
|
|
|
@subsection How to manage your keys
|
|
|
|
|
|
2016-03-04 17:13:14 +01:00
|
|
|
|
This section explains the main commands for key management.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --quick-generate-key @var{user-id} [@var{algo} [@var{usage} [@var{expire}]]]
|
2018-01-25 15:14:37 +01:00
|
|
|
|
@itemx --quick-gen-key
|
2016-12-15 15:32:51 +01:00
|
|
|
|
@opindex quick-generate-key
|
2018-01-25 15:14:37 +01:00
|
|
|
|
@opindex quick-gen-key
|
2015-05-08 16:08:57 +02:00
|
|
|
|
This is a simple command to generate a standard key with one user id.
|
2016-11-14 16:59:23 +01:00
|
|
|
|
In contrast to @option{--generate-key} the key is generated directly
|
2014-07-23 15:12:43 +02:00
|
|
|
|
without the need to answer a bunch of prompts. Unless the option
|
|
|
|
|
@option{--yes} is given, the key creation will be canceled if the
|
2016-03-04 16:20:47 +01:00
|
|
|
|
given user id already exists in the keyring.
|
2014-07-23 15:12:43 +02:00
|
|
|
|
|
|
|
|
|
If invoked directly on the console without any special options an
|
|
|
|
|
answer to a ``Continue?'' style confirmation prompt is required. In
|
2016-03-04 16:20:47 +01:00
|
|
|
|
case the user id already exists in the keyring a second prompt to
|
2014-07-23 15:12:43 +02:00
|
|
|
|
force the creation of the key will show up.
|
2015-01-21 12:42:14 +01:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
If @var{algo} or @var{usage} are given, only the primary key is
|
2016-09-13 11:30:54 +02:00
|
|
|
|
created and no prompts are shown. To specify an expiration date but
|
|
|
|
|
still create a primary and subkey use ``default'' or
|
2017-07-24 21:29:51 +02:00
|
|
|
|
``future-default'' for @var{algo} and ``default'' for @var{usage}.
|
2016-09-13 11:30:54 +02:00
|
|
|
|
For a description of these optional arguments see the command
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@code{--quick-add-key}. The @var{usage} accepts also the value
|
2016-09-13 11:30:54 +02:00
|
|
|
|
``cert'' which can be used to create a certification only primary key;
|
|
|
|
|
the default is to a create certification and signing key.
|
2016-06-02 18:38:10 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
The @var{expire} argument can be used to specify an expiration date
|
2017-02-15 15:51:09 +01:00
|
|
|
|
for the key. Several formats are supported; commonly the ISO formats
|
|
|
|
|
``YYYY-MM-DD'' or ``YYYYMMDDThhmmss'' are used. To make the key
|
|
|
|
|
expire in N seconds, N days, N weeks, N months, or N years use
|
|
|
|
|
``seconds=N'', ``Nd'', ``Nw'', ``Nm'', or ``Ny'' respectively. Not
|
|
|
|
|
specifying a value, or using ``-'' results in a key expiring in a
|
|
|
|
|
reasonable default interval. The values ``never'', ``none'' can be
|
|
|
|
|
used for no expiration date.
|
2016-12-13 16:30:47 +01:00
|
|
|
|
|
2015-01-21 12:42:14 +01:00
|
|
|
|
If this command is used with @option{--batch},
|
|
|
|
|
@option{--pinentry-mode} has been set to @code{loopback}, and one of
|
|
|
|
|
the passphrase options (@option{--passphrase},
|
|
|
|
|
@option{--passphrase-fd}, or @option{passphrase-file}) is used, the
|
|
|
|
|
supplied passphrase is used for the new key and the agent does not ask
|
|
|
|
|
for it. To create a key without any protection @code{--passphrase ''}
|
|
|
|
|
may be used.
|
2014-07-23 15:12:43 +02:00
|
|
|
|
|
2019-08-22 16:37:31 +02:00
|
|
|
|
To create an OpenPGP key from the keys available on the currently
|
|
|
|
|
inserted smartcard, the special string ``card'' can be used for
|
|
|
|
|
@var{algo}. If the card features an encryption and a signing key, gpg
|
|
|
|
|
will figure them out and creates an OpenPGP key consisting of the
|
|
|
|
|
usual primary key and one subkey. This works only with certain
|
|
|
|
|
smartcards. Note that the interactive @option{--full-gen-key} command
|
|
|
|
|
allows to do the same but with greater flexibility in the selection of
|
|
|
|
|
the smartcard keys.
|
|
|
|
|
|
2018-08-29 15:04:44 +02:00
|
|
|
|
Note that it is possible to create a primary key and a subkey using
|
|
|
|
|
non-default algorithms by using ``default'' and changing the default
|
|
|
|
|
parameters using the option @option{--default-new-key-algo}.
|
|
|
|
|
|
2017-07-21 14:12:55 +02:00
|
|
|
|
@item --quick-set-expire @var{fpr} @var{expire} [*|@var{subfprs}]
|
2016-12-05 10:58:39 +01:00
|
|
|
|
@opindex quick-set-expire
|
2017-07-21 14:12:55 +02:00
|
|
|
|
With two arguments given, directly set the expiration time of the
|
|
|
|
|
primary key identified by @var{fpr} to @var{expire}. To remove the
|
|
|
|
|
expiration time @code{0} can be used. With three arguments and the
|
|
|
|
|
third given as an asterisk, the expiration time of all non-revoked and
|
|
|
|
|
not yet expired subkeys are set to @var{expire}. With more than two
|
|
|
|
|
arguments and a list of fingerprints given for @var{subfprs}, all
|
|
|
|
|
non-revoked subkeys matching these fingerprints are set to
|
|
|
|
|
@var{expire}.
|
2016-12-05 10:58:39 +01:00
|
|
|
|
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --quick-add-key @var{fpr} [@var{algo} [@var{usage} [@var{expire}]]]
|
2016-12-15 15:32:51 +01:00
|
|
|
|
@opindex quick-add-key
|
2016-06-02 15:54:48 +02:00
|
|
|
|
Directly add a subkey to the key identified by the fingerprint
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{fpr}. Without the optional arguments an encryption subkey is
|
2016-06-02 15:54:48 +02:00
|
|
|
|
added. If any of the arguments are given a more specific subkey is
|
|
|
|
|
added.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{algo} may be any of the supported algorithms or curve names
|
2016-09-13 11:30:54 +02:00
|
|
|
|
given in the format as used by key listings. To use the default
|
|
|
|
|
algorithm the string ``default'' or ``-'' can be used. Supported
|
|
|
|
|
algorithms are ``rsa'', ``dsa'', ``elg'', ``ed25519'', ``cv25519'',
|
|
|
|
|
and other ECC curves. For example the string ``rsa'' adds an RSA key
|
|
|
|
|
with the default key length; a string ``rsa4096'' requests that the
|
|
|
|
|
key length is 4096 bits. The string ``future-default'' is an alias
|
|
|
|
|
for the algorithm which will likely be used as default algorithm in
|
2018-08-29 15:04:44 +02:00
|
|
|
|
future versions of gpg. To list the supported ECC curves the command
|
|
|
|
|
@code{gpg --with-colons --list-config curve} can be used.
|
2016-06-02 15:54:48 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Depending on the given @var{algo} the subkey may either be an
|
2016-06-02 15:54:48 +02:00
|
|
|
|
encryption subkey or a signing subkey. If an algorithm is capable of
|
2017-07-24 21:29:51 +02:00
|
|
|
|
signing and encryption and such a subkey is desired, a @var{usage}
|
2016-06-02 15:54:48 +02:00
|
|
|
|
string must be given. This string is either ``default'' or ``-'' to
|
2017-02-15 15:51:09 +01:00
|
|
|
|
keep the default or a comma delimited list (or space delimited list)
|
|
|
|
|
of keywords: ``sign'' for a signing subkey, ``auth'' for an
|
|
|
|
|
authentication subkey, and ``encr'' for an encryption subkey
|
|
|
|
|
(``encrypt'' can be used as alias for ``encr''). The valid
|
|
|
|
|
combinations depend on the algorithm.
|
2016-06-02 15:54:48 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
The @var{expire} argument can be used to specify an expiration date
|
2017-02-15 15:51:09 +01:00
|
|
|
|
for the key. Several formats are supported; commonly the ISO formats
|
|
|
|
|
``YYYY-MM-DD'' or ``YYYYMMDDThhmmss'' are used. To make the key
|
|
|
|
|
expire in N seconds, N days, N weeks, N months, or N years use
|
|
|
|
|
``seconds=N'', ``Nd'', ``Nw'', ``Nm'', or ``Ny'' respectively. Not
|
|
|
|
|
specifying a value, or using ``-'' results in a key expiring in a
|
|
|
|
|
reasonable default interval. The values ``never'', ``none'' can be
|
|
|
|
|
used for no expiration date.
|
2016-06-02 15:54:48 +02:00
|
|
|
|
|
2016-11-14 16:59:23 +01:00
|
|
|
|
@item --generate-key
|
|
|
|
|
@opindex generate-key
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@itemx --gen-key
|
|
|
|
|
@opindex gen-key
|
2015-08-28 05:05:37 +02:00
|
|
|
|
Generate a new key pair using the current default parameters. This is
|
2016-01-21 18:30:51 +01:00
|
|
|
|
the standard command to create a new key. In addition to the key a
|
|
|
|
|
revocation certificate is created and stored in the
|
|
|
|
|
@file{openpgp-revocs.d} directory below the GnuPG home directory.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-12-09 15:10:39 +01:00
|
|
|
|
@item --full-generate-key
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@opindex full-generate-key
|
|
|
|
|
@itemx --full-gen-key
|
|
|
|
|
@opindex full-gen-key
|
2014-09-27 15:14:13 +02:00
|
|
|
|
Generate a new key pair with dialogs for all options. This is an
|
2016-11-14 16:59:23 +01:00
|
|
|
|
extended version of @option{--generate-key}.
|
2014-09-27 15:14:13 +02:00
|
|
|
|
|
2014-07-23 15:12:43 +02:00
|
|
|
|
There is also a feature which allows you to create keys in batch
|
2016-01-21 18:30:51 +01:00
|
|
|
|
mode. See the manual section ``Unattended key generation'' on how
|
2014-09-27 15:14:13 +02:00
|
|
|
|
to use this.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-06-02 15:54:48 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --generate-revocation @var{name}
|
2016-12-15 13:01:03 +01:00
|
|
|
|
@opindex generate-revocation
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@itemx --gen-revoke @var{name}
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@opindex gen-revoke
|
2016-01-21 18:30:51 +01:00
|
|
|
|
Generate a revocation certificate for the complete key. To only revoke
|
|
|
|
|
a subkey or a key signature, use the @option{--edit} command.
|
|
|
|
|
|
|
|
|
|
This command merely creates the revocation certificate so that it can
|
|
|
|
|
be used to revoke the key if that is ever needed. To actually revoke
|
|
|
|
|
a key the created revocation certificate needs to be merged with the
|
|
|
|
|
key to revoke. This is done by importing the revocation certificate
|
|
|
|
|
using the @option{--import} command. Then the revoked key needs to be
|
|
|
|
|
published, which is best done by sending the key to a keyserver
|
|
|
|
|
(command @option{--send-key}) and by exporting (@option{--export}) it
|
|
|
|
|
to a file which is then send to frequent communication partners.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --generate-designated-revocation @var{name}
|
2016-12-15 13:59:48 +01:00
|
|
|
|
@opindex generate-designated-revocation
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@itemx --desig-revoke @var{name}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex desig-revoke
|
|
|
|
|
Generate a designated revocation certificate for a key. This allows a
|
|
|
|
|
user (with the permission of the keyholder) to revoke someone else's
|
|
|
|
|
key.
|
|
|
|
|
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --edit-key
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex edit-key
|
|
|
|
|
Present a menu which enables you to do most of the key management
|
|
|
|
|
related tasks. It expects the specification of a key on the command
|
|
|
|
|
line.
|
|
|
|
|
|
|
|
|
|
@c ******** Begin Edit-key Options **********
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item uid @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyedit:uid
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Toggle selection of user ID or photographic user ID with index @var{n}.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Use @code{*} to select all and @code{0} to deselect all.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item key @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyedit:key
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Toggle selection of subkey with index @var{n} or key ID @var{n}.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Use @code{*} to select all and @code{0} to deselect all.
|
|
|
|
|
|
|
|
|
|
@item sign
|
|
|
|
|
@opindex keyedit:sign
|
2016-03-04 17:38:09 +01:00
|
|
|
|
Make a signature on key of user @code{name}. If the key is not yet
|
|
|
|
|
signed by the default user (or the users given with @option{-u}), the program
|
2011-10-12 17:36:56 +02:00
|
|
|
|
displays the information of the key again, together with its
|
|
|
|
|
fingerprint and asks whether it should be signed. This question is
|
|
|
|
|
repeated for all users specified with
|
2016-03-04 17:38:09 +01:00
|
|
|
|
@option{-u}.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item lsign
|
|
|
|
|
@opindex keyedit: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.
|
|
|
|
|
|
|
|
|
|
@item nrsign
|
|
|
|
|
@opindex keyedit:nrsign
|
|
|
|
|
Same as "sign" but the signature is marked as non-revocable and can
|
|
|
|
|
therefore never be revoked.
|
|
|
|
|
|
|
|
|
|
@item tsign
|
|
|
|
|
@opindex keyedit:tsign
|
|
|
|
|
Make a trust signature. This is a signature that combines the notions
|
|
|
|
|
of certification (like a regular signature), and trust (like the
|
|
|
|
|
"trust" command). It is generally only useful in distinct communities
|
2016-04-08 09:49:15 +02:00
|
|
|
|
or groups. For more information please read the sections
|
|
|
|
|
``Trust Signature'' and ``Regular Expression'' in RFC-4880.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@c man:.RS
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Note that "l" (for local / non-exportable), "nr" (for non-revocable,
|
|
|
|
|
and "t" (for trust) may be freely mixed and prefixed to "sign" to
|
|
|
|
|
create a signature of any type desired.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@c man:.RE
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2015-11-06 13:14:57 +01:00
|
|
|
|
If the option @option{--only-sign-text-ids} is specified, then any
|
|
|
|
|
non-text based user ids (e.g., photo IDs) will not be selected for
|
|
|
|
|
signing.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item delsig
|
|
|
|
|
@opindex keyedit:delsig
|
|
|
|
|
Delete a signature. Note that it is not possible to retract a signature,
|
|
|
|
|
once it has been send to the public (i.e. to a keyserver). In that case
|
|
|
|
|
you better use @code{revsig}.
|
|
|
|
|
|
|
|
|
|
@item revsig
|
|
|
|
|
@opindex keyedit:revsig
|
|
|
|
|
Revoke a signature. For every signature which has been generated by
|
|
|
|
|
one of the secret keys, GnuPG asks whether a revocation certificate
|
|
|
|
|
should be generated.
|
|
|
|
|
|
|
|
|
|
@item check
|
|
|
|
|
@opindex keyedit:check
|
2015-10-01 16:22:29 +02:00
|
|
|
|
Check the signatures on all selected user IDs. With the extra
|
|
|
|
|
option @code{selfsig} only self-signatures are shown.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item adduid
|
|
|
|
|
@opindex keyedit:adduid
|
|
|
|
|
Create an additional user ID.
|
|
|
|
|
|
|
|
|
|
@item addphoto
|
|
|
|
|
@opindex keyedit:addphoto
|
|
|
|
|
Create a photographic user ID. This will prompt for a JPEG file that
|
|
|
|
|
will be embedded into the user ID. Note that a very large JPEG will make
|
|
|
|
|
for a very large key. Also note that some programs will display your
|
|
|
|
|
JPEG unchanged (GnuPG), and some programs will scale it to fit in a
|
|
|
|
|
dialog box (PGP).
|
|
|
|
|
|
|
|
|
|
@item showphoto
|
|
|
|
|
@opindex keyedit:showphoto
|
|
|
|
|
Display the selected photographic user ID.
|
|
|
|
|
|
|
|
|
|
@item deluid
|
|
|
|
|
@opindex keyedit:deluid
|
|
|
|
|
Delete a user ID or photographic user ID. Note that it is not
|
|
|
|
|
possible to retract a user id, once it has been send to the public
|
|
|
|
|
(i.e. to a keyserver). In that case you better use @code{revuid}.
|
|
|
|
|
|
|
|
|
|
@item revuid
|
|
|
|
|
@opindex keyedit:revuid
|
|
|
|
|
Revoke a user ID or photographic user ID.
|
|
|
|
|
|
|
|
|
|
@item primary
|
|
|
|
|
@opindex keyedit:primary
|
|
|
|
|
Flag the current user id as the primary one, removes the primary user
|
|
|
|
|
id flag from all other user ids and sets the timestamp of all affected
|
|
|
|
|
self-signatures one second ahead. Note that setting a photo user ID
|
|
|
|
|
as primary makes it primary over other photo user IDs, and setting a
|
|
|
|
|
regular user ID as primary makes it primary over other regular user
|
|
|
|
|
IDs.
|
|
|
|
|
|
|
|
|
|
@item keyserver
|
|
|
|
|
@opindex keyedit:keyserver
|
|
|
|
|
Set a preferred keyserver for the specified user ID(s). This allows
|
|
|
|
|
other users to know where you prefer they get your key from. See
|
|
|
|
|
@option{--keyserver-options honor-keyserver-url} for more on how this
|
|
|
|
|
works. Setting a value of "none" removes an existing preferred
|
|
|
|
|
keyserver.
|
|
|
|
|
|
|
|
|
|
@item notation
|
|
|
|
|
@opindex keyedit:notation
|
|
|
|
|
Set a name=value notation for the specified user ID(s). See
|
|
|
|
|
@option{--cert-notation} for more on how this works. Setting a value of
|
|
|
|
|
"none" removes all notations, setting a notation prefixed with a minus
|
|
|
|
|
sign (-) removes that notation, and setting a notation name (without the
|
|
|
|
|
=value) prefixed with a minus sign removes all notations with that name.
|
|
|
|
|
|
|
|
|
|
@item pref
|
|
|
|
|
@opindex keyedit:pref
|
|
|
|
|
List preferences from the selected user ID. This shows the actual
|
|
|
|
|
preferences, without including any implied preferences.
|
|
|
|
|
|
|
|
|
|
@item showpref
|
|
|
|
|
@opindex keyedit:showpref
|
|
|
|
|
More verbose preferences listing for the selected user ID. This shows
|
|
|
|
|
the preferences in effect by including the implied preferences of 3DES
|
|
|
|
|
(cipher), SHA-1 (digest), and Uncompressed (compression) if they are
|
|
|
|
|
not already included in the preference list. In addition, the
|
|
|
|
|
preferred keyserver and signature notations (if any) are shown.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item setpref @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyedit:setpref
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the list of user ID preferences to @var{string} for all (or just
|
2011-10-12 17:36:56 +02:00
|
|
|
|
the selected) user IDs. Calling setpref with no arguments sets the
|
|
|
|
|
preference list to the default (either built-in or set via
|
|
|
|
|
@option{--default-preference-list}), and calling setpref with "none"
|
|
|
|
|
as the argument sets an empty preference list. Use @command{@gpgname
|
|
|
|
|
--version} to get a list of available algorithms. Note that while you
|
|
|
|
|
can change the preferences on an attribute user ID (aka "photo ID"),
|
|
|
|
|
GnuPG does not select keys via attribute user IDs so these preferences
|
|
|
|
|
will not be used by GnuPG.
|
|
|
|
|
|
|
|
|
|
When setting preferences, you should list the algorithms in the order
|
|
|
|
|
which you'd like to see them used by someone else when encrypting a
|
|
|
|
|
message to your key. If you don't include 3DES, it will be
|
|
|
|
|
automatically added at the end. Note that there are many factors that
|
|
|
|
|
go into choosing an algorithm (for example, your key may not be the
|
|
|
|
|
only recipient), and so the remote OpenPGP application being used to
|
|
|
|
|
send to you may or may not follow your exact chosen order for a given
|
|
|
|
|
message. It will, however, only choose an algorithm that is present
|
|
|
|
|
on the preference list of every recipient key. See also the
|
|
|
|
|
INTEROPERABILITY WITH OTHER OPENPGP PROGRAMS section below.
|
|
|
|
|
|
|
|
|
|
@item addkey
|
|
|
|
|
@opindex keyedit:addkey
|
|
|
|
|
Add a subkey to this key.
|
|
|
|
|
|
|
|
|
|
@item addcardkey
|
|
|
|
|
@opindex keyedit:addcardkey
|
|
|
|
|
Generate a subkey on a card and add it to this key.
|
|
|
|
|
|
|
|
|
|
@item keytocard
|
|
|
|
|
@opindex keyedit:keytocard
|
|
|
|
|
Transfer the selected secret subkey (or the primary key if no subkey
|
|
|
|
|
has been selected) to a smartcard. The secret key in the keyring will
|
|
|
|
|
be replaced by a stub if the key could be stored successfully on the
|
|
|
|
|
card and you use the save command later. Only certain key types may be
|
|
|
|
|
transferred to the card. A sub menu allows you to select on what card
|
|
|
|
|
to store the key. Note that it is not possible to get that key back
|
|
|
|
|
from the card - if the card gets broken your secret key will be lost
|
|
|
|
|
unless you have a backup somewhere.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item bkuptocard @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyedit:bkuptocard
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Restore the given @var{file} to a card. This command may be used to restore a
|
2011-10-12 17:36:56 +02:00
|
|
|
|
backup key (as generated during card initialization) to a new card. In
|
|
|
|
|
almost all cases this will be the encryption key. You should use this
|
|
|
|
|
command only with the corresponding public key and make sure that the
|
|
|
|
|
file given as argument is indeed the backup to restore. You should then
|
|
|
|
|
select 2 to restore as encryption key. You will first be asked to enter
|
|
|
|
|
the passphrase of the backup key and then for the Admin PIN of the card.
|
|
|
|
|
|
|
|
|
|
@item delkey
|
|
|
|
|
@opindex keyedit:delkey
|
2015-01-22 17:49:55 +01:00
|
|
|
|
Remove a subkey (secondary key). Note that it is not possible to retract
|
2011-10-12 17:36:56 +02:00
|
|
|
|
a subkey, once it has been send to the public (i.e. to a keyserver). In
|
2016-12-19 15:40:16 +01:00
|
|
|
|
that case you better use @code{revkey}. Also note that this only
|
|
|
|
|
deletes the public part of a key.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item revkey
|
|
|
|
|
@opindex keyedit:revkey
|
|
|
|
|
Revoke a subkey.
|
|
|
|
|
|
|
|
|
|
@item expire
|
|
|
|
|
@opindex keyedit:expire
|
|
|
|
|
Change the key or subkey expiration time. If a subkey is selected, the
|
|
|
|
|
expiration time of this subkey will be changed. With no selection, the
|
|
|
|
|
key expiration of the primary key is changed.
|
|
|
|
|
|
|
|
|
|
@item trust
|
|
|
|
|
@opindex keyedit:trust
|
|
|
|
|
Change the owner trust value for the key. This updates the trust-db
|
|
|
|
|
immediately and no save is required.
|
|
|
|
|
|
|
|
|
|
@item disable
|
|
|
|
|
@itemx enable
|
|
|
|
|
@opindex keyedit:disable
|
|
|
|
|
@opindex keyedit:enable
|
|
|
|
|
Disable or enable an entire key. A disabled key can not normally be
|
|
|
|
|
used for encryption.
|
|
|
|
|
|
|
|
|
|
@item addrevoker
|
|
|
|
|
@opindex keyedit:addrevoker
|
|
|
|
|
Add a designated revoker to the key. This takes one optional argument:
|
|
|
|
|
"sensitive". If a designated revoker is marked as sensitive, it will
|
|
|
|
|
not be exported by default (see export-options).
|
|
|
|
|
|
|
|
|
|
@item passwd
|
|
|
|
|
@opindex keyedit:passwd
|
|
|
|
|
Change the passphrase of the secret key.
|
|
|
|
|
|
|
|
|
|
@item toggle
|
|
|
|
|
@opindex keyedit:toggle
|
2015-07-29 15:46:40 +02:00
|
|
|
|
This is dummy command which exists only for backward compatibility.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item clean
|
|
|
|
|
@opindex keyedit:clean
|
|
|
|
|
Compact (by removing all signatures except the selfsig) any user ID
|
|
|
|
|
that is no longer usable (e.g. revoked, or expired). Then, remove any
|
|
|
|
|
signatures that are not usable by the trust calculations.
|
|
|
|
|
Specifically, this removes any signature that does not validate, any
|
|
|
|
|
signature that is superseded by a later signature, revoked signatures,
|
|
|
|
|
and signatures issued by keys that are not present on the keyring.
|
|
|
|
|
|
|
|
|
|
@item minimize
|
|
|
|
|
@opindex keyedit:minimize
|
|
|
|
|
Make the key as small as possible. This removes all signatures from
|
|
|
|
|
each user ID except for the most recent self-signature.
|
|
|
|
|
|
2018-04-09 10:36:02 +02:00
|
|
|
|
@item change-usage
|
|
|
|
|
@opindex keyedit:change-usage
|
|
|
|
|
Change the usage flags (capabilities) of the primary key or of
|
|
|
|
|
subkeys. These usage flags (e.g. Certify, Sign, Authenticate,
|
|
|
|
|
Encrypt) are set during key creation. Sometimes it is useful to
|
|
|
|
|
have the opportunity to change them (for example to add
|
|
|
|
|
Authenticate) after they have been created. Please take care when
|
2018-04-09 10:44:44 +02:00
|
|
|
|
doing this; the allowed usage flags depend on the key algorithm.
|
2018-04-09 10:36:02 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item cross-certify
|
|
|
|
|
@opindex keyedit:cross-certify
|
|
|
|
|
Add cross-certification signatures to signing subkeys that may not
|
|
|
|
|
currently have them. Cross-certification signatures protect against a
|
|
|
|
|
subtle attack against signing subkeys. See
|
|
|
|
|
@option{--require-cross-certification}. All new keys generated have
|
2016-03-04 17:27:21 +01:00
|
|
|
|
this signature by default, so this command is only useful to bring
|
2011-10-12 17:36:56 +02:00
|
|
|
|
older keys up to date.
|
|
|
|
|
|
|
|
|
|
@item save
|
|
|
|
|
@opindex keyedit:save
|
2016-03-04 16:20:47 +01:00
|
|
|
|
Save all changes to the keyrings and quit.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item quit
|
|
|
|
|
@opindex keyedit:quit
|
|
|
|
|
Quit the program without updating the
|
2016-03-04 16:20:47 +01:00
|
|
|
|
keyrings.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@c man:.RS
|
2006-08-16 16:54:19 +02:00
|
|
|
|
The listing shows you the key with its secondary keys and all user
|
2018-05-06 07:58:23 +02:00
|
|
|
|
IDs. The primary user ID is indicated by a dot, and selected keys or
|
|
|
|
|
user IDs are indicated by an asterisk. The trust
|
|
|
|
|
value is displayed with the primary key: "trust" is the assigned owner
|
|
|
|
|
trust and "validity" is the calculated validity of the key. Validity
|
|
|
|
|
values are also displayed for all user IDs.
|
|
|
|
|
For possible values of trust, @pxref{trust-values}.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@c man:.RE
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@c ******** End Edit-key Options **********
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --sign-key @var{name}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex sign-key
|
|
|
|
|
Signs a public key with your secret key. This is a shortcut version of
|
2006-09-25 20:29:20 +02:00
|
|
|
|
the subcommand "sign" from @option{--edit}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --lsign-key @var{name}
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@opindex lsign-key
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Signs a public key with your secret key but marks it as
|
|
|
|
|
non-exportable. This is a shortcut version of the subcommand "lsign"
|
2006-09-25 20:29:20 +02:00
|
|
|
|
from @option{--edit-key}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --quick-sign-key @var{fpr} [@var{names}]
|
|
|
|
|
@itemx --quick-lsign-key @var{fpr} [@var{names}]
|
2014-03-27 16:33:40 +01:00
|
|
|
|
@opindex quick-sign-key
|
|
|
|
|
@opindex quick-lsign-key
|
|
|
|
|
Directly sign a key from the passphrase without any further user
|
2017-07-24 21:29:51 +02:00
|
|
|
|
interaction. The @var{fpr} must be the verified primary fingerprint
|
|
|
|
|
of a key in the local keyring. If no @var{names} are given, all
|
|
|
|
|
useful user ids are signed; with given [@var{names}] only useful user
|
2019-08-20 21:14:39 +02:00
|
|
|
|
ids matching one of these names are signed. By default, or if a name
|
2016-04-19 17:47:24 +02:00
|
|
|
|
is prefixed with a '*', a case insensitive substring match is used.
|
|
|
|
|
If a name is prefixed with a '=' a case sensitive exact match is done.
|
|
|
|
|
|
|
|
|
|
The command @option{--quick-lsign-key} marks the signatures as
|
|
|
|
|
non-exportable. If such a non-exportable signature already exists the
|
2014-07-23 12:18:19 +02:00
|
|
|
|
@option{--quick-sign-key} turns it into a exportable signature.
|
2014-03-27 16:33:40 +01:00
|
|
|
|
|
|
|
|
|
This command uses reasonable defaults and thus does not provide the
|
|
|
|
|
full flexibility of the "sign" subcommand from @option{--edit-key}.
|
2014-09-12 10:49:31 +02:00
|
|
|
|
Its intended use is to help unattended key signing by utilizing a list
|
|
|
|
|
of verified fingerprints.
|
2014-03-27 16:33:40 +01:00
|
|
|
|
|
2016-12-15 15:32:51 +01:00
|
|
|
|
@item --quick-add-uid @var{user-id} @var{new-user-id}
|
|
|
|
|
@opindex quick-add-uid
|
2015-05-08 16:08:57 +02:00
|
|
|
|
This command adds a new user id to an existing key. In contrast to
|
|
|
|
|
the interactive sub-command @code{adduid} of @option{--edit-key} the
|
|
|
|
|
@var{new-user-id} is added verbatim with only leading and trailing
|
|
|
|
|
white space removed, it is expected to be UTF-8 encoded, and no checks
|
|
|
|
|
on its form are applied.
|
|
|
|
|
|
2016-12-15 15:32:51 +01:00
|
|
|
|
@item --quick-revoke-uid @var{user-id} @var{user-id-to-revoke}
|
|
|
|
|
@opindex quick-revoke-uid
|
2017-03-21 14:47:21 +01:00
|
|
|
|
This command revokes a user ID on an existing key. It cannot be used
|
|
|
|
|
to revoke the last user ID on key (some non-revoked user ID must
|
2016-06-17 00:05:57 +02:00
|
|
|
|
remain), with revocation reason ``User ID is no longer valid''. If
|
|
|
|
|
you want to specify a different revocation reason, or to supply
|
|
|
|
|
supplementary revocation text, you should use the interactive
|
|
|
|
|
sub-command @code{revuid} of @option{--edit-key}.
|
|
|
|
|
|
2017-03-21 14:47:21 +01:00
|
|
|
|
@item --quick-set-primary-uid @var{user-id} @var{primary-user-id}
|
|
|
|
|
@opindex quick-set-primary-uid
|
|
|
|
|
This command sets or updates the primary user ID flag on an existing
|
|
|
|
|
key. @var{user-id} specifies the key and @var{primary-user-id} the
|
|
|
|
|
user ID which shall be flagged as the primary user ID. The primary
|
|
|
|
|
user ID flag is removed from all other user ids and the timestamp of
|
|
|
|
|
all affected self-signatures is set one second ahead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@item --change-passphrase @var{user-id}
|
2016-12-13 17:49:47 +01:00
|
|
|
|
@opindex change-passphrase
|
2017-03-21 14:47:21 +01:00
|
|
|
|
@itemx --passwd @var{user-id}
|
2016-12-15 12:44:52 +01:00
|
|
|
|
@opindex passwd
|
2010-02-02 15:06:19 +01:00
|
|
|
|
Change the passphrase of the secret key belonging to the certificate
|
2017-03-21 14:47:21 +01:00
|
|
|
|
specified as @var{user-id}. This is a shortcut for the sub-command
|
2018-03-22 10:23:00 +01:00
|
|
|
|
@code{passwd} of the edit key menu. When using together with the
|
|
|
|
|
option @option{--dry-run} this will not actually change the passphrase
|
|
|
|
|
but check that the current passphrase is correct.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *************** OPTIONS ****************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *******************************************
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect options
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@node GPG Options
|
|
|
|
|
@section Option Summary
|
|
|
|
|
|
2010-02-11 12:30:07 +01:00
|
|
|
|
@command{@gpgname} features a bunch of options to control the exact
|
2006-08-16 16:54:19 +02:00
|
|
|
|
behaviour and to change the default configuration.
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@menu
|
2006-08-16 16:54:19 +02:00
|
|
|
|
* GPG Configuration Options:: How to change the configuration.
|
|
|
|
|
* GPG Key related Options:: Key related options.
|
|
|
|
|
* GPG Input and Output:: Input and Output.
|
|
|
|
|
* OpenPGP Options:: OpenPGP protocol specific options.
|
2013-04-25 13:00:16 +02:00
|
|
|
|
* Compliance Options:: Compliance options.
|
2016-03-04 16:20:47 +01:00
|
|
|
|
* GPG Esoteric Options:: Doing things one usually doesn't want to do.
|
2013-04-25 13:00:16 +02:00
|
|
|
|
* Deprecated Options:: Deprecated options.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
|
|
Long options can be put in an options file (default
|
|
|
|
|
"~/.gnupg/gpg.conf"). Short option names will not work - for example,
|
|
|
|
|
"armor" is a valid option for the options file, while "a" is not. Do not
|
|
|
|
|
write the 2 dashes, but simply 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 is
|
|
|
|
|
not generally useful as the command will execute automatically with
|
|
|
|
|
every execution of gpg.
|
|
|
|
|
|
|
|
|
|
Please remember that option parsing stops as soon as a non-option is
|
|
|
|
|
encountered, you can explicitly stop parsing by using the special option
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ******** CONFIGURATION OPTIONS **********
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node GPG Configuration Options
|
|
|
|
|
@subsection How to change the configuration
|
|
|
|
|
|
2007-12-13 16:45:40 +01:00
|
|
|
|
These options are used to change the configuration and are usually found
|
2006-08-16 16:54:19 +02:00
|
|
|
|
in the option file.
|
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
|
|
|
|
|
@item --default-key @var{name}
|
|
|
|
|
@opindex default-key
|
|
|
|
|
Use @var{name} as the default key to sign with. If this option is not
|
|
|
|
|
used, the default key is the first key found in the secret keyring.
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Note that @option{-u} or @option{--local-user} overrides this option.
|
2015-11-03 23:15:27 +01:00
|
|
|
|
This option may be given multiple times. In this case, the last key
|
|
|
|
|
for which a secret key is available is used. If there is no secret
|
|
|
|
|
key available for any of the specified values, GnuPG will not emit an
|
|
|
|
|
error message but continue as if this option wasn't given.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --default-recipient @var{name}
|
|
|
|
|
@opindex default-recipient
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Use @var{name} as default recipient if option @option{--recipient} is
|
|
|
|
|
not used and don't ask if this is a valid one. @var{name} must be
|
|
|
|
|
non-empty.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --default-recipient-self
|
|
|
|
|
@opindex default-recipient-self
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Use the default key as default recipient if option @option{--recipient} is not
|
2006-08-16 16:54:19 +02:00
|
|
|
|
used and don't ask if this is a valid one. The default key is the first
|
2006-09-25 20:29:20 +02:00
|
|
|
|
one from the secret keyring or the one set with @option{--default-key}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --no-default-recipient
|
|
|
|
|
@opindex no-default-recipient
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Reset @option{--default-recipient} and @option{--default-recipient-self}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item -v, --verbose
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@opindex verbose
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Give more information during processing. If used
|
|
|
|
|
twice, the input data is listed in detail.
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --no-verbose
|
|
|
|
|
@opindex no-verbose
|
|
|
|
|
Reset verbose level to 0.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item -q, --quiet
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@opindex quiet
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Try to be as quiet as possible.
|
|
|
|
|
|
2007-04-13 13:45:05 +02:00
|
|
|
|
@item --batch
|
|
|
|
|
@itemx --no-batch
|
|
|
|
|
@opindex batch
|
|
|
|
|
@opindex no-batch
|
|
|
|
|
Use batch mode. Never ask, do not allow interactive commands.
|
2008-12-08 20:10:42 +01:00
|
|
|
|
@option{--no-batch} disables this option. Note that even with a
|
|
|
|
|
filename given on the command line, gpg might still need to read from
|
|
|
|
|
STDIN (in particular if gpg figures that the input is a
|
|
|
|
|
detached signature and no data file has been specified). Thus if you
|
|
|
|
|
do not want to feed data via STDIN, you should connect STDIN to
|
2016-12-02 19:43:36 +01:00
|
|
|
|
g@file{/dev/null}.
|
|
|
|
|
|
|
|
|
|
It is highly recommended to use this option along with the options
|
2017-07-05 22:55:53 +02:00
|
|
|
|
@option{--status-fd} and @option{--with-colons} for any unattended use of
|
2016-12-02 19:43:36 +01:00
|
|
|
|
@command{gpg}.
|
2007-04-13 13:45:05 +02:00
|
|
|
|
|
|
|
|
|
@item --no-tty
|
|
|
|
|
@opindex 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 even if @option{--batch} is used.
|
|
|
|
|
|
|
|
|
|
@item --yes
|
|
|
|
|
@opindex yes
|
|
|
|
|
Assume "yes" on most questions.
|
|
|
|
|
|
|
|
|
|
@item --no
|
|
|
|
|
@opindex no
|
|
|
|
|
Assume "no" on most questions.
|
|
|
|
|
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --list-options @var{parameters}
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@opindex list-options
|
|
|
|
|
This is a space or comma delimited string that gives options used when
|
2006-09-25 20:29:20 +02:00
|
|
|
|
listing keys and signatures (that is, @option{--list-keys},
|
2017-09-27 17:18:55 +02:00
|
|
|
|
@option{--check-signatures}, @option{--list-public-keys},
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--list-secret-keys}, and the @option{--edit-key} functions).
|
|
|
|
|
Options can be prepended with a @option{no-} (after the two dashes) to
|
|
|
|
|
give the opposite meaning. The options are:
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@table @asis
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item show-photos
|
|
|
|
|
@opindex list-options:show-photos
|
2017-09-27 17:18:55 +02:00
|
|
|
|
Causes @option{--list-keys}, @option{--check-signatures},
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@option{--list-public-keys}, and @option{--list-secret-keys} to
|
|
|
|
|
display any photo IDs attached to the key. Defaults to no. See also
|
|
|
|
|
@option{--photo-viewer}. Does not work with @option{--with-colons}:
|
|
|
|
|
see @option{--attribute-fd} for the appropriate way to get photo data
|
|
|
|
|
for scripts and other frontends.
|
|
|
|
|
|
2014-08-12 10:36:30 +02:00
|
|
|
|
@item show-usage
|
|
|
|
|
@opindex list-options:show-usage
|
|
|
|
|
Show usage information for keys and subkeys in the standard key
|
|
|
|
|
listing. This is a list of letters indicating the allowed usage for a
|
|
|
|
|
key (@code{E}=encryption, @code{S}=signing, @code{C}=certification,
|
2016-01-14 12:22:33 +01:00
|
|
|
|
@code{A}=authentication). Defaults to yes.
|
2014-08-12 10:36:30 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item show-policy-urls
|
|
|
|
|
@opindex list-options:show-policy-urls
|
2017-09-27 17:18:55 +02:00
|
|
|
|
Show policy URLs in the @option{--check-signatures}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
listings. Defaults to no.
|
|
|
|
|
|
|
|
|
|
@item show-notations
|
|
|
|
|
@itemx show-std-notations
|
|
|
|
|
@itemx show-user-notations
|
|
|
|
|
@opindex list-options:show-notations
|
|
|
|
|
@opindex list-options:show-std-notations
|
|
|
|
|
@opindex list-options:show-user-notations
|
|
|
|
|
Show all, IETF standard, or user-defined signature notations in the
|
2017-09-27 17:18:55 +02:00
|
|
|
|
@option{--check-signatures} listings. Defaults to no.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-keyserver-urls
|
|
|
|
|
@opindex list-options:show-keyserver-urls
|
2017-09-27 17:18:55 +02:00
|
|
|
|
Show any preferred keyserver URL in the
|
2016-10-10 15:20:14 +02:00
|
|
|
|
@option{--check-signatures} listings. Defaults to no.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-uid-validity
|
|
|
|
|
@opindex list-options:show-uid-validity
|
|
|
|
|
Display the calculated validity of user IDs during key listings.
|
2015-10-28 08:09:49 +01:00
|
|
|
|
Defaults to yes.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-unusable-uids
|
|
|
|
|
@opindex list-options:show-unusable-uids
|
|
|
|
|
Show revoked and expired user IDs in key listings. Defaults to no.
|
|
|
|
|
|
|
|
|
|
@item show-unusable-subkeys
|
|
|
|
|
@opindex list-options:show-unusable-subkeys
|
|
|
|
|
Show revoked and expired subkeys in key listings. Defaults to no.
|
|
|
|
|
|
|
|
|
|
@item show-keyring
|
|
|
|
|
@opindex list-options:show-keyring
|
|
|
|
|
Display the keyring name at the head of key listings to show which
|
|
|
|
|
keyring a given key resides on. Defaults to no.
|
|
|
|
|
|
|
|
|
|
@item show-sig-expire
|
|
|
|
|
@opindex list-options:show-sig-expire
|
2017-09-27 17:18:55 +02:00
|
|
|
|
Show signature expiration dates (if any) during
|
2016-10-10 15:20:14 +02:00
|
|
|
|
@option{--check-signatures} listings. Defaults to no.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-sig-subpackets
|
|
|
|
|
@opindex list-options:show-sig-subpackets
|
|
|
|
|
Include signature subpackets in the key listing. This option can take an
|
|
|
|
|
optional argument list of the subpackets to list. If no argument is
|
|
|
|
|
passed, list all subpackets. Defaults to no. This option is only
|
|
|
|
|
meaningful when using @option{--with-colons} along with
|
2017-09-27 17:18:55 +02:00
|
|
|
|
@option{--check-signatures}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2018-12-04 12:32:28 +01:00
|
|
|
|
@item show-only-fpr-mbox
|
|
|
|
|
@opindex list-options:show-only-fpr-mbox
|
2019-05-14 10:07:06 +02:00
|
|
|
|
For each user-id which has a valid mail address print
|
|
|
|
|
only the fingerprint followed by the mail address.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@end table
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --verify-options @var{parameters}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex verify-options
|
2006-09-19 18:25:51 +02:00
|
|
|
|
This is a space or comma delimited string that gives options used when
|
|
|
|
|
verifying signatures. Options can be prepended with a `no-' to give
|
|
|
|
|
the opposite meaning. The options are:
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@table @asis
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item show-photos
|
|
|
|
|
@opindex verify-options:show-photos
|
|
|
|
|
Display any photo IDs present on the key that issued the signature.
|
|
|
|
|
Defaults to no. See also @option{--photo-viewer}.
|
|
|
|
|
|
|
|
|
|
@item show-policy-urls
|
|
|
|
|
@opindex verify-options:show-policy-urls
|
2015-10-28 08:09:49 +01:00
|
|
|
|
Show policy URLs in the signature being verified. Defaults to yes.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-notations
|
|
|
|
|
@itemx show-std-notations
|
|
|
|
|
@itemx show-user-notations
|
|
|
|
|
@opindex verify-options:show-notations
|
|
|
|
|
@opindex verify-options:show-std-notations
|
|
|
|
|
@opindex verify-options:show-user-notations
|
|
|
|
|
Show all, IETF standard, or user-defined signature notations in the
|
|
|
|
|
signature being verified. Defaults to IETF standard.
|
|
|
|
|
|
|
|
|
|
@item show-keyserver-urls
|
|
|
|
|
@opindex verify-options:show-keyserver-urls
|
|
|
|
|
Show any preferred keyserver URL in the signature being verified.
|
2015-10-28 08:09:49 +01:00
|
|
|
|
Defaults to yes.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-uid-validity
|
|
|
|
|
@opindex verify-options:show-uid-validity
|
|
|
|
|
Display the calculated validity of the user IDs on the key that issued
|
2015-10-28 08:09:49 +01:00
|
|
|
|
the signature. Defaults to yes.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item show-unusable-uids
|
|
|
|
|
@opindex verify-options:show-unusable-uids
|
|
|
|
|
Show revoked and expired user IDs during signature verification.
|
|
|
|
|
Defaults to no.
|
|
|
|
|
|
|
|
|
|
@item show-primary-uid-only
|
|
|
|
|
@opindex verify-options:show-primary-uid-only
|
|
|
|
|
Show only the primary user ID during signature verification. That is
|
|
|
|
|
all the AKA lines as well as photo Ids are not shown with the signature
|
|
|
|
|
verification status.
|
|
|
|
|
|
|
|
|
|
@item pka-lookups
|
|
|
|
|
@opindex verify-options:pka-lookups
|
|
|
|
|
Enable PKA lookups to verify sender addresses. Note that PKA is based
|
|
|
|
|
on DNS, and so enabling this option may disclose information on when
|
|
|
|
|
and what signatures are verified or to whom data is encrypted. This
|
2016-06-13 11:32:38 +02:00
|
|
|
|
is similar to the "web bug" described for the @option{--auto-key-retrieve}
|
|
|
|
|
option.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item pka-trust-increase
|
|
|
|
|
@opindex verify-options:pka-trust-increase
|
|
|
|
|
Raise the trust in a signature to full if the signature passes PKA
|
|
|
|
|
validation. This option is only meaningful if pka-lookups is set.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2014-10-09 22:54:15 +02:00
|
|
|
|
@item --enable-large-rsa
|
|
|
|
|
@itemx --disable-large-rsa
|
|
|
|
|
@opindex enable-large-rsa
|
|
|
|
|
@opindex disable-large-rsa
|
2016-11-14 16:59:23 +01:00
|
|
|
|
With --generate-key and --batch, enable the creation of RSA secret keys as
|
2016-03-17 11:13:57 +01:00
|
|
|
|
large as 8192 bit. Note: 8192 bit is more than is generally
|
|
|
|
|
recommended. These large keys don't significantly improve security,
|
|
|
|
|
but they are more expensive to use, and their signatures and
|
|
|
|
|
certifications are larger. This option is only available if the
|
|
|
|
|
binary was build with large-secmem support.
|
2014-10-09 22:54:15 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --enable-dsa2
|
|
|
|
|
@itemx --disable-dsa2
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex enable-dsa2
|
|
|
|
|
@opindex disable-dsa2
|
2009-05-20 11:57:10 +02:00
|
|
|
|
Enable hash truncation for all DSA keys even for old DSA Keys up to
|
|
|
|
|
1024 bit. This is also the default with @option{--openpgp}. Note
|
|
|
|
|
that older versions of GnuPG also required this flag to allow the
|
|
|
|
|
generation of DSA larger than 1024 bit.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --photo-viewer @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex photo-viewer
|
2006-09-19 18:25:51 +02:00
|
|
|
|
This is the command line that should be run to view a photo ID. "%i"
|
|
|
|
|
will be expanded to a filename containing the photo. "%I" does the
|
|
|
|
|
same, except the file will not be deleted once the viewer exits.
|
|
|
|
|
Other flags are "%k" for the key ID, "%K" for the long key ID, "%f"
|
|
|
|
|
for the key fingerprint, "%t" for the extension of the image type
|
|
|
|
|
(e.g. "jpg"), "%T" for the MIME type of the image (e.g. "image/jpeg"),
|
2010-10-11 14:36:27 +02:00
|
|
|
|
"%v" for the single-character calculated validity of the image being
|
|
|
|
|
viewed (e.g. "f"), "%V" for the calculated validity as a string (e.g.
|
2014-04-15 16:40:48 +02:00
|
|
|
|
"full"), "%U" for a base32 encoded hash of the user ID,
|
2006-09-19 18:25:51 +02:00
|
|
|
|
and "%%" for an actual percent sign. If neither %i or %I are present,
|
|
|
|
|
then the photo will be supplied to the viewer on standard input.
|
|
|
|
|
|
2019-05-17 12:31:11 +02:00
|
|
|
|
On Unix the default viewer is
|
|
|
|
|
@code{xloadimage -fork -quiet -title 'KeyID 0x%k' STDIN}
|
|
|
|
|
with a fallback to
|
|
|
|
|
@code{display -title 'KeyID 0x%k' %i}
|
|
|
|
|
and finally to
|
|
|
|
|
@code{xdg-open %i}.
|
|
|
|
|
On Windows
|
|
|
|
|
@code{!ShellExecute 400 %i} is used; here the command is a meta
|
|
|
|
|
command to use that API call followed by a wait time in milliseconds
|
|
|
|
|
which is used to give the viewer time to read the temporary image file
|
|
|
|
|
before gpg deletes it again. Note that if your image viewer program
|
|
|
|
|
is not secure, then executing it from gpg does not make it secure.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --exec-path @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex exec-path
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex PATH
|
2019-05-17 12:31:11 +02:00
|
|
|
|
Sets a list of directories to search for photo viewers If not provided
|
|
|
|
|
photo viewers use the @code{PATH} environment variable.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --keyring @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyring
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Add @var{file} to the current list of keyrings. If @var{file} begins
|
2006-09-25 20:29:20 +02:00
|
|
|
|
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 GnuPG
|
|
|
|
|
home directory ("~/.gnupg" if @option{--homedir} or $GNUPGHOME is not
|
|
|
|
|
used).
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Note that this adds a keyring to the current list. If the intent is to
|
|
|
|
|
use the specified keyring alone, use @option{--keyring} along with
|
|
|
|
|
@option{--no-default-keyring}.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-02-20 22:19:50 +01:00
|
|
|
|
If the option @option{--no-keyring} has been used no keyrings will
|
2016-07-06 15:33:40 +02:00
|
|
|
|
be used at all.
|
|
|
|
|
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --secret-keyring @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex secret-keyring
|
2014-09-18 16:00:34 +02:00
|
|
|
|
This is an obsolete option and ignored. All secret keys are stored in
|
|
|
|
|
the @file{private-keys-v1.d} directory below the GnuPG home directory.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --primary-keyring @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex primary-keyring
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Designate @var{file} as the primary public keyring. This means that
|
2006-09-25 20:29:20 +02:00
|
|
|
|
newly imported keys (via @option{--import} or keyserver
|
|
|
|
|
@option{--recv-from}) will go to this keyring.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --trustdb-name @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex trustdb-name
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{file} instead of the default trustdb. If @var{file} begins
|
2006-09-25 20:29:20 +02:00
|
|
|
|
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 GnuPG
|
|
|
|
|
home directory (@file{~/.gnupg} if @option{--homedir} or $GNUPGHOME is
|
|
|
|
|
not used).
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@include opt-homedir.texi
|
|
|
|
|
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --display-charset @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex display-charset
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Set the name of the native character set. This is used to convert
|
|
|
|
|
some informational strings like user IDs to the proper UTF-8 encoding.
|
|
|
|
|
Note that this has nothing to do with the character set of data to be
|
2007-11-27 09:01:19 +01:00
|
|
|
|
encrypted or signed; GnuPG does not recode user-supplied data. If
|
2006-09-19 18:25:51 +02:00
|
|
|
|
this option is not used, the default character set is determined from
|
|
|
|
|
the current locale. A verbosity level of 3 shows the chosen set.
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Valid values for @var{name} are:
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item iso-8859-1
|
|
|
|
|
@opindex display-charset:iso-8859-1
|
|
|
|
|
This is the Latin 1 set.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item iso-8859-2
|
|
|
|
|
@opindex display-charset:iso-8859-2
|
|
|
|
|
The Latin 2 set.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item iso-8859-15
|
|
|
|
|
@opindex display-charset:iso-8859-15
|
|
|
|
|
This is currently an alias for
|
|
|
|
|
the Latin 1 set.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item koi8-r
|
|
|
|
|
@opindex display-charset:koi8-r
|
2016-03-04 17:34:23 +01:00
|
|
|
|
The usual Russian set (RFC-1489).
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item utf-8
|
|
|
|
|
@opindex display-charset:utf-8
|
|
|
|
|
Bypass all translations and assume
|
|
|
|
|
that the OS uses native UTF-8 encoding.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
@item --utf8-strings
|
|
|
|
|
@itemx --no-utf8-strings
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex utf8-strings
|
2016-03-04 17:29:37 +01:00
|
|
|
|
Assume that command line arguments are given as UTF-8 strings. The
|
2006-09-25 20:29:20 +02:00
|
|
|
|
default (@option{--no-utf8-strings}) is to assume that arguments are
|
|
|
|
|
encoded in the character set as specified by
|
|
|
|
|
@option{--display-charset}. These options affect all following
|
|
|
|
|
arguments. Both options may be used multiple times.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2013-04-18 14:40:43 +02:00
|
|
|
|
@anchor{gpg-option --options}
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --options @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex options
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Read options from @var{file} and do not try to read them from the
|
2006-09-25 20:29:20 +02:00
|
|
|
|
default options file in the homedir (see @option{--homedir}). This
|
|
|
|
|
option is ignored if used in an options file.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --no-options
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-options
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Shortcut for @option{--options /dev/null}. This option is detected
|
|
|
|
|
before an attempt to open an option file. Using this option will also
|
|
|
|
|
prevent the creation of a @file{~/.gnupg} homedir.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item -z @var{n}
|
|
|
|
|
@itemx --compress-level @var{n}
|
|
|
|
|
@itemx --bzip2-compress-level @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex compress-level
|
|
|
|
|
@opindex bzip2-compress-level
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set compression level to @var{n} for the ZIP and ZLIB compression
|
2006-09-25 20:29:20 +02:00
|
|
|
|
algorithms. The default is to use the default compression level of zlib
|
|
|
|
|
(normally 6). @option{--bzip2-compress-level} sets the compression level
|
|
|
|
|
for the BZIP2 compression algorithm (defaulting to 6 as well). This is a
|
|
|
|
|
different option from @option{--compress-level} since BZIP2 uses a
|
2006-09-19 18:25:51 +02:00
|
|
|
|
significant amount of memory for each additional compression level.
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@option{-z} sets both. A value of 0 for @var{n} disables compression.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --bzip2-decompress-lowmem
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex bzip2-decompress-lowmem
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Use a different decompression method for BZIP2 compressed files. This
|
|
|
|
|
alternate method uses a bit more than half the memory, but also runs
|
|
|
|
|
at half the speed. This is useful under extreme low memory
|
|
|
|
|
circumstances when the file was originally compressed at a high
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--bzip2-compress-level}.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@item --mangle-dos-filenames
|
|
|
|
|
@itemx --no-mangle-dos-filenames
|
|
|
|
|
@opindex mangle-dos-filenames
|
|
|
|
|
@opindex no-mangle-dos-filenames
|
|
|
|
|
Older version of Windows cannot handle filenames with more than one
|
2006-09-25 20:29:20 +02:00
|
|
|
|
dot. @option{--mangle-dos-filenames} causes GnuPG to replace (rather
|
|
|
|
|
than add to) the extension of an output filename to avoid this
|
|
|
|
|
problem. This option is off by default and has no effect on non-Windows
|
|
|
|
|
platforms.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --ask-cert-level
|
|
|
|
|
@itemx --no-ask-cert-level
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ask-cert-level
|
2006-09-25 20:29:20 +02:00
|
|
|
|
When making a key signature, prompt for a certification level. If this
|
|
|
|
|
option is not specified, the certification level used is set via
|
|
|
|
|
@option{--default-cert-level}. See @option{--default-cert-level} for
|
|
|
|
|
information on the specific levels and how they are
|
|
|
|
|
used. @option{--no-ask-cert-level} disables this option. This option
|
|
|
|
|
defaults to no.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --default-cert-level @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex default-cert-level
|
2006-09-19 18:25:51 +02:00
|
|
|
|
The default to use for the check level when signing a key.
|
|
|
|
|
|
|
|
|
|
0 means you make no particular claim as to how carefully you verified
|
|
|
|
|
the key.
|
|
|
|
|
|
|
|
|
|
1 means you believe the key is owned by the person who claims to own
|
|
|
|
|
it but you could not, or did not verify the key at all. This is
|
|
|
|
|
useful for a "persona" verification, where you sign the key of a
|
|
|
|
|
pseudonymous user.
|
|
|
|
|
|
|
|
|
|
2 means you did casual verification of the key. For example, this
|
2012-03-26 15:50:13 +02:00
|
|
|
|
could mean that you verified the key fingerprint and checked the
|
2006-09-19 18:25:51 +02:00
|
|
|
|
user ID on the key against a photo ID.
|
|
|
|
|
|
|
|
|
|
3 means you did extensive verification of the key. For example, this
|
|
|
|
|
could mean that you verified the key fingerprint with the owner of the
|
|
|
|
|
key in person, and that you checked, by means of a hard to forge
|
|
|
|
|
document with a photo ID (such as a passport) that the name of the key
|
|
|
|
|
owner matches the name in the user ID on the key, and finally that you
|
|
|
|
|
verified (by exchange of email) that the email address on the key
|
|
|
|
|
belongs to the key owner.
|
|
|
|
|
|
|
|
|
|
Note that the examples given above for levels 2 and 3 are just that:
|
|
|
|
|
examples. In the end, it is up to you to decide just what "casual"
|
|
|
|
|
and "extensive" mean to you.
|
|
|
|
|
|
|
|
|
|
This option defaults to 0 (no particular claim).
|
|
|
|
|
|
|
|
|
|
@item --min-cert-level
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex min-cert-level
|
2006-09-19 18:25:51 +02:00
|
|
|
|
When building the trust database, treat any signatures with a
|
|
|
|
|
certification level below this as invalid. Defaults to 2, which
|
|
|
|
|
disregards level 1 signatures. Note that level 0 "no particular
|
|
|
|
|
claim" signatures are always accepted.
|
|
|
|
|
|
2020-02-26 18:53:22 +01:00
|
|
|
|
@item --trusted-key @var{long key ID or fingerprint}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex trusted-key
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Assume that the specified key (which must be given
|
2020-03-18 13:56:43 +01:00
|
|
|
|
as a full 8 byte key ID, a 20 byte, or 32 byte fingerprint)
|
|
|
|
|
is as trustworthy as one of
|
2006-09-19 18:25:51 +02:00
|
|
|
|
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
|
|
|
|
|
recipient's or signator's key.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --trust-model @{pgp|classic|tofu|tofu+pgp|direct|always|auto@}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex trust-model
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Set what trust model GnuPG should follow. The models are:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item pgp
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:pgp
|
2011-10-12 17:36:56 +02:00
|
|
|
|
This is the Web of Trust combined with trust signatures as used in PGP
|
|
|
|
|
5.x and later. This is the default trust model when creating a new
|
|
|
|
|
trust database.
|
|
|
|
|
|
|
|
|
|
@item classic
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:classic
|
2014-08-12 10:36:30 +02:00
|
|
|
|
This is the standard Web of Trust as introduced by PGP 2.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
@item tofu
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:tofu
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
@anchor{trust-model-tofu}
|
|
|
|
|
TOFU stands for Trust On First Use. In this trust model, the first
|
2017-07-06 21:15:45 +02:00
|
|
|
|
time a key is seen, it is memorized. If later another key with a
|
|
|
|
|
user id with the same email address is seen, both keys are marked as
|
|
|
|
|
suspect. In that case, the next time either is used, a warning is
|
2017-08-07 09:34:03 +02:00
|
|
|
|
displayed describing the conflict, why it might have occurred
|
2017-07-06 21:15:45 +02:00
|
|
|
|
(either the user generated a new key and failed to cross sign the
|
|
|
|
|
old and new keys, the key is forgery, or a man-in-the-middle attack
|
|
|
|
|
is being attempted), and the user is prompted to manually confirm
|
|
|
|
|
the validity of the key in question.
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
|
|
|
|
|
Because a potential attacker is able to control the email address
|
|
|
|
|
and thereby circumvent the conflict detection algorithm by using an
|
|
|
|
|
email address that is similar in appearance to a trusted email
|
|
|
|
|
address, whenever a message is verified, statistics about the number
|
|
|
|
|
of messages signed with the key are shown. In this way, a user can
|
|
|
|
|
easily identify attacks using fake keys for regular correspondents.
|
|
|
|
|
|
|
|
|
|
When compared with the Web of Trust, TOFU offers significantly
|
|
|
|
|
weaker security guarantees. In particular, TOFU only helps ensure
|
|
|
|
|
consistency (that is, that the binding between a key and email
|
|
|
|
|
address doesn't change). A major advantage of TOFU is that it
|
|
|
|
|
requires little maintenance to use correctly. To use the web of
|
|
|
|
|
trust properly, you need to actively sign keys and mark users as
|
|
|
|
|
trusted introducers. This is a time-consuming process and anecdotal
|
|
|
|
|
evidence suggests that even security-conscious users rarely take the
|
|
|
|
|
time to do this thoroughly and instead rely on an ad-hoc TOFU
|
|
|
|
|
process.
|
|
|
|
|
|
|
|
|
|
In the TOFU model, policies are associated with bindings between
|
|
|
|
|
keys and email addresses (which are extracted from user ids and
|
|
|
|
|
normalized). There are five policies, which can be set manually
|
|
|
|
|
using the @option{--tofu-policy} option. The default policy can be
|
2016-03-04 17:27:21 +01:00
|
|
|
|
set using the @option{--tofu-default-policy} option.
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
|
|
|
|
|
The TOFU policies are: @code{auto}, @code{good}, @code{unknown},
|
|
|
|
|
@code{bad} and @code{ask}. The @code{auto} policy is used by
|
|
|
|
|
default (unless overridden by @option{--tofu-default-policy}) and
|
|
|
|
|
marks a binding as marginally trusted. The @code{good},
|
|
|
|
|
@code{unknown} and @code{bad} policies mark a binding as fully
|
|
|
|
|
trusted, as having unknown trust or as having trust never,
|
|
|
|
|
respectively. The @code{unknown} policy is useful for just using
|
|
|
|
|
TOFU to detect conflicts, but to never assign positive trust to a
|
|
|
|
|
binding. The final policy, @code{ask} prompts the user to indicate
|
|
|
|
|
the binding's trust. If batch mode is enabled (or input is
|
|
|
|
|
inappropriate in the context), then the user is not prompted and the
|
|
|
|
|
@code{undefined} trust level is returned.
|
|
|
|
|
|
|
|
|
|
@item tofu+pgp
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:tofu+pgp
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
This trust model combines TOFU with the Web of Trust. This is done
|
|
|
|
|
by computing the trust level for each model and then taking the
|
|
|
|
|
maximum trust level where the trust levels are ordered as follows:
|
|
|
|
|
@code{unknown < undefined < marginal < fully < ultimate < expired <
|
|
|
|
|
never}.
|
|
|
|
|
|
|
|
|
|
By setting @option{--tofu-default-policy=unknown}, this model can be
|
|
|
|
|
used to implement the web of trust with TOFU's conflict detection
|
|
|
|
|
algorithm, but without its assignment of positive trust values,
|
|
|
|
|
which some security-conscious users don't like.
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item direct
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:direct
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Key validity is set directly by the user and not calculated via the
|
2017-05-18 22:34:37 +02:00
|
|
|
|
Web of Trust. This model is solely based on the key and does
|
2017-03-08 10:46:09 +01:00
|
|
|
|
not distinguish user IDs. Note that when changing to another trust
|
|
|
|
|
model the trust values assigned to a key are transformed into
|
|
|
|
|
ownertrust values, which also indicate how you trust the owner of
|
|
|
|
|
the key to sign other keys.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item always
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:always
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Skip key validation and assume that used keys are always fully
|
2014-10-03 20:19:08 +02:00
|
|
|
|
valid. You generally won't use this unless you are using some
|
2011-10-12 17:36:56 +02:00
|
|
|
|
external validation scheme. This option also suppresses the
|
|
|
|
|
"[uncertain]" tag printed with signature checks when there is no
|
2014-04-15 16:40:48 +02:00
|
|
|
|
evidence that the user ID is bound to the key. Note that this
|
|
|
|
|
trust model still does not allow the use of expired, revoked, or
|
|
|
|
|
disabled keys.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item auto
|
2017-03-08 10:46:09 +01:00
|
|
|
|
@opindex trust-model:auto
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Select the trust model depending on whatever the internal trust
|
|
|
|
|
database says. This is the default model if such a database already
|
2018-10-10 11:46:16 +02:00
|
|
|
|
exists. Note that a tofu trust model is not considered here and
|
|
|
|
|
must be enabled explicitly.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2020-03-14 18:04:47 +01:00
|
|
|
|
|
2017-08-04 21:58:46 +02:00
|
|
|
|
@item --auto-key-locate @var{mechanisms}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx --no-auto-key-locate
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex auto-key-locate
|
2006-08-16 16:54:19 +02:00
|
|
|
|
GnuPG can automatically locate and retrieve keys as needed using this
|
2017-08-04 21:58:46 +02:00
|
|
|
|
option. This happens when encrypting to an email address (in the
|
|
|
|
|
"user@@example.com" form), and there are no "user@@example.com" keys
|
|
|
|
|
on the local keyring. This option takes any number of the mechanisms
|
|
|
|
|
listed below, in the order they are to be tried. Instead of listing
|
|
|
|
|
the mechanisms as comma delimited arguments, the option may also be
|
|
|
|
|
given several times to add more mechanism. The option
|
|
|
|
|
@option{--no-auto-key-locate} or the mechanism "clear" resets the
|
|
|
|
|
list. The default is "local,wkd".
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item cert
|
2016-03-04 17:34:23 +01:00
|
|
|
|
Locate a key using DNS CERT, as specified in RFC-4398.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item pka
|
|
|
|
|
Locate a key using DNS PKA.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2015-10-06 20:31:43 +02:00
|
|
|
|
@item dane
|
|
|
|
|
Locate a key using DANE, as specified
|
|
|
|
|
in draft-ietf-dane-openpgpkey-05.txt.
|
|
|
|
|
|
2016-04-27 08:34:29 +02:00
|
|
|
|
@item wkd
|
|
|
|
|
Locate a key using the Web Key Directory protocol.
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ldap
|
|
|
|
|
Using DNS Service Discovery, check the domain in question for any LDAP
|
|
|
|
|
keyservers to use. If this fails, attempt to locate the key using the
|
|
|
|
|
PGP Universal method of checking @samp{ldap://keys.(thedomain)}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item keyserver
|
2019-05-15 09:18:28 +02:00
|
|
|
|
Locate a key using a keyserver.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item keyserver-URL
|
2019-05-15 09:18:28 +02:00
|
|
|
|
In addition, a keyserver URL as used in the @command{dirmngr}
|
|
|
|
|
configuration may be used here to query that particular keyserver.
|
2008-04-08 13:04:16 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item local
|
2016-08-02 04:19:15 +02:00
|
|
|
|
Locate the key using the local keyrings. This mechanism allows the user to
|
2011-10-12 17:36:56 +02:00
|
|
|
|
select the order a local key lookup is done. Thus using
|
|
|
|
|
@samp{--auto-key-locate local} is identical to
|
|
|
|
|
@option{--no-auto-key-locate}.
|
2008-04-08 13:04:16 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item nodefault
|
|
|
|
|
This flag disables the standard local key lookup, done before any of the
|
|
|
|
|
mechanisms defined by the @option{--auto-key-locate} are tried. The
|
|
|
|
|
position of this mechanism in the list does not matter. It is not
|
|
|
|
|
required if @code{local} is also used.
|
2008-04-08 13:04:16 +02:00
|
|
|
|
|
2014-03-17 15:36:15 +01:00
|
|
|
|
@item clear
|
2014-06-03 08:58:20 +02:00
|
|
|
|
Clear all defined mechanisms. This is useful to override
|
2018-11-21 09:20:56 +01:00
|
|
|
|
mechanisms given in a config file. Note that a @code{nodefault} in
|
|
|
|
|
@var{mechanisms} will also be cleared unless it is given after the
|
|
|
|
|
@code{clear}.
|
2014-03-17 15:36:15 +01:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2017-08-04 21:58:46 +02:00
|
|
|
|
|
2020-03-14 18:04:47 +01:00
|
|
|
|
@item --auto-key-import
|
|
|
|
|
@itemx --no-auto-key-import
|
|
|
|
|
@opindex auto-key-import
|
|
|
|
|
@opindex no-auto-key-import
|
|
|
|
|
This is an offline mechanism to get a missing key for signature
|
|
|
|
|
verification and for later encryption to this key. If this option is
|
2020-03-14 19:34:18 +01:00
|
|
|
|
enabled and a signature includes an embedded key, that key is
|
|
|
|
|
used to verify the signature and on verification success the key is
|
2020-03-14 18:04:47 +01:00
|
|
|
|
imported. The default is @option{--no-auto-key-import}.
|
|
|
|
|
|
|
|
|
|
On the sender (signing) site the option @option{--include-key-block}
|
|
|
|
|
needs to be used to put the public part of the signing key as “Key
|
|
|
|
|
Block subpacket” into the signature.
|
|
|
|
|
|
2016-06-13 11:32:38 +02:00
|
|
|
|
@item --auto-key-retrieve
|
|
|
|
|
@itemx --no-auto-key-retrieve
|
|
|
|
|
@opindex auto-key-retrieve
|
|
|
|
|
@opindex no-auto-key-retrieve
|
2017-08-04 21:58:46 +02:00
|
|
|
|
These options enable or disable the automatic retrieving of keys from
|
|
|
|
|
a keyserver when verifying signatures made by keys that are not on the
|
2017-08-11 08:26:52 +02:00
|
|
|
|
local keyring. The default is @option{--no-auto-key-retrieve}.
|
2016-06-13 11:32:38 +02:00
|
|
|
|
|
2019-07-05 09:31:58 +02:00
|
|
|
|
The order of methods tried to lookup the key is:
|
|
|
|
|
|
2020-03-14 18:04:47 +01:00
|
|
|
|
1. If the option @option{--auto-key-import} is set and the signatures
|
2020-03-14 19:34:18 +01:00
|
|
|
|
includes an embedded key, that key is used to verify the signature and
|
|
|
|
|
on verification success that key is imported.
|
2020-03-14 18:04:47 +01:00
|
|
|
|
|
|
|
|
|
2. If a preferred keyserver is specified in the signature and the
|
2019-07-05 09:31:58 +02:00
|
|
|
|
option @option{honor-keyserver-url} is active (which is not the
|
|
|
|
|
default), that keyserver is tried. Note that the creator of the
|
|
|
|
|
signature uses the option @option{--sig-keyserver-url} to specify the
|
|
|
|
|
preferred keyserver for data signatures.
|
|
|
|
|
|
2020-03-14 18:04:47 +01:00
|
|
|
|
3. If the signature has the Signer's UID set (e.g. using
|
2019-07-05 09:31:58 +02:00
|
|
|
|
@option{--sender} while creating the signature) a Web Key Directory
|
|
|
|
|
(WKD) lookup is done. This is the default configuration but can be
|
|
|
|
|
disabled by removing WKD from the auto-key-locate list or by using the
|
|
|
|
|
option @option{--disable-signer-uid}.
|
|
|
|
|
|
2020-03-14 18:04:47 +01:00
|
|
|
|
4. If the option @option{honor-pka-record} is active, the legacy PKA
|
2019-07-05 09:31:58 +02:00
|
|
|
|
method is used.
|
|
|
|
|
|
2020-03-14 18:04:47 +01:00
|
|
|
|
5. If any keyserver is configured and the Issuer Fingerprint is part
|
2019-07-05 09:31:58 +02:00
|
|
|
|
of the signature (since GnuPG 2.1.16), the configured keyservers are
|
|
|
|
|
tried.
|
2016-06-13 11:32:38 +02:00
|
|
|
|
|
|
|
|
|
Note that this option makes a "web bug" like behavior possible.
|
|
|
|
|
Keyserver or Web Key Directory operators can see which keys you
|
|
|
|
|
request, so by sending you a message signed by a brand new key (which
|
|
|
|
|
you naturally will not have on your local keyring), the operator can
|
|
|
|
|
tell both your IP address and the time when you verified the
|
|
|
|
|
signature.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --keyid-format @{none|short|0xshort|long|0xlong@}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyid-format
|
2016-06-06 16:00:50 +02:00
|
|
|
|
Select how to display key IDs. "none" does not show the key ID at all
|
|
|
|
|
but shows the fingerprint in a separate line. "short" is the
|
|
|
|
|
traditional 8-character key ID. "long" is the more accurate (but less
|
|
|
|
|
convenient) 16-character key ID. Add an "0x" to either to include an
|
|
|
|
|
"0x" at the beginning of the key ID, as in 0x99242560. Note that this
|
|
|
|
|
option is ignored if the option @option{--with-colons} is used.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --keyserver @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyserver
|
2015-10-05 17:52:28 +02:00
|
|
|
|
This option is deprecated - please use the @option{--keyserver} in
|
|
|
|
|
@file{dirmngr.conf} instead.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{name} as your keyserver. This is the server that
|
2016-09-23 13:40:55 +02:00
|
|
|
|
@option{--receive-keys}, @option{--send-keys}, and @option{--search-keys}
|
2006-09-25 20:29:20 +02:00
|
|
|
|
will communicate with to receive keys from, send keys to, and search for
|
2017-07-24 21:29:51 +02:00
|
|
|
|
keys on. The format of the @var{name} is a URI:
|
2006-09-25 20:29:20 +02:00
|
|
|
|
`scheme:[//]keyservername[:port]' The scheme is the type of keyserver:
|
|
|
|
|
"hkp" for the HTTP (or compatible) keyservers, "ldap" for the LDAP
|
|
|
|
|
keyservers, or "mailto" for the Graff email keyserver. Note that your
|
|
|
|
|
particular installation of GnuPG may have other keyserver types
|
|
|
|
|
available as well. Keyserver schemes are case-insensitive. After the
|
|
|
|
|
keyserver name, optional keyserver configuration options may be
|
|
|
|
|
provided. These are the same as the global @option{--keyserver-options}
|
|
|
|
|
from below, but apply only to this particular keyserver.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
Most keyservers synchronize with each other, so there is generally no
|
|
|
|
|
need to send keys to more than one server. The keyserver
|
2008-04-08 13:04:16 +02:00
|
|
|
|
@code{hkp://keys.gnupg.net} uses round robin DNS to give a different
|
2006-08-16 16:54:19 +02:00
|
|
|
|
keyserver each time you use it.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --keyserver-options @{@var{name}=@var{value}@}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex keyserver-options
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This is a space or comma delimited string that gives options for the
|
2009-08-14 21:43:26 +02:00
|
|
|
|
keyserver. Options can be prefixed with a `no-' to give the opposite
|
|
|
|
|
meaning. Valid import-options or export-options may be used here as
|
|
|
|
|
well to apply to importing (@option{--recv-key}) or exporting
|
|
|
|
|
(@option{--send-key}) a key from a keyserver. While not all options
|
|
|
|
|
are available for all keyserver types, some common options are:
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item include-revoked
|
|
|
|
|
When searching for a key with @option{--search-keys}, include keys that
|
|
|
|
|
are marked on the keyserver as revoked. Note that not all keyservers
|
|
|
|
|
differentiate between revoked and unrevoked keys, and for such
|
|
|
|
|
keyservers this option is meaningless. Note also that most keyservers do
|
|
|
|
|
not have cryptographic verification of key revocations, and so turning
|
|
|
|
|
this option off may result in skipping keys that are incorrectly marked
|
|
|
|
|
as revoked.
|
|
|
|
|
|
|
|
|
|
@item include-disabled
|
|
|
|
|
When searching for a key with @option{--search-keys}, include keys that
|
|
|
|
|
are marked on the keyserver as disabled. Note that this option is not
|
|
|
|
|
used with HKP keyservers.
|
|
|
|
|
|
|
|
|
|
@item auto-key-retrieve
|
2017-03-01 14:41:47 +01:00
|
|
|
|
This is an obsolete alias for the option @option{auto-key-retrieve}.
|
|
|
|
|
Please do not use it; it will be removed in future versions..
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item honor-keyserver-url
|
|
|
|
|
When using @option{--refresh-keys}, if the key in question has a preferred
|
|
|
|
|
keyserver URL, then use that preferred keyserver to refresh the key
|
|
|
|
|
from. In addition, if auto-key-retrieve is set, and the signature
|
|
|
|
|
being verified has a preferred keyserver URL, then use that preferred
|
2015-04-21 15:46:13 +02:00
|
|
|
|
keyserver to fetch the key from. Note that this option introduces a
|
|
|
|
|
"web bug": The creator of the key can see when the keys is
|
|
|
|
|
refreshed. Thus this option is not enabled by default.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item honor-pka-record
|
2016-06-13 11:32:38 +02:00
|
|
|
|
If @option{--auto-key-retrieve} is used, and the signature being
|
|
|
|
|
verified has a PKA record, then use the PKA information to fetch
|
|
|
|
|
the key. Defaults to "yes".
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item include-subkeys
|
|
|
|
|
When receiving a key, include subkeys as potential targets. Note that
|
|
|
|
|
this option is not used with HKP keyservers, as they do not support
|
|
|
|
|
retrieving keys by subkey id.
|
|
|
|
|
|
|
|
|
|
@item timeout
|
2019-01-08 11:21:07 +01:00
|
|
|
|
@itemx http-proxy=@var{value}
|
|
|
|
|
@itemx verbose
|
|
|
|
|
@itemx debug
|
|
|
|
|
@itemx check-cert
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ca-cert-file
|
2019-01-08 11:21:07 +01:00
|
|
|
|
These options have no more function since GnuPG 2.1. Use the
|
2015-06-08 19:27:08 +02:00
|
|
|
|
@code{dirmngr} configuration options instead.
|
2014-05-05 16:09:45 +02:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2019-07-04 15:45:39 +02:00
|
|
|
|
The default list of options is: "self-sigs-only, import-clean,
|
|
|
|
|
repair-keys, repair-pks-subkey-bug, export-attributes,
|
|
|
|
|
honor-pka-record".
|
|
|
|
|
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --completes-needed @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex compliant-needed
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Number of completely trusted users to introduce a new
|
|
|
|
|
key signer (defaults to 1).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --marginals-needed @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex marginals-needed
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Number of marginally trusted users to introduce a new
|
|
|
|
|
key signer (defaults to 3)
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --tofu-default-policy @{auto|good|unknown|bad|ask@}
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
@opindex tofu-default-policy
|
|
|
|
|
The default TOFU policy (defaults to @code{auto}). For more
|
2016-03-04 16:51:22 +01:00
|
|
|
|
information about the meaning of this option, @pxref{trust-model-tofu}.
|
g10: Add TOFU support.
* configure.ac: Check for sqlite3.
(SQLITE3_CFLAGS): AC_SUBST it.
(SQLITE3_LIBS): Likewise.
* g10/Makefile.am (AM_CFLAGS): Add $(SQLITE3_CFLAGS).
(gpg2_SOURCES): Add tofu.h and tofu.c.
(gpg2_LDADD): Add $(SQLITE3_LIBS).
* g10/tofu.c: New file.
* g10/tofu.h: New file.
* g10/options.h (trust_model): Define TM_TOFU and TM_TOFU_PGP.
(tofu_db_format): Define.
* g10/packet.h (PKT_signature): Add fields digest and digest_len.
* g10/gpg.c: Include "tofu.h".
(cmd_and_opt_values): Declare aTOFUPolicy, oTOFUDefaultPolicy,
oTOFUDBFormat.
(opts): Add them.
(parse_trust_model): Recognize the tofu and tofu+pgp trust models.
(parse_tofu_policy): New function.
(parse_tofu_db_format): New function.
(main): Initialize opt.tofu_default_policy and opt.tofu_db_format.
Handle aTOFUPolicy, oTOFUDefaultPolicy and oTOFUDBFormat.
* g10/mainproc.c (do_check_sig): If the signature is good, copy the
hash to SIG->DIGEST and set SIG->DIGEST_LEN appropriately.
* g10/trustdb.h (get_validity): Add arguments sig and may_ask. Update
callers.
(tdb_get_validity_core): Add arguments sig and may_ask. Update
callers.
* g10/trust.c (get_validity) Add arguments sig and may_ask. Pass them
to tdb_get_validity_core.
* g10/trustdb.c: Include "tofu.h".
(trust_model_string): Handle TM_TOFU and TM_TOFU_PGP.
(tdb_get_validity_core): Add arguments sig and may_ask. If
OPT.TRUST_MODEL is TM_TOFU or TM_TOFU_PGP, compute the TOFU trust
level. Combine it with the computed PGP trust level, if appropriate.
* g10/keyedit.c: Include "tofu.h".
(show_key_with_all_names_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/keylist.c: Include "tofu.h".
(public_key_list): Also show the PGP stats if the trust model is
TM_TOFU_PGP.
(list_keyblock_colon): If the trust mode is tofu or
tofu+pgp, then show the trust policy.
* g10/pkclist.c: Include "tofu.h".
* g10/gpgv.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* g10/test-stubs.c (get_validity): Add arguments sig and may_ask.
(enum tofu_policy): Define.
(tofu_get_policy): New stub.
(tofu_policy_str): Likewise.
* doc/DETAILS: Describe the TOFU Policy field.
* doc/gpg.texi: Document --tofu-set-policy, --trust-model=tofu,
--trust-model=tofu+pgp, --tofu-default-policy and --tofu-db-format.
* tests/openpgp/Makefile.am (TESTS): Add tofu.test.
(TEST_FILES): Add tofu-keys.asc, tofu-keys-secret.asc,
tofu-2183839A-1.txt, tofu-BC15C85A-1.txt and tofu-EE37CF96-1.txt.
(CLEANFILES): Add tofu.db.
(clean-local): Add tofu.d.
* tests/openpgp/tofu.test: New file.
* tests/openpgp/tofu-2183839A-1.txt: New file.
* tests/openpgp/tofu-BC15C85A-1.txt: New file.
* tests/openpgp/tofu-EE37CF96-1.txt: New file.
* tests/openpgp/tofu-keys.asc: New file.
* tests/openpgp/tofu-keys-secret.asc: New file.
--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
2015-10-18 18:44:05 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --max-cert-depth @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex max-cert-depth
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Maximum depth of a certification chain (default is 5).
|
|
|
|
|
|
|
|
|
|
@item --no-sig-cache
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-sig-cache
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Do not cache the verification status of key signatures.
|
|
|
|
|
Caching gives a much better performance in key listings. However, if
|
2016-11-17 10:46:43 +01:00
|
|
|
|
you suspect that your public keyring is not safe against write
|
2006-09-19 18:25:51 +02:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
@item --auto-check-trustdb
|
|
|
|
|
@itemx --no-auto-check-trustdb
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex auto-check-trustdb
|
2006-09-19 18:25:51 +02:00
|
|
|
|
If GnuPG feels that its information about the Web of Trust has to be
|
2006-09-25 20:29:20 +02:00
|
|
|
|
updated, it automatically runs the @option{--check-trustdb} command
|
|
|
|
|
internally. This may be a time consuming
|
|
|
|
|
process. @option{--no-auto-check-trustdb} disables this option.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --use-agent
|
|
|
|
|
@itemx --no-use-agent
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex use-agent
|
2006-09-22 16:38:38 +02:00
|
|
|
|
This is dummy option. @command{@gpgname} always requires the agent.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --gpg-agent-info
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex gpg-agent-info
|
2016-04-05 15:15:28 +02:00
|
|
|
|
This is dummy option. It has no effect when used with @command{@gpgname}.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2014-03-12 18:24:52 +01:00
|
|
|
|
|
|
|
|
|
@item --agent-program @var{file}
|
|
|
|
|
@opindex agent-program
|
|
|
|
|
Specify an agent program to be used for secret key operations. The
|
2014-10-30 09:55:51 +01:00
|
|
|
|
default value is determined by running @command{gpgconf} with the
|
|
|
|
|
option @option{--list-dirs}. Note that the pipe symbol (@code{|}) is
|
|
|
|
|
used for a regression test suite hack and may thus not be used in the
|
|
|
|
|
file name.
|
2014-03-12 18:24:52 +01:00
|
|
|
|
|
|
|
|
|
@item --dirmngr-program @var{file}
|
|
|
|
|
@opindex dirmngr-program
|
|
|
|
|
Specify a dirmngr program to be used for keyserver access. The
|
2016-06-14 14:57:49 +02:00
|
|
|
|
default value is @file{@value{BINDIR}/dirmngr}.
|
2014-03-12 18:24:52 +01:00
|
|
|
|
|
2017-08-08 11:43:22 +02:00
|
|
|
|
@item --disable-dirmngr
|
|
|
|
|
Entirely disable the use of the Dirmngr.
|
|
|
|
|
|
2014-11-28 09:44:19 +01:00
|
|
|
|
@item --no-autostart
|
|
|
|
|
@opindex no-autostart
|
|
|
|
|
Do not start the gpg-agent or the dirmngr if it has not yet been
|
|
|
|
|
started and its service is required. This option is mostly useful on
|
|
|
|
|
machines where the connection to gpg-agent has been redirected to
|
|
|
|
|
another machines. If dirmngr is required on the remote machine, it
|
|
|
|
|
may be started manually using @command{gpgconf --launch dirmngr}.
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --lock-once
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex lock-once
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Lock the databases the first time a lock is requested
|
|
|
|
|
and do not release the lock until the process
|
|
|
|
|
terminates.
|
|
|
|
|
|
|
|
|
|
@item --lock-multiple
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex lock-multiple
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Release the locks every time a lock is no longer
|
2006-09-25 20:29:20 +02:00
|
|
|
|
needed. Use this to override a previous @option{--lock-once}
|
2006-09-19 18:25:51 +02:00
|
|
|
|
from a config file.
|
|
|
|
|
|
|
|
|
|
@item --lock-never
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex lock-never
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Disable locking entirely. This option should be used only in very
|
|
|
|
|
special environments, where it can be assured that only one process
|
|
|
|
|
is accessing 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.
|
|
|
|
|
|
|
|
|
|
@item --exit-on-status-write-error
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex exit-on-status-write-error
|
2006-09-19 18:25:51 +02:00
|
|
|
|
This option will cause write errors on the status FD to immediately
|
2006-09-25 20:29:20 +02:00
|
|
|
|
terminate the process. That should in fact be the default but it never
|
|
|
|
|
worked this way and thus we need an option to enable this, so that the
|
|
|
|
|
change won't break applications which close their end of a status fd
|
|
|
|
|
connected pipe too early. Using this option along with
|
|
|
|
|
@option{--enable-progress-filter} may be used to cleanly cancel long
|
|
|
|
|
running gpg operations.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --limit-card-insert-tries @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex limit-card-insert-tries
|
2017-07-24 21:29:51 +02:00
|
|
|
|
With @var{n} greater than 0 the number of prompts asking to insert a
|
2006-09-19 18:25:51 +02:00
|
|
|
|
smartcard gets limited to N-1. Thus with a value of 1 gpg won't at
|
|
|
|
|
all ask to insert a card if none has been inserted at startup. This
|
|
|
|
|
option is useful in the configuration file in case an application does
|
|
|
|
|
not know about the smartcard support and waits ad infinitum for an
|
|
|
|
|
inserted card.
|
|
|
|
|
|
|
|
|
|
@item --no-random-seed-file
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-random-seed-file
|
2006-09-19 18:25:51 +02:00
|
|
|
|
GnuPG uses a file to store its internal random pool over invocations.
|
|
|
|
|
This makes random generation faster; however sometimes write operations
|
|
|
|
|
are not desired. This option can be used to achieve that with the cost of
|
|
|
|
|
slower random generation.
|
|
|
|
|
|
|
|
|
|
@item --no-greeting
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-greeting
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Suppress the initial copyright message.
|
|
|
|
|
|
|
|
|
|
@item --no-secmem-warning
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-secmem-warning
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Suppress the warning about "using insecure memory".
|
|
|
|
|
|
|
|
|
|
@item --no-permission-warning
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex permission-warning
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Suppress the warning about unsafe file and home directory (@option{--homedir})
|
2006-09-19 18:25:51 +02:00
|
|
|
|
permissions. Note that the permission checks that GnuPG performs are
|
|
|
|
|
not intended to be authoritative, but rather they simply warn about
|
|
|
|
|
certain common permission problems. Do not assume that the lack of a
|
|
|
|
|
warning means that your system is secure.
|
|
|
|
|
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Note that the warning for unsafe @option{--homedir} permissions cannot be
|
2006-09-19 18:25:51 +02:00
|
|
|
|
suppressed in the gpg.conf file, as this would allow an attacker to
|
|
|
|
|
place an unsafe gpg.conf file in place, and use this file to suppress
|
2006-09-25 20:29:20 +02:00
|
|
|
|
warnings about itself. The @option{--homedir} permissions warning may only be
|
2006-09-19 18:25:51 +02:00
|
|
|
|
suppressed on the command line.
|
|
|
|
|
|
|
|
|
|
@item --require-secmem
|
|
|
|
|
@itemx --no-require-secmem
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex require-secmem
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Refuse to run if GnuPG cannot get secure memory. Defaults to no
|
|
|
|
|
(i.e. run, but give a warning).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@item --require-cross-certification
|
|
|
|
|
@itemx --no-require-cross-certification
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex require-cross-certification
|
2006-09-19 18:25:51 +02:00
|
|
|
|
When verifying a signature made from a subkey, ensure that the cross
|
2006-09-25 20:29:20 +02:00
|
|
|
|
certification "back signature" on the subkey is present and valid. This
|
|
|
|
|
protects against a subtle attack against subkeys that can sign.
|
|
|
|
|
Defaults to @option{--require-cross-certification} for
|
|
|
|
|
@command{@gpgname}.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --expert
|
|
|
|
|
@itemx --no-expert
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex expert
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Allow the user to do certain nonsensical or "silly" things like
|
|
|
|
|
signing an expired or revoked key, or certain potentially incompatible
|
|
|
|
|
things like generating unusual key types. This also disables certain
|
|
|
|
|
warning messages about potentially incompatible actions. As the name
|
|
|
|
|
implies, this option is for experts only. If you don't fully
|
|
|
|
|
understand the implications of what it allows you to do, leave this
|
2006-09-25 20:29:20 +02:00
|
|
|
|
off. @option{--no-expert} disables this option.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ******** KEY RELATED OPTIONS ************
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node GPG Key related Options
|
|
|
|
|
@subsection Key related options
|
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
|
|
|
|
|
@item --recipient @var{name}
|
|
|
|
|
@itemx -r
|
|
|
|
|
@opindex recipient
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Encrypt for user id @var{name}. If this option or
|
|
|
|
|
@option{--hidden-recipient} is not specified, GnuPG asks for the user-id
|
|
|
|
|
unless @option{--default-recipient} is given.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --hidden-recipient @var{name}
|
|
|
|
|
@itemx -R
|
|
|
|
|
@opindex hidden-recipient
|
|
|
|
|
Encrypt for user ID @var{name}, but hide the key ID of this user's
|
|
|
|
|
key. This option helps to hide the receiver of the message and is a
|
|
|
|
|
limited countermeasure against traffic analysis. If this option or
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--recipient} is not specified, GnuPG asks for the user ID unless
|
|
|
|
|
@option{--default-recipient} is given.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2016-07-06 14:03:50 +02:00
|
|
|
|
@item --recipient-file @var{file}
|
|
|
|
|
@itemx -f
|
|
|
|
|
@opindex recipient-file
|
|
|
|
|
This option is similar to @option{--recipient} except that it
|
|
|
|
|
encrypts to a key stored in the given file. @var{file} must be the
|
2016-12-06 12:16:15 +01:00
|
|
|
|
name of a file containing exactly one key. @command{@gpgname} assumes that
|
2016-07-06 14:03:50 +02:00
|
|
|
|
the key in this file is fully valid.
|
|
|
|
|
|
|
|
|
|
@item --hidden-recipient-file @var{file}
|
|
|
|
|
@itemx -F
|
|
|
|
|
@opindex hidden-recipient-file
|
|
|
|
|
This option is similar to @option{--hidden-recipient} except that it
|
|
|
|
|
encrypts to a key stored in the given file. @var{file} must be the
|
2016-12-06 12:16:15 +01:00
|
|
|
|
name of a file containing exactly one key. @command{@gpgname} assumes that
|
2016-07-06 14:03:50 +02:00
|
|
|
|
the key in this file is fully valid.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --encrypt-to @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex encrypt-to
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as @option{--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
|
|
|
|
|
recipients given either by use of @option{--recipient} or by the asked
|
|
|
|
|
user id. No trust checking is performed for these user ids and even
|
|
|
|
|
disabled keys can be used.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --hidden-encrypt-to @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex hidden-encrypt-to
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as @option{--hidden-recipient} but this one is intended for use in the
|
2006-09-19 18:25:51 +02:00
|
|
|
|
options file and may be used with your own user-id as a hidden
|
|
|
|
|
"encrypt-to-self". These keys are only used when there are other
|
2006-09-25 20:29:20 +02:00
|
|
|
|
recipients given either by use of @option{--recipient} or by the asked user id.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
No trust checking is performed for these user ids and even disabled
|
|
|
|
|
keys can be used.
|
|
|
|
|
|
|
|
|
|
@item --no-encrypt-to
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-encrypt-to
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Disable the use of all @option{--encrypt-to} and
|
|
|
|
|
@option{--hidden-encrypt-to} keys.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --group @{@var{name}=@var{value}@}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex group
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Sets up a named group, which is similar to aliases in email programs.
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Any time the group name is a recipient (@option{-r} or
|
|
|
|
|
@option{--recipient}), it will be expanded to the values
|
|
|
|
|
specified. Multiple groups with the same name are automatically merged
|
|
|
|
|
into a single group.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
The values are @code{key IDs} or fingerprints, but any key description
|
|
|
|
|
is accepted. Note that a value with spaces in it will be treated as
|
|
|
|
|
two different values. Note also there is only one level of expansion
|
2006-09-25 20:29:20 +02:00
|
|
|
|
--- you cannot make an group that points to another group. When used
|
2006-09-19 18:25:51 +02:00
|
|
|
|
from the command line, it may be necessary to quote the argument to
|
|
|
|
|
this option to prevent the shell from treating it as multiple
|
|
|
|
|
arguments.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --ungroup @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ungroup
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Remove a given entry from the @option{--group} list.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --no-groups
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-groups
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Remove all entries from the @option{--group} list.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --local-user @var{name}
|
|
|
|
|
@itemx -u
|
|
|
|
|
@opindex local-user
|
|
|
|
|
Use @var{name} as the key to sign with. Note that this option overrides
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--default-key}.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2016-08-18 10:08:34 +02:00
|
|
|
|
@item --sender @var{mbox}
|
|
|
|
|
@opindex sender
|
|
|
|
|
This option has two purposes. @var{mbox} must either be a complete
|
2020-06-08 20:13:25 +02:00
|
|
|
|
user ID containing a proper mail address or just a plain mail address.
|
|
|
|
|
The option can be given multiple times.
|
|
|
|
|
|
|
|
|
|
When creating a signature this option tells gpg the signing key's user
|
|
|
|
|
id used to make the signature and embeds that user ID into the created
|
|
|
|
|
signature (using OpenPGP's ``Signer's User ID'' subpacket). If the
|
|
|
|
|
option is given multiple times a suitable user ID is picked. However,
|
|
|
|
|
if the signing key was specified directly by using a mail address
|
|
|
|
|
(i.e. not by using a fingerprint or key ID) this option is used and
|
|
|
|
|
the mail address is embedded in the created signature.
|
|
|
|
|
|
|
|
|
|
When verifying a signature @var{mbox} is used to restrict the
|
|
|
|
|
information printed by the TOFU code to matching user IDs. If the
|
|
|
|
|
option is used and the signature contains a ``Signer's User ID''
|
|
|
|
|
subpacket that information is is also used to restrict the printed
|
|
|
|
|
information. Note that GnuPG considers only the mail address part of
|
|
|
|
|
a User ID.
|
|
|
|
|
|
|
|
|
|
If this option or the said subpacket is available the TRUST lines as
|
|
|
|
|
printed by option @option{status-fd} correspond to the corresponding
|
|
|
|
|
User ID; if no User ID is known the TRUST lines are computed directly
|
|
|
|
|
on the key and do not give any information about the User ID. In the
|
|
|
|
|
latter case it his highly recommended to scripts and other frontends
|
|
|
|
|
to evaluate the VALIDSIG line, retrieve the key and print all User IDs
|
|
|
|
|
along with their validity (trust) information.
|
|
|
|
|
|
2016-08-18 10:08:34 +02:00
|
|
|
|
|
2010-10-13 17:57:08 +02:00
|
|
|
|
@item --try-secret-key @var{name}
|
|
|
|
|
@opindex try-secret-key
|
|
|
|
|
For hidden recipients GPG needs to know the keys to use for trial
|
|
|
|
|
decryption. The key set with @option{--default-key} is always tried
|
2016-08-02 04:19:15 +02:00
|
|
|
|
first, but this is often not sufficient. This option allows setting more
|
2010-10-13 17:57:08 +02:00
|
|
|
|
keys to be used for trial decryption. Although any valid user-id
|
|
|
|
|
specification may be used for @var{name} it makes sense to use at least
|
|
|
|
|
the long keyid to avoid ambiguities. Note that gpg-agent might pop up a
|
|
|
|
|
pinentry for a lot keys to do the trial decryption. If you want to stop
|
|
|
|
|
all further trial decryption you may use close-window button instead of
|
|
|
|
|
the cancel button.
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --try-all-secrets
|
2009-11-23 20:18:04 +01:00
|
|
|
|
@opindex try-all-secrets
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Don't look at the key ID as stored in the message but try all secret
|
|
|
|
|
keys in turn to find the right decryption key. This option forces the
|
|
|
|
|
behaviour as used by anonymous recipients (created by using
|
2010-10-13 17:57:08 +02:00
|
|
|
|
@option{--throw-keyids} or @option{--hidden-recipient}) and might come
|
|
|
|
|
handy in case where an encrypted message contains a bogus key ID.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2009-11-23 20:18:04 +01:00
|
|
|
|
@item --skip-hidden-recipients
|
|
|
|
|
@itemx --no-skip-hidden-recipients
|
|
|
|
|
@opindex skip-hidden-recipients
|
|
|
|
|
@opindex no-skip-hidden-recipients
|
|
|
|
|
During decryption skip all anonymous recipients. This option helps in
|
2018-03-07 00:28:48 +01:00
|
|
|
|
the case that people use the hidden recipients feature to hide their
|
|
|
|
|
own encrypt-to key from others. If one has many secret keys this
|
2009-11-23 20:18:04 +01:00
|
|
|
|
may lead to a major annoyance because all keys are tried in turn to
|
2015-01-22 17:49:55 +01:00
|
|
|
|
decrypt something which was not really intended for it. The drawback
|
2009-11-23 20:18:04 +01:00
|
|
|
|
of this option is that it is currently not possible to decrypt a
|
|
|
|
|
message which includes real anonymous recipients.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ******** INPUT AND OUTPUT ***************
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node GPG Input and Output
|
|
|
|
|
@subsection Input and Output
|
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
|
|
|
|
|
@item --armor
|
|
|
|
|
@itemx -a
|
|
|
|
|
@opindex armor
|
|
|
|
|
Create ASCII armored output. The default is to create the binary
|
|
|
|
|
OpenPGP format.
|
|
|
|
|
|
|
|
|
|
@item --no-armor
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-armor
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Assume the input data is not in ASCII armored format.
|
|
|
|
|
|
|
|
|
|
@item --output @var{file}
|
|
|
|
|
@itemx -o @var{file}
|
|
|
|
|
@opindex output
|
2016-09-08 10:50:51 +02:00
|
|
|
|
Write output to @var{file}. To write to stdout use @code{-} as the
|
|
|
|
|
filename.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --max-output @var{n}
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@opindex max-output
|
|
|
|
|
This option sets a limit on the number of bytes that will be generated
|
|
|
|
|
when processing a file. Since OpenPGP supports various levels of
|
|
|
|
|
compression, it is possible that the plaintext of a given message may be
|
|
|
|
|
significantly larger than the original OpenPGP message. While GnuPG
|
|
|
|
|
works properly with such messages, there is often a desire to set a
|
|
|
|
|
maximum file size that will be generated before processing is forced to
|
|
|
|
|
stop by the OS limits. Defaults to 0, which means "no limit".
|
|
|
|
|
|
2018-01-23 19:08:16 +01:00
|
|
|
|
@item --chunk-size @var{n}
|
|
|
|
|
@opindex chunk-size
|
|
|
|
|
The AEAD encryption mode encrypts the data in chunks so that a
|
|
|
|
|
receiving side can check for transmission errors or tampering at the
|
|
|
|
|
end of each chunk and does not need to delay this until all data has
|
|
|
|
|
been received. The used chunk size is 2^@var{n} byte. The lowest
|
2018-07-24 09:50:02 +02:00
|
|
|
|
allowed value for @var{n} is 6 (64 byte) and the largest is the
|
|
|
|
|
default of 27 which creates chunks not larger than 128 MiB.
|
2018-01-23 19:08:16 +01:00
|
|
|
|
|
2016-08-11 21:31:12 +02:00
|
|
|
|
@item --input-size-hint @var{n}
|
|
|
|
|
@opindex input-size-hint
|
|
|
|
|
This option can be used to tell GPG the size of the input data in
|
|
|
|
|
bytes. @var{n} must be a positive base-10 number. This option is
|
2016-03-04 16:20:47 +01:00
|
|
|
|
only useful if the input is not taken from a file. GPG may use this
|
2016-08-11 21:31:12 +02:00
|
|
|
|
hint to optimize its buffer allocation strategy. It is also used by
|
|
|
|
|
the @option{--status-fd} line ``PROGRESS'' to provide a value for
|
|
|
|
|
``total'' if that is not available by other means.
|
|
|
|
|
|
2017-07-24 21:07:03 +02:00
|
|
|
|
@item --key-origin @var{string}[,@var{url}]
|
2017-07-13 17:28:32 +02:00
|
|
|
|
@opindex key-origin
|
|
|
|
|
gpg can track the origin of a key. Certain origins are implicitly
|
|
|
|
|
known (e.g. keyserver, web key directory) and set. For a standard
|
2017-07-24 21:07:03 +02:00
|
|
|
|
import the origin of the keys imported can be set with this option.
|
|
|
|
|
To list the possible values use "help" for @var{string}. Some origins
|
|
|
|
|
can store an optional @var{url} argument. That URL can appended to
|
|
|
|
|
@var{string} after a comma.
|
2017-07-13 17:28:32 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --import-options @var{parameters}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex import-options
|
2006-09-19 18:25:51 +02:00
|
|
|
|
This is a space or comma delimited string that gives options for
|
|
|
|
|
importing keys. Options can be prepended with a `no-' to give the
|
|
|
|
|
opposite meaning. The options are:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item import-local-sigs
|
|
|
|
|
Allow importing key signatures marked as "local". This is not
|
|
|
|
|
generally useful unless a shared keyring scheme is being used.
|
|
|
|
|
Defaults to no.
|
|
|
|
|
|
2015-02-26 15:06:00 +01:00
|
|
|
|
@item keep-ownertrust
|
2014-11-12 09:56:40 +01:00
|
|
|
|
Normally possible still existing ownertrust values of a key are
|
|
|
|
|
cleared if a key is imported. This is in general desirable so that
|
|
|
|
|
a formerly deleted key does not automatically gain an ownertrust
|
|
|
|
|
values merely due to import. On the other hand it is sometimes
|
|
|
|
|
necessary to re-import a trusted set of keys again but keeping
|
2016-09-14 23:23:09 +02:00
|
|
|
|
already assigned ownertrust values. This can be achieved by using
|
2014-11-12 09:56:40 +01:00
|
|
|
|
this option.
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item repair-pks-subkey-bug
|
|
|
|
|
During import, attempt to repair the damage caused by the PKS keyserver
|
|
|
|
|
bug (pre version 0.9.6) that mangles keys with multiple subkeys. Note
|
|
|
|
|
that this cannot completely repair the damaged key as some crucial data
|
|
|
|
|
is removed by the keyserver, but it does at least give you back one
|
|
|
|
|
subkey. Defaults to no for regular @option{--import} and to yes for
|
2016-09-23 13:40:55 +02:00
|
|
|
|
keyserver @option{--receive-keys}.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
2016-06-23 19:25:53 +02:00
|
|
|
|
@item import-show
|
2017-08-04 17:03:03 +02:00
|
|
|
|
@itemx show-only
|
2016-06-23 19:25:53 +02:00
|
|
|
|
Show a listing of the key as imported right before it is stored.
|
|
|
|
|
This can be combined with the option @option{--dry-run} to only look
|
2017-08-04 17:03:03 +02:00
|
|
|
|
at keys; the option @option{show-only} is a shortcut for this
|
2018-06-06 11:50:58 +02:00
|
|
|
|
combination. The command @option{--show-keys} is another shortcut
|
|
|
|
|
for this. Note that suffixes like '#' for "sec" and "sbb" lines
|
2017-10-19 17:12:36 +02:00
|
|
|
|
may or may not be printed.
|
2016-06-23 19:25:53 +02:00
|
|
|
|
|
2016-06-24 13:11:37 +02:00
|
|
|
|
@item import-export
|
|
|
|
|
Run the entire import code but instead of storing the key to the
|
2016-07-12 16:11:20 +02:00
|
|
|
|
local keyring write it to the output. The export options
|
|
|
|
|
@option{export-pka} and @option{export-dane} affect the output. This
|
|
|
|
|
option can be used to remove all invalid parts from a key without the
|
|
|
|
|
need to store it.
|
2016-06-24 13:11:37 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item merge-only
|
|
|
|
|
During import, allow key updates to existing keys, but do not allow
|
|
|
|
|
any new keys to be imported. Defaults to no.
|
|
|
|
|
|
|
|
|
|
@item import-clean
|
|
|
|
|
After import, compact (remove all signatures except the
|
|
|
|
|
self-signature) any user IDs from the new key that are not usable.
|
|
|
|
|
Then, remove any signatures from the new key that are not usable.
|
|
|
|
|
This includes signatures that were issued by keys that are not present
|
|
|
|
|
on the keyring. This option is the same as running the @option{--edit-key}
|
|
|
|
|
command "clean" after import. Defaults to no.
|
|
|
|
|
|
2018-10-02 11:02:08 +02:00
|
|
|
|
@item import-drop-uids
|
|
|
|
|
Do not import any user ids or their binding signatures. This option
|
|
|
|
|
can be used to update only the subkeys or other non-user id related
|
|
|
|
|
information.
|
|
|
|
|
|
2019-07-01 15:14:59 +02:00
|
|
|
|
@item self-sigs-only
|
2019-11-07 15:07:25 +01:00
|
|
|
|
Accept only self-signatures while importing a key. All other key
|
|
|
|
|
signatures are skipped at an early import stage. This option can be
|
|
|
|
|
used with @code{keyserver-options} to mitigate attempts to flood a
|
|
|
|
|
key with bogus signatures from a keyserver. The drawback is that
|
|
|
|
|
all other valid key signatures, as required by the Web of Trust are
|
|
|
|
|
also not imported. Note that when using this option along with
|
|
|
|
|
import-clean it suppresses the final clean step after merging the
|
|
|
|
|
imported key into the existing key.
|
2019-07-01 15:14:59 +02:00
|
|
|
|
|
2019-03-22 23:49:03 +01:00
|
|
|
|
@item repair-keys
|
|
|
|
|
After import, fix various problems with the
|
2017-06-13 15:35:01 +02:00
|
|
|
|
keys. For example, this reorders signatures, and strips duplicate
|
|
|
|
|
signatures. Defaults to yes.
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item import-minimal
|
|
|
|
|
Import the smallest key possible. This removes all signatures except
|
|
|
|
|
the most recent self-signature on each user ID. This option is the
|
|
|
|
|
same as running the @option{--edit-key} command "minimize" after import.
|
|
|
|
|
Defaults to no.
|
2017-01-23 10:12:18 +01:00
|
|
|
|
|
|
|
|
|
@item restore
|
|
|
|
|
@itemx import-restore
|
|
|
|
|
Import in key restore mode. This imports all data which is usually
|
|
|
|
|
skipped during import; including all GnuPG specific data. All other
|
|
|
|
|
contradicting options are overridden.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --import-filter @{@var{name}=@var{expr}@}
|
|
|
|
|
@itemx --export-filter @{@var{name}=@var{expr}@}
|
2016-07-01 16:24:04 +02:00
|
|
|
|
@opindex import-filter
|
2016-07-01 16:50:12 +02:00
|
|
|
|
@opindex export-filter
|
|
|
|
|
These options define an import/export filter which are applied to the
|
|
|
|
|
imported/exported keyblock right before it will be stored/written.
|
|
|
|
|
@var{name} defines the type of filter to use, @var{expr} the
|
|
|
|
|
expression to evaluate. The option can be used several times which
|
|
|
|
|
then appends more expression to the same @var{name}.
|
2016-07-01 16:24:04 +02:00
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
The available filter types are:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
|
|
|
|
@item keep-uid
|
|
|
|
|
This filter will keep a user id packet and its dependent packets in
|
|
|
|
|
the keyblock if the expression evaluates to true.
|
|
|
|
|
|
2016-09-05 09:51:16 +02:00
|
|
|
|
@item drop-subkey
|
|
|
|
|
This filter drops the selected subkeys.
|
|
|
|
|
Currently only implemented for --export-filter.
|
|
|
|
|
|
2016-08-18 16:15:49 +02:00
|
|
|
|
@item drop-sig
|
|
|
|
|
This filter drops the selected key signatures on user ids.
|
Fix more spelling
* NEWS, acinclude.m4, agent/command-ssh.c, agent/command.c,
agent/gpg-agent.c, agent/keyformat.txt, agent/protect-tool.c,
common/asshelp.c, common/b64enc.c, common/recsel.c, doc/DETAILS,
doc/HACKING, doc/Notes, doc/TRANSLATE, doc/dirmngr.texi,
doc/faq.org, doc/gpg-agent.texi, doc/gpg.texi, doc/gpgsm.texi,
doc/instguide.texi, g10/armor.c, g10/gpg.c, g10/keyedit.c,
g10/mainproc.c, g10/pkclist.c, g10/tofu.c, g13/sh-cmd.c,
g13/sh-dmcrypt.c, kbx/keybox-init.c, m4/pkg.m4, sm/call-dirmngr.c,
sm/gpgsm.c, tests/Makefile.am, tests/gpgscm/Manual.txt,
tests/gpgscm/scheme.c, tests/openpgp/gpgv-forged-keyring.scm,
tests/openpgp/multisig.test, tests/openpgp/verify.scm,
tests/pkits/README, tools/applygnupgdefaults,
tools/gpg-connect-agent.c, tools/mime-maker.c, tools/mime-parser.c:
minor spelling cleanup.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2016-09-15 20:21:15 +02:00
|
|
|
|
Self-signatures are not considered.
|
2016-08-18 16:15:49 +02:00
|
|
|
|
Currently only implemented for --import-filter.
|
|
|
|
|
|
2016-07-01 16:24:04 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2016-07-02 16:18:50 +02:00
|
|
|
|
For the syntax of the expression see the chapter "FILTER EXPRESSIONS".
|
|
|
|
|
The property names for the expressions depend on the actual filter
|
|
|
|
|
type and are indicated in the following table.
|
2016-07-01 16:24:04 +02:00
|
|
|
|
|
|
|
|
|
The available properties are:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
|
|
|
|
@item uid
|
|
|
|
|
A string with the user id. (keep-uid)
|
|
|
|
|
|
|
|
|
|
@item mbox
|
|
|
|
|
The addr-spec part of a user id with mailbox or the empty string.
|
|
|
|
|
(keep-uid)
|
|
|
|
|
|
2016-09-05 09:51:16 +02:00
|
|
|
|
@item key_algo
|
|
|
|
|
A number with the public key algorithm of a key or subkey packet.
|
|
|
|
|
(drop-subkey)
|
|
|
|
|
|
|
|
|
|
@item key_created
|
|
|
|
|
@itemx key_created_d
|
|
|
|
|
The first is the timestamp a public key or subkey packet was
|
|
|
|
|
created. The second is the same but given as an ISO string,
|
|
|
|
|
e.g. "2016-08-17". (drop-subkey)
|
|
|
|
|
|
2020-03-13 13:17:51 +01:00
|
|
|
|
@item fpr
|
|
|
|
|
The hexified fingerprint of the current subkey or primary key.
|
|
|
|
|
(drop-subkey)
|
|
|
|
|
|
2016-07-01 16:24:04 +02:00
|
|
|
|
@item primary
|
|
|
|
|
Boolean indicating whether the user id is the primary one. (keep-uid)
|
|
|
|
|
|
2017-03-03 09:22:40 +01:00
|
|
|
|
@item expired
|
|
|
|
|
Boolean indicating whether a user id (keep-uid), a key (drop-subkey), or a
|
|
|
|
|
signature (drop-sig) expired.
|
|
|
|
|
|
|
|
|
|
@item revoked
|
|
|
|
|
Boolean indicating whether a user id (keep-uid) or a key (drop-subkey) has
|
|
|
|
|
been revoked.
|
|
|
|
|
|
|
|
|
|
@item disabled
|
|
|
|
|
Boolean indicating whether a primary key is disabled. (not used)
|
|
|
|
|
|
2016-09-05 09:51:16 +02:00
|
|
|
|
@item secret
|
|
|
|
|
Boolean indicating whether a key or subkey is a secret one.
|
2017-03-03 09:22:40 +01:00
|
|
|
|
(drop-subkey)
|
2016-09-05 09:51:16 +02:00
|
|
|
|
|
2018-06-12 06:41:59 +02:00
|
|
|
|
@item usage
|
|
|
|
|
A string indicating the usage flags for the subkey, from the
|
|
|
|
|
sequence ``ecsa?''. For example, a subkey capable of just signing
|
|
|
|
|
and authentication would be an exact match for ``sa''. (drop-subkey)
|
|
|
|
|
|
2016-08-18 16:15:49 +02:00
|
|
|
|
@item sig_created
|
|
|
|
|
@itemx sig_created_d
|
|
|
|
|
The first is the timestamp a signature packet was created. The
|
2017-03-03 09:22:40 +01:00
|
|
|
|
second is the same but given as an ISO date string,
|
2016-08-18 16:15:49 +02:00
|
|
|
|
e.g. "2016-08-17". (drop-sig)
|
|
|
|
|
|
|
|
|
|
@item sig_algo
|
|
|
|
|
A number with the public key algorithm of a signature packet. (drop-sig)
|
|
|
|
|
|
|
|
|
|
@item sig_digest_algo
|
|
|
|
|
A number with the digest algorithm of a signature packet. (drop-sig)
|
|
|
|
|
|
2016-07-01 16:24:04 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --export-options @var{parameters}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex export-options
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This is a space or comma delimited string that gives options for
|
2017-03-01 14:41:47 +01:00
|
|
|
|
exporting keys. Options can be prepended with a `no-' to give the
|
|
|
|
|
opposite meaning. The options are:
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item export-local-sigs
|
|
|
|
|
Allow exporting key signatures marked as "local". This is not
|
|
|
|
|
generally useful unless a shared keyring scheme is being used.
|
|
|
|
|
Defaults to no.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item export-attributes
|
2017-07-20 19:10:42 +02:00
|
|
|
|
Include attribute user IDs (photo IDs) while exporting. Not
|
|
|
|
|
including attribute user IDs is useful to export keys that are going
|
|
|
|
|
to be used by an OpenPGP program that does not accept attribute user
|
|
|
|
|
IDs. Defaults to yes.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item export-sensitive-revkeys
|
|
|
|
|
Include designated revoker information that was marked as
|
|
|
|
|
"sensitive". Defaults to no.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@c Since GnuPG 2.1 gpg-agent manages the secret key and thus the
|
|
|
|
|
@c export-reset-subkey-passwd hack is not anymore justified. Such use
|
2015-06-08 19:27:08 +02:00
|
|
|
|
@c cases may be implemented using a specialized secret key export
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@c tool.
|
2015-06-08 19:27:08 +02:00
|
|
|
|
@c @item export-reset-subkey-passwd
|
|
|
|
|
@c When using the @option{--export-secret-subkeys} command, this option resets
|
|
|
|
|
@c the passphrases for all exported subkeys to empty. This is useful
|
|
|
|
|
@c when the exported subkey is to be used on an unattended machine where
|
|
|
|
|
@c a passphrase doesn't necessarily make sense. Defaults to no.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-01-23 10:12:18 +01:00
|
|
|
|
@item backup
|
|
|
|
|
@itemx export-backup
|
|
|
|
|
Export for use as a backup. The exported data includes all data
|
|
|
|
|
which is needed to restore the key or keys later with GnuPG. The
|
|
|
|
|
format is basically the OpenPGP format but enhanced with GnuPG
|
|
|
|
|
specific data. All other contradicting options are overridden.
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item export-clean
|
|
|
|
|
Compact (remove all signatures from) user IDs on the key being
|
|
|
|
|
exported if the user IDs are not usable. Also, do not export any
|
|
|
|
|
signatures that are not usable. This includes signatures that were
|
|
|
|
|
issued by keys that are not present on the keyring. This option is
|
|
|
|
|
the same as running the @option{--edit-key} command "clean" before export
|
|
|
|
|
except that the local copy of the key is not modified. Defaults to
|
|
|
|
|
no.
|
|
|
|
|
|
|
|
|
|
@item export-minimal
|
|
|
|
|
Export the smallest key possible. This removes all signatures except the
|
|
|
|
|
most recent self-signature on each user ID. This option is the same as
|
|
|
|
|
running the @option{--edit-key} command "minimize" before export except
|
|
|
|
|
that the local copy of the key is not modified. Defaults to no.
|
2016-07-07 17:02:58 +02:00
|
|
|
|
|
2018-10-02 11:02:08 +02:00
|
|
|
|
@item export-drop-uids
|
|
|
|
|
Do no export any user id or attribute packets or their associates
|
|
|
|
|
signatures. Note that due to missing user ids the resulting output is
|
|
|
|
|
not strictly RFC-4880 compliant.
|
|
|
|
|
|
2016-07-07 17:02:58 +02:00
|
|
|
|
@item export-pka
|
|
|
|
|
Instead of outputting the key material output PKA records suitable
|
|
|
|
|
to put into DNS zone files. An ORIGIN line is printed before each
|
|
|
|
|
record to allow diverting the records to the corresponding zone file.
|
|
|
|
|
|
|
|
|
|
@item export-dane
|
|
|
|
|
Instead of outputting the key material output OpenPGP DANE records
|
|
|
|
|
suitable to put into DNS zone files. An ORIGIN line is printed before
|
|
|
|
|
each record to allow diverting the records to the corresponding zone
|
|
|
|
|
file.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --with-colons
|
|
|
|
|
@opindex with-colons
|
|
|
|
|
Print key listings delimited by colons. Note that the output will be
|
2006-09-25 20:29:20 +02:00
|
|
|
|
encoded in UTF-8 regardless of any @option{--display-charset} setting. This
|
2006-09-19 18:25:51 +02:00
|
|
|
|
format is useful when GnuPG is called from scripts and other programs
|
|
|
|
|
as it is easily machine parsed. The details of this format are
|
|
|
|
|
documented in the file @file{doc/DETAILS}, which is included in the GnuPG
|
|
|
|
|
source distribution.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --fixed-list-mode
|
|
|
|
|
@opindex fixed-list-mode
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Do not merge primary user ID and primary key in @option{--with-colon}
|
|
|
|
|
listing mode and print all timestamps as seconds since 1970-01-01.
|
2008-06-11 10:07:54 +02:00
|
|
|
|
Since GnuPG 2.0.10, this mode is always used and thus this option is
|
|
|
|
|
obsolete; it does not harm to use it though.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2014-02-05 10:37:59 +01:00
|
|
|
|
@item --legacy-list-mode
|
|
|
|
|
@opindex legacy-list-mode
|
|
|
|
|
Revert to the pre-2.1 public key list mode. This only affects the
|
|
|
|
|
human readable output and not the machine interface
|
|
|
|
|
(i.e. @code{--with-colons}). Note that the legacy format does not
|
More cleanup of "allow to".
* README, agent/command.c, agent/keyformat.txt, common/i18n.c,
common/iobuf.c, common/keyserver.h, dirmngr/cdblib.c,
dirmngr/ldap-wrapper.c, doc/DETAILS, doc/TRANSLATE,
doc/announce-2.1.txt, doc/gpg.texi, doc/gpgsm.texi,
doc/scdaemon.texi, doc/tools.texi, doc/whats-new-in-2.1.txt,
g10/export.c, g10/getkey.c, g10/import.c, g10/keyedit.c, m4/ksba.m4,
m4/libgcrypt.m4, m4/ntbtls.m4, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/fi.po,
po/fr.po, po/gl.po, po/hu.po, po/id.po, po/it.po, po/ja.po,
po/nb.po, po/pl.po, po/pt.po, po/ro.po, po/ru.po, po/sk.po,
po/sv.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po,
scd/app-p15.c, scd/ccid-driver.c, scd/command.c, sm/gpgsm.c,
sm/sign.c, tools/gpgconf-comp.c, tools/gpgtar.h: replace "Allow to"
with clearer text.
In standard English, the normal construction is "${XXX} allows ${YYY}
to" -- that is, the subject (${XXX}) of the sentence is allowing the
object (${YYY}) to do something. When the object is missing, the
phrasing sounds awkward, even if the object is implied by context.
There's almost always a better construction that isn't as awkward.
These changes should make the language a bit clearer.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2016-08-02 04:19:17 +02:00
|
|
|
|
convey suitable information for elliptic curves.
|
2014-02-05 10:37:59 +01:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --with-fingerprint
|
|
|
|
|
@opindex with-fingerprint
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as the command @option{--fingerprint} but changes only the format
|
|
|
|
|
of the output and may be used together with another command.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-06-06 16:55:03 +02:00
|
|
|
|
@item --with-subkey-fingerprint
|
|
|
|
|
@opindex with-subkey-fingerprint
|
|
|
|
|
If a fingerprint is printed for the primary key, this option forces
|
|
|
|
|
printing of the fingerprint for all subkeys. This could also be
|
|
|
|
|
achieved by using the @option{--with-fingerprint} twice but by using
|
|
|
|
|
this option along with keyid-format "none" a compact fingerprint is
|
|
|
|
|
printed.
|
|
|
|
|
|
2015-02-23 17:54:05 +01:00
|
|
|
|
@item --with-icao-spelling
|
|
|
|
|
@opindex with-icao-spelling
|
|
|
|
|
Print the ICAO spelling of the fingerprint in addition to the hex digits.
|
|
|
|
|
|
2010-10-08 13:11:08 +02:00
|
|
|
|
@item --with-keygrip
|
|
|
|
|
@opindex with-keygrip
|
2016-08-04 15:01:42 +02:00
|
|
|
|
Include the keygrip in the key listings. In @code{--with-colons} mode
|
|
|
|
|
this is implicitly enable for secret keys.
|
2014-06-03 21:35:59 +02:00
|
|
|
|
|
2017-07-20 17:27:48 +02:00
|
|
|
|
@item --with-key-origin
|
|
|
|
|
@opindex with-key-origin
|
|
|
|
|
Include the locally held information on the origin and last update of
|
|
|
|
|
a key in a key listing. In @code{--with-colons} mode this is always
|
|
|
|
|
printed. This data is currently experimental and shall not be
|
|
|
|
|
considered part of the stable API.
|
|
|
|
|
|
2016-04-27 08:34:29 +02:00
|
|
|
|
@item --with-wkd-hash
|
|
|
|
|
@opindex with-wkd-hash
|
Fix more spelling
* NEWS, acinclude.m4, agent/command-ssh.c, agent/command.c,
agent/gpg-agent.c, agent/keyformat.txt, agent/protect-tool.c,
common/asshelp.c, common/b64enc.c, common/recsel.c, doc/DETAILS,
doc/HACKING, doc/Notes, doc/TRANSLATE, doc/dirmngr.texi,
doc/faq.org, doc/gpg-agent.texi, doc/gpg.texi, doc/gpgsm.texi,
doc/instguide.texi, g10/armor.c, g10/gpg.c, g10/keyedit.c,
g10/mainproc.c, g10/pkclist.c, g10/tofu.c, g13/sh-cmd.c,
g13/sh-dmcrypt.c, kbx/keybox-init.c, m4/pkg.m4, sm/call-dirmngr.c,
sm/gpgsm.c, tests/Makefile.am, tests/gpgscm/Manual.txt,
tests/gpgscm/scheme.c, tests/openpgp/gpgv-forged-keyring.scm,
tests/openpgp/multisig.test, tests/openpgp/verify.scm,
tests/pkits/README, tools/applygnupgdefaults,
tools/gpg-connect-agent.c, tools/mime-maker.c, tools/mime-parser.c:
minor spelling cleanup.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2016-09-15 20:21:15 +02:00
|
|
|
|
Print a Web Key Directory identifier along with each user ID in key
|
2016-04-27 08:34:29 +02:00
|
|
|
|
listings. This is an experimental feature and semantics may change.
|
|
|
|
|
|
2014-06-03 21:35:59 +02:00
|
|
|
|
@item --with-secret
|
|
|
|
|
@opindex with-secret
|
|
|
|
|
Include info about the presence of a secret key in public key listings
|
|
|
|
|
done with @code{--with-colons}.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ******** OPENPGP OPTIONS ****************
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node OpenPGP Options
|
2016-03-04 15:45:19 +01:00
|
|
|
|
@subsection OpenPGP protocol specific options
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@table @gnupgtabopt
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item -t, --textmode
|
|
|
|
|
@itemx --no-textmode
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex textmode
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Treat input files as text and store them in the OpenPGP canonical text
|
|
|
|
|
form with standard "CRLF" line endings. This also sets the necessary
|
2006-09-25 20:29:20 +02:00
|
|
|
|
flags to inform the recipient that the encrypted or signed data is text
|
|
|
|
|
and may need its line endings converted back to whatever the local
|
|
|
|
|
system uses. This option is useful when communicating between two
|
|
|
|
|
platforms that have different line ending conventions (UNIX-like to Mac,
|
|
|
|
|
Mac to Windows, etc). @option{--no-textmode} disables this option, and
|
2006-09-19 18:25:51 +02:00
|
|
|
|
is the default.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2014-10-12 20:07:12 +02:00
|
|
|
|
@item --force-v3-sigs
|
|
|
|
|
@itemx --no-force-v3-sigs
|
|
|
|
|
@item --force-v4-certs
|
|
|
|
|
@itemx --no-force-v4-certs
|
|
|
|
|
These options are obsolete and have no effect since GnuPG 2.1.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2018-01-23 19:08:16 +01:00
|
|
|
|
@item --force-aead
|
|
|
|
|
@opindex force-aead
|
|
|
|
|
Force the use of AEAD encryption over MDC encryption. AEAD is a
|
2018-10-25 22:52:58 +02:00
|
|
|
|
modern and faster way to do authenticated encryption than the old MDC
|
2018-01-23 19:08:16 +01:00
|
|
|
|
method. See also options @option{--aead-algo} and
|
|
|
|
|
@option{--chunk-size}.
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --force-mdc
|
2018-05-29 12:42:44 +02:00
|
|
|
|
@itemx --disable-mdc
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex force-mdc
|
|
|
|
|
@opindex disable-mdc
|
2018-05-29 12:42:44 +02:00
|
|
|
|
These options are obsolete and have no effect since GnuPG 2.2.8. The
|
|
|
|
|
MDC is always used unless the keys indicate that an AEAD algorithm can
|
2018-07-24 09:50:02 +02:00
|
|
|
|
be used in which case AEAD is used. But note: If the creation of a
|
2018-05-29 12:42:44 +02:00
|
|
|
|
legacy non-MDC message is exceptionally required, the option
|
|
|
|
|
@option{--rfc2440} allows for this.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-06-13 11:24:09 +02:00
|
|
|
|
@item --disable-signer-uid
|
|
|
|
|
@opindex disable-signer-uid
|
2019-07-02 10:28:56 +02:00
|
|
|
|
By default the user ID of the signing key is embedded in the data signature.
|
|
|
|
|
As of now this is only done if the signing key has been specified with
|
|
|
|
|
@option{local-user} using a mail address, or with @option{sender}. This
|
|
|
|
|
information can be helpful for verifier to locate the key; see option
|
|
|
|
|
@option{--auto-key-retrieve}.
|
2016-06-13 11:24:09 +02:00
|
|
|
|
|
2020-03-13 13:28:35 +01:00
|
|
|
|
@item --include-key-block
|
2020-03-14 19:34:18 +01:00
|
|
|
|
@itemx --no-include-key-block
|
2020-03-13 13:28:35 +01:00
|
|
|
|
@opindex include-key-block
|
2020-03-14 19:34:18 +01:00
|
|
|
|
@opindex no-include-key-block
|
2020-03-13 13:28:35 +01:00
|
|
|
|
This option is used to embed the actual signing key into a data
|
|
|
|
|
signature. The embedded key is stripped down to a single user id and
|
|
|
|
|
includes only the signing subkey used to create the signature as well
|
|
|
|
|
as as valid encryption subkeys. All other info is removed from the
|
|
|
|
|
key to keep it and thus the signature small. This option is the
|
|
|
|
|
OpenPGP counterpart to the @command{gpgsm} option
|
2020-03-14 19:34:18 +01:00
|
|
|
|
@option{--include-certs} and allows the recipient of a signed message
|
|
|
|
|
to reply encrypted to the sender without using any online directories
|
|
|
|
|
to lookup the key. The default is @option{--no-include-key-block}.
|
|
|
|
|
See also the option @option{--auto-key-import}.
|
2020-03-13 13:28:35 +01:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --personal-cipher-preferences @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex personal-cipher-preferences
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the list of personal cipher preferences to @var{string}. Use
|
2007-04-15 07:01:22 +02:00
|
|
|
|
@command{@gpgname --version} to get a list of available algorithms,
|
|
|
|
|
and use @code{none} to set no preference at all. This allows the user
|
2009-08-17 18:48:49 +02:00
|
|
|
|
to safely override the algorithm chosen by the recipient key
|
|
|
|
|
preferences, as GPG will only select an algorithm that is usable by
|
|
|
|
|
all recipients. The most highly ranked cipher in this list is also
|
|
|
|
|
used for the @option{--symmetric} encryption command.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2018-01-23 19:08:16 +01:00
|
|
|
|
@item --personal-aead-preferences @var{string}
|
|
|
|
|
@opindex personal-aead-preferences
|
|
|
|
|
Set the list of personal AEAD preferences to @var{string}. Use
|
|
|
|
|
@command{@gpgname --version} to get a list of available algorithms,
|
|
|
|
|
and use @code{none} to set no preference at all. This allows the user
|
|
|
|
|
to safely override the algorithm chosen by the recipient key
|
|
|
|
|
preferences, as GPG will only select an algorithm that is usable by
|
|
|
|
|
all recipients. The most highly ranked cipher in this list is also
|
|
|
|
|
used for the @option{--symmetric} encryption command.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --personal-digest-preferences @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex personal-digest-preferences
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the list of personal digest preferences to @var{string}. Use
|
2007-04-15 07:01:22 +02:00
|
|
|
|
@command{@gpgname --version} to get a list of available algorithms,
|
|
|
|
|
and use @code{none} to set no preference at all. This allows the user
|
2009-08-17 18:48:49 +02:00
|
|
|
|
to safely override the algorithm chosen by the recipient key
|
|
|
|
|
preferences, as GPG will only select an algorithm that is usable by
|
|
|
|
|
all recipients. The most highly ranked digest algorithm in this list
|
|
|
|
|
is also used when signing without encryption
|
2016-09-23 14:10:07 +02:00
|
|
|
|
(e.g. @option{--clear-sign} or @option{--sign}).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --personal-compress-preferences @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex personal-compress-preferences
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the list of personal compression preferences to @var{string}.
|
2007-04-15 07:01:22 +02:00
|
|
|
|
Use @command{@gpgname --version} to get a list of available
|
|
|
|
|
algorithms, and use @code{none} to set no preference at all. This
|
2009-08-17 18:48:49 +02:00
|
|
|
|
allows the user to safely override the algorithm chosen by the
|
|
|
|
|
recipient key preferences, as GPG will only select an algorithm that
|
|
|
|
|
is usable by all recipients. The most highly ranked compression
|
|
|
|
|
algorithm in this list is also used when there are no recipient keys
|
|
|
|
|
to consider (e.g. @option{--symmetric}).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --s2k-cipher-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex s2k-cipher-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{name} as the cipher algorithm for symmetric encryption with
|
2016-01-18 08:33:55 +01:00
|
|
|
|
a passphrase if @option{--personal-cipher-preferences} and
|
|
|
|
|
@option{--cipher-algo} are not given. The default is @value{GPGSYMENCALGO}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --s2k-digest-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex s2k-digest-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{name} as the digest algorithm used to mangle the passphrases
|
2016-01-20 10:48:50 +01:00
|
|
|
|
for symmetric encryption. The default is SHA-1.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --s2k-mode @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex s2k-mode
|
2016-01-18 08:33:55 +01:00
|
|
|
|
Selects how passphrases for symmetric encryption are mangled. If
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{n} is 0 a plain passphrase (which is in general not recommended)
|
2016-01-18 08:33:55 +01:00
|
|
|
|
will be used, a 1 adds a salt (which should not be used) to the
|
|
|
|
|
passphrase and a 3 (the default) iterates the whole process a number
|
|
|
|
|
of times (see @option{--s2k-count}).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --s2k-count @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex s2k-count
|
2016-01-18 08:33:55 +01:00
|
|
|
|
Specify how many times the passphrases mangling for symmetric
|
|
|
|
|
encryption is repeated. This value may range between 1024 and
|
|
|
|
|
65011712 inclusive. The default is inquired from gpg-agent. Note
|
|
|
|
|
that not all values in the 1024-65011712 range are legal and if an
|
|
|
|
|
illegal value is selected, GnuPG will round up to the nearest legal
|
|
|
|
|
value. This option is only meaningful if @option{--s2k-mode} is set
|
|
|
|
|
to the default of 3.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@end table
|
2006-08-18 15:05:39 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@c ***************************
|
|
|
|
|
@c ******* Compliance ********
|
|
|
|
|
@c ***************************
|
2013-04-25 13:00:16 +02:00
|
|
|
|
@node Compliance Options
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@subsection Compliance options
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
These options control what GnuPG is compliant to. Only one of these
|
|
|
|
|
options may be active at a time. Note that the default setting of
|
|
|
|
|
this is nearly always the correct one. See the INTEROPERABILITY WITH
|
|
|
|
|
OTHER OPENPGP PROGRAMS section below before using one of these
|
|
|
|
|
options.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@table @gnupgtabopt
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --gnupg
|
|
|
|
|
@opindex gnupg
|
2019-11-07 09:07:30 +01:00
|
|
|
|
Use standard GnuPG behavior. This is essentially OpenPGP behavior (see
|
|
|
|
|
@option{--openpgp}), but with extension from the proposed update to
|
|
|
|
|
OpenPGP and with some additional workarounds for common compatibility
|
|
|
|
|
problems in different versions of PGP. This is the default option, so
|
|
|
|
|
it is not generally needed, but it may be useful to override a
|
|
|
|
|
different compliance option in the gpg.conf file.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --openpgp
|
|
|
|
|
@opindex openpgp
|
|
|
|
|
Reset all packet, cipher and digest options to strict OpenPGP
|
|
|
|
|
behavior. Use this option to reset all previous options like
|
2007-10-27 16:09:36 +02:00
|
|
|
|
@option{--s2k-*}, @option{--cipher-algo}, @option{--digest-algo} and
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--compress-algo} to OpenPGP compliant values. All PGP
|
|
|
|
|
workarounds are disabled.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2007-10-27 16:09:36 +02:00
|
|
|
|
@item --rfc4880
|
|
|
|
|
@opindex rfc4880
|
|
|
|
|
Reset all packet, cipher and digest options to strict RFC-4880
|
|
|
|
|
behavior. Note that this is currently the same thing as
|
|
|
|
|
@option{--openpgp}.
|
|
|
|
|
|
2016-06-20 22:19:23 +02:00
|
|
|
|
@item --rfc4880bis
|
|
|
|
|
@opindex rfc4880bis
|
2019-11-07 09:07:30 +01:00
|
|
|
|
Reset all packet, cipher and digest options to strict according to the
|
|
|
|
|
proposed updates of RFC-4880.
|
2016-06-20 22:19:23 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --rfc2440
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@opindex rfc2440
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Reset all packet, cipher and digest options to strict RFC-2440
|
2018-05-29 12:42:44 +02:00
|
|
|
|
behavior. Note that by using this option encryption packets are
|
|
|
|
|
created in a legacy mode without MDC protection. This is dangerous
|
|
|
|
|
and should thus only be used for experiments. See also option
|
|
|
|
|
@option{--ignore-mdc-error}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --pgp6
|
|
|
|
|
@opindex pgp6
|
2018-05-29 13:01:12 +02:00
|
|
|
|
This option is obsolete; it is handled as an alias for @option{--pgp7}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --pgp7
|
|
|
|
|
@opindex pgp7
|
2018-10-25 22:52:58 +02:00
|
|
|
|
Set up all options to be as PGP 7 compliant as possible. This allowed
|
2018-05-29 13:01:12 +02:00
|
|
|
|
the ciphers IDEA, 3DES, CAST5,AES128, AES192, AES256, and TWOFISH.,
|
|
|
|
|
the hashes MD5, SHA1 and RIPEMD160, and the compression algorithms
|
|
|
|
|
none and ZIP. This option implies @option{--escape-from-lines} and
|
|
|
|
|
disables @option{--throw-keyids},
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --pgp8
|
|
|
|
|
@opindex pgp8
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Set up all options to be as PGP 8 compliant as possible. PGP 8 is a lot
|
|
|
|
|
closer to the OpenPGP standard than previous versions of PGP, so all
|
|
|
|
|
this does is disable @option{--throw-keyids} and set
|
|
|
|
|
@option{--escape-from-lines}. All algorithms are allowed except for the
|
|
|
|
|
SHA224, SHA384, and SHA512 digests.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-11-15 13:03:29 +01:00
|
|
|
|
@item --compliance @var{string}
|
|
|
|
|
@opindex compliance
|
|
|
|
|
This option can be used instead of one of the options above. Valid
|
|
|
|
|
values for @var{string} are the above option names (without the double
|
|
|
|
|
dash) and possibly others as shown when using "help" for @var{value}.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@c *******************************************
|
|
|
|
|
@c ******** ESOTERIC OPTIONS ***************
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@node GPG Esoteric Options
|
2016-03-04 15:45:19 +01:00
|
|
|
|
@subsection Doing things one usually doesn't want to do
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@table @gnupgtabopt
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item -n
|
|
|
|
|
@itemx --dry-run
|
|
|
|
|
@opindex dry-run
|
|
|
|
|
Don't make any changes (this is not completely implemented).
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --list-only
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex list-only
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Changes the behaviour of some commands. This is like @option{--dry-run} but
|
2016-03-04 17:27:21 +01:00
|
|
|
|
different in some cases. The semantic of this option may be extended in
|
2006-09-19 18:25:51 +02:00
|
|
|
|
the future. Currently it only skips the actual decryption pass and
|
|
|
|
|
therefore enables a fast listing of the encryption keys.
|
|
|
|
|
|
|
|
|
|
@item -i
|
|
|
|
|
@itemx --interactive
|
|
|
|
|
@opindex interactive
|
|
|
|
|
Prompt before overwriting any files.
|
|
|
|
|
|
2009-12-03 19:04:40 +01:00
|
|
|
|
@item --debug-level @var{level}
|
|
|
|
|
@opindex debug-level
|
|
|
|
|
Select the debug level for investigating problems. @var{level} may be
|
|
|
|
|
a numeric value or by a keyword:
|
|
|
|
|
|
|
|
|
|
@table @code
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item none
|
|
|
|
|
No debugging at all. A value of less than 1 may be used instead of
|
|
|
|
|
the keyword.
|
|
|
|
|
@item basic
|
|
|
|
|
Some basic debug messages. A value between 1 and 2 may be used
|
|
|
|
|
instead of the keyword.
|
|
|
|
|
@item advanced
|
|
|
|
|
More verbose debug messages. A value between 3 and 5 may be used
|
|
|
|
|
instead of the keyword.
|
|
|
|
|
@item expert
|
|
|
|
|
Even more detailed messages. A value between 6 and 8 may be used
|
|
|
|
|
instead of the keyword.
|
|
|
|
|
@item guru
|
|
|
|
|
All of the debug messages you can get. A value greater than 8 may be
|
|
|
|
|
used instead of the keyword. The creation of hash tracing files is
|
|
|
|
|
only enabled if the keyword is used.
|
2009-12-03 19:04:40 +01:00
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
How these messages are mapped to the actual debugging flags is not
|
|
|
|
|
specified and may change with newer releases of this program. They are
|
|
|
|
|
however carefully selected to best aid in debugging.
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@item --debug @var{flags}
|
|
|
|
|
@opindex debug
|
2019-09-05 13:12:14 +02:00
|
|
|
|
Set debug flags. All flags are or-ed and @var{flags} may be given
|
2015-06-22 21:01:10 +02:00
|
|
|
|
in C syntax (e.g. 0x0042) or as a comma separated list of flag names.
|
|
|
|
|
To get a list of all supported flags the single word "help" can be
|
2019-09-05 13:12:14 +02:00
|
|
|
|
used. This option is only useful for debugging and the behavior may
|
|
|
|
|
change at any time without notice.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --debug-all
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex debug-all
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Set all useful debugging flags.
|
|
|
|
|
|
2015-04-06 14:07:50 +02:00
|
|
|
|
@item --debug-iolbf
|
|
|
|
|
@opindex debug-iolbf
|
|
|
|
|
Set stdout into line buffered mode. This option is only honored when
|
|
|
|
|
given on the command line.
|
|
|
|
|
|
2018-01-24 18:29:08 +01:00
|
|
|
|
@item --debug-set-iobuf-size @var{n}
|
|
|
|
|
@opindex debug-iolbf
|
|
|
|
|
Change the buffer size of the IOBUFs to @var{n} kilobyte. Using 0
|
|
|
|
|
prints the current size. Note well: This is a maintainer only option
|
|
|
|
|
and may thus be changed or removed at any time without notice.
|
|
|
|
|
|
2018-07-24 09:50:02 +02:00
|
|
|
|
@item --debug-allow-large-chunks
|
|
|
|
|
@opindex debug-allow-large-chunks
|
|
|
|
|
To facilitate in-memory decryption on the receiving site, the largest
|
|
|
|
|
recommended chunk size is 128 MiB (@code{--chunk-size 27}). This
|
|
|
|
|
option allows to specify a limit of up to 4 EiB (@code{--chunk-size
|
|
|
|
|
62}) for experiments.
|
|
|
|
|
|
2009-12-17 18:25:26 +01:00
|
|
|
|
@item --faked-system-time @var{epoch}
|
|
|
|
|
@opindex faked-system-time
|
|
|
|
|
This option is only useful for testing; it sets the system time back or
|
|
|
|
|
forth to @var{epoch} which is the number of seconds elapsed since the year
|
|
|
|
|
1970. Alternatively @var{epoch} may be given as a full ISO time string
|
|
|
|
|
(e.g. "20070924T154812").
|
|
|
|
|
|
2017-01-18 18:52:12 +01:00
|
|
|
|
If you suffix @var{epoch} with an exclamation mark (!), the system time
|
|
|
|
|
will appear to be frozen at the specified time.
|
|
|
|
|
|
2020-02-13 14:01:07 +01:00
|
|
|
|
@item --full-timestrings
|
|
|
|
|
@opindex full-timestrings
|
|
|
|
|
Change the format of printed creation and expiration times from just
|
|
|
|
|
the date to the date and time. This is in general not useful and the
|
|
|
|
|
same information is anyway available in @option{--with-colons} mode.
|
|
|
|
|
These longer strings are also not well aligned with other printed
|
|
|
|
|
data.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --enable-progress-filter
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex enable-progress-filter
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Enable certain PROGRESS status outputs. This option allows frontends
|
|
|
|
|
to display a progress indicator while gpg is processing larger files.
|
|
|
|
|
There is a slight performance overhead using it.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --status-fd @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex status-fd
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Write special status strings to the file descriptor @var{n}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
See the file DETAILS in the documentation for a listing of them.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --status-file @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex status-file
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as @option{--status-fd}, except the status data is written to file
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{file}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --logger-fd @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex logger-fd
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Write log output to file descriptor @var{n} and not to STDERR.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --log-file @var{file}
|
|
|
|
|
@itemx --logger-file @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex log-file
|
2016-08-29 11:45:47 +02:00
|
|
|
|
Same as @option{--logger-fd}, except the logger data is written to
|
2017-07-24 21:29:51 +02:00
|
|
|
|
file @var{file}. Use @file{socket://} to log to s socket.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --attribute-fd @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex attribute-fd
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Write attribute subpackets to the file descriptor @var{n}. This is most
|
2006-09-25 20:29:20 +02:00
|
|
|
|
useful for use with @option{--status-fd}, since the status messages are
|
|
|
|
|
needed to separate out the various subpackets from the stream delivered
|
|
|
|
|
to the file descriptor.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --attribute-file @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex attribute-file
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as @option{--attribute-fd}, except the attribute data is written to
|
2017-07-24 21:29:51 +02:00
|
|
|
|
file @var{file}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --comment @var{string}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@itemx --no-comments
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex comment
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{string} as a comment string in cleartext signatures and ASCII
|
2006-09-25 20:29:20 +02:00
|
|
|
|
armored messages or keys (see @option{--armor}). The default behavior is
|
|
|
|
|
not to use a comment string. @option{--comment} may be repeated multiple
|
|
|
|
|
times to get multiple comment strings. @option{--no-comments} removes
|
|
|
|
|
all comments. It is a good idea to keep the length of a single comment
|
|
|
|
|
below 60 characters to avoid problems with mail programs wrapping such
|
|
|
|
|
lines. Note that comment lines, like all other header lines, are not
|
2006-08-16 16:54:19 +02:00
|
|
|
|
protected by the signature.
|
|
|
|
|
|
|
|
|
|
@item --emit-version
|
|
|
|
|
@itemx --no-emit-version
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex emit-version
|
2013-11-27 09:20:02 +01:00
|
|
|
|
Force inclusion of the version string in ASCII armored output. If
|
|
|
|
|
given once only the name of the program and the major number is
|
2016-11-17 10:46:43 +01:00
|
|
|
|
emitted, given twice the minor is also emitted, given thrice
|
|
|
|
|
the micro is added, and given four times an operating system identification
|
2016-08-04 22:58:13 +02:00
|
|
|
|
is also emitted. @option{--no-emit-version} (default) disables the version
|
2013-11-27 09:20:02 +01:00
|
|
|
|
line.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --sig-notation @{@var{name}=@var{value}@}
|
|
|
|
|
@itemx --cert-notation @{@var{name}=@var{value}@}
|
|
|
|
|
@itemx -N, --set-notation @{@var{name}=@var{value}@}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex sig-notation
|
|
|
|
|
@opindex cert-notation
|
|
|
|
|
@opindex set-notation
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Put the name value pair into the signature as notation data.
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{name} must consist only of printable characters or spaces, and
|
2006-08-16 16:54:19 +02:00
|
|
|
|
must contain a '@@' character in the form keyname@@domain.example.com
|
2006-09-25 20:29:20 +02:00
|
|
|
|
(substituting the appropriate keyname and domain name, of course). This
|
|
|
|
|
is to help prevent pollution of the IETF reserved notation
|
|
|
|
|
namespace. The @option{--expert} flag overrides the '@@'
|
2017-07-24 21:29:51 +02:00
|
|
|
|
check. @var{value} may be any printable string; it will be encoded in
|
2016-03-04 17:29:37 +01:00
|
|
|
|
UTF-8, so you should check that your @option{--display-charset} is set
|
2017-07-24 21:29:51 +02:00
|
|
|
|
correctly. If you prefix @var{name} with an exclamation mark (!), the
|
2006-09-25 20:29:20 +02:00
|
|
|
|
notation data will be flagged as critical
|
2013-03-05 10:24:54 +01:00
|
|
|
|
(rfc4880:5.2.3.16). @option{--sig-notation} sets a notation for data
|
2006-09-25 20:29:20 +02:00
|
|
|
|
signatures. @option{--cert-notation} sets a notation for key signatures
|
|
|
|
|
(certifications). @option{--set-notation} sets both.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
There are special codes that may be used in notation names. "%k" will
|
|
|
|
|
be expanded into the key ID of the key being signed, "%K" into the
|
|
|
|
|
long key ID of the key being signed, "%f" into the fingerprint of the
|
|
|
|
|
key being signed, "%s" into the key ID of the key making the
|
|
|
|
|
signature, "%S" into the long key ID of the key making the signature,
|
|
|
|
|
"%g" into the fingerprint of the key making the signature (which might
|
|
|
|
|
be a subkey), "%p" into the fingerprint of the primary key of the key
|
|
|
|
|
making the signature, "%c" into the signature count from the OpenPGP
|
|
|
|
|
smartcard, and "%%" results in a single "%". %k, %K, and %f are only
|
|
|
|
|
meaningful when making a key signature (certification), and %c is only
|
|
|
|
|
meaningful when using the OpenPGP smartcard.
|
|
|
|
|
|
2018-08-29 09:36:09 +02:00
|
|
|
|
@item --known-notation @var{name}
|
|
|
|
|
@opindex known-notation
|
|
|
|
|
Adds @var{name} to a list of known critical signature notations. The
|
|
|
|
|
effect of this is that gpg will not mark a signature with a critical
|
|
|
|
|
signature notation of that name as bad. Note that gpg already knows
|
|
|
|
|
by default about a few critical signatures notation names.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --sig-policy-url @var{string}
|
|
|
|
|
@itemx --cert-policy-url @var{string}
|
|
|
|
|
@itemx --set-policy-url @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex sig-policy-url
|
|
|
|
|
@opindex cert-policy-url
|
|
|
|
|
@opindex set-policy-url
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{string} as a Policy URL for signatures (rfc4880:5.2.3.20). If
|
2006-09-25 20:29:20 +02:00
|
|
|
|
you prefix it with an exclamation mark (!), the policy URL packet will
|
|
|
|
|
be flagged as critical. @option{--sig-policy-url} sets a policy url for
|
|
|
|
|
data signatures. @option{--cert-policy-url} sets a policy url for key
|
|
|
|
|
signatures (certifications). @option{--set-policy-url} sets both.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
The same %-expandos used for notation data are available here as well.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --sig-keyserver-url @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex sig-keyserver-url
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{string} as a preferred keyserver URL for data signatures. If
|
2007-01-18 19:52:24 +01:00
|
|
|
|
you prefix it with an exclamation mark (!), the keyserver URL packet
|
|
|
|
|
will be flagged as critical.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
The same %-expandos used for notation data are available here as well.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --set-filename @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex set-filename
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{string} as the filename which is stored inside messages.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This overrides the default, which is to use the actual filename of the
|
2017-07-24 21:29:51 +02:00
|
|
|
|
file being encrypted. Using the empty string for @var{string}
|
2015-07-22 16:41:22 +02:00
|
|
|
|
effectively removes the filename from the output.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --for-your-eyes-only
|
|
|
|
|
@itemx --no-for-your-eyes-only
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex for-your-eyes-only
|
2008-02-05 20:42:12 +01:00
|
|
|
|
Set the `for your eyes only' flag in the message. This causes GnuPG to
|
|
|
|
|
refuse to save the file unless the @option{--output} option is given,
|
|
|
|
|
and PGP to use a "secure viewer" with a claimed Tempest-resistant font
|
|
|
|
|
to display the message. This option overrides @option{--set-filename}.
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--no-for-your-eyes-only} disables this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --use-embedded-filename
|
|
|
|
|
@itemx --no-use-embedded-filename
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex use-embedded-filename
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Try to create a file with a name as embedded in the data. This can be
|
2019-05-17 13:40:24 +02:00
|
|
|
|
a dangerous option as it enables overwriting files. Defaults to no.
|
|
|
|
|
Note that the option @option{--output} overrides this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --cipher-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex cipher-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{name} as cipher algorithm. Running the program with the
|
2006-09-25 20:29:20 +02:00
|
|
|
|
command @option{--version} yields a list of supported algorithms. If
|
|
|
|
|
this is not used the cipher algorithm is selected from the preferences
|
|
|
|
|
stored with the key. In general, you do not want to use this option as
|
2018-01-23 19:08:16 +01:00
|
|
|
|
it allows you to violate the OpenPGP standard. The option
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--personal-cipher-preferences} is the safe way to accomplish the
|
|
|
|
|
same thing.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2018-01-23 19:08:16 +01:00
|
|
|
|
@item --aead-algo @var{name}
|
|
|
|
|
@opindex aead-algo
|
|
|
|
|
Specify that the AEAD algorithm @var{name} is to be used. This is
|
|
|
|
|
useful for symmetric encryption where no key preference are available
|
2018-10-25 22:52:58 +02:00
|
|
|
|
to select the AEAD algorithm. Running @command{@gpgname} with option
|
2018-01-23 19:08:16 +01:00
|
|
|
|
@option{--version} shows the available AEAD algorithms. In general,
|
|
|
|
|
you do not want to use this option as it allows you to violate the
|
|
|
|
|
OpenPGP standard. The option @option{--personal-aead-preferences} is
|
|
|
|
|
the safe way to accomplish the same thing.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --digest-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex digest-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{name} as the message digest algorithm. Running the program
|
2018-01-23 19:08:16 +01:00
|
|
|
|
with the command @option{--version} yields a list of supported
|
|
|
|
|
algorithms. In general, you do not want to use this option as it
|
|
|
|
|
allows you to violate the OpenPGP standard. The option
|
|
|
|
|
@option{--personal-digest-preferences} is the safe way to accomplish
|
|
|
|
|
the same thing.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --compress-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex compress-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use compression algorithm @var{name}. "zlib" is RFC-1950 ZLIB
|
2006-08-16 16:54:19 +02:00
|
|
|
|
compression. "zip" is RFC-1951 ZIP compression which is used by PGP.
|
|
|
|
|
"bzip2" is a more modern compression scheme that can compress some
|
|
|
|
|
things better than zip or zlib, but at the cost of more memory used
|
|
|
|
|
during compression and decompression. "uncompressed" or "none"
|
|
|
|
|
disables compression. If this option is not used, the default
|
|
|
|
|
behavior is to examine the recipient key preferences to see which
|
|
|
|
|
algorithms the recipient supports. If all else fails, ZIP is used for
|
|
|
|
|
maximum compatibility.
|
|
|
|
|
|
|
|
|
|
ZLIB may give better compression results than ZIP, as the compression
|
|
|
|
|
window size is not limited to 8k. BZIP2 may give even better
|
|
|
|
|
compression results than that, but will use a significantly larger
|
|
|
|
|
amount of memory while compressing and decompressing. This may be
|
|
|
|
|
significant in low memory situations. Note, however, that PGP (all
|
|
|
|
|
versions) only supports ZIP compression. Using any algorithm other
|
|
|
|
|
than ZIP or "none" will make the message unreadable with PGP. In
|
|
|
|
|
general, you do not want to use this option as it allows you to
|
2018-01-23 19:08:16 +01:00
|
|
|
|
violate the OpenPGP standard. The option
|
|
|
|
|
@option{--personal-compress-preferences} is the safe way to accomplish
|
|
|
|
|
the same thing.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --cert-digest-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex cert-digest-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{name} as the message digest algorithm used when signing a
|
2006-09-25 20:29:20 +02:00
|
|
|
|
key. Running the program with the command @option{--version} yields a
|
2019-05-13 12:38:32 +02:00
|
|
|
|
list of supported algorithms. Be aware that if you choose an
|
|
|
|
|
algorithm that GnuPG supports but other OpenPGP implementations do
|
|
|
|
|
not, then some users will not be able to use the key signatures you
|
|
|
|
|
make, or quite possibly your entire key. Note also that a public key
|
|
|
|
|
algorithm must be compatible with the specified digest algorithm; thus
|
|
|
|
|
selecting an arbitrary digest algorithm may result in error messages
|
|
|
|
|
from lower crypto layers or lead to security flaws.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --disable-cipher-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex disable-cipher-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Never allow the use of @var{name} as cipher algorithm.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
The given name will not be checked so that a later loaded algorithm
|
|
|
|
|
will still get disabled.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --disable-pubkey-algo @var{name}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex disable-pubkey-algo
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Never allow the use of @var{name} as public key algorithm.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
The given name will not be checked so that a later loaded algorithm
|
|
|
|
|
will still get disabled.
|
|
|
|
|
|
|
|
|
|
@item --throw-keyids
|
|
|
|
|
@itemx --no-throw-keyids
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex throw-keyids
|
2008-08-28 16:57:25 +02:00
|
|
|
|
Do not put the recipient key IDs into encrypted messages. This helps to
|
|
|
|
|
hide the receivers of the message and is a limited countermeasure
|
|
|
|
|
against traffic analysis.@footnote{Using a little social engineering
|
|
|
|
|
anyone who is able to decrypt the message can check whether one of the
|
|
|
|
|
other recipients is the one he suspects.} On the receiving side, it may
|
|
|
|
|
slow down the decryption process because all available secret keys must
|
|
|
|
|
be tried. @option{--no-throw-keyids} disables this option. This option
|
|
|
|
|
is essentially the same as using @option{--hidden-recipient} for all
|
|
|
|
|
recipients.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --not-dash-escaped
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex not-dash-escaped
|
2006-08-16 16:54:19 +02:00
|
|
|
|
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 cleartext signature option.
|
|
|
|
|
|
|
|
|
|
@item --escape-from-lines
|
|
|
|
|
@itemx --no-escape-from-lines
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex escape-from-lines
|
2006-09-25 20:29:20 +02:00
|
|
|
|
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 to prevent the mail system from breaking the signature. Note
|
|
|
|
|
that all other PGP versions do it this way too. Enabled by
|
|
|
|
|
default. @option{--no-escape-from-lines} disables this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --passphrase-repeat @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex passphrase-repeat
|
2006-12-03 05:48:42 +01:00
|
|
|
|
Specify how many times @command{@gpgname} will request a new
|
|
|
|
|
passphrase be repeated. This is useful for helping memorize a
|
2020-08-20 09:34:41 +02:00
|
|
|
|
passphrase. Defaults to 1 repetition; can be set to 0 to disable any
|
|
|
|
|
passphrase repetition. Note that a @var{n} greater than 1 will pop up
|
|
|
|
|
the pinentry window @var{n}+1 times even if a modern pinentry with
|
|
|
|
|
two entry fields is used.
|
2006-12-03 05:48:42 +01:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --passphrase-fd @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex passphrase-fd
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Read the passphrase from file descriptor @var{n}. Only the first line
|
|
|
|
|
will be read from file descriptor @var{n}. If you use 0 for @var{n},
|
2008-12-08 20:10:42 +01:00
|
|
|
|
the passphrase will be read from STDIN. This can only be used if only
|
2006-09-19 18:25:51 +02:00
|
|
|
|
one passphrase is supplied.
|
2014-09-29 11:49:50 +02:00
|
|
|
|
|
2018-01-08 19:09:28 +01:00
|
|
|
|
Note that since Version 2.0 this passphrase is only used if the
|
|
|
|
|
option @option{--batch} has also been given. Since Version 2.1
|
|
|
|
|
the @option{--pinentry-mode} also needs to be set to @code{loopback}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --passphrase-file @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex passphrase-file
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Read the passphrase from file @var{file}. Only the first line will
|
|
|
|
|
be read from file @var{file}. This can only be used if only one
|
2006-09-19 18:25:51 +02:00
|
|
|
|
passphrase is supplied. Obviously, a passphrase stored in a file is
|
|
|
|
|
of questionable security if other users can read this file. Don't use
|
|
|
|
|
this option if you can avoid it.
|
2018-01-08 19:09:28 +01:00
|
|
|
|
|
|
|
|
|
Note that since Version 2.0 this passphrase is only used if the
|
|
|
|
|
option @option{--batch} has also been given. Since Version 2.1
|
|
|
|
|
the @option{--pinentry-mode} also needs to be set to @code{loopback}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --passphrase @var{string}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex passphrase
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Use @var{string} as the passphrase. This can only be used if only one
|
2006-09-19 18:25:51 +02:00
|
|
|
|
passphrase is supplied. Obviously, this is of very questionable
|
|
|
|
|
security on a multi-user system. Don't use this option if you can
|
|
|
|
|
avoid it.
|
2018-01-08 19:09:28 +01:00
|
|
|
|
|
|
|
|
|
Note that since Version 2.0 this passphrase is only used if the
|
|
|
|
|
option @option{--batch} has also been given. Since Version 2.1
|
|
|
|
|
the @option{--pinentry-mode} also needs to be set to @code{loopback}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --pinentry-mode @var{mode}
|
2013-02-07 20:37:58 +01:00
|
|
|
|
@opindex pinentry-mode
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the pinentry mode to @var{mode}. Allowed values for @var{mode}
|
2013-02-07 20:37:58 +01:00
|
|
|
|
are:
|
|
|
|
|
@table @asis
|
|
|
|
|
@item default
|
|
|
|
|
Use the default of the agent, which is @code{ask}.
|
|
|
|
|
@item ask
|
|
|
|
|
Force the use of the Pinentry.
|
|
|
|
|
@item cancel
|
|
|
|
|
Emulate use of Pinentry's cancel button.
|
|
|
|
|
@item error
|
|
|
|
|
Return a Pinentry error (``No Pinentry'').
|
|
|
|
|
@item loopback
|
|
|
|
|
Redirect Pinentry queries to the caller. Note that in contrast to
|
|
|
|
|
Pinentry the user is not prompted again if he enters a bad password.
|
|
|
|
|
@end table
|
|
|
|
|
|
2018-04-11 20:35:40 +02:00
|
|
|
|
@item --no-symkey-cache
|
|
|
|
|
@opindex no-symkey-cache
|
|
|
|
|
Disable the passphrase cache used for symmetrical en- and decryption.
|
|
|
|
|
This cache is based on the message specific salt value
|
|
|
|
|
(cf. @option{--s2k-mode}).
|
|
|
|
|
|
2018-03-23 09:06:20 +01:00
|
|
|
|
@item --request-origin @var{origin}
|
|
|
|
|
@opindex request-origin
|
|
|
|
|
Tell gpg to assume that the operation ultimately originated at
|
|
|
|
|
@var{origin}. Depending on the origin certain restrictions are applied
|
|
|
|
|
and the Pinentry may include an extra note on the origin. Supported
|
|
|
|
|
values for @var{origin} are: @code{local} which is the default,
|
|
|
|
|
@code{remote} to indicate a remote origin or @code{browser} for an
|
|
|
|
|
operation requested by a web browser.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --command-fd @var{n}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex command-fd
|
2006-09-19 18:25:51 +02:00
|
|
|
|
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
|
2006-09-25 20:29:20 +02:00
|
|
|
|
together with @option{--status-fd}. See the file doc/DETAILS in the source
|
2006-09-19 18:25:51 +02:00
|
|
|
|
distribution for details on how to use it.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --command-file @var{file}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex command-file
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Same as @option{--command-fd}, except the commands are read out of file
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@var{file}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --allow-non-selfsigned-uid
|
|
|
|
|
@itemx --no-allow-non-selfsigned-uid
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex allow-non-selfsigned-uid
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Allow the import and use of keys with user IDs which are not
|
|
|
|
|
self-signed. This is not recommended, as a non self-signed user ID is
|
2006-09-25 20:29:20 +02:00
|
|
|
|
trivial to forge. @option{--no-allow-non-selfsigned-uid} disables.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --allow-freeform-uid
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex allow-freeform-uid
|
2006-08-16 16:54:19 +02:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
@item --ignore-time-conflict
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ignore-time-conflict
|
2006-08-16 16:54:19 +02:00
|
|
|
|
GnuPG normally checks that the timestamps associated with keys and
|
|
|
|
|
signatures have plausible values. However, sometimes a signature
|
|
|
|
|
seems to be older than the key due to clock problems. This option
|
2006-09-25 20:29:20 +02:00
|
|
|
|
makes these checks just a warning. See also @option{--ignore-valid-from} for
|
2006-08-16 16:54:19 +02:00
|
|
|
|
timestamp issues on subkeys.
|
|
|
|
|
|
|
|
|
|
@item --ignore-valid-from
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ignore-valid-from
|
2006-08-16 16:54:19 +02:00
|
|
|
|
GnuPG normally does not select and use subkeys created in the future.
|
|
|
|
|
This option allows the use of such keys and thus exhibits the
|
2011-05-20 10:14:21 +02:00
|
|
|
|
pre-1.0.7 behaviour. You should not use this option unless there
|
2006-09-25 20:29:20 +02:00
|
|
|
|
is some clock problem. See also @option{--ignore-time-conflict} for timestamp
|
2006-08-16 16:54:19 +02:00
|
|
|
|
issues with signatures.
|
|
|
|
|
|
|
|
|
|
@item --ignore-crc-error
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ignore-crc-error
|
2006-08-16 16:54:19 +02:00
|
|
|
|
The ASCII armor used by OpenPGP is protected by a CRC checksum against
|
|
|
|
|
transmission errors. Occasionally the CRC gets mangled somewhere on
|
|
|
|
|
the transmission channel but the actual content (which is protected by
|
|
|
|
|
the OpenPGP protocol anyway) is still okay. This option allows GnuPG
|
|
|
|
|
to ignore CRC errors.
|
|
|
|
|
|
|
|
|
|
@item --ignore-mdc-error
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ignore-mdc-error
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This option changes a MDC integrity protection failure into a warning.
|
2018-05-15 12:33:03 +02:00
|
|
|
|
It is required to decrypt old messages which did not use an MDC. It
|
|
|
|
|
may also be useful if a message is partially garbled, but it is
|
|
|
|
|
necessary to get as much data as possible out of that garbled message.
|
|
|
|
|
Be aware that a missing or failed MDC can be an indication of an
|
2018-05-29 12:42:44 +02:00
|
|
|
|
attack. Use with great caution; see also option @option{--rfc2440}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2014-03-17 17:54:36 +01:00
|
|
|
|
@item --allow-weak-digest-algos
|
|
|
|
|
@opindex allow-weak-digest-algos
|
2015-10-18 23:35:32 +02:00
|
|
|
|
Signatures made with known-weak digest algorithms are normally
|
|
|
|
|
rejected with an ``invalid digest algorithm'' message. This option
|
|
|
|
|
allows the verification of signatures made with such weak algorithms.
|
|
|
|
|
MD5 is the only digest algorithm considered weak by default. See also
|
|
|
|
|
@option{--weak-digest} to reject other digest algorithms.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --weak-digest @var{name}
|
2015-10-18 23:35:32 +02:00
|
|
|
|
@opindex weak-digest
|
|
|
|
|
Treat the specified digest algorithm as weak. Signatures made over
|
|
|
|
|
weak digests algorithms are normally rejected. This option can be
|
|
|
|
|
supplied multiple times if multiple algorithms should be considered
|
|
|
|
|
weak. See also @option{--allow-weak-digest-algos} to disable
|
|
|
|
|
rejection of weak digests. MD5 is always considered weak, and does
|
|
|
|
|
not need to be listed explicitly.
|
2014-03-17 17:54:36 +01:00
|
|
|
|
|
2019-11-07 10:36:17 +01:00
|
|
|
|
@item --allow-weak-key-signatures
|
|
|
|
|
@opindex allow-weak-key-signatures
|
|
|
|
|
To avoid a minor risk of collision attacks on third-party key
|
|
|
|
|
signatures made using SHA-1, those key signatures are considered
|
|
|
|
|
invalid. This options allows to override this restriction.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --no-default-keyring
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-default-keyring
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Do not add the default keyrings to the list of keyrings. Note that
|
|
|
|
|
GnuPG will not operate without any keyrings, so if you use this option
|
2006-09-25 20:29:20 +02:00
|
|
|
|
and do not provide alternate keyrings via @option{--keyring} or
|
|
|
|
|
@option{--secret-keyring}, then GnuPG will still use the default public or
|
2006-08-16 16:54:19 +02:00
|
|
|
|
secret keyrings.
|
|
|
|
|
|
2016-07-06 15:33:40 +02:00
|
|
|
|
@item --no-keyring
|
|
|
|
|
@opindex no-keyring
|
2019-03-25 14:47:31 +01:00
|
|
|
|
Do not use any keyring at all. This overrides the default and all
|
|
|
|
|
options which specify keyrings.
|
2016-07-06 15:33:40 +02:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --skip-verify
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex skip-verify
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Skip the signature verification step. This may be
|
|
|
|
|
used to make the decryption faster if the signature
|
|
|
|
|
verification is not needed.
|
|
|
|
|
|
|
|
|
|
@item --with-key-data
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex with-key-data
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Print key listings delimited by colons (like @option{--with-colons}) and
|
|
|
|
|
print the public key data.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-09-27 17:18:55 +02:00
|
|
|
|
@item --list-signatures
|
|
|
|
|
@opindex list-signatures
|
|
|
|
|
@itemx --list-sigs
|
|
|
|
|
@opindex list-sigs
|
|
|
|
|
Same as @option{--list-keys}, but the signatures are listed too. This
|
|
|
|
|
command has the same effect as using @option{--list-keys} with
|
|
|
|
|
@option{--with-sig-list}. Note that in contrast to
|
2018-04-23 09:23:41 +02:00
|
|
|
|
@option{--check-signatures} the key signatures are not verified. This
|
|
|
|
|
command can be used to create a list of signing keys missing in the
|
2019-01-29 22:15:49 +01:00
|
|
|
|
local keyring; for example:
|
2017-09-27 17:18:55 +02:00
|
|
|
|
|
2018-04-23 09:23:41 +02:00
|
|
|
|
@example
|
|
|
|
|
gpg --list-sigs --with-colons USERID | \
|
|
|
|
|
awk -F: '$1=="sig" && $2=="?" @{if($13)@{print $13@}else@{print $5@}@}'
|
|
|
|
|
@end example
|
2017-09-27 17:18:55 +02:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --fast-list-mode
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex fast-list-mode
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Changes the output of the list commands to work faster; this is achieved
|
2006-10-04 12:22:56 +02:00
|
|
|
|
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. If you are missing some information, don't
|
|
|
|
|
use this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --no-literal
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-literal
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This is not for normal use. Use the source to see for what it might be useful.
|
|
|
|
|
|
|
|
|
|
@item --set-filesize
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex set-filesize
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This is not for normal use. Use the source to see for what it might be useful.
|
|
|
|
|
|
|
|
|
|
@item --show-session-key
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex show-session-key
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Display the session key used for one message. See
|
|
|
|
|
@option{--override-session-key} for the counterpart of this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
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
|
2015-02-11 12:21:30 +01:00
|
|
|
|
encrypted for one secret key.
|
|
|
|
|
|
|
|
|
|
You can also use this option if you receive an encrypted message which
|
|
|
|
|
is abusive or offensive, to prove to the administrators of the
|
|
|
|
|
messaging system that the ciphertext transmitted corresponds to an
|
|
|
|
|
inappropriate plaintext so they can take action against the offending
|
|
|
|
|
user.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --override-session-key @var{string}
|
|
|
|
|
@itemx --override-session-key-fd @var{fd}
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex override-session-key
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Don't use the public key but the session key @var{string} respective
|
2016-11-16 09:02:53 +01:00
|
|
|
|
the session key taken from the first line read from file descriptor
|
2018-08-29 15:04:44 +02:00
|
|
|
|
@var{fd}. The format of this string is the same as the one printed by
|
|
|
|
|
@option{--show-session-key}. This option is normally not used but
|
2016-11-16 09:02:53 +01:00
|
|
|
|
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. Note that using @option{--override-session-key}
|
|
|
|
|
may reveal the session key to all local users via the global process
|
2018-08-29 15:04:44 +02:00
|
|
|
|
table. Often it is useful to combine this option with
|
|
|
|
|
@option{--no-keyring}.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --ask-sig-expire
|
|
|
|
|
@itemx --no-ask-sig-expire
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ask-sig-expire
|
2006-08-16 16:54:19 +02:00
|
|
|
|
When making a data signature, prompt for an expiration time. If this
|
|
|
|
|
option is not specified, the expiration time set via
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--default-sig-expire} is used. @option{--no-ask-sig-expire}
|
2010-09-28 18:04:47 +02:00
|
|
|
|
disables this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --default-sig-expire
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex default-sig-expire
|
2006-08-16 16:54:19 +02:00
|
|
|
|
The default expiration time to use for signature expiration. Valid
|
|
|
|
|
values are "0" for no expiration, a number followed by the letter d
|
|
|
|
|
(for days), w (for weeks), m (for months), or y (for years) (for
|
|
|
|
|
example "2m" for two months, or "5y" for five years), or an absolute
|
|
|
|
|
date in the form YYYY-MM-DD. Defaults to "0".
|
|
|
|
|
|
|
|
|
|
@item --ask-cert-expire
|
|
|
|
|
@itemx --no-ask-cert-expire
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex ask-cert-expire
|
2006-08-16 16:54:19 +02:00
|
|
|
|
When making a key signature, prompt for an expiration time. If this
|
|
|
|
|
option is not specified, the expiration time set via
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--default-cert-expire} is used. @option{--no-ask-cert-expire}
|
|
|
|
|
disables this option.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --default-cert-expire
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex default-cert-expire
|
2006-08-16 16:54:19 +02:00
|
|
|
|
The default expiration time to use for key signature expiration.
|
|
|
|
|
Valid values are "0" for no expiration, a number followed by the
|
|
|
|
|
letter d (for days), w (for weeks), m (for months), or y (for years)
|
|
|
|
|
(for example "2m" for two months, or "5y" for five years), or an
|
|
|
|
|
absolute date in the form YYYY-MM-DD. Defaults to "0".
|
|
|
|
|
|
2016-12-02 19:43:36 +01:00
|
|
|
|
@item --default-new-key-algo @var{string}
|
|
|
|
|
@opindex default-new-key-algo @var{string}
|
|
|
|
|
This option can be used to change the default algorithms for key
|
2018-04-09 10:44:44 +02:00
|
|
|
|
generation. The @var{string} is similar to the arguments required for
|
2018-06-06 17:25:51 +02:00
|
|
|
|
the command @option{--quick-add-key} but slightly different. For
|
2018-04-09 10:44:44 +02:00
|
|
|
|
example the current default of @code{"rsa2048/cert,sign+rsa2048/encr"}
|
|
|
|
|
(or @code{"rsa3072"}) can be changed to the value of what we currently
|
|
|
|
|
call future default, which is @code{"ed25519/cert,sign+cv25519/encr"}.
|
|
|
|
|
You need to consult the source code to learn the details. Note that
|
|
|
|
|
the advanced key generation commands can always be used to specify a
|
|
|
|
|
key algorithm directly.
|
2016-12-02 19:43:36 +01:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@item --allow-secret-key-import
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex allow-secret-key-import
|
2006-08-16 16:54:19 +02:00
|
|
|
|
This is an obsolete option and is not used anywhere.
|
|
|
|
|
|
2007-03-05 15:56:31 +01:00
|
|
|
|
@item --allow-multiple-messages
|
|
|
|
|
@item --no-allow-multiple-messages
|
2018-05-30 22:05:57 +02:00
|
|
|
|
These are obsolete options; they have no more effect since GnuPG 2.2.8.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@item --enable-special-filenames
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex enable-special-filenames
|
2016-03-04 16:20:47 +01:00
|
|
|
|
This option enables a mode in which filenames of the form
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@file{-&n}, where n is a non-negative decimal number,
|
|
|
|
|
refer to the file descriptor n and not to a file with that name.
|
|
|
|
|
|
|
|
|
|
@item --no-expensive-trust-checks
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex no-expensive-trust-checks
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Experimental use only.
|
|
|
|
|
|
|
|
|
|
@item --preserve-permissions
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex preserve-permissions
|
2006-08-16 16:54:19 +02:00
|
|
|
|
Don't change the permissions of a secret keyring back to user
|
|
|
|
|
read/write only. Use this option only if you really know what you are doing.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --default-preference-list @var{string}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex default-preference-list
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the list of default preferences to @var{string}. This preference
|
2006-08-16 16:54:19 +02:00
|
|
|
|
list is used for new keys and becomes the default for "setpref" in the
|
|
|
|
|
edit menu.
|
|
|
|
|
|
2017-07-24 21:29:51 +02:00
|
|
|
|
@item --default-keyserver-url @var{name}
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex default-keyserver-url
|
2017-07-24 21:29:51 +02:00
|
|
|
|
Set the default keyserver URL to @var{name}. This keyserver will be
|
2006-08-16 16:54:19 +02:00
|
|
|
|
used as the keyserver URL when writing a new self-signature on a key,
|
|
|
|
|
which includes key generation and changing preferences.
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item --list-config
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@opindex list-config
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Display various internal configuration parameters of GnuPG. This option
|
|
|
|
|
is intended for external programs that call GnuPG to perform tasks, and
|
|
|
|
|
is thus not generally useful. See the file @file{doc/DETAILS} in the
|
|
|
|
|
source distribution for the details of which configuration items may be
|
|
|
|
|
listed. @option{--list-config} is only usable with
|
|
|
|
|
@option{--with-colons} set.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2015-03-10 15:26:02 +01:00
|
|
|
|
@item --list-gcrypt-config
|
|
|
|
|
@opindex list-gcrypt-config
|
|
|
|
|
Display various internal configuration parameters of Libgcrypt.
|
|
|
|
|
|
2006-10-24 16:45:34 +02:00
|
|
|
|
@item --gpgconf-list
|
|
|
|
|
@opindex gpgconf-list
|
2007-12-13 16:45:40 +01:00
|
|
|
|
This command is similar to @option{--list-config} but in general only
|
2006-10-24 16:45:34 +02:00
|
|
|
|
internally used by the @command{gpgconf} tool.
|
|
|
|
|
|
|
|
|
|
@item --gpgconf-test
|
|
|
|
|
@opindex gpgconf-test
|
|
|
|
|
This is more or less dummy action. However it parses the configuration
|
2007-12-13 16:45:40 +01:00
|
|
|
|
file and returns with failure if the configuration file would prevent
|
2016-12-06 12:16:15 +01:00
|
|
|
|
@command{@gpgname} from startup. Thus it may be used to run a syntax check
|
2006-10-24 16:45:34 +02:00
|
|
|
|
on the configuration file.
|
|
|
|
|
|
2019-08-21 10:19:16 +02:00
|
|
|
|
@c @item --use-only-openpgp-card
|
|
|
|
|
@c @opindex use-only-openpgp-card
|
|
|
|
|
@c Only access OpenPGP card's and no other cards. This is a hidden
|
|
|
|
|
@c option which could be used in case an old use case required the
|
Spelling cleanup.
No functional changes, just fixing minor spelling issues.
---
Most of these were identified from the command line by running:
codespell \
--ignore-words-list fpr,stati,keyserver,keyservers,asign,cas,iff,ifset \
--skip '*.po,ChangeLog*,help.*.txt,*.jpg,*.eps,*.pdf,*.png,*.gpg,*.asc' \
doc g13 g10 kbx agent artwork scd tests tools am common dirmngr sm \
NEWS README README.maint TODO
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2020-02-18 15:34:42 +01:00
|
|
|
|
@c OpenPGP card while several cards are available. This option might be
|
2019-08-21 10:19:16 +02:00
|
|
|
|
@c removed if it turns out that nobody requires it.
|
|
|
|
|
|
2020-08-14 12:19:11 +02:00
|
|
|
|
@item --chuid @var{uid}
|
|
|
|
|
@opindex chuid
|
|
|
|
|
Change the current user to @var{uid} which may either be a number or a
|
|
|
|
|
name. This can be used from the root account to run gpg for
|
|
|
|
|
another user. If @var{uid} is not the current UID a standard PATH is
|
|
|
|
|
set and the envvar GNUPGHOME is unset. To override the latter the
|
|
|
|
|
option @option{--homedir} can be used. This option has only an effect
|
|
|
|
|
when used on the command line. This option has currently no effect at
|
|
|
|
|
all on Windows.
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@c *******************************
|
|
|
|
|
@c ******* Deprecated ************
|
|
|
|
|
@c *******************************
|
2013-04-25 13:00:16 +02:00
|
|
|
|
@node Deprecated Options
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@subsection Deprecated options
|
|
|
|
|
|
|
|
|
|
@table @gnupgtabopt
|
|
|
|
|
|
|
|
|
|
@item --show-photos
|
|
|
|
|
@itemx --no-show-photos
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex show-photos
|
2016-10-10 14:55:27 +02:00
|
|
|
|
Causes @option{--list-keys}, @option{--list-signatures},
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--list-public-keys}, @option{--list-secret-keys}, and verifying
|
|
|
|
|
a signature to also display the photo ID attached to the key, if
|
|
|
|
|
any. See also @option{--photo-viewer}. These options are deprecated. Use
|
|
|
|
|
@option{--list-options [no-]show-photos} and/or @option{--verify-options
|
|
|
|
|
[no-]show-photos} instead.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --show-keyring
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex show-keyring
|
2006-09-19 18:25:51 +02:00
|
|
|
|
Display the keyring name at the head of key listings to show which
|
|
|
|
|
keyring a given key resides on. This option is deprecated: use
|
2006-09-25 20:29:20 +02:00
|
|
|
|
@option{--list-options [no-]show-keyring} instead.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --always-trust
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex always-trust
|
2006-09-25 20:29:20 +02:00
|
|
|
|
Identical to @option{--trust-model always}. This option is deprecated.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --show-notation
|
|
|
|
|
@itemx --no-show-notation
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex show-notation
|
2016-10-10 15:20:14 +02:00
|
|
|
|
Show signature notations in the @option{--list-signatures} or @option{--check-signatures} listings
|
2006-09-19 18:25:51 +02:00
|
|
|
|
as well as when verifying a signature with a notation in it. These
|
2006-09-25 20:29:20 +02:00
|
|
|
|
options are deprecated. Use @option{--list-options [no-]show-notation}
|
|
|
|
|
and/or @option{--verify-options [no-]show-notation} instead.
|
2006-09-19 18:25:51 +02:00
|
|
|
|
|
|
|
|
|
@item --show-policy-url
|
|
|
|
|
@itemx --no-show-policy-url
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@opindex show-policy-url
|
2016-10-10 15:20:14 +02:00
|
|
|
|
Show policy URLs in the @option{--list-signatures} or @option{--check-signatures}
|
2006-09-25 20:29:20 +02:00
|
|
|
|
listings as well as when verifying a signature with a policy URL in
|
|
|
|
|
it. These options are deprecated. Use @option{--list-options
|
|
|
|
|
[no-]show-policy-url} and/or @option{--verify-options
|
|
|
|
|
[no-]show-policy-url} instead.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
|
2006-09-19 18:25:51 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *************** FILES ****************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *******************************************
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect files
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@node GPG Configuration
|
|
|
|
|
@section Configuration files
|
|
|
|
|
|
|
|
|
|
There are a few configuration files to control certain aspects of
|
2006-09-22 16:38:38 +02:00
|
|
|
|
@command{@gpgname}'s operation. Unless noted, they are expected in the
|
2006-08-16 16:54:19 +02:00
|
|
|
|
current home directory (@pxref{option --homedir}).
|
|
|
|
|
|
|
|
|
|
@table @file
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item gpg.conf
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex gpg.conf
|
2011-10-12 17:36:56 +02:00
|
|
|
|
This is the standard configuration file read by @command{@gpgname} on
|
|
|
|
|
startup. It may contain any valid long option; the leading two dashes
|
|
|
|
|
may not be entered and the option may not be abbreviated. This default
|
2013-04-18 14:40:43 +02:00
|
|
|
|
name may be changed on the command line (@pxref{gpg-option --options}).
|
2011-10-12 17:36:56 +02:00
|
|
|
|
You should backup this file.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
Note that on larger installations, it is useful to put predefined files
|
2015-06-09 21:29:15 +02:00
|
|
|
|
into the directory @file{@value{SYSCONFSKELDIR}} so that
|
|
|
|
|
newly created users start up with a working configuration.
|
2014-09-29 11:49:50 +02:00
|
|
|
|
For existing users a small
|
2006-08-16 16:54:19 +02:00
|
|
|
|
helper script is provided to create these files (@pxref{addgnupghome}).
|
|
|
|
|
|
2007-12-13 16:45:40 +01:00
|
|
|
|
For internal purposes @command{@gpgname} creates and maintains a few other
|
2017-02-20 22:19:50 +01:00
|
|
|
|
files; They all live in the current home directory (@pxref{option
|
2015-07-07 15:16:41 +02:00
|
|
|
|
--homedir}). Only the @command{@gpgname} program may modify these files.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@table @file
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@item ~/.gnupg
|
|
|
|
|
@efindex ~/.gnupg
|
|
|
|
|
This is the default home directory which is used if neither the
|
|
|
|
|
environment variable @code{GNUPGHOME} nor the option
|
|
|
|
|
@option{--homedir} is given.
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ~/.gnupg/pubring.gpg
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex pubring.gpg
|
2020-08-20 10:15:38 +02:00
|
|
|
|
The public keyring using a legacy format. You should backup this file.
|
|
|
|
|
|
|
|
|
|
If this file is not available, @command{gpg} defaults to the new
|
|
|
|
|
keybox format and creates a file @file{pubring.kbx} unless that file
|
|
|
|
|
already exists in which case that file will also be used for OpenPGP
|
|
|
|
|
keys.
|
|
|
|
|
|
|
|
|
|
Note that in the case that both files, @file{pubring.gpg} and
|
|
|
|
|
@file{pubring.kbx} exists but the latter has no OpenPGP keys, the
|
|
|
|
|
legacy file @file{pubring.gpg} will be used. Take care: GnuPG
|
|
|
|
|
versions before 2.1 will always use the file @file{pubring.gpg}
|
|
|
|
|
because they do not know about the new keybox format. In the case
|
|
|
|
|
that you have to use GnuPG 1.4 to decrypt archived data you should
|
|
|
|
|
keep this file.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ~/.gnupg/pubring.gpg.lock
|
|
|
|
|
The lock file for the public keyring.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2014-06-05 11:19:59 +02:00
|
|
|
|
@item ~/.gnupg/pubring.kbx
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex pubring.kbx
|
2020-08-20 10:15:38 +02:00
|
|
|
|
The public keyring using the new keybox format. This file is shared
|
|
|
|
|
with @command{gpgsm}. You should backup this file. See above for
|
|
|
|
|
the relation between this file and it predecessor.
|
|
|
|
|
|
|
|
|
|
To convert an existing @file{pubring.gpg} file to the keybox format, you
|
|
|
|
|
first backup the ownertrust values, then rename @file{pubring.gpg} to
|
|
|
|
|
@file{publickeys.backup}, so it won’t be recognized by any GnuPG version,
|
|
|
|
|
run import, and finally restore the ownertrust values:
|
|
|
|
|
|
|
|
|
|
@example
|
|
|
|
|
$ cd ~/.gnupg
|
|
|
|
|
$ gpg --export-ownertrust >otrust.lst
|
|
|
|
|
$ mv pubring.gpg publickeys.backup
|
|
|
|
|
$ gpg --import-options restore --import publickeys.backups
|
|
|
|
|
$ gpg --import-ownertrust otrust.lst
|
|
|
|
|
@end example
|
2014-06-05 11:19:59 +02:00
|
|
|
|
|
|
|
|
|
@item ~/.gnupg/pubring.kbx.lock
|
|
|
|
|
The lock file for @file{pubring.kbx}.
|
|
|
|
|
|
|
|
|
|
@item ~/.gnupg/secring.gpg
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex secring.gpg
|
2020-08-20 10:15:38 +02:00
|
|
|
|
The legacy secret keyring as used by GnuPG versions before 2.1. It is not
|
|
|
|
|
used by GnuPG 2.1 and later. You may want to keep it in case you
|
|
|
|
|
have to use GnuPG 1.4 to decrypt archived data.
|
2014-06-05 11:19:59 +02:00
|
|
|
|
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@item ~/.gnupg/secring.gpg.lock
|
2020-08-20 10:15:38 +02:00
|
|
|
|
The lock file for the legacy secret keyring.
|
2016-06-14 14:57:49 +02:00
|
|
|
|
|
2014-06-05 11:19:59 +02:00
|
|
|
|
@item ~/.gnupg/.gpg-v21-migrated
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex .gpg-v21-migrated
|
2015-06-08 19:27:08 +02:00
|
|
|
|
File indicating that a migration to GnuPG 2.1 has been done.
|
2014-06-05 11:19:59 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ~/.gnupg/trustdb.gpg
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex trustdb.gpg
|
2011-10-12 17:36:56 +02:00
|
|
|
|
The trust database. There is no need to backup this file; it is better
|
|
|
|
|
to backup the ownertrust values (@pxref{option --export-ownertrust}).
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ~/.gnupg/trustdb.gpg.lock
|
|
|
|
|
The lock file for the trust database.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item ~/.gnupg/random_seed
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex random_seed
|
2011-10-12 17:36:56 +02:00
|
|
|
|
A file used to preserve the state of the internal random pool.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2014-06-25 20:25:28 +02:00
|
|
|
|
@item ~/.gnupg/openpgp-revocs.d/
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex openpgp-revocs.d
|
2014-06-25 20:25:28 +02:00
|
|
|
|
This is the directory where gpg stores pre-generated revocation
|
2014-09-18 16:00:34 +02:00
|
|
|
|
certificates. The file name corresponds to the OpenPGP fingerprint of
|
|
|
|
|
the respective key. It is suggested to backup those certificates and
|
|
|
|
|
if the primary private key is not stored on the disk to move them to
|
2019-08-20 21:14:39 +02:00
|
|
|
|
an external storage device. Anyone who can access these files is
|
2014-09-18 16:00:34 +02:00
|
|
|
|
able to revoke the corresponding key. You may want to print them out.
|
|
|
|
|
You should backup all files in this directory and take care to keep
|
|
|
|
|
this backup closed away.
|
2014-06-25 20:25:28 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
Operation is further controlled by a few environment variables:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item HOME
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex HOME
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Used to locate the default home directory.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item GNUPGHOME
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex GNUPGHOME
|
2011-10-12 17:36:56 +02:00
|
|
|
|
If set directory used instead of "~/.gnupg".
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item GPG_AGENT_INFO
|
2016-06-14 14:57:49 +02:00
|
|
|
|
This variable is obsolete; it was used by GnuPG versions before 2.1.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
|
|
|
|
|
@item PINENTRY_USER_DATA
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex PINENTRY_USER_DATA
|
2011-10-12 17:36:56 +02:00
|
|
|
|
This value is passed via gpg-agent to pinentry. It is useful to convey
|
|
|
|
|
extra information to a custom pinentry.
|
|
|
|
|
|
|
|
|
|
@item COLUMNS
|
|
|
|
|
@itemx LINES
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex COLUMNS
|
|
|
|
|
@efindex LINES
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Used to size some displays to the full size of the screen.
|
|
|
|
|
|
|
|
|
|
@item LANGUAGE
|
2016-06-14 14:57:49 +02:00
|
|
|
|
@efindex LANGUAGE
|
2011-10-12 17:36:56 +02:00
|
|
|
|
Apart from its use by GNU, it is used in the W32 version to override the
|
|
|
|
|
language selection done through the Registry. If used and set to a
|
|
|
|
|
valid and available language name (@var{langid}), the file with the
|
|
|
|
|
translation is loaded from
|
|
|
|
|
@code{@var{gpgdir}/gnupg.nls/@var{langid}.mo}. Here @var{gpgdir} is the
|
|
|
|
|
directory out of which the gpg binary has been loaded. If it can't be
|
|
|
|
|
loaded the Registry is tried and as last resort the native Windows
|
|
|
|
|
locale system is used.
|
2007-02-26 21:24:29 +01:00
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@end table
|
|
|
|
|
|
2018-08-29 09:53:06 +02:00
|
|
|
|
When calling the gpg-agent component @command{@gpgname} sends a set of
|
|
|
|
|
environment variables to gpg-agent. The names of these variables can
|
|
|
|
|
be listed using the command:
|
|
|
|
|
|
|
|
|
|
@example
|
|
|
|
|
gpg-connect-agent 'getinfo std_env_names' /bye | awk '$1=="D" @{print $2@}'
|
|
|
|
|
@end example
|
|
|
|
|
|
|
|
|
|
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *************** EXAMPLES ****************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *******************************************
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect examples
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@node GPG Examples
|
|
|
|
|
@section Examples
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@table @asis
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item gpg -se -r @code{Bob} @code{file}
|
|
|
|
|
sign and encrypt for user Bob
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2016-09-23 14:10:07 +02:00
|
|
|
|
@item gpg --clear-sign @code{file}
|
2016-12-06 12:16:15 +01:00
|
|
|
|
make a cleartext signature
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item gpg -sb @code{file}
|
|
|
|
|
make a detached signature
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2008-09-23 11:57:45 +02:00
|
|
|
|
@item gpg -u 0x12345678 -sb @code{file}
|
|
|
|
|
make a detached signature with the key 0x12345678
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item gpg --list-keys @code{user_ID}
|
|
|
|
|
show keys
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item gpg --fingerprint @code{user_ID}
|
|
|
|
|
show fingerprint
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@item gpg --verify @code{pgpfile}
|
2016-03-04 17:30:30 +01:00
|
|
|
|
@itemx gpg --verify @code{sigfile} [@code{datafile}]
|
2016-09-08 00:45:45 +02:00
|
|
|
|
Verify the signature of the file but do not output the data unless
|
2016-03-04 17:30:30 +01:00
|
|
|
|
requested. The second form is used for detached signatures, where
|
2016-09-08 00:45:45 +02:00
|
|
|
|
@code{sigfile} is the detached signature (either ASCII armored or
|
2016-03-04 17:30:30 +01:00
|
|
|
|
binary) and @code{datafile} are the signed data; if this is not given, the name of the
|
2016-09-08 00:45:45 +02:00
|
|
|
|
file holding the signed data is constructed by cutting off the
|
|
|
|
|
extension (".asc" or ".sig") of @code{sigfile} or by asking the user
|
|
|
|
|
for the filename. If the option @option{--output} is also used the
|
|
|
|
|
signed data is written to the file specified by that option; use
|
|
|
|
|
@code{-} to write the signed data to stdout.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@end table
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
|
2006-09-08 19:02:06 +02:00
|
|
|
|
@c *******************************************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *************** USER ID ****************
|
|
|
|
|
@c *************** ****************
|
|
|
|
|
@c *******************************************
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect how to specify a user id
|
2006-09-08 19:02:06 +02:00
|
|
|
|
@ifset isman
|
|
|
|
|
@include specify-user-id.texi
|
|
|
|
|
@end ifset
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2016-07-02 16:18:50 +02:00
|
|
|
|
@mansect filter expressions
|
|
|
|
|
@chapheading FILTER EXPRESSIONS
|
|
|
|
|
|
|
|
|
|
The options @option{--import-filter} and @option{--export-filter} use
|
|
|
|
|
expressions with this syntax (square brackets indicate an optional
|
|
|
|
|
part and curly braces a repetition, white space between the elements
|
|
|
|
|
are allowed):
|
|
|
|
|
|
|
|
|
|
@c man:.RS
|
|
|
|
|
@example
|
|
|
|
|
[lc] @{[@{flag@}] PROPNAME op VALUE [lc]@}
|
|
|
|
|
@end example
|
|
|
|
|
@c man:.RE
|
|
|
|
|
|
|
|
|
|
The name of a property (@var{PROPNAME}) may only consist of letters,
|
|
|
|
|
digits and underscores. The description for the filter type
|
|
|
|
|
describes which properties are defined. If an undefined property is
|
|
|
|
|
used it evaluates to the empty string. Unless otherwise noted, the
|
|
|
|
|
@var{VALUE} must always be given and may not be the empty string. No
|
|
|
|
|
quoting is defined for the value, thus the value may not contain the
|
|
|
|
|
strings @code{&&} or @code{||}, which are used as logical connection
|
|
|
|
|
operators. The flag @code{--} can be used to remove this restriction.
|
|
|
|
|
|
|
|
|
|
Numerical values are computed as long int; standard C notation
|
|
|
|
|
applies. @var{lc} is the logical connection operator; either
|
|
|
|
|
@code{&&} for a conjunction or @code{||} for a disjunction. A
|
|
|
|
|
conjunction is assumed at the begin of an expression. Conjunctions
|
|
|
|
|
have higher precedence than disjunctions. If @var{VALUE} starts with
|
|
|
|
|
one of the characters used in any @var{op} a space after the
|
|
|
|
|
@var{op} is required.
|
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
The supported operators (@var{op}) are:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
|
|
|
|
@item =~
|
|
|
|
|
Substring must match.
|
|
|
|
|
|
|
|
|
|
@item !~
|
|
|
|
|
Substring must not match.
|
|
|
|
|
|
|
|
|
|
@item =
|
|
|
|
|
The full string must match.
|
|
|
|
|
|
|
|
|
|
@item <>
|
|
|
|
|
The full string must not match.
|
|
|
|
|
|
|
|
|
|
@item ==
|
|
|
|
|
The numerical value must match.
|
|
|
|
|
|
|
|
|
|
@item !=
|
|
|
|
|
The numerical value must not match.
|
|
|
|
|
|
|
|
|
|
@item <=
|
|
|
|
|
The numerical value of the field must be LE than the value.
|
|
|
|
|
|
|
|
|
|
@item <
|
|
|
|
|
The numerical value of the field must be LT than the value.
|
|
|
|
|
|
2016-09-05 09:49:06 +02:00
|
|
|
|
@item >
|
2016-07-02 16:18:50 +02:00
|
|
|
|
The numerical value of the field must be GT than the value.
|
|
|
|
|
|
|
|
|
|
@item >=
|
|
|
|
|
The numerical value of the field must be GE than the value.
|
|
|
|
|
|
2016-09-05 09:49:06 +02:00
|
|
|
|
@item -le
|
|
|
|
|
The string value of the field must be less or equal than the value.
|
|
|
|
|
|
|
|
|
|
@item -lt
|
|
|
|
|
The string value of the field must be less than the value.
|
|
|
|
|
|
|
|
|
|
@item -gt
|
|
|
|
|
The string value of the field must be greater than the value.
|
|
|
|
|
|
|
|
|
|
@item -ge
|
|
|
|
|
The string value of the field must be greater or equal than the value.
|
|
|
|
|
|
2016-07-02 16:18:50 +02:00
|
|
|
|
@item -n
|
|
|
|
|
True if value is not empty (no value allowed).
|
|
|
|
|
|
|
|
|
|
@item -z
|
|
|
|
|
True if value is empty (no value allowed).
|
|
|
|
|
|
|
|
|
|
@item -t
|
|
|
|
|
Alias for "PROPNAME != 0" (no value allowed).
|
|
|
|
|
|
|
|
|
|
@item -f
|
|
|
|
|
Alias for "PROPNAME == 0" (no value allowed).
|
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
Values for @var{flag} must be space separated. The supported flags
|
|
|
|
|
are:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
@item --
|
|
|
|
|
@var{VALUE} spans to the end of the expression.
|
|
|
|
|
@item -c
|
|
|
|
|
The string match in this part is done case-sensitive.
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
The filter options concatenate several specifications for a filter of
|
|
|
|
|
the same type. For example the four options in this example:
|
|
|
|
|
|
|
|
|
|
@c man:.RS
|
|
|
|
|
@example
|
2019-10-12 12:32:43 +02:00
|
|
|
|
--import-filter keep-uid="uid =~ Alfa"
|
|
|
|
|
--import-filter keep-uid="&& uid !~ Test"
|
|
|
|
|
--import-filter keep-uid="|| uid =~ Alpha"
|
|
|
|
|
--import-filter keep-uid="uid !~ Test"
|
2016-07-02 16:18:50 +02:00
|
|
|
|
@end example
|
|
|
|
|
@c man:.RE
|
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
which is equivalent to
|
|
|
|
|
|
|
|
|
|
@c man:.RS
|
|
|
|
|
@example
|
2019-10-12 12:32:43 +02:00
|
|
|
|
--import-filter \
|
2016-07-02 16:18:50 +02:00
|
|
|
|
keep-uid="uid =~ Alfa" && uid !~ Test" || uid =~ Alpha" && "uid !~ Test"
|
|
|
|
|
@end example
|
|
|
|
|
@c man:.RE
|
|
|
|
|
|
|
|
|
|
imports only the user ids of a key containing the strings "Alfa"
|
|
|
|
|
or "Alpha" but not the string "test".
|
|
|
|
|
|
2018-05-06 07:58:23 +02:00
|
|
|
|
@mansect trust values
|
|
|
|
|
@ifset isman
|
|
|
|
|
@include trust-values.texi
|
|
|
|
|
@end ifset
|
2016-07-02 16:18:50 +02:00
|
|
|
|
|
2007-12-13 16:45:40 +01:00
|
|
|
|
@mansect return value
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@chapheading RETURN VALUE
|
|
|
|
|
|
2020-02-10 17:11:53 +01:00
|
|
|
|
The program returns 0 if there are no severe errors, 1 if at least a
|
|
|
|
|
signature was bad, and other error codes for fatal errors.
|
|
|
|
|
|
|
|
|
|
Note that signature verification requires exact knowledge of what has
|
Spelling cleanup.
No functional changes, just fixing minor spelling issues.
---
Most of these were identified from the command line by running:
codespell \
--ignore-words-list fpr,stati,keyserver,keyservers,asign,cas,iff,ifset \
--skip '*.po,ChangeLog*,help.*.txt,*.jpg,*.eps,*.pdf,*.png,*.gpg,*.asc' \
doc g13 g10 kbx agent artwork scd tests tools am common dirmngr sm \
NEWS README README.maint TODO
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2020-02-18 15:34:42 +01:00
|
|
|
|
been signed and by whom it has been signed. Using only the return code
|
2020-02-10 17:11:53 +01:00
|
|
|
|
is thus not an appropriate way to verify a signature by a script.
|
|
|
|
|
Either make proper use or the status codes or use the @command{gpgv}
|
|
|
|
|
tool which has been designed to make signature verification easy for
|
|
|
|
|
scripts.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect warnings
|
|
|
|
|
@chapheading WARNINGS
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
2020-02-10 17:11:53 +01:00
|
|
|
|
Use a good password for your user account and make sure that all
|
|
|
|
|
security issues are always fixed on your machine. Also employ
|
|
|
|
|
diligent physical protection to your machine. Consider to use a good
|
|
|
|
|
passphrase as a last resort protection to your secret key in the case
|
|
|
|
|
your machine gets stolen. It is important that your secret key is
|
|
|
|
|
never leaked. Using an easy to carry around token or smartcard with
|
|
|
|
|
the secret key is often a advisable.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
If you are going to verify detached signatures, make sure that the
|
|
|
|
|
program knows about it; either give both filenames on the command line
|
2008-12-08 20:10:42 +01:00
|
|
|
|
or use @samp{-} to specify STDIN.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
2018-02-21 10:17:20 +01:00
|
|
|
|
For scripted or other unattended use of @command{gpg} make sure to use
|
|
|
|
|
the machine-parseable interface and not the default interface which is
|
|
|
|
|
intended for direct use by humans. The machine-parseable interface
|
|
|
|
|
provides a stable and well documented API independent of the locale or
|
|
|
|
|
future changes of @command{gpg}. To enable this interface use the
|
|
|
|
|
options @option{--with-colons} and @option{--status-fd}. For certain
|
|
|
|
|
operations the option @option{--command-fd} may come handy too. See
|
|
|
|
|
this man page and the file @file{DETAILS} for the specification of the
|
|
|
|
|
interface. Note that the GnuPG ``info'' pages as well as the PDF
|
|
|
|
|
version of the GnuPG manual features a chapter on unattended use of
|
|
|
|
|
GnuPG. As an alternative the library @command{GPGME} can be used as a
|
|
|
|
|
high-level abstraction on top of that interface.
|
|
|
|
|
|
2006-08-17 20:01:25 +02:00
|
|
|
|
@mansect interoperability
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@chapheading INTEROPERABILITY WITH OTHER OPENPGP PROGRAMS
|
|
|
|
|
|
|
|
|
|
GnuPG tries to be a very flexible implementation of the OpenPGP
|
|
|
|
|
standard. In particular, GnuPG implements many of the optional parts
|
|
|
|
|
of the standard, such as the SHA-512 hash, and the ZLIB and BZIP2
|
|
|
|
|
compression algorithms. It is important to be aware that not all
|
|
|
|
|
OpenPGP programs implement these optional algorithms and that by
|
2007-10-26 06:16:42 +02:00
|
|
|
|
forcing their use via the @option{--cipher-algo},
|
|
|
|
|
@option{--digest-algo}, @option{--cert-digest-algo}, or
|
|
|
|
|
@option{--compress-algo} options in GnuPG, it is possible to create a
|
|
|
|
|
perfectly valid OpenPGP message, but one that cannot be read by the
|
|
|
|
|
intended recipient.
|
2006-08-16 16:54:19 +02:00
|
|
|
|
|
|
|
|
|
There are dozens of variations of OpenPGP programs available, and each
|
|
|
|
|
supports a slightly different subset of these optional algorithms.
|
|
|
|
|
For example, until recently, no (unhacked) version of PGP supported
|
|
|
|
|
the BLOWFISH cipher algorithm. A message using BLOWFISH simply could
|
|
|
|
|
not be read by a PGP user. By default, GnuPG uses the standard
|
|
|
|
|
OpenPGP preferences system that will always do the right thing and
|
|
|
|
|
create messages that are usable by all recipients, regardless of which
|
|
|
|
|
OpenPGP program they use. Only override this safe default if you
|
|
|
|
|
really know what you are doing.
|
|
|
|
|
|
2006-09-25 20:29:20 +02:00
|
|
|
|
If you absolutely must override the safe default, or if the preferences
|
|
|
|
|
on a given key are invalid for some reason, you are far better off using
|
|
|
|
|
the @option{--pgp6}, @option{--pgp7}, or @option{--pgp8} options. These
|
|
|
|
|
options are safe as they do not force any particular algorithms in
|
|
|
|
|
violation of OpenPGP, but rather reduce the available algorithms to a
|
|
|
|
|
"PGP-safe" list.
|
2006-08-17 20:01:25 +02:00
|
|
|
|
|
|
|
|
|
@mansect bugs
|
2006-08-16 16:54:19 +02:00
|
|
|
|
@chapheading BUGS
|
|
|
|
|
|
2010-02-11 12:30:07 +01:00
|
|
|
|
On older systems this program should be installed as setuid(root). This
|
2006-08-16 16:54:19 +02:00
|
|
|
|
is necessary to lock memory pages. Locking memory pages prevents the
|
|
|
|
|
operating system from writing memory pages (which may contain
|
|
|
|
|
passphrases or other sensitive material) to disk. If you get no
|
|
|
|
|
warning message about insecure memory your operating system supports
|
|
|
|
|
locking without being root. The program drops root privileges as soon
|
|
|
|
|
as locked memory is allocated.
|
|
|
|
|
|
2007-01-18 00:38:56 +01:00
|
|
|
|
Note also that some systems (especially laptops) have the ability to
|
|
|
|
|
``suspend to disk'' (also known as ``safe sleep'' or ``hibernate'').
|
|
|
|
|
This writes all memory to disk before going into a low power or even
|
|
|
|
|
powered off mode. Unless measures are taken in the operating system
|
|
|
|
|
to protect the saved memory, passphrases or other sensitive material
|
|
|
|
|
may be recoverable from it later.
|
|
|
|
|
|
2010-02-11 12:30:07 +01:00
|
|
|
|
Before you report a bug you should first search the mailing list
|
|
|
|
|
archives for similar problems and second check whether such a bug has
|
2017-07-24 10:41:30 +02:00
|
|
|
|
already been reported to our bug tracker at @url{https://bugs.gnupg.org}.
|
2010-02-11 12:30:07 +01:00
|
|
|
|
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@c *******************************************
|
|
|
|
|
@c *************** **************
|
|
|
|
|
@c *************** UNATTENDED **************
|
|
|
|
|
@c *************** **************
|
|
|
|
|
@c *******************************************
|
|
|
|
|
@manpause
|
|
|
|
|
@node Unattended Usage of GPG
|
|
|
|
|
@section Unattended Usage
|
|
|
|
|
|
2016-12-06 12:16:15 +01:00
|
|
|
|
@command{@gpgname} is often used as a backend engine by other software. To help
|
2011-03-01 17:08:49 +01:00
|
|
|
|
with this a machine interface has been defined to have an unambiguous
|
|
|
|
|
way to do this. The options @option{--status-fd} and @option{--batch}
|
|
|
|
|
are almost always required for this.
|
|
|
|
|
|
|
|
|
|
@menu
|
2016-12-16 13:49:16 +01:00
|
|
|
|
* Programmatic use of GnuPG:: Programmatic use of GnuPG
|
|
|
|
|
* Ephemeral home directories:: Ephemeral home directories
|
|
|
|
|
* The quick key manipulation interface:: The quick key manipulation interface
|
2011-03-01 17:08:49 +01:00
|
|
|
|
* Unattended GPG key generation:: Unattended key generation
|
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
|
|
|
2016-12-16 13:49:16 +01:00
|
|
|
|
@node Programmatic use of GnuPG
|
|
|
|
|
@subsection Programmatic use of GnuPG
|
|
|
|
|
|
|
|
|
|
Please consider using GPGME instead of calling @command{@gpgname}
|
|
|
|
|
directly. GPGME offers a stable, backend-independent interface for
|
|
|
|
|
many cryptographic operations. It supports OpenPGP and S/MIME, and
|
|
|
|
|
also allows interaction with various GnuPG components.
|
|
|
|
|
|
|
|
|
|
GPGME provides a C-API, and comes with bindings for C++, Qt, and
|
|
|
|
|
Python. Bindings for other languages are available.
|
|
|
|
|
|
|
|
|
|
@node Ephemeral home directories
|
|
|
|
|
@subsection Ephemeral home directories
|
|
|
|
|
|
|
|
|
|
Sometimes you want to contain effects of some operation, for example
|
|
|
|
|
you want to import a key to inspect it, but you do not want this key
|
|
|
|
|
to be added to your keyring. In earlier versions of GnuPG, it was
|
|
|
|
|
possible to specify alternate keyring files for both public and secret
|
|
|
|
|
keys. In modern GnuPG versions, however, we changed how secret keys
|
|
|
|
|
are stored in order to better protect secret key material, and it was
|
|
|
|
|
not possible to preserve this interface.
|
|
|
|
|
|
|
|
|
|
The preferred way to do this is to use ephemeral home directories.
|
|
|
|
|
This technique works across all versions of GnuPG.
|
|
|
|
|
|
|
|
|
|
Create a temporary directory, create (or copy) a configuration that
|
|
|
|
|
meets your needs, make @command{@gpgname} use this directory either
|
|
|
|
|
using the environment variable @var{GNUPGHOME}, or the option
|
|
|
|
|
@option{--homedir}. GPGME supports this too on a per-context basis,
|
|
|
|
|
by modifying the engine info of contexts. Now execute whatever
|
|
|
|
|
operation you like, import and export key material as necessary. Once
|
|
|
|
|
finished, you can delete the directory. All GnuPG backend services
|
|
|
|
|
that were started will detect this and shut down.
|
|
|
|
|
|
|
|
|
|
@node The quick key manipulation interface
|
|
|
|
|
@subsection The quick key manipulation interface
|
|
|
|
|
|
|
|
|
|
Recent versions of GnuPG have an interface to manipulate keys without
|
|
|
|
|
using the interactive command @option{--edit-key}. This interface was
|
|
|
|
|
added mainly for the benefit of GPGME (please consider using GPGME,
|
|
|
|
|
see the manual subsection ``Programmatic use of GnuPG''). This
|
|
|
|
|
interface is described in the subsection ``How to manage your keys''.
|
|
|
|
|
|
2013-04-25 13:00:16 +02:00
|
|
|
|
@node Unattended GPG key generation
|
|
|
|
|
@subsection Unattended key generation
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
2016-11-14 16:59:23 +01:00
|
|
|
|
The command @option{--generate-key} may be used along with the option
|
2016-12-16 13:52:03 +01:00
|
|
|
|
@option{--batch} for unattended key generation. This is the most
|
|
|
|
|
flexible way of generating keys, but it is also the most complex one.
|
|
|
|
|
Consider using the quick key manipulation interface described in the
|
|
|
|
|
previous subsection ``The quick key manipulation interface''.
|
|
|
|
|
|
|
|
|
|
The parameters for the key are either read from stdin or given as a
|
|
|
|
|
file on the command line. The format of the parameter file is as
|
|
|
|
|
follows:
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
|
|
|
|
@itemize @bullet
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item Text only, line length is limited to about 1000 characters.
|
|
|
|
|
@item UTF-8 encoding must be used to specify non-ASCII characters.
|
|
|
|
|
@item Empty lines are ignored.
|
2017-07-06 12:56:06 +02:00
|
|
|
|
@item Leading and trailing white space is ignored.
|
2011-10-12 17:36:56 +02:00
|
|
|
|
@item A hash sign as the first non white space character indicates
|
|
|
|
|
a comment line.
|
|
|
|
|
@item Control statements are indicated by a leading percent sign, the
|
|
|
|
|
arguments are separated by white space from the keyword.
|
|
|
|
|
@item Parameters are specified by a keyword, followed by a colon. Arguments
|
|
|
|
|
are separated by white space.
|
|
|
|
|
@item
|
|
|
|
|
The first parameter must be @samp{Key-Type}; control statements may be
|
|
|
|
|
placed anywhere.
|
|
|
|
|
@item
|
|
|
|
|
The order of the parameters does not matter except for @samp{Key-Type}
|
|
|
|
|
which must be the first parameter. The parameters are only used for
|
|
|
|
|
the generated keyblock (primary and subkeys); parameters from previous
|
|
|
|
|
sets are not used. Some syntactically checks may be performed.
|
|
|
|
|
@item
|
|
|
|
|
Key generation takes place when either the end of the parameter file
|
|
|
|
|
is reached, the next @samp{Key-Type} parameter is encountered or at the
|
|
|
|
|
control statement @samp{%commit} is encountered.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
Control statements:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
|
|
|
|
@item %echo @var{text}
|
|
|
|
|
Print @var{text} as diagnostic.
|
|
|
|
|
|
|
|
|
|
@item %dry-run
|
|
|
|
|
Suppress actual key generation (useful for syntax checking).
|
|
|
|
|
|
|
|
|
|
@item %commit
|
|
|
|
|
Perform the key generation. Note that an implicit commit is done at
|
|
|
|
|
the next @asis{Key-Type} parameter.
|
|
|
|
|
|
|
|
|
|
@item %pubring @var{filename}
|
|
|
|
|
Do not write the key to the default or commandline given keyring but
|
|
|
|
|
to @var{filename}. This must be given before the first commit to take
|
|
|
|
|
place, duplicate specification of the same filename is ignored, the
|
|
|
|
|
last filename before a commit is used. The filename is used until a
|
|
|
|
|
new filename is used (at commit points) and all keys are written to
|
|
|
|
|
that file. If a new filename is given, this file is created (and
|
2016-12-16 13:52:03 +01:00
|
|
|
|
overwrites an existing one).
|
|
|
|
|
|
|
|
|
|
See the previous subsection ``Ephemeral home directories'' for a more
|
|
|
|
|
robust way to contain side-effects.
|
|
|
|
|
|
|
|
|
|
@item %secring @var{filename}
|
|
|
|
|
This option is a no-op for GnuPG 2.1 and later.
|
|
|
|
|
|
|
|
|
|
See the previous subsection ``Ephemeral home directories''.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
|
|
|
|
@item %ask-passphrase
|
|
|
|
|
@itemx %no-ask-passphrase
|
2014-11-02 15:43:52 +01:00
|
|
|
|
This option is a no-op for GnuPG 2.1 and later.
|
|
|
|
|
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@item %no-protection
|
|
|
|
|
Using this option allows the creation of keys without any passphrase
|
|
|
|
|
protection. This option is mainly intended for regression tests.
|
|
|
|
|
|
|
|
|
|
@item %transient-key
|
|
|
|
|
If given the keys are created using a faster and a somewhat less
|
|
|
|
|
secure random number generator. This option may be used for keys
|
|
|
|
|
which are only used for a short time and do not require full
|
|
|
|
|
cryptographic strength. It takes only effect if used together with
|
|
|
|
|
the control statement @samp{%no-protection}.
|
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
General Parameters:
|
|
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
|
|
|
|
|
|
@item Key-Type: @var{algo}
|
|
|
|
|
Starts a new parameter block by giving the type of the primary
|
|
|
|
|
key. The algorithm must be capable of signing. This is a required
|
|
|
|
|
parameter. @var{algo} may either be an OpenPGP algorithm number or a
|
|
|
|
|
string with the algorithm name. The special value @samp{default} may
|
|
|
|
|
be used for @var{algo} to create the default key type; in this case a
|
|
|
|
|
@samp{Key-Usage} shall not be given and @samp{default} also be used
|
|
|
|
|
for @samp{Subkey-Type}.
|
|
|
|
|
|
|
|
|
|
@item Key-Length: @var{nbits}
|
|
|
|
|
The requested length of the generated key in bits. The default is
|
2016-04-05 15:15:28 +02:00
|
|
|
|
returned by running the command @samp{@gpgname --gpgconf-list}.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
|
|
|
|
@item Key-Grip: @var{hexstring}
|
2011-11-02 18:29:47 +01:00
|
|
|
|
This is optional and used to generate a CSR or certificate for an
|
2011-03-01 17:08:49 +01:00
|
|
|
|
already existing key. Key-Length will be ignored when given.
|
|
|
|
|
|
|
|
|
|
@item Key-Usage: @var{usage-list}
|
|
|
|
|
Space or comma delimited list of key usages. Allowed values are
|
|
|
|
|
@samp{encrypt}, @samp{sign}, and @samp{auth}. This is used to
|
|
|
|
|
generate the key flags. Please make sure that the algorithm is
|
|
|
|
|
capable of this usage. Note that OpenPGP requires that all primary
|
|
|
|
|
keys are capable of certification, so no matter what usage is given
|
|
|
|
|
here, the @samp{cert} flag will be on. If no @samp{Key-Usage} is
|
|
|
|
|
specified and the @samp{Key-Type} is not @samp{default}, all allowed
|
|
|
|
|
usages for that particular algorithm are used; if it is not given but
|
|
|
|
|
@samp{default} is used the usage will be @samp{sign}.
|
|
|
|
|
|
|
|
|
|
@item Subkey-Type: @var{algo}
|
|
|
|
|
This generates a secondary key (subkey). Currently only one subkey
|
|
|
|
|
can be handled. See also @samp{Key-Type} above.
|
|
|
|
|
|
|
|
|
|
@item Subkey-Length: @var{nbits}
|
|
|
|
|
Length of the secondary key (subkey) in bits. The default is returned
|
2016-03-04 16:20:47 +01:00
|
|
|
|
by running the command @samp{@gpgname --gpgconf-list}.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
|
|
|
|
@item Subkey-Usage: @var{usage-list}
|
|
|
|
|
Key usage lists for a subkey; similar to @samp{Key-Usage}.
|
|
|
|
|
|
|
|
|
|
@item Passphrase: @var{string}
|
2015-01-21 11:31:20 +01:00
|
|
|
|
If you want to specify a passphrase for the secret key, enter it here.
|
|
|
|
|
Default is to use the Pinentry dialog to ask for a passphrase.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
|
|
|
|
@item Name-Real: @var{name}
|
|
|
|
|
@itemx Name-Comment: @var{comment}
|
|
|
|
|
@itemx Name-Email: @var{email}
|
|
|
|
|
The three parts of a user name. Remember to use UTF-8 encoding here.
|
|
|
|
|
If you don't give any of them, no user ID is created.
|
|
|
|
|
|
|
|
|
|
@item Expire-Date: @var{iso-date}|(@var{number}[d|w|m|y])
|
|
|
|
|
Set the expiration date for the key (and the subkey). It may either
|
2013-04-04 14:24:11 +02:00
|
|
|
|
be entered in ISO date format (e.g. "20000815T145012") or as number of
|
|
|
|
|
days, weeks, month or years after the creation date. The special
|
|
|
|
|
notation "seconds=N" is also allowed to specify a number of seconds
|
|
|
|
|
since creation. Without a letter days are assumed. Note that there
|
|
|
|
|
is no check done on the overflow of the type used by OpenPGP for
|
|
|
|
|
timestamps. Thus you better make sure that the given value make
|
|
|
|
|
sense. Although OpenPGP works with time intervals, GnuPG uses an
|
|
|
|
|
absolute value internally and thus the last year we can represent is
|
|
|
|
|
2105.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
2014-09-02 16:01:25 +02:00
|
|
|
|
@item Creation-Date: @var{iso-date}
|
2011-03-01 17:08:49 +01:00
|
|
|
|
Set the creation date of the key as stored in the key information and
|
|
|
|
|
which is also part of the fingerprint calculation. Either a date like
|
|
|
|
|
"1986-04-26" or a full timestamp like "19860426T042640" may be used.
|
2013-04-04 14:24:11 +02:00
|
|
|
|
The time is considered to be UTC. The special notation "seconds=N"
|
|
|
|
|
may be used to directly specify a the number of seconds since Epoch
|
|
|
|
|
(Unix time). If it is not given the current time is used.
|
2011-03-01 17:08:49 +01:00
|
|
|
|
|
|
|
|
|
@item Preferences: @var{string}
|
|
|
|
|
Set the cipher, hash, and compression preference values for this key.
|
|
|
|
|
This expects the same type of string as the sub-command @samp{setpref}
|
|
|
|
|
in the @option{--edit-key} menu.
|
|
|
|
|
|
|
|
|
|
@item Revoker: @var{algo}:@var{fpr} [sensitive]
|
|
|
|
|
Add a designated revoker to the generated key. Algo is the public key
|
|
|
|
|
algorithm of the designated revoker (i.e. RSA=1, DSA=17, etc.)
|
|
|
|
|
@var{fpr} is the fingerprint of the designated revoker. The optional
|
|
|
|
|
@samp{sensitive} flag marks the designated revoker as sensitive
|
|
|
|
|
information. Only v4 keys may be designated revokers.
|
|
|
|
|
|
|
|
|
|
@item Keyserver: @var{string}
|
|
|
|
|
This is an optional parameter that specifies the preferred keyserver
|
|
|
|
|
URL for the key.
|
|
|
|
|
|
|
|
|
|
@item Handle: @var{string}
|
|
|
|
|
This is an optional parameter only used with the status lines
|
|
|
|
|
KEY_CREATED and KEY_NOT_CREATED. @var{string} may be up to 100
|
|
|
|
|
characters and should not contain spaces. It is useful for batch key
|
|
|
|
|
generation to associate a key parameter block with a status line.
|
|
|
|
|
|
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
|
@noindent
|
2016-12-16 13:52:03 +01:00
|
|
|
|
Here is an example on how to create a key in an ephemeral home directory:
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@smallexample
|
2016-12-16 13:52:03 +01:00
|
|
|
|
$ export GNUPGHOME="$(mktemp -d)"
|
2011-03-01 17:08:49 +01:00
|
|
|
|
$ cat >foo <<EOF
|
|
|
|
|
%echo Generating a basic OpenPGP key
|
|
|
|
|
Key-Type: DSA
|
|
|
|
|
Key-Length: 1024
|
|
|
|
|
Subkey-Type: ELG-E
|
|
|
|
|
Subkey-Length: 1024
|
|
|
|
|
Name-Real: Joe Tester
|
|
|
|
|
Name-Comment: with stupid passphrase
|
|
|
|
|
Name-Email: joe@@foo.bar
|
|
|
|
|
Expire-Date: 0
|
|
|
|
|
Passphrase: abc
|
|
|
|
|
# Do a commit here, so that we can later print "done" :-)
|
|
|
|
|
%commit
|
|
|
|
|
%echo done
|
|
|
|
|
EOF
|
2016-11-14 16:59:23 +01:00
|
|
|
|
$ @gpgname --batch --generate-key foo
|
2011-03-01 17:08:49 +01:00
|
|
|
|
[...]
|
2016-12-16 13:52:03 +01:00
|
|
|
|
$ @gpgname --list-secret-keys
|
|
|
|
|
/tmp/tmp.0NQxB74PEf/pubring.kbx
|
|
|
|
|
-------------------------------
|
|
|
|
|
sec dsa1024 2016-12-16 [SCA]
|
|
|
|
|
768E895903FC1C44045C8CB95EEBDB71E9E849D0
|
|
|
|
|
uid [ultimate] Joe Tester (with stupid passphrase) <joe@@foo.bar>
|
|
|
|
|
ssb elg1024 2016-12-16 [E]
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
|
If you want to create a key with the default algorithms you would use
|
|
|
|
|
these parameters:
|
|
|
|
|
@smallexample
|
|
|
|
|
%echo Generating a default key
|
|
|
|
|
Key-Type: default
|
|
|
|
|
Subkey-Type: default
|
|
|
|
|
Name-Real: Joe Tester
|
|
|
|
|
Name-Comment: with stupid passphrase
|
|
|
|
|
Name-Email: joe@@foo.bar
|
|
|
|
|
Expire-Date: 0
|
|
|
|
|
Passphrase: abc
|
|
|
|
|
# Do a commit here, so that we can later print "done" :-)
|
|
|
|
|
%commit
|
|
|
|
|
%echo done
|
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-09-04 16:53:20 +02:00
|
|
|
|
@mansect see also
|
|
|
|
|
@ifset isman
|
2011-03-01 17:08:49 +01:00
|
|
|
|
@command{gpgv}(1),
|
|
|
|
|
@command{gpgsm}(1),
|
2006-09-04 16:53:20 +02:00
|
|
|
|
@command{gpg-agent}(1)
|
|
|
|
|
@end ifset
|
|
|
|
|
@include see-also-note.texi
|