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