gpg: In a list of card keys show the standard keys.
[gnupg.git] / doc / faq.org
1 # faq.org                                          -*- coding: utf-8; -*-
2 #+STARTUP:   overview
3 #+OPTIONS:   H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:t TeX:t
4 #+EMAIL:     wk@gnupg.org
5 #+AUTHOR:    GnuPG users
6 #+LANGUAGE:  en
7 #+TITLE:     GnuPG Frequently Asked Questions
8 #+OPTIONS:   H:3 num:nil toc:t \n:nil @:t ::t |:t ^:{} -:t f:t *:t TeX:t LaTeX:t skip:nil d:(HIDE) tags:not-in-toc
9 #+LINK: gnupgweb https://www.gnupg.org/
10 #+STYLE: <link rel="stylesheet" type="text/css" href="https://www.gnupg.org/share/site.css" />
11
12 # FIXME: This FAQ needs a heavy cleanup.  For now I only switched to
13 #        org-mode format for easier maintenance.
14
15 #+begin_html
16 <a href="/"><img src="https://gnupg.org/share/logo-gnupg-light-purple-bg.png" class="logo-link" /></a>
17 #+end_html
18
19 *WARNING: This FAQ is heavily outdated*.  Mentioned versions of GnuPG
20 have reached end of life many years ago.  Almost all bugs and problems
21 have been fixed in the now current versions of GnuPG.  We will try to
22 update this FAQ in the next month.  See the section "Changes" for recent updates.
23
24
25 * Welcome
26   :PROPERTIES:
27   :CUSTOM_ID: welcome
28   :END:
29
30   Welcome to the GnuPG FAQ.  The latest HTML version is available at\\
31   [[https://www.gnupg.org/faq/GnuPG-FAQ.html]]; \\
32   a plain text version at \\
33   https://gnupg.org/ftp/gcrypt/gnupg/GnuPG-FAQ.txt .
34
35   See the end of this file for the release date.
36
37   The index is generated automatically, so there may be errors. Not
38   all questions may be in the section they belong to. Suggestions
39   about how to improve the structure of this FAQ are welcome.
40
41   Please send additions and corrections to the gnupg-users mailing
42   list. It would be most convenient if you could provide the answer to
43   be included here as well. Your help is very much appreciated!
44
45   Please, don't send message like "This should be a FAQ - what's the
46   answer?". If it hasn't been asked before, it isn't a FAQ. In that
47   case you could search in the mailing list archive.
48
49 ** What conventions are used in this FAQ?
50    :PROPERTIES:
51    :CUSTOM_ID: what-conventions-are-used-in-this-faq
52    :END:
53
54     Although GnuPG is being developed for several operating systems
55     (often in parallel), the conventions used in this FAQ reflect a
56     UNIX shell environment. For Win32 users, references to a shell
57     prompt (=$=) should be interpreted as a command prompt (=>=),
58     directory names separated by a forward slash (=/=) may need to be
59     converted to a back slash (=\=), and a tilde (=~=) represents a
60     user's "home" directory (reference question [[id:how-do-i-put-my-keyring-in-a-different-directory][How do I put my keyring in a different directory?]] for an example).
61
62     Some command-lines presented in this FAQ are too long to properly
63     display in some browsers for the web page version of this file, and
64     have been split into two or more lines. For these commands please
65     remember to enter the entire command-string on one line or the
66     command will error, or at minimum not give the desired results.
67
68     Please keep in mind that this FAQ contains information that may not
69     apply to your particular version, as new features and bug fixes are
70     added on a continuing basis (reference the NEWS file included with
71     the source or package for noteworthy changes between versions). One
72     item to note is that starting with GnuPG version 1.1.92 the file
73     containing user options and settings has been renamed from "options"
74     to "gpg.conf". Information in the FAQ that relates to the options
75     file may be interchangeable with the newer gpg.conf file in many
76     instances. See question
77     [[#gnupg-no-longer-installs-a-options-file-is-it-missing][GnuPG no longer installs a ~/.gnupg/options file. Is it missing?]]
78     for details.
79
80 * General Questions
81
82 ** What is GnuPG?
83    :PROPERTIES:
84    :CUSTOM_ID: what-is-gnupg
85    :END:
86
87     [[gnupgweb][GnuPG]] stands for GNU Privacy Guard and is GNU's tool for secure
88     communication and data storage. It can be used to encrypt data and
89     to create digital signatures. It includes an advanced key
90     management facility and is compliant with the proposed OpenPGP
91     Internet standard as described in [[https://www.rfc-editor.org/rfc/rfc4880.txt][RFC-4880]].  As such, it is aimed
92     to be compatible with PGP from PGP Corp. and other OpenPGP tools
93
94 ** Is GnuPG compatible with PGP?
95    :PROPERTIES:
96    :CUSTOM_ID: is-gnupg-compatible-with-pgp
97    :END:
98
99     In general, yes. GnuPG and newer PGP releases should be implementing
100     the OpenPGP standard. But there are some interoperability problems.
101     See question
102     [[#how-can-i-encrypt-a-message-so-that-pgp-is-able-to-decrypt-it][How can I encrypt a message with GnuPG so that PGP is able to decrypt it?]]
103     for details.
104
105 ** Is GnuPG free to use for personal or commercial use?
106    :PROPERTIES:
107    :CUSTOM_ID: is-gnupg-free-to-use
108    :END:
109
110     Yes. GnuPG is part of the GNU family of tools and applications built
111     and provided in accordance with the Free Software Foundation (FSF)
112     General Public License (GPL). Therefore the software is free to copy,
113     use, modify and distribute in accordance with that license. Please
114     read the file titled COPYING that accompanies the application for
115     more information.
116
117
118 * Sources of Information
119
120 ** Where can I find more information on GnuPG?
121    :PROPERTIES:
122    :CUSTOM_ID: more-information-on-gnupg
123    :END:
124
125    On-line resources:
126
127    - The documentation page is located at [[gnupgweb:documentation/]].
128      Also, have a look at the HOWTOs and the GNU Privacy Handbook
129      (GPH, available in English, Spanish and Russian).  The latter
130      provides a detailed user's guide to GnuPG.  You'll also find a
131      document about how to convert from PGP 2.x to GnuPG.
132
133    - At [[gnupgweb:documentation/mailing-lists.html]] you'll find an
134      online archive of the GnuPG mailing lists.  Most interesting
135      should be gnupg-users for all user-related issues and gnupg-devel
136      if you want to get in touch with the developers.
137
138      In addition, searchable archives can be found on MARC, e.g.:\\
139      For gnupg-users : [[http://marc.theaimsgroup.com/?l=gnupg-users&r=1&w=2]]\\
140      For gnupg-devel : [[http://marc.theaimsgroup.com/?l=gnupg-devel&r=1&w=2]]
141
142      *Please:* Before posting to a list, read this FAQ and the
143      available documentation.  In addition, search the list archive
144      --- maybe your question has already been discussed. This way you
145      help people focus on topics that have not yet been resolved.
146
147    - The GnuPG source distribution contains a subdirectory:
148
149      : ./doc
150
151      where some additional documentation is located (mainly
152      interesting for hackers, not the casual user).
153
154
155 ** Where do I get GnuPG?
156    :PROPERTIES:
157    :CUSTOM_ID: where-do-i-get-gnupg
158    :END:
159
160     You can download the GNU Privacy Guard from its primary server
161     [[https://gnupg.org/ftp/gcrypt/gnupg/][ftp.gnupg.org]] or from one of its [[gnupgweb:download/mirrors.html][mirrors]].
162
163     The current stable version is FIXME. Please upgrade to this
164     version as it includes additional features, functions and security
165     fixes that may not have existed in prior versions.
166
167 * Installation
168
169 ** Which OSes does GnuPG run on?
170    :PROPERTIES:
171    :CUSTOM_ID: which-oses-does-gnupg-run-on
172    :END:
173
174     It should run on most Unices as well as Windows versions
175     (including Windows NT/2000) and Macintosh OS/X.  A list of OSes
176     reported to be OK is presented at:
177
178     [[gnupgweb:download/supported_systems.html]]
179
180 ** Which random data gatherer should I use?
181    :PROPERTIES:
182    :CUSTOM_ID: which-random-data-gatherer-should-i-use
183    :END:
184
185     "Good" random numbers are crucial for the security of your encryption.
186     Different operating systems provide a variety of more or less quality
187     random data. Linux and *BSD provide kernel generated random data
188     through /dev/random - this should be the preferred choice on these
189     systems. Also Solaris users with the SUNWski package installed have
190     a /dev/random. In these cases, use the configure option:
191
192     : --enable-static-rnd=linux
193
194     In addition, there's also the kernel random device by Andi Maier
195     [[http://www.cosy.sbg.ac.at/~andi/SUNrand/]], but it's still beta. Use
196     at your own risk!
197
198     On other systems, the Entropy Gathering Daemon (EGD) is a good choice.
199     It is a perl-daemon that monitors system activity and hashes it into
200     random data. See the download page [[gnupgweb:download/]]
201     to obtain EGD. Use:
202
203     : --enable-static-rnd=egd
204
205     here.
206
207     If the above options do not work, you can use the random number
208     generator "unix". This is *very slow* and should be avoided. The
209     random quality isn't very good so don't use it on sensitive data.
210
211 ** How do I include support for RSA and IDEA?
212    :PROPERTIES:
213    :CUSTOM_ID: how-do-i-include-support-for-rsa-and-idea
214    :END:
215
216     RSA is included as of GnuPG version 1.0.3.
217
218     The official GnuPG distribution does not contain IDEA due to a patent
219     restriction. The patent does not expire before 2007 so don't expect
220     official support before then.
221
222     However, there is an unofficial module to include it even in earlier
223     versions of GnuPG. It's available from
224     [[ftp://ftp.gnupg.dk/pub/contrib-dk/]]. Look for:
225
226     : idea.c.gz        (c module)
227     : idea.c.gz.sig    (signature file)
228
229     : ideadll.zip      (c module and win32 dll)
230     : ideadll.zip.sig  (signature file)
231
232     Compilation directives are in the headers of these files. You will
233     then need to add the following line to your =~/.gnupg/gpg.conf= or
234     =~/.gnupg/options= file:
235
236     : load-extension idea
237
238
239 * Usage
240
241 ** What is the recommended key size?
242    :PROPERTIES:
243    :CUSTOM_ID: what-is-the-recommended-key-size
244    :END:
245
246     1024 bit for DSA signatures; even for plain Elgamal signatures.
247     This is sufficient as the size of the hash is probably the weakest
248     link if the key size is larger than 1024 bits. Encryption keys may
249     have greater sizes, but you should then check the fingerprint of
250     this key:
251
252     : $ gpg --fingerprint <user ID>
253
254     As for the key algorithms, you should stick with the default (i.e.,
255     DSA signature and Elgamal encryption). An Elgamal signing key has
256     the following disadvantages: the signature is larger, it is hard
257     to create such a key useful for signatures which can withstand some
258     real world attacks, you don't get any extra security compared to
259     DSA, and there might be compatibility problems with certain PGP
260     versions. It has only been introduced because at the time it was
261     not clear whether there was a patent on DSA.
262
263 ** Why does it sometimes take so long to create keys?
264    :PROPERTIES:
265    :CUSTOM_ID: why-does-it-sometimes-take-so-long-to-create-keys
266    :END:
267
268     The problem here is that we need a lot of random bytes and for that
269     we (on Linux the /dev/random device) must collect some random data.
270     It is really not easy to fill the Linux internal entropy buffer; I
271     talked to Ted Ts'o and he commented that the best way to fill the
272     buffer is to play with your keyboard. Good security has its price.
273     What I do is to hit several times on the shift, control, alternate,
274     and caps lock keys, because these keys do not produce output to the
275     screen. This way you get your keys really fast (it's the same thing
276     PGP2 does).
277
278     Another problem might be another program which eats up your random
279     bytes (a program (look at your daemons) that reads from /dev/random).
280
281 ** And it really takes long when I work on a remote system. Why?
282    :PROPERTIES:
283    :CUSTOM_ID: it-really-takes-long-when-i-work-on-a-remote-system
284    :END:
285
286     Don't do this at all! You should never create keys or even use GnuPG
287     on a remote system because you normally have no physical control
288     over your secret key ring (which is in most cases vulnerable to
289     advanced dictionary attacks) - I strongly encourage everyone to only
290     create keys on a local computer (a disconnected laptop is probably
291     the best choice) and if you need it on your connected box (I know,
292     we all do this) be sure to have a strong password for both your
293     account and for your secret key, and that you can trust your system
294     administrator.
295
296     When I check GnuPG on a remote system via ssh (I have no Alpha here)
297     ;-) I have the same problem. It takes a *very* long time to create
298     the keys, so I use a special option, --quick-random, to generate
299     insecure keys which are only good for some tests.
300
301 ** What is the difference between options and commands?
302    :PROPERTIES:
303    :CUSTOM_ID: difference-between-options-and-commands
304    :END:
305
306     If you do a 'gpg --help', you will get two separate lists. The first
307     is a list of commands. The second is a list of options. Whenever you
308     run GPG, you *must* pick exactly one command (with one exception,
309     see below). You *may* pick one or more options. The command should,
310     just by convention, come at the end of the argument list, after all
311     the options. If the command takes a file (all the basic ones do),
312     the filename comes at the very end. So the basic way to run gpg is:
313
314     : $ gpg [--option something] [--option2] [--option3 something] --command file
315
316     Some options take arguments. For example, the --output option (which
317     can be abbreviated as -o) is an option that takes a filename. The
318     option's argument must follow immediately after the option itself,
319     otherwise gpg doesn't know which option the argument is supposed to
320     paired with. As an option, --output and its filename must come before
321     the command. The --recipient (-r) option takes a name or keyID to
322     encrypt the message to, which must come right after the -r option.
323     The --encrypt (or -e) command comes after all the options and is
324     followed by the file you wish to encrypt. Therefore in this example
325     the command-line issued would be:
326
327     : $ gpg -r alice -o secret.txt -e test.txt
328
329     If you write the options out in full, it is easier to read:
330
331     : $ gpg --recipient alice --output secret.txt --encrypt test.txt
332
333     If you're encrypting to a file with the extension ".txt", then you'd
334     probably expect to see ASCII-armored text in the file (not binary),
335     so you need to add the --armor (-a) option, which doesn't take any
336     arguments:
337
338     : $ gpg --armor --recipient alice --output secret.txt --encrypt test.txt
339
340     If you imagine square brackets around the optional parts, it becomes
341     a bit clearer:
342
343     : $ gpg [--armor] [--recipient alice] [--output secret.txt] --encrypt test.txt
344
345     The optional parts can be rearranged any way you want:
346
347     : $ gpg --output secret.txt --recipient alice --armor --encrypt test.txt
348
349     If your filename begins with a hyphen (e.g. "-a.txt"), GnuPG assumes
350     this is an option and may complain. To avoid this you have to either
351     use =./-a.txt=, or stop the option and command processing with two
352     hyphens: =-- -a.txt=.
353
354     *The exception to using only one command*: signing and encrypting
355     at the same time. For this you can combine both commands, such as in:
356
357     : $ gpg [--options] --sign --encrypt foo.txt
358
359 ** I can't delete a user ID on my secret keyring because it has already been deleted on my public keyring. What can I do?
360    :PROPERTIES:
361    :CUSTOM_ID: delete-user-id-from-secring-if-already-deleted-from-pubring
362    :END:
363
364     Because you can only select from the public key ring, there is no
365     direct way to do this. However it is not very complicated to do
366     anyway. Create a new user ID with exactly the same name and you
367     will see that there are now two identical user IDs on the secret
368     ring. Now select this user ID and delete it. Both user IDs will be
369     removed from the secret ring.
370
371 ** I can't delete my secret key because the public key disappeared.  What can I do?
372    :PROPERTIES:
373    :CUSTOM_ID: delete-my-secret-key-because-the-public-key-disappeared
374    :END:
375
376     To select a key a search is always done on the public keyring,
377     therefore it is not possible to select a secret key without
378     having the public key. Normally it should never happen that the
379     public key got lost but the secret key is still available. The
380     reality is different, so GnuPG implements a special way to deal
381     with it: Simply use the long keyID to specify the key to delete,
382     which can be obtained by using the --with-colons options (it is
383     the fifth field in the lines beginning with "sec").
384
385     If you've lost your public key and need to recreate it instead
386     for continued use with your secret key, you may be able to use
387     gpgsplit as detailed in question
388     [[#i-still-have-my-secret-key-but-lost-my-public-key][I still have my secret key, but lost my public key. What can I do?]].
389
390
391
392 ** What are trust, validity and ownertrust?
393    :PROPERTIES:
394    :CUSTOM_ID: what-are-trust-validity-and-ownertrust
395    :END:
396
397     With GnuPG, the term "ownertrust" is used instead of "trust" to
398     help clarify that this is the value you have assigned to a key
399     to express how much you trust the owner of this key to correctly
400     sign (and thereby introduce) other keys. The "validity", or
401     calculated trust, is a value which indicates how much GnuPG
402     considers a key as being valid (that it really belongs to the
403     one who claims to be the owner of the key). For more information
404     on trust values see the chapter "The Web of Trust" in The GNU
405     Privacy Handbook.
406
407 ** How do I sign a patch file?
408    :PROPERTIES:
409    :CUSTOM_ID: how-do-i-sign-a-patch-file
410    :END:
411
412     Use "gpg --clearsign --not-dash-escaped ...". The problem with
413     --clearsign is that all lines starting with a dash are quoted with
414     "- "; obviously diff produces many lines starting with a dash and
415     these are then quoted and that is not good for a patch ;-). To use
416     a patch file without removing the cleartext signature, the special
417     option --not-dash-escaped may be used to suppress generation of
418     these escape sequences. You should not mail such a patch because
419     spaces and line endings are also subject to the signature and a
420     mailer may not preserve these. If you want to mail a file you can
421     simply sign it using your MUA (Mail User Agent).
422
423 ** Where is the "encrypt-to-self" option?
424    :PROPERTIES:
425    :CUSTOM_ID: where-is-the-encrypt-to-self-option
426    :END:
427
428     Use "--encrypt-to your_keyID". You can use more than one of these
429     options. To temporarily override the use of this additional key,
430     you can use the option "--no-encrypt-to".
431
432 ** How can I get rid of the Version and Comment headers in armored messages?
433    :PROPERTIES:
434    :CUSTOM_ID: get-rid-of-the-version-and-comment-headers-in-armored-messages
435    :END:
436
437     Use
438
439     : --no-version --comment ''
440
441     Note that the left over blank line
442     is required by the protocol.
443
444 ** What does the "You are using the xxxx character set." mean?
445    :PROPERTIES:
446    :CUSTOM_ID: what-does-the-you-are-using-the-xxx-character-set-mean
447    :END:
448
449    This note is printed when UTF-8 mapping has to be done. Make sure
450    that the displayed character set is the one you have activated on
451    your system. Since "iso-8859-1" is the character set most used,
452    this is the default. You can change the charset with the option
453    =--charset=. It is important that your active character set matches
454    the one displayed --- if not, restrict yourself to plain 7 bit
455    ASCII and no mapping has to be done.
456
457 ** How can I get list of key IDs used to encrypt a message?
458    :PROPERTIES:
459    :CUSTOM_ID: how-can-i-get-list-of-key-ids-used-to-encrypt-a-message
460    :END:
461
462    : $ gpg --batch --decrypt --list-only --status-fd 1 2>/dev/null | \
463    :   awk '/^\[GNUPG:\] ENC_TO / { print $3 }'
464
465 ** Why can't I decrypt files encrypted as symmetrical-only (-c) with a version of GnuPG prior to 1.0.1.
466    :PROPERTIES:
467    :CUSTOM_ID: why-cant-i-decrypt-symmetrical-only-with-gnupg-prior-to-1.0.1
468    :END:
469
470    There was a bug in GnuPG versions prior to 1.0.1 which affected files
471    only if 3DES or Twofish was used for symmetric-only encryption (this has
472    never been the default). The bug has been fixed, but to enable decryption
473    of old files you should run gpg with the option =--emulate-3des-s2k-bug=,
474    decrypt the file and encrypt it again without this option.
475
476    NOTE: This option was removed in GnuPG development version 1.1.0 and later
477    updates, so you will need to use a version between 1.0.1 and 1.0.7 to
478    re-encrypt any affected files.
479
480 ** How can I use GnuPG in an automated environment?
481    :PROPERTIES:
482    :CUSTOM_ID: how-can-i-use-gnupg-in-an-automated-environment
483    :END:
484
485    You should use the option =--batch= and don't use passphrases as
486    there is usually no way to store it more securely than on the
487    secret keyring itself. The suggested way to create keys for an
488    automated environment is:
489
490    On a secure machine:
491
492    1. If you want to do automatic signing, create a signing subkey for
493       your key.  Use the interactive key editing menu by issuing the
494       command
495       : gpg --edit-key keyID
496       enter "addkey" and select the DSA key type).
497
498    1. Make sure that you use a passphrase (needed by the current
499       implementation).
500
501    1.
502       :  gpg --export-secret-subkeys --no-comment foo >secring.auto
503
504    1. Copy secring.auto and the public keyring to a test directory.
505
506    1. Change to this directory.
507
508    1. Run the command
509       : gpg --homedir . --edit foo
510
511      and use the sub-command =passwd= to remove the passphrase from the
512      subkeys. You may also want to remove all unused subkeys.
513
514    1. Copy secring.auto to a floppy and carry it to the target box.
515
516    On the target machine:
517
518    1. Install secring.auto as the secret keyring.
519    1. Now you can start your new service. It's also a good idea to
520       install an intrusion detection system so that you hopefully get
521       a notice of an successful intrusion, so that you in turn can
522       revoke all the subkeys installed on that machine and install new
523       subkeys.
524
525 ** Which email-client can I use with GnuPG?
526    :PROPERTIES:
527    :CUSTOM_ID: which-email-client-can-i-use-with-gnupg
528    :END:
529
530     Using GnuPG to encrypt email is one of the most popular uses.
531     Several mail clients or mail user agents (MUAs) support GnuPG to
532     varying degrees. Simplifying a bit, there are two ways mail can be
533     encrypted with GnuPG: the "old style" ASCII armor (i.e. cleartext
534     encryption), and RFC 2015 style (previously PGP/MIME, now OpenPGP).
535     The latter has full MIME support. Some MUAs support only one of
536     them, so whichever you actually use depends on your needs as well
537     as the capabilities of your addressee. As well, support may be
538     native to the MUA, or provided via "plug-ins" or external tools.
539
540     The following list is not exhaustive:
541
542     | MUA             | OpenPGP | ASCII | How? (N,P,T)         |
543     |-----------------+---------+-------+----------------------|
544     | Calypso         | N       | Y     | P (Unixmail)         |
545     | Elm             | N       | Y     | T (mailpgp,morepgp)  |
546     | Elm ME+         | N       | Y     | N                    |
547     | Emacs/Gnus      | Y       | Y     | T (Mailcrypt,gpg.el) |
548     | Emacs/Mew       | Y       | Y     | N                    |
549     | Emacs/VM        | N       | Y     | T (Mailcrypt)        |
550     | Evolution       | Y       | Y     | N                    |
551     | Exmh            | Y       | Y     | N                    |
552     | GNUMail.app     | Y       | Y     | P (PGPBundle)        |
553     | GPGMail         | Y       | Y     | N                    |
554     | KMail (<=1.4.x) | N       | Y     | N                    |
555     | KMail (1.5.x)   | Y(P)    | Y(N)  | P/N                  |
556     | Mozilla         | Y       | Y     | P (Enigmail)         |
557     | Mulberry        | Y       | Y     | P                    |
558     | Mutt            | Y       | Y     | N                    |
559     | Sylpheed        | Y       | Y     | N                    |
560     | Claws-mail      | Y       | Y     | N                    |
561     | TkRat           | Y       | Y     | N                    |
562     | XEmacs/Gnus     | Y       | Y     | T (Mailcrypt)        |
563     | XEmacs/Mew      | Y       | Y     | N                    |
564     | XEmacs/VM       | N       | Y     | T (Mailcrypt)        |
565     | XFmail          | Y       | Y     | N                    |
566
567     ( N - Native, P - Plug-in, T - External Tool)
568
569     The following table lists proprietary MUAs. The GNU Project
570     suggests against the use of these programs, but they are listed
571     for interoperability reasons for your convenience.
572
573     | MUA              | OpenPGP | ASCII | How? (N,P,T)             |
574     |------------------+---------+-------+--------------------------|
575     | Apple Mail       | Y       | Y     | P (GPGMail)              |
576     | Becky2           | Y       | Y     | P (BkGnuPG)              |
577     | Eudora           | Y       | Y     | P (EuroraGPG)            |
578     | Eudora Pro       | Y       | Y     | P (EudoraGPG)            |
579     | Lotus Notes      | N       | Y     | P                        |
580     | Netscape 4.x     | N       | Y     | P                        |
581     | Netscape 7.x     | Y       | Y     | P (Enigmail)             |
582     | Novell Groupwise | N       | Y     | P                        |
583     | Outlook          | N       | Y     | P (G-Data)               |
584     | Outlook Express  | N       | Y     | P (GPGOE)                |
585     | Pegasus          | N       | Y     | P (QDPGP,PM-PGP)         |
586     | Pine             | N       | Y     | T (pgpenvelope,gpg4pine) |
587     | Postme           | N       | Y     | P (GPGPPL)               |
588     | The Bat!         | N       | Y     | P (Ritlabs)              |
589
590     Good overviews of OpenPGP-support can be found at:\\
591     [[http://www.openpgp.fr.st/courrier_en.html]] \\
592     http://www.bretschneidernet.de/tips/secmua.html
593
594     Users of Win32 MUAs that lack OpenPGP support may look into using
595     GPGrelay http://gpgrelay.sourceforge.net, a small email-relaying
596     server that uses GnuPG to enable many email clients to send and
597     receive emails that conform to PGP-MIME (RFC 2015).
598
599 ** Can't we have a gpg library?
600    :PROPERTIES:
601    :CUSTOM_ID: cant-we-have-a-gpg-library
602    :END:
603
604     This has been frequently requested. However, the current viewpoint
605     of the GnuPG maintainers is that this would lead to several security
606     issues and will therefore not be implemented in the foreseeable
607     future. However, for some areas of application gpgme could do the
608     trick. You'll find it at [[gnupgweb:related_software/gpgme]].
609
610 ** I have successfully generated a revocation certificate, but I don't understand how to send it to the key servers.
611    :PROPERTIES:
612    :CUSTOM_ID: how-to-send-a-revocation-to-the-keyservers
613    :END:
614
615    Most keyservers don't accept a 'bare' revocation certificate. You
616    have to import the certificate into gpg first:
617
618    : $ gpg --import my-revocation.asc
619
620    then send the revoked key to the keyservers:
621
622    : $ gpg --keyserver certserver.pgp.com --send-keys mykeyid
623
624    (or use a keyserver web interface for this).
625
626 ** How do I put my keyring in a different directory?
627    :PROPERTIES:
628    :CUSTOM_ID: how-do-i-put-my-keyring-in-a-different-directory
629    :END:
630
631    GnuPG keeps several files in a special homedir directory. These
632    include the options file, pubring.gpg, secring.gpg, trustdb.gpg,
633    and others. GnuPG will always create and use these files. On
634    unices, the homedir is usually ~/.gnupg; on Windows it is name
635    "gnupg" and found below the user's application directory.  Run the
636    gpg and pass the option --version to see the name of that
637    directory.
638
639    If you want to put your keyrings somewhere else, use the option:
640
641    : --homedir /my/path/
642
643    to make GnuPG create all its files in that directory. Your keyring
644    will be "/my/path/pubring.gpg". This way you can store your secrets
645    on a floppy disk. Don't use "--keyring" as its purpose is to specify
646    additional keyring files.
647
648 ** How do I verify signed packages?
649    :PROPERTIES:
650    :CUSTOM_ID: how-do-i-verify-signed-packages
651    :END:
652
653    must first have the vendor, organisation, or issuing person's key
654    Before you can verify the signature that accompanies a package, you
655    imported into your public keyring. To prevent GnuPG warning
656    messages the key should also be validated (or locally signed).
657
658     You will also need to download the detached signature file along
659     with the package. These files will usually have the same name as
660     the package, with either a binary (.sig) or ASCII armor (.asc)
661     extension.
662
663     Once their key has been imported, and the package and accompanying
664     signature files have been downloaded, use:
665
666     : $ gpg --verify sigfile signed-file
667
668     If the signature file has the same base name as the package file,
669     the package can also be verified by specifying just the signature
670     file, as GnuPG will derive the package's file name from the name
671     given (less the .sig or .asc extension). For example, to verify a
672     package named foobar.tar.gz against its detached binary signature
673     file, use:
674
675     : $ gpg --verify foobar.tar.gz.sig
676
677 ** How do I export a keyring with only selected signatures (keys)?
678    :PROPERTIES:
679    :CUSTOM_ID: how-do-i-export-a-keyring-with-only-selected-signatures
680    :END:
681
682     If you're wanting to create a keyring with only a subset of keys
683     selected from a master keyring (for a club, user group, or company
684     department for example), simply specify the keys you want to export:
685
686     : $ gpg --armor --export key1 key2 key3 key4 > keys1-4.asc
687
688 ** I still have my secret key, but lost my public key. What can I do?
689    :PROPERTIES:
690    :CUSTOM_ID: i-still-have-my-secret-key-but-lost-my-public-key
691    :END:
692
693     All OpenPGP secret keys have a copy of the public key inside them,
694     and in a worst-case scenario, you can create yourself a new public
695     key using the secret key.
696
697     A tool to convert a secret key into a public one has been included
698     (it's actually a new option for gpgsplit) and is available with GnuPG
699     versions 1.2.1 or later (or can be found in CVS). It works like this:
700
701     : $ gpgsplit --no-split --secret-to-public secret.gpg >publickey.gpg
702
703     One should first try to export the secret key and convert just this
704     one. Using the entire secret keyring should work too. After this has
705     been done, the publickey.gpg file can be imported into GnuPG as usual.
706
707 ** Clearsigned messages sent from my web-mail account have an invalid signature. Why?
708    :PROPERTIES:
709    :CUSTOM_ID: clearsig-sent-from-webmail-have-an-invalid-signature
710    :END:
711
712     Check to make sure the settings for your web-based email account
713     do not use HTML formatting for the pasted clearsigned message. This can
714     alter the message with embedded HTML markup tags or spaces, resulting
715     in an invalid signature. The recipient may be able to copy the signed
716     message block to a text file for verification, or the web email
717     service may allow you to attach the clearsigned message as a file
718     if plaintext messages are not an option.
719
720
721 * Compatibility Issues
722
723 ** How can I encrypt a message with GnuPG so that PGP is able to decrypt it?
724    :PROPERTIES:
725    :CUSTOM_ID: how-can-i-encrypt-a-message-so-that-pgp-is-able-to-decrypt-it
726    :END:
727
728     It depends on the PGP version.
729
730     - PGP 2.x ::
731
732       You can't do that because PGP 2.x normally uses IDEA which is
733       not supported by GnuPG as it is patented (see [[#how-do-i-include-support-for-rsa-and-idea][How do I include
734       support for RSA and IDEA?]]), but if you have a modified version
735       of PGP you can try this:
736
737       : $ gpg --rfc1991 --cipher-algo 3des ...
738
739       Please don't pipe the data to encrypt to gpg but provide it
740       using a filename; otherwise, PGP 2 will not be able to handle
741       it.
742
743       As for conventional encryption, you can't do this for PGP 2.
744
745     - PGP 5.x and higher ::
746
747       You need to provide two additional options:
748
749       : --compress-algo 1 --cipher-algo cast5
750
751       You may also use "3des" instead of "cast5", and "blowfish" does
752       not work with all versions of PGP 5. You may also want to put:
753
754       : compress-algo 1
755
756       into your =~/.gnupg/options= file --- this does not affect
757       normal GnuPG operation.
758
759     This applies to conventional encryption as well.
760
761 ** How do I migrate from PGP 2.x to GnuPG?
762    :PROPERTIES:
763    :CUSTOM_ID: how-do-i-migrate-from-pgp2-to-gnupg
764    :END:
765
766     PGP 2 uses the RSA and IDEA encryption algorithms. Whereas the RSA
767     patent has expired and RSA is included as of GnuPG 1.0.3, the IDEA
768     algorithm is still patented until 2007. Under certain conditions you
769     may use IDEA even today. In that case, you may refer to Question
770     [[*How%20do%20I%20include%20support%20for%20RSA%20and%20IDEA][How do I include support for RSA and IDEA?]] about how to add
771     IDEA support to GnuPG and read
772     [[gnupgweb:gph/en/pgp2x.html]] to perform the migration.
773
774 ** Why is PGP 5.x not able to encrypt messages with some keys?
775    :PROPERTIES:
776    :CUSTOM_ID: why-is-pgp5-not-able-to-encrypt-messages-with-some-keys
777    :END:
778
779     PGP, Inc. refuses to accept Elgamal keys of type 20 even for
780     encryption. They only support type 16 (which is identical at least
781     for decryption). To be more inter-operable, GnuPG (starting with
782     version 0.3.3) now also uses type 16 for the Elgamal subkey which is
783     created if the default key algorithm is chosen. You may add a type
784     16 Elgamal key to your public key, which is easy as your key
785     signatures are still valid.
786
787 ** Why is PGP 5.x not able to verify my messages?
788    :PROPERTIES:
789    :CUSTOM_ID: why-is-pgp5-not-able-to-verify-my-messages
790    :END:
791
792     PGP 5.x does not accept v4 signatures for data material but OpenPGP
793     requests generation of v4 signatures for all kind of data, that's why
794     GnuPG defaults to them. Use the option "--force-v3-sigs" to generate
795     v3 signatures for data.
796
797 ** How do I transfer owner trust values from PGP to GnuPG?
798    :PROPERTIES:
799    :CUSTOM_ID: how-do-i-transfer-owner-trust-values-from-pgp-to-gnupg
800    :END:
801
802     There is a script in the tools directory to help you. After you have
803     imported the PGP keyring you can give this command:
804
805     : $ lspgpot pgpkeyring | gpg --import-ownertrust
806
807     where pgpkeyring is the original keyring and not the GnuPG keyring
808     you might have created in the first step.
809
810 ** PGP does not like my secret key.
811    :PROPERTIES:
812    :CUSTOM_ID: pgp-does-not-like-my-secret-key
813    :END:
814
815     Older PGPs probably bail out on some private comment packets used by
816     GnuPG. These packets are fully in compliance with OpenPGP; however
817     PGP is not really OpenPGP aware. A workaround is to export the
818     secret keys with this command:
819
820     : $ gpg --export-secret-keys --no-comment -a your-KeyID
821
822     Another possibility is this: by default, GnuPG encrypts your secret
823     key using the Blowfish symmetric algorithm. Older PGPs will only
824     understand 3DES, CAST5, or IDEA symmetric algorithms. Using the
825     following method you can re-encrypt your secret gpg key with a
826     different algo:
827
828     : $ gpg --s2k-cipher-algo=CAST5 --s2k-digest-algo=SHA1 \
829     :       --compress-algo=1  --edit-key <username>
830
831     Then use passwd to change the password (just change it to the same
832     thing, but it will encrypt the key with CAST5 this time).
833
834     Now you can export it and PGP should be able to handle it.
835
836     For PGP 6.x the following options work to export a key:
837
838     : $ gpg --s2k-cipher-algo 3des --compress-algo 1 --rfc1991 \
839     :       --export-secret-keys <KeyID>
840
841 ** GnuPG no longer installs a ~/.gnupg/options file. Is it missing?
842    :PROPERTIES:
843    :CUSTOM_ID: gnupg-no-longer-installs-a-options-file-is-it-missing
844    :END:
845
846     No. The ~/.gnupg/options file has been renamed to
847     ~/.gnupg/gpg.conf for new installs as of version 1.1.92. If an
848     existing ~/.gnupg/options file is found during an upgrade it will
849     still be used, but this change was required to have a more
850     consistent naming scheme with forthcoming tools.  An existing
851     options file can be renamed to gpg.conf for users upgrading, or
852     receiving the message that the "old default options file" is
853     ignored (occurs if both a gpg.conf and an options file are found).
854
855 ** How do you export GnuPG keys for use with PGP?
856    :PROPERTIES:
857    :CUSTOM_ID: how-do-you-export-gnupg-keys-for-use-with-pgp
858    :END:
859
860     This has come up fairly often, so here's the HOWTO:
861
862     PGP can (for most key types) use secret keys generated by GnuPG. The
863     problems that come up occasionally are generally because GnuPG
864     supports a few more features from the OpenPGP standard than PGP does.
865     If your secret key has any of those features in use, then PGP will
866     reject the key or you will have problems communicating later. Note
867     that PGP doesn't do Elgamal signing keys at all, so they are not
868     usable with any version.
869
870     These instructions should work for GnuPG 1.0.7 and later, and PGP
871     7.0.3 and later.
872
873     Start by editing the key. Most of this line is not really necessary
874     as the default values are correct, but it does not hurt to repeat the
875     values, as this will override them in case you have something else set
876     in your options file.
877
878     : $ gpg --s2k-cipher-algo cast5 --s2k-digest-algo sha1 --s2k-mode 3 \
879     :       --simple-sk-checksum --edit KeyID
880
881     Turn off some features. Set the list of preferred ciphers, hashes,
882     and compression algorithms to things that PGP can handle. (Yes, I
883     know this is an odd list of ciphers, but this is what PGP itself uses,
884     minus IDEA).
885
886     : > setpref S9 S8 S7 S3 S2 S10 H2 H3 Z1 Z0
887
888     Now put the list of preferences onto the key.
889
890     : > updpref
891
892     Finally we must decrypt and re-encrypt the key, making sure that we
893     encrypt with a cipher that PGP likes. We set this up in the --edit
894     line above, so now we just need to change the passphrase to make it
895     take effect. You can use the same passphrase if you like, or take
896     this opportunity to actually change it.
897
898     : > passwd
899
900     Save our work.
901
902     : > save
903
904     Now we can do the usual export:
905
906     : $ gpg --export KeyID > mypublickey.pgp[H br]
907     : $ gpg --export-secret-key KeyID > mysecretkey.pgp
908
909     Thanks to David Shaw for this information!
910
911 ** What are DH/DSS keys?
912    :PROPERTIES:
913    :CUSTOM_ID: what-are-dh-dss-keys
914    :END:
915
916    PGP uses a different name for the former default encryption
917    algorithm Elgamal: They name it DH, which usually stands for the
918    Diffie-Hellman key exchange algorithm.  It has been said that this
919    had historic patent and business reasons.  It is however exactly
920    the same thing as the Elgamal algorithm.
921
922    They also use the acronym DSS (Digital Signature Standard) instead
923    of the DSA (Digital Signature Algorithm).  The difference is that
924    DSS requires the use of certain hash algorithms; however OpenPGP
925    allows the use of more than those hash algorithms, thus GPG usually
926    uses the term DSA.
927
928 * Problems and Error Messages
929
930 ** Why do I get "gpg: Warning: using insecure memory!"
931    :PROPERTIES:
932    :CUSTOM_ID: why-do-i-get-gpg_warning_using_insecure_memory
933    :END:
934
935    You see this warning if GPG is not able to lock pages against being
936    swapped out to disk.
937
938    However, on most modern system you should not see this message
939    anymore because these systems allow any process to prevent a small
940    number of memory pages from being swapped out to disk (using the
941    mlock system call).  Other (mostly older) systems don't allow this
942    unless you install GPG as setuid(root).
943
944    Locking pages against being swapped out is not necessary if your
945    system uses an encrypted swap partition.  In fact that is the best
946    way to protect sensitive data from ending up on a disk.  If your
947    system allows for encrypted swap partitions, please make use of
948    that feature.  Note that GPG does not know about encrypted swap
949    partitions and might print the warning; thus you should disabled
950    the warning if your swap partition is encrypted.  You may also want
951    to disable this warning if you can't or don't want to install GnuPG
952    setuid(root).  To disable the warning you put a line
953
954    : no-secmem-warning
955
956    into your ~/.gnupg/gpg.conf file.
957
958    What follows is a short description on how to install GPG
959    setuid(root); for those who need this.
960
961    On some systems this program should be installed as setuid(root).
962    This is necessary to lock memory pages. Locking memory pages
963    prevents the operating system from writing them to disk and thereby
964    keeping your secret keys really secret. If you get no warning
965    message about insecure memory your operating system supports
966    locking without being root. The program drops root privileges as
967    soon as locked memory is allocated.
968
969    To setuid(root) permissions on the gpg binary you can either use:
970
971    : $ chmod u+s /path/to/gpg
972
973    or
974
975    : $ chmod 4755 /path/to/gpg
976
977    Some refrain from using setuid(root) unless absolutely required for
978    security reasons. Please check with your system administrator if
979    you are not able to make these determinations yourself.
980
981    On UnixWare 2.x and 7.x you should install GnuPG with the 'plock'
982    privilege to get the same effect:
983
984    : $ filepriv -f plock /path/to/gpg
985
986    On some systems (e.g., Windows) GnuPG does not lock memory pages
987    and older GnuPG versions (<=1.0.4) issue the warning:
988
989    : gpg: Please note that you don't have secure memory
990
991    This warning can't be switched off by the above option because it
992    was thought to be too serious an issue. However, it confused users
993    too much, so the warning was eventually removed.
994
995 ** Large File Support doesn't work
996    :PROPERTIES:
997    :CUSTOM_ID: large-file-support-does-not-work
998    :END:
999
1000    LFS works correctly in post-1.0.4 versions. If configure doesn't
1001    detect it, try a different (i.e., better) compiler. egcs 1.1.2
1002    works fine, other gccs sometimes don't. BTW, several compilation
1003    problems of GnuPG 1.0.3 and 1.0.4 on HP-UX and Solaris were due to
1004    broken LFS support.
1005
1006 ** In the edit menu the trust values are not displayed correctly after signing uids. Why?
1007    :PROPERTIES:
1008    :CUSTOM_ID: edit-menu-trust-not-show-correctly-after-signing-uids
1009    :END:
1010
1011     This happens because some information is stored immediately in
1012     the trustdb, but the actual trust calculation can be done after the
1013     save command. This is a "not easy to fix" design bug which will be
1014     addressed in some future release.
1015
1016 ** What does "skipping pubkey 1: already loaded" mean?
1017    :PROPERTIES:
1018    :CUSTOM_ID: what-does-skipping_pubkey_1_already_loaded-mean
1019    :END:
1020
1021     As of GnuPG 1.0.3, the RSA algorithm is included. If you still have
1022     a "load-extension rsa" in your options file, the above message
1023     occurs. Just remove the load command from the options file.
1024
1025 ** GnuPG 1.0.4 doesn't create ~/.gnupg ...
1026    :PROPERTIES:
1027    :CUSTOM_ID: gnupg-1.0.4-does-not-create-.gnupg
1028    :END:
1029
1030     That's a known bug, already fixed in newer versions.
1031
1032 ** An Elgamal signature does not verify anymore since version 1.0.2
1033    :PROPERTIES:
1034    :CUSTOM_ID: an-elgamal-signature-does-not-verify-anymore-since-version-1.0.2
1035    :END:
1036
1037     Use the option --emulate-md-encode-bug.
1038
1039 ** Old versions of GnuPG can't verify Elgamal signatures
1040    :PROPERTIES:
1041    :CUSTOM_ID: old-versions-of-gnupg-cant-verify-elgamal-signatures
1042    :END:
1043
1044     Update to GnuPG 1.0.2 or newer.
1045
1046 ** When I use --clearsign, the plain text has sometimes extra dashes in it - why?
1047    :PROPERTIES:
1048    :CUSTOM_ID: extra-dashes-in-clearsign-messages
1049    :END:
1050
1051     This is called dash-escaped text and is required by OpenPGP.
1052     It always happens when a line starts with a dash ("-") and is
1053     needed to make the lines that structure signature and text
1054     (i.e., "-----BEGIN PGP SIGNATURE-----") to be the only lines
1055     that start with two dashes.
1056
1057     If you use GnuPG to process those messages, the extra dashes
1058     are removed. Good mail clients remove those extra dashes when
1059     displaying such a message.
1060
1061 ** What is the thing with "can't handle multiple signatures"?
1062    :PROPERTIES:
1063    :CUSTOM_ID: what-is-the-thing-with-cant_handle_multiple_signatures
1064    :END:
1065
1066     Due to different message formats GnuPG is not always able to split
1067     a file with multiple signatures unambiguously into its parts. This
1068     error message informs you that there is something wrong with the input.
1069
1070     The only way to have multiple signatures in a file is by using the
1071     OpenPGP format with one-pass-signature packets (which is GnuPG's
1072     default) or the cleartext signed format.
1073
1074 ** If I submit a key to a keyserver, nothing happens
1075    :PROPERTIES:
1076    :CUSTOM_ID: if-i-submit-a-key-to-a-keyserver-nothing-happens
1077    :END:
1078
1079     You are most likely using GnuPG 1.0.2 or older on Windows. That's
1080     feature isn't yet implemented, but it's a bug not to say it. Newer
1081     versions issue a warning. Upgrade to 1.4.5 or newer.
1082
1083 ** I get "gpg: waiting for lock ..."
1084    :PROPERTIES:
1085    :CUSTOM_ID: i-get-gpg_waiting_for_lock
1086    :END:
1087
1088     A previous instance of gpg has most likely exited abnormally and left
1089     a lock file. Go to ~/.gnupg and look for .*.lock files and remove them.
1090
1091 ** Older gpg binaries (e.g., 1.0) have problems with keys from newer gpg binaries
1092    :PROPERTIES:
1093    :CUSTOM_ID: gpg-1.0-has-problems-with-keys-from-newer-gpg-versions
1094    :END:
1095
1096     As of 1.0.3, keys generated with gpg are created with preferences to
1097     TWOFISH (and AES since 1.0.4) and that also means that they have the
1098     capability to use the new MDC encryption method. This will go into
1099     OpenPGP soon, and is also supported by PGP 7. This new method avoids
1100     a (not so new) attack on all email encryption systems.
1101
1102     This in turn means that pre-1.0.3 gpg binaries have problems with
1103     newer keys. Because of security and bug fixes, you should keep your
1104     GnuPG installation in a recent state anyway. As a workaround, you can
1105     force gpg to use a previous default cipher algo by putting:
1106
1107     : cipher-algo cast5
1108
1109     into your options file.
1110
1111 ** With 1.0.4, I get "this cipher algorithm is deprecated ..."
1112    :PROPERTIES:
1113    :CUSTOM_ID: with-1.0.4-i-get-this_cipher_algorithm_is_deprecated
1114    :END:
1115
1116     If you just generated a new key and get this message while
1117     encrypting, you've witnessed a bug in 1.0.4. It uses the new AES
1118     cipher Rijndael that is incorrectly being referred as "deprecated".
1119     Ignore this warning, more recent versions of gpg are corrected.
1120
1121 ** Some dates are displayed as ????-??-??. Why?
1122    :PROPERTIES:
1123    :CUSTOM_ID: some-dates-are-displayed-as-question-marks
1124    :END:
1125
1126     Due to constraints in most libc implementations, dates beyond
1127     2038-01-19 can't be displayed correctly. 64-bit OSes are not
1128     affected by this problem. To avoid printing wrong dates, GnuPG
1129     instead prints some question marks. To see the correct value, you
1130     can use the options --with-colons and --fixed-list-mode.
1131
1132 ** I still have a problem. How do I report a bug?
1133    :PROPERTIES:
1134    :CUSTOM_ID: i-still-have-a-problem-how-do-i-report-a-bug
1135    :END:
1136
1137     Are you sure that it's not been mentioned somewhere on the mailing
1138     lists? Did you have a look at the bug list (you'll find a link to
1139     the list of reported bugs on the documentation page). If you're
1140     not sure about it being a bug, you can send mail to the
1141     gnupg-devel list. Otherwise, use the bug tracking system at
1142     [[https://bugs.gnupg.org][bugs.gnupg.org]].
1143
1144 ** Why doesn't GnuPG support X.509 certificates?
1145    :PROPERTIES:
1146    :CUSTOM_ID: why-doesnt-gnupg-support-x509-certificates
1147    :END:
1148
1149     That is only the case for GnuPG version 1.x.  GnuPG 2.x fully
1150     supports X.509 and S/MIME using the gpgsm tool.
1151
1152 ** Why do national characters in my user ID look funny?
1153    :PROPERTIES:
1154    :CUSTOM_ID: why-do-national-characters-in-my-user-id-look-funny
1155    :END:
1156
1157     According to OpenPGP, GnuPG encodes user ID strings (and other
1158     things) using UTF-8. In this encoding of Unicode, most national
1159     characters get encoded as two- or three-byte sequences. For
1160     example, &aring; (0xE5 in ISO-8859-1) becomes &Atilde;&yen; (0xC3,
1161     0xA5). This might also be the reason why keyservers can't find
1162     your key.
1163
1164 ** I get 'sed' errors when running ./configure on Mac OS X ...
1165    :PROPERTIES:
1166    :CUSTOM_ID: i-get-sed-errors-when-running-configure-on-mac-os-x
1167    :END:
1168
1169     This problem has been fixed for all modern GnuPG versions.
1170     (By using an autoconf 2.50 generated configure script).
1171
1172 ** Why does GnuPG 1.0.6 bail out on keyrings used with 1.0.7?
1173    :PROPERTIES:
1174    :CUSTOM_ID: why-does-gnupg-1.0.6-bail-out-on-keyrings-used-with-1.0.7
1175    :END:
1176
1177     There is a small bug in 1.0.6 which didn't parse trust packets
1178     correctly. You may want to apply this patch if you can't upgrade:
1179     [[https://www.gnupg.org/developer/gpg-woody-fix.txt]].
1180
1181 ** I upgraded to GnuPG version 1.0.7 and now it takes longer to load my keyrings. What can I do?
1182    :PROPERTIES:
1183    :CUSTOM_ID: with-gpg-1.0.7-it-takes-longer-to-load-my-keyrings
1184    :END:
1185
1186     The way signature states are stored has changed so that v3 signatures
1187     can be supported. You can use the new --rebuild-keydb-caches migration
1188     command, which was built into this release and increases the speed of
1189     many operations for existing keyrings.
1190
1191 ** Doesn't a fully trusted user ID on a key prevent warning messages when encrypting to other IDs on the key?
1192    :PROPERTIES:
1193    :CUSTOM_ID: key-validation-bug-in-gpg-1.2.1
1194    :END:
1195
1196     No. That was actually a key validity bug in GnuPG 1.2.1 and earlier
1197     versions. As part of the development of GnuPG 1.2.2, a bug was
1198     discovered in the key validation code.  This bug causes keys with
1199     more than one user ID to give all user IDs on the key the amount of
1200     validity given to the most-valid key. The bug has been fixed in GnuPG
1201     release 1.2.2, and upgrading is the recommended fix for this problem.
1202     More information and a patch for a some pre-1.2.2 versions of GnuPG
1203     can be found at:
1204
1205     [[https://lists.gnupg.org/pipermail/gnupg-announce/2003q2/000268.html]].
1206
1207 ** I just compiled GnuPG from source on my GNU/Linux RPM-based system and it's not working. Why?
1208    :PROPERTIES:
1209    :CUSTOM_ID: compiled-on-gnu-linux-rpm-based-system-and-not-working
1210    :END:
1211
1212     Many GNU/Linux distributions that are RPM-based will install a
1213     version of GnuPG as part of its standard installation, placing the
1214     binaries in the /usr/bin directory. Later, compiling and installing
1215     GnuPG from source other than from a source RPM won't normally
1216     overwrite these files, as the default location for placement of
1217     GnuPG binaries is in /usr/local/bin unless the '--prefix' switch
1218     is used during compile to specify an alternate location. Since the
1219     /usr/bin directory more than likely appears in your path before
1220     /usr/local/bin, the older RPM-version binaries will continue to
1221     be used when called since they were not replaced.
1222
1223     To resolve this, uninstall the RPM-based version with 'rpm -e gnupg'
1224     before installing the binaries compiled from source. If dependency
1225     errors are displayed when attempting to uninstall the RPM (such as
1226     when Red Hat's up2date is also installed, which uses GnuPG), uninstall
1227     the RPM with 'rpm -e gnupg --nodeps' to force the uninstall. Any
1228     dependent files should be automatically replaced during the install
1229     of the compiled version. If the default /usr/local/bin directory is
1230     used, some packages such as SuSE's Yast Online Update may need to be
1231     configured to look for GnuPG binaries in the /usr/local/bin directory,
1232     or symlinks can be created in /usr/bin that point to the binaries
1233     located in /usr/local/bin.
1234
1235
1236 * Advanced Topics
1237
1238 ** How does this whole thing work?
1239    :PROPERTIES:
1240    :CUSTOM_ID: how-does-this-whole-thing-work
1241    :END:
1242
1243     To generate a secret/public keypair, run:
1244
1245     : $ gpg --generate-key
1246
1247     and choose the default values.
1248
1249     Data that is encrypted with a public key can only be decrypted by
1250     the matching secret key. The secret key is protected by a password,
1251     the public key is not.
1252
1253     So to send your friend a message, you would encrypt your message
1254     with his public key, and he would only be able to decrypt it by
1255     having the secret key and putting in the password to use his secret
1256     key.
1257
1258     GnuPG is also useful for signing things. Files that are encrypted
1259     with the secret key can be decrypted with the public key. To sign
1260     something, a hash is taken of the data, and then the hash is in some
1261     form encoded with the secret key. If someone has your public key, they
1262     can verify that it is from you and that it hasn't changed by checking
1263     the encoded form of the hash with the public key.
1264
1265     A keyring is just a large file that stores keys. You have a public
1266     keyring where you store yours and your friend's public keys. You have
1267     a secret keyring that you keep your secret key on, and should be very
1268     careful with. Never ever give anyone else access to it and use a *good*
1269     passphrase to protect the data in it.
1270
1271     You can 'conventionally' encrypt something by using the option 'gpg -c'.
1272     It is encrypted using a passphrase, and does not use public and secret
1273     keys. If the person you send the data to knows that passphrase, they
1274     can decrypt it. This is usually most useful for encrypting things to
1275     yourself, although you can encrypt things to your own public key in the
1276     same way. It should be used for communication with partners you know
1277     and where it is easy to exchange the passphrases (e.g. with your boy
1278     friend or your wife). The advantage is that you can change the
1279     passphrase from time to time and decrease the risk, that many old
1280     messages may be decrypted by people who accidentally got your passphrase.
1281
1282     You can add and copy keys to and from your keyring with the 'gpg
1283     --import' and 'gpg --export' command. 'gpg --export-secret-keys' will
1284     export secret keys. This is normally not useful, but you can generate
1285     the key on one machine then move it to another machine.
1286
1287     Keys can be signed under the 'gpg --edit-key' option. When you sign a
1288     key, you are saying that you are certain that the key belongs to the
1289     person it says it comes from. You should be very sure that is really
1290     that person: You should verify the key fingerprint with:
1291
1292     : $ gpg --fingerprint KeyID
1293
1294     over the phone (if you really know the voice of the other person), at
1295     a key signing party (which are often held at computer conferences),
1296     or at a meeting of your local GNU/Linux User Group.
1297
1298     Hmm, what else. You may use the option '-o filename' to force output
1299     to this filename (use '-' to force output to stdout). '-r' just lets
1300     you specify the recipient (which public key you encrypt with) on the
1301     command line instead of typing it interactively.
1302
1303     Oh yeah, this is important. By default all data is encrypted in some
1304     weird binary format. If you want to have things appear in ASCII text
1305     that is readable, just add the '-a' option. But the preferred method
1306     is to use a MIME aware mail reader (Mutt, Pine and many more).
1307
1308     There is a small security glitch in the OpenPGP (and therefore GnuPG)
1309     system; to avoid this you should always sign and encrypt a message
1310     instead of only encrypting it.
1311
1312 ** Why are some signatures with an ELG-E key valid?
1313    :PROPERTIES:
1314    :CUSTOM_ID: why-are-some-signatures-with-an-elg-e-key-valid
1315    :END:
1316
1317     These are Elgamal keys generated by GnuPG in v3 (RFC 1991) packets.
1318     The OpenPGP draft later changed the algorithm identifier for Elgamal
1319     keys which are usable for signatures and encryption from 16 to 20.
1320     GnuPG now uses 20 when it generates new Elgamal keys but still
1321     accepts 16 (which is according to OpenPGP "encryption only") if this
1322     key is in a v3 packet. GnuPG is the only program which had used
1323     these v3 Elgamal keys - so this assumption is quite safe.
1324
1325 ** How does the whole trust thing work?
1326    :PROPERTIES:
1327    :CUSTOM_ID: how-does-the-whole-trust-thing-work
1328    :END:
1329
1330     It works more or less like PGP. The difference is that the trust is
1331     computed at the time it is needed. This is one of the reasons for
1332     the trustdb which holds a list of valid key signatures. If you are
1333     not running in batch mode you will be asked to assign a trust
1334     parameter (ownertrust) to a key.
1335
1336     You can see the validity (calculated trust value) using this
1337     command.
1338
1339     : $ gpg --list-keys --with-colons
1340
1341     If the first field is "pub" or "uid", the second field shows you the
1342     trust:
1343
1344     :   o = Unknown (this key is new to the system)
1345     :   e = The key has expired
1346     :   q = Undefined (no value assigned)
1347     :   n = Don't trust this key at all
1348     :   m = There is marginal trust in this key
1349     :   f = The key is full trusted
1350     :   u = The key is ultimately trusted; this is only used
1351     :       for keys for which the secret key is also available.
1352     :   r = The key has been revoked
1353     :   d = The key has been disabled
1354
1355     The value in the "pub" record is the best one of all "uid" records.
1356     You can get a list of the assigned trust values (how much you trust
1357     the owner to correctly sign another person's key) with:
1358
1359     : $ gpg --export-ownertrust
1360
1361     The first field is the fingerprint of the primary key, the second
1362     field is the assigned value:
1363
1364     :  - = No ownertrust value yet assigned or calculated.
1365     :  n = Never trust this keyholder to correctly verify others signatures.
1366     :  m = Have marginal trust in the keyholders capability to sign other
1367     :      keys.
1368     :  f = Assume that the key holder really knows how to sign keys.
1369     :  u = No need to trust ourself because we have the secret key.
1370
1371     Keep these values confidential because they express your opinions
1372     about others. PGP stores this information with the keyring thus it
1373     is not a good idea to publish a PGP keyring instead of exporting
1374     the keyring. GnuPG stores the trust in the trustdb.gpg file so it
1375     is okay to give a gpg keyring away (but we have a --export command
1376     too).
1377
1378 ** What kind of output is this: "key C26EE891.298, uid 09FB: ...."?
1379    :PROPERTIES:
1380    :CUSTOM_ID: trustb-diagnostics-output-key-uid
1381    :END:
1382
1383     This is the internal representation of a user ID in the trustdb.
1384     "C26EE891" is the keyid, "298" is the local ID (a record number in
1385     the trustdb) and "09FB" is the last two bytes of a ripe-md-160 hash
1386     of the user ID for this key.
1387
1388 ** How do I interpret some of the informational outputs?
1389    :PROPERTIES:
1390    :CUSTOM_ID: how-do-i-interpret-some-of-the-informational-outputs
1391    :END:
1392
1393     While checking the validity of a key, GnuPG sometimes prints some
1394     information which is prefixed with information about the checked
1395     item.
1396
1397     : "key 12345678.3456"
1398
1399     This is about the key with key ID 12345678 and the internal number
1400     3456, which is the record number of the so called directory record
1401     in the trustdb.
1402
1403     : "uid 12345678.3456/ACDE"
1404
1405     This is about the user ID for the same key. To identify the user ID
1406     the last two bytes of a ripe-md-160 over the user ID ring is printed.
1407
1408     : "sig 12345678.3456/ACDE/9A8B7C6D"
1409
1410     This is about the signature with key ID 9A8B7C6D for the above key
1411     and user ID, if it is a signature which is direct on a key, the user
1412     ID part is empty (..//..).
1413
1414 ** Are the header lines of a cleartext signature part of the signed material?
1415    :PROPERTIES:
1416    :CUSTOM_ID: are-header-lines-of-cleartext-sigs-part-of-the-signed-material
1417    :END:
1418
1419     No. For example you can add or remove "Comment:" lines. They have
1420     a purpose like the mail header lines. However a "Hash:" line is
1421     needed for OpenPGP signatures to tell the parser which hash
1422     algorithm to use.
1423
1424 ** What is the list of preferred algorithms?
1425    :PROPERTIES:
1426    :CUSTOM_ID: what-is-the-list-of-preferred-algorithms
1427    :END:
1428
1429     The list of preferred algorithms is a list of cipher, hash and
1430     compression algorithms stored in the self-signature of a key during
1431     key generation. When you encrypt a document, GnuPG uses this list
1432     (which is then part of a public key) to determine which algorithms
1433     to use. Basically it tells other people what algorithms the
1434     recipient is able to handle and provides an order of preference.
1435
1436 ** How do I change the list of preferred algorithms?
1437    :PROPERTIES:
1438    :CUSTOM_ID: how-do-i-change-the-list-of-preferred-algorithms
1439    :END:
1440
1441     In version 1.0.7 or later, you can use the edit menu and set the
1442     new list of preference using the command "setpref"; the format of
1443     this command resembles the output of the command "pref". The
1444     preference is not changed immediately but the set preference will
1445     be used when a new user ID is created. If you want to update the
1446     preferences for existing user IDs, select those user IDs (or select
1447     none to update all) and enter the command "updpref". Note that the
1448     timestamp of the self-signature is increased by one second when
1449     running this command.
1450
1451 ** How can I import all the missing signer keys?
1452    :PROPERTIES:
1453    :CUSTOM_ID: how-can-i-import-all-the-missing-signer-keys
1454    :END:
1455
1456     If you imported a key and you want to also import all the signer's
1457     keys, you can do this with this command:
1458
1459     :  gpg --check-sigs --with-colon KEYID \
1460     :   | awk -F: '$1 == "sig" && $2 == "?"  { print $5 }' \
1461     :   | sort | uniq | xargs echo gpg --recv-keys
1462
1463     Note that the invocation of sort is also required to wait for the
1464     of the listing before starting the import.
1465
1466
1467 * Bug reporting and hacking
1468   :PROPERTIES:
1469   :CUSTOM_ID: bugreports-et-al
1470   :END:
1471
1472 ** Copyright assignments
1473   :PROPERTIES:
1474   :CUSTOM_ID: copyright-assignments
1475   :END:
1476
1477 Like most core GNU projects, GnuPG requires the signing of a copyright
1478 assignment to the FSF.  Without such an assignment we may only accept
1479 trivial patches.  As a rule of thumb the sum of all changed lines by
1480 one contributor may not exceed about 15 lines.  Exceptions are typo
1481 corrections and translations.  See
1482 https://www.gnu.org/prep/maintain/html_node/Copyright-Papers.html for
1483 details.
1484
1485 ** U.S. export restrictions
1486   :PROPERTIES:
1487   :CUSTOM_ID: us-export-restrictions
1488   :END:
1489
1490 GnuPG has originally been developed in Germany because we have been
1491 able to do that without being affected by the US export restrictions.
1492 We had to reject any contributions from US citizens or from people
1493 living in the US.  That changed by end of 2000 when the export
1494 restrictions were basically dropped for all kind of freely available
1495 software.  However there are still some requirements in the US.
1496 Quoting David Shaw: mail
1497 #+begin_quote
1498 For each release of GPG that I contributed to, I sent an email
1499 containing a pointer to the new source code to the Commerce
1500 Department.  The rules changed slightly in 2004, so that you could
1501 send a single email and then be done until the information in that
1502 email changed, so I just sent "www.gnupg.org" and haven't bothered
1503 with the email since.
1504 #+end_quote
1505
1506 The rules: https://www.bis.doc.gov/encryption/pubavailencsourcecodenofify.html
1507 The 2004 rule change: https://edocket.access.gpo.gov/2004/04-26992.htm
1508
1509
1510 * Acknowledgements
1511   :PROPERTIES:
1512   :CUSTOM_ID: acknowledgements
1513   :END:
1514
1515   Many thanks to Nils Ellmenreich for maintaining this FAQ file for
1516   such a long time, David D. Scribner for continuing maintenance,
1517   Werner Koch for the original FAQ file, and to all posters to
1518   gnupg-users and gnupg-devel.  They all provided most of the answers.
1519   Converted to org-mode and removed from the tarballs in October 2010.
1520
1521   Copyright (C) 2000, 2001, 2002, 2003, 2010 Free Software Foundation,
1522   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA
1523
1524   This file is free software; as a special exception the author gives
1525   unlimited permission to copy and/or distribute it, with or without
1526   modifications, as long as this notice is preserved.
1527
1528 * Changes
1529
1530   - 2010-11-14: Update "gpg: Warning: using insecure memory!"
1531
1532
1533
1534
1535 * COMMENT HTML style specifications
1536
1537 #+begin_src emacs-lisp
1538   (defun org-faq-make-target ()
1539     "Make hard target for current headline."
1540     (interactive)
1541     (if (not (org-on-heading-p))
1542         (error "Not on a headline"))
1543     (let ((h (org-trim (org-get-heading 'no-tags))))
1544       (if (string-match "[ \t]*\\?\\'" h)
1545           (setq h (replace-match "" t t h)))
1546       (while (string-match "[ \t]+" h)
1547         (setq h (replace-match "-" t t h)))
1548       (setq h (downcase h))
1549       (org-entry-put nil "CUSTOM_ID" h)))
1550 #+end_src
1551
1552
1553
1554 # Local Variables:
1555 # org-export-html-style-include-default: nil
1556 # org-export-html-style-include-scripts: nil
1557 # End: