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