1.2.6 Doing things one usually doesn’t want to do.

-n

--dry-run

Don’t make any changes (this is not completely implemented).

--list-only

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

-i

--interactive

Prompt before overwriting any files.

--debug-level level

Select the debug level for investigating problems. level may be
a numeric value or by a keyword:

none

No debugging at all. A value of less than 1 may be used instead of
the keyword.

basic

Some basic debug messages. A value between 1 and 2 may be used
instead of the keyword.

advanced

More verbose debug messages. A value between 3 and 5 may be used
instead of the keyword.

expert

Even more detailed messages. A value between 6 and 8 may be used
instead of the keyword.

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.

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.

--debug flags

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

--debug-all

Set all useful debugging flags.

--faked-system-time epoch

This option is only useful for testing; it sets the system time back or
forth to epoch which is the number of seconds elapsed since the year
1970. Alternatively epoch may be given as a full ISO time string
(e.g. "20070924T154812").

--enable-progress-filter

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.

--status-fd n

Write special status strings to the file descriptor n.
See the file DETAILS in the documentation for a listing of them.

--status-file file

Same as ‘--status-fd’, except the status data is written to file
file.

--logger-fd n

Write log output to file descriptor n and not to STDERR.

--log-file file

--logger-file file

Same as ‘--logger-fd’, except the logger data is written to file
file. Note that ‘--log-file’ is only implemented for
GnuPG-2.

--attribute-fd n

Write attribute subpackets to the file descriptor n. This is most
useful for use with ‘--status-fd’, since the status messages are
needed to separate out the various subpackets from the stream delivered
to the file descriptor.

--attribute-file file

Same as ‘--attribute-fd’, except the attribute data is written to
file file.

--comment string

--no-comments

Use string as a comment string in clear text signatures and ASCII
armored messages or keys (see ‘--armor’). The default behavior is
not to use a comment string. ‘--comment’ may be repeated multiple
times to get multiple comment strings. ‘--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
protected by the signature.

--emit-version

--no-emit-version

Force inclusion of the version string in ASCII armored output.
‘--no-emit-version’ disables this option.

--sig-notation name=value

--cert-notation name=value

-N, --set-notation name=value

Put the name value pair into the signature as notation data.
name must consist only of printable characters or spaces, and
must contain a ’@’ character in the form keyname@domain.example.com
(substituting the appropriate keyname and domain name, of course). This
is to help prevent pollution of the IETF reserved notation
namespace. The ‘--expert’ flag overrides the ’@’
check. value may be any printable string; it will be encoded in
UTF8, so you should check that your ‘--display-charset’ is set
correctly. If you prefix name with an exclamation mark (!), the
notation data will be flagged as critical
(rfc2440:5.2.3.15). ‘--sig-notation’ sets a notation for data
signatures. ‘--cert-notation’ sets a notation for key signatures
(certifications). ‘--set-notation’ sets both.

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.

--sig-policy-url string

--cert-policy-url string

--set-policy-url string

Use string as a Policy URL for signatures (rfc2440:5.2.3.19). If
you prefix it with an exclamation mark (!), the policy URL packet will
be flagged as critical. ‘--sig-policy-url’ sets a policy url for
data signatures. ‘--cert-policy-url’ sets a policy url for key
signatures (certifications). ‘--set-policy-url’ sets both.

The same %-expandos used for notation data are available here as well.

--sig-keyserver-url string

Use string as a preferred keyserver URL for data signatures. If
you prefix it with an exclamation mark (!), the keyserver URL packet
will be flagged as critical.

The same %-expandos used for notation data are available here as well.

--set-filename string

Use string as the filename which is stored inside messages.
This overrides the default, which is to use the actual filename of the
file being encrypted.

--for-your-eyes-only

--no-for-your-eyes-only

Set the ‘for your eyes only’ flag in the message. This causes GnuPG to
refuse to save the file unless the ‘--output’ option is given,
and PGP to use a "secure viewer" with a claimed Tempest-resistant font
to display the message. This option overrides ‘--set-filename’.
‘--no-for-your-eyes-only’ disables this option.

--use-embedded-filename

--no-use-embedded-filename

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

--cipher-algo name

Use name as cipher algorithm. Running the program with the
command ‘--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
it allows you to violate the OpenPGP standard.
‘--personal-cipher-preferences’ is the safe way to accomplish the
same thing.

--digest-algo name

Use name as the message digest algorithm. Running the program
with the command ‘--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. ‘--personal-digest-preferences’ is the
safe way to accomplish the same thing.

--compress-algo name

Use compression algorithm name. "zlib" is RFC-1950 ZLIB
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
violate the OpenPGP standard. ‘--personal-compress-preferences’ is the
safe way to accomplish the same thing.

--cert-digest-algo name

Use name as the message digest algorithm used when signing a
key. Running the program with the command ‘--version’ yields a
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.

--disable-cipher-algo name

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

--disable-pubkey-algo name

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

--throw-keyids

--no-throw-keyids

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.(1) On the receiving side, it may
slow down the decryption process because all available secret keys must
be tried. ‘--no-throw-keyids’ disables this option. This option
is essentially the same as using ‘--hidden-recipient’ for all
recipients.

--not-dash-escaped

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

--escape-from-lines

--no-escape-from-lines

Because some mailers change lines starting with "From " to ">From " it
is good to handle such lines in a special way when creating cleartext
signatures to prevent the mail system from breaking the signature. Note
that all other PGP versions do it this way too. Enabled by
default. ‘--no-escape-from-lines’ disables this option.

--passphrase-repeat n

Specify how many times gpg2 will request a new
passphrase be repeated. This is useful for helping memorize a
passphrase. Defaults to 1 repetition.

--passphrase-fd n

Read the passphrase from file descriptor n. Only the first line
will be read from file descriptor n. If you use 0 for n,
the passphrase will be read from STDIN. This can only be used if only
one passphrase is supplied.
Note that this passphrase is only used if the option ‘--batch’
has also been given. This is different from gpg.

--passphrase-file file

Read the passphrase from file file. Only the first line will
be read from file file. This can only be used if only one
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.
Note that this passphrase is only used if the option ‘--batch’
has also been given. This is different from gpg.

--passphrase string

Use string as the passphrase. This can only be used if only one
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.
Note that this passphrase is only used if the option ‘--batch’
has also been given. This is different from gpg.

--command-fd n

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

--command-file file

Same as ‘--command-fd’, except the commands are read out of file
file

--allow-non-selfsigned-uid

--no-allow-non-selfsigned-uid

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
trivial to forge. ‘--no-allow-non-selfsigned-uid’ disables.

--allow-freeform-uid

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

--ignore-time-conflict

GnuPG normally checks that the timestamps 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
makes these checks just a warning. See also ‘--ignore-valid-from’ for
timestamp issues on subkeys.

--ignore-valid-from

GnuPG normally does not select and use subkeys created in the future.
This option allows the use of such keys and thus exhibits the
pre-1.0.7 behaviour. You should not use this option unless there
is some clock problem. See also ‘--ignore-time-conflict’ for timestamp
issues with signatures.

--ignore-crc-error

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.

--ignore-mdc-error

This option changes a MDC integrity protection failure into a warning.
This can be useful if a message is partially corrupt, but it is
necessary to get as much data as possible out of the corrupt message.
However, be aware that a MDC protection failure may also mean that the
message was tampered with intentionally by an attacker.

--no-default-keyring

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
and do not provide alternate keyrings via ‘--keyring’ or
‘--secret-keyring’, then GnuPG will still use the default public or
secret keyrings.

--skip-verify

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

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

--no-literal

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

--set-filesize

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

--show-session-key

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

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

--override-session-key string

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

--ask-sig-expire

--no-ask-sig-expire

When making a data signature, prompt for an expiration time. If this
option is not specified, the expiration time set via
‘--default-sig-expire’ is used. ‘--no-ask-sig-expire’
disables this option.

--default-sig-expire

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".

--ask-cert-expire

--no-ask-cert-expire

When making a key signature, prompt for an expiration time. If this
option is not specified, the expiration time set via
‘--default-cert-expire’ is used. ‘--no-ask-cert-expire’
disables this option.

--default-cert-expire

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".

--allow-secret-key-import

This is an obsolete option and is not used anywhere.

--allow-multiple-messages

--no-allow-multiple-messages

Allow processing of multiple OpenPGP messages contained in a single file
or stream. Some programs that call GPG are not prepared to deal with
multiple messages being processed together, so this option defaults to
no. Note that versions of GPG prior to 1.4.7 always allowed multiple
messages.

Warning: Do not use this option unless you need it as a temporary
workaround!

--enable-special-filenames

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

--no-expensive-trust-checks

Experimental use only.

--preserve-permissions

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.

--default-preference-list string

Set the list of default preferences to string. This preference
list is used for new keys and becomes the default for "setpref" in the
edit menu.

--default-keyserver-url name

Set the default keyserver URL to name. This keyserver will be
used as the keyserver URL when writing a new self-signature on a key,
which includes key generation and changing preferences.

--list-config

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 ‘doc/DETAILS’ in the
source distribution for the details of which configuration items may be
listed. ‘--list-config’ is only usable with
‘--with-colons’ set.

--gpgconf-list

This command is similar to ‘--list-config’ but in general only
internally used by the gpgconf tool.

--gpgconf-test

This is more or less dummy action. However it parses the configuration
file and returns with failure if the configuration file would prevent
gpg from startup. Thus it may be used to run a syntax check
on the configuration file.