Update head to match stable 1.0
[gnupg.git] / doc / faq.raw
1 [$htmltitle=GnuPG FAQ]
2 [$sfaqheader=The GnuPG FAQ says:]
3 [$sfaqfooter=
4 The most recent version of the FAQ is available from
5 <http://www.gnupg.org/>
6 ]
7 [$usenetheader=
8 ]
9 [$maintainer=Douglas Calvert, <faq 'at' gnupg.org> ]
10 [$hGPG=http://www.gnupg.org]
11
12 [H body bgcolor=#ffffff text=#000000 link=#1f00ff alink=#ff0000 vlink=#9900dd]
13 [H H1]GNUPG FREQUENTLY ASKED QUESTIONS[H /H1]
14
15
16 Version: 1.5.6[H p]
17 Last-Modified: Sep 14, 2001[H p]
18 Maintained-by: [$maintainer]
19
20
21 This is the GnuPG FAQ. The latest HTML version is available  
22 [H a href=[$hGPG]/faq.html] here[H/a].  
23
24 The index is generated automatically, so there may be errors here.  Not
25 all questions may be in the section they belong to. Suggestions about
26 how to improve the structure of this FAQ are welcome.
27
28 Please send additions and corrections to the maintainer. It would be
29 most convenient if you could provide the answer to be included
30 here. Your help is very much appreciated.
31
32 Please, don't send message like "This should be a FAQ - what's the
33 answer?". If it hasn't been asked before, it isn't a FAQ. In that case
34 you could search in the mailing list archive.
35
36
37 [H HR]
38
39 <C>
40
41 [H HR]
42
43 <S> GENERAL
44
45 <Q> What is GnuPG?
46
47     [H a href=[$hGPG]]GnuPG[H /a] stands for GNU Privacy Guard and
48     is GNU's tool for secure communication and data storage.
49     It can be used to encrypt data and to create digital signatures.
50     It includes an advanced key management facility and is compliant
51     with the proposed OpenPGP Internet standard as described in
52     [H a href=http://www.gnupg.org/rfc2440.html]RFC 2440[H/a]. As
53     such, it is aimed to be compatible with PGP from NAI Inc.
54
55 <Q> Is GnuPG compatible with PGP?
56
57     In general, yes. GnuPG and newer PGP releases should be implementing
58     the OpenPGP standard. But there are some interoperability
59     problems. See questions <Rcompat>ff. for details.
60
61 <S> SOURCES of INFORMATION
62
63 <Q> Where can I find more information?
64
65     Here's a list of on-line resources: [H UL] 
66
67     [H LI] [H a href=[$hGPG]/docs.html]<[$hGPG]/docs.html>[H/a] is the
68     documentation page. Have a look at the HOWTOs and the GNU Privacy
69     Handbook (GPH, available in English, Spanish and Russian). The
70     latter provides a detailed user's guide to GnuPG. You'll also find a
71     document about how to convert from PGP 2.x to GnuPG.
72
73     [H LI] On [H a href=http://lists.gnupg.org]<http://lists.gnupg.org>[H/a] 
74     you'll find an online archive of the GnuPG mailing lists. Most
75     interesting should be gnupg-users for all user-related issues and
76     gnupg-devel if you want to get in touch with the developers.
77
78     In addition, searchable archives can be found on MARC, e.g.: 
79     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], 
80     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].
81
82     [H B]PLEASE:[H/B]
83     Before posting to a list, read this FAQ and the available
84     documentation. In addition, search the list archive - maybe your
85     question has already been discussed. This way you help people focus
86     on topics that have not yet been resolved.
87
88     [H LI] The GnuPG source distribution contains a subdirectory 
89     [H PRE]./doc[H /PRE] where some additional documentation is located
90     (mainly interesting for hackers, not the casual user).
91     [H /UL]
92
93 <Q> Where do I get GnuPG?
94
95     You can download the GNU Privacy Guard from its primary FTP server
96     [H a href=ftp://ftp.gnupg.org/pub/gcrypt]ftp.gnupg.org[H /a] or from
97     one of the mirrors: [H a href=[$hGPG]/mirrors.html]<[$hGPG]/mirror.html>[H /a]
98     The current version is 1.0.4, please upgrade to this version as it
99     fixes a security bug regarding the verification of multiple signatures.
100
101
102 <S> INSTALLATION 
103
104 <Q> Which OSes does GnuPG run on?
105
106     It should run on most Unices as well as Windows 95 and Windows NT. A
107     list of OSes reported to be OK is presented at 
108     [H a href=http://www.gnupg.org/backend.html#supsys]
109     http://www.gnupg.org/gnupg.html#supsys [H /a].
110
111 <Q> Which random gatherer should I use?
112
113     "Good" random numbers are crucial for the security of your
114     encryption. Different operating systems provide a variety of more or
115     less quality random data. Linux and *BSD provide kernel generated
116     random data through /dev/random - this should be the preferred
117     choice on these systems. Also Solaris users with the SUNWski package
118     installed have a /dev/random. In these cases, use the configure
119     option [H pre]--enable-static-rnd=linux[H/pre]. In addition, there's
120     also the kernel random device by Andi Maier [H a href= http://www.cosy.sbg.ac.at/~andi]
121     <http://www.cosy.sbg.ac.at/~andi>[H /a], but it's still beta. Use at
122     own risk!
123
124     On other systems, the Entropy Gathering Daemon (EGD) is a good
125     choice. It is a perl-daemon that monitors system activity and hashes
126     it into random data. See the download page [H a href=http://www.gnupg.org/download.html]<http://www.gnupg.org/download.html>[H /a] 
127     how to obtain egd. Use [H pre]--enable-static-rnd=egd[H/pre] here.
128
129     If the above options do not work, you can use the random number
130     generator "unix". This is [H B]very[H /B] slow and should be
131     avoided. The random quality isn't very good so don't use it on
132     sensitive data.
133
134 <Didea>
135 <Q> How do I include support for RSA and IDEA?
136
137     RSA is included as of GnuPG 1.0.3.
138
139     The official GnuPG distribution does not contain IDEA due to a
140     patent restriction. The patent does not expire before 2007 so don't
141     expect official support before then.
142
143     However, there is an unofficial module to include it even
144     in earlier version of GnuPG. It's available from [H a href=ftp://ftp.gnupg.org/pub/gcrypt/contrib/] 
145     <ftp://ftp.gnupg.org/pub/gcrypt/contrib/>[H /a]. Look for [H pre]idea.c[H /pre]. 
146
147     Compilation directives are in the headers of these files. Then add
148     the following line to your ~/.gnupg/options: 
149     [H pre]
150     load-extension idea 
151     [H /pre]
152
153
154 <S> USAGE
155
156 <Q> What is the recommended key size?
157
158     1024 bit for DSA signatures; even for plain ElGamal
159     signatures this is sufficient as the size of the hash
160     is probably the weakest link if the key size is larger
161     than 1024 bits.  Encryption keys may have greater sizes,
162     but you should then check the fingerprint of this key:
163     "gpg --fingerprint <user ID>".
164
165     As for the key algorithms, you should stick with the default (i.e.,
166     DSA signature and ElGamal encryption). A ElGamal signing key has the
167     following disadvantages: the signature is larger, it is hard to
168     create such a key useful for signatures which can withstand some
169     real world attacks, you don't get any extra security compared to
170     DSA, there might be compatibility problems with certain PGP
171     versions. It has only been introduced because at the time it was
172     not clear whether there was a patent on DSA.
173
174 <Q> Why does it sometimes take so long to create keys?
175
176     The problem here is that we need a lot of random bytes and for that
177     we (on Linux the /dev/random device) must collect some random data.
178     It is really not easy to fill the Linux internal entropy buffer; I
179     talked to Ted Ts'o and he commented that the best way to fill the
180     buffer is to play with your keyboard.  Good security has its price.
181     What I do is to hit several times on the shift, control, alternate,
182     and caps lock keys, because these keys do not produce output to the
183     screen. This way you get your keys really fast (it's the same thing
184     PGP2 does).
185
186     Another problem might be another program which eats up your random
187     bytes (a program (look at your daemons) that reads from
188     /dev/[u]random).
189
190 <Q> And it really takes long when I work on a remote system. Why?
191
192     Don't do this at all! You should never create keys or even use GnuPG
193     on a remote system because you normally have no physical control
194     over your secret key ring (which is in most cases vulnerable to
195     advanced dictionary attacks) - I strongly encourage everyone to only
196     create keys on a local computer (a disconnected laptop is probably
197     the best choice) and if you need it on your connected box (I know:
198     We all do this) be sure to have a strong password for your account
199     and for your secret key and that you can trust your system
200     administrator.
201
202     When I check GnuPG on a remote system via ssh (I have no Alpha here
203     ;-) I have the same problem.  It takes a *very* long time to create
204     the keys, so I use a special option, --quick-random, to generate
205     insecure keys which are only good for some tests.
206
207 <Q> What is the difference between options and commands?
208
209     If you do a 'gpg --help', you will get two separate lists. The first
210     is a list of commands. The second is a list of options. Whenever you
211     run GPG, you [H B]must[H /B] pick exactly one command (with one
212     exception, see below). You [H B]may[H /B] pick one or more options.
213     The command should, just by convention, come at the end of the
214     argument list, after all the options. If the command takes a file
215     (all the basic ones do), the filename comes at the very end. So the
216     basic way to run gpg is: 
217
218     [H pre] 
219     gpg [--option something] [--option2] [--option3 something] --command file 
220     [H/pre] 
221
222     Some options take arguments, for example the --output option (which
223     can be abbreviated -o) is an option that takes a filename. The
224     option's argument must follow immediately after the option itself,
225     otherwise gpg doesn't know which option the argument is supposed to
226     go with. As an option, --output and its filename must come before
227     the command. The --recipient (-r) option takes a name or keyid to
228     encrypt the message to, which must come right after the -r argument.
229     The --encrypt (or -e) command comes after all the options followed
230     by the file you wish to encrypt. So use 
231
232     [H pre] 
233     gpg -r alice -o secret.txt -e test.txt 
234     [H/pre] 
235
236     If you write the options out in full, it is easier to read 
237
238     [H pre]
239     gpg --recipient alice --output secret.txt --encrypt test.txt 
240     [H/pre]
241
242     If you're saving it in a file called ".txt" then you'd probably
243     expect to see ASCII-armored text in there, so you need to add the
244     --armor (-a) option, which doesn't take any arguments.  
245
246     [H pre] 
247     gpg --armor --recipient alice --output secret.txt --encrypt test.txt
248     [H/pre] 
249
250     If you imagine square brackets around the optional parts, it becomes
251     a bit clearer: 
252
253     [H pre] 
254     gpg [--armor] [--recipient alice] [--output secret.txt] --encrypt test.txt 
255     [H/pre] 
256
257     The optional parts can be rearranged any way you want.  
258
259     [H pre] 
260     gpg --output secret.txt --recipient alice --armor --encrypt test.txt
261     [H/pre] 
262
263     If your filename begins with a hyphen (e.g. "-a.txt"), gnupg assumes
264     this is an option and may complain.  To avoid this you have either
265     to use "./-a.txt" or stop the option and command processing with two
266     hyphens: "-- -a.txt".
267   
268     [H B]The exception:[H /B] signing and encrypting at the same time. Use
269     [H pre] gpg [--options] --sign --encrypt foo.txt [H/pre]
270
271
272 <Q> I can't delete a user id because it is already deleted on my public
273 keyring?
274
275     Because you can only select from the public key ring, there is no
276     direct way to do this.  However it is not very complicated to do it
277     anyway.  Create a new user id with exactly the same name and you
278     will see that there are now two identical user ids on the secret
279     ring.  Now select this user id and delete it.  Both user ids will be
280     removed from the secret ring.
281
282 <Q> I can't delete the secret key because my public key disappeared?
283
284     To select a key a search is always done on the public keyring,
285     therefore it is not possible to select an secret key without
286     having the public key.  Normally it shoud never happen that the
287     public key got lost but the secret key is still available.  The
288     reality is different, so we GnuPG implements a special way to do
289     deal with it: Simply use the long keyid which you can figure out
290     by using the --with-colons options (it is the fifth field in the
291     lines beginning with "sec").
292
293 <Q> What are trust, validity and ownertrust?
294
295     "ownertrust" is used instead of "trust" to make clear that this is
296     the value you have assigned to a key to express how much you trust
297     the owner of this key to correctly sign (and so introduce) other
298     keys.  "validity", or calculated trust, is a value which says how
299     much GnuPG thinks a key is valid (that it really belongs to the one
300     who claims to be the owner of the key).  For more see the chapter
301     "The Web of Trust" in the Manual.
302
303 <Q> How do I sign a patch file?
304
305     Use "gpg --clearsign --not-dash-escaped ...".  The problem with
306     --clearsign is that all lines starting with a dash are quoted with
307     "- "; obviously diff produces many of lines starting with a dash and
308     these are then quoted and that is not good for patch ;-).  To use a
309     patch file without removing the cleartext signature, the special
310     option --not-dash-escaped may be used to suppress generation of
311     these escape sequences.  You should not mail such a patch because
312     spaces and line endings are also subject to the signature and a
313     mailer may not preserve these.  If you want to mail a file you can
314     simply sign it using your MUA.
315
316 <Q> Where is the "encrypt-to-self" option?
317
318     Use "--encrypt-to your_keyid".  You can use more than one of these
319     options. To temporary override the use of this additional keys, you
320     can use the option "--no-encrypt-to".
321
322 <Q> How can I get rid of the Version and Comment headers in armored
323 messages?
324
325     Use "--no-version --comment ''".  Note that the left over blank line
326     is required by the protocol.
327
328 <Q> What does the "You are using the xxxx character set." mean?
329
330     This note is printed when UTF8 mapping has to be done.  Make sure
331     that the displayed charset is the one you have activated on your
332     system "iso-8859-1" is the most used one, so this is the default.
333     You can change the charset with the option "--charset".  It is
334     important that you active character set matches the one displayed -
335     if not, restrict yourself to plain 7 bit ASCII and no mapping has to
336     be done.
337
338 <Q> How can a get list of key IDs used to encrypt a message?
339
340     [H pre] gpg --batch --decrypt --list-only --status-fd 1 2>/dev/null | \
341     awk '/^\[GNUPG:\] ENC_TO / { print $3 }' [H /pre]
342
343 <Q> I can't decrypt my symmetrical only (-c) encrypted message with
344     a new version of GnuPG.
345
346     There used to be a bug in GnuPG < 1.0.1 which happens only if 3DES
347     or Twofish has been used for symmetric only encryption (this has
348     never been the default).  The bug has been fixed but to enable you
349     to decrypt old messages, you should run gpg with the option
350     "--emulate-3des-s2k-bug", decrypt the message and encrypt it again
351     without this option.  The option will be removed in 1.1, so better
352     re-encrypt your message now.
353
354 <Q> How can I use GnuPG in an automated environment?
355
356     You should use the option --batch and don't use pass phrases as
357     there is usually no way to store it more secure than the secret
358     keyring itself. The suggested way to create the keys for the
359     automated environment is:
360
361      On a secure machine:
362     [H OL] [H LI] If you want to do automatic signing, create a signing
363     subkey for your key (edit menu, choose "addkey" and the DSA).  [H
364     LI] Make sure that you use a passphrase (Needed by the current
365     implementation) [H LI] gpg --export-secret-subkeys --no-comment foo
366     >secring.auto [H LI] Copy secring.auto and the public keyring to a
367     test directory.  [H LI] Cd to this directory.  [H LI] gpg --homedir
368     . --edit foo and use "passwd" to remove the pass-phrase from the
369     subkeys.  You may also want to remove all unused subkeys.  [H LI]
370     copy secring.auto to a floppy and carry it to the target box [H /OL]
371     On the target machine: [H OL] [H LI] Install secring.auto as secret
372     keyring.  [H LI] Now you can start your new service.  It is a good
373     idea to install some intrusion detection system so that you
374     hopefully get a notice of an successful intrusion, so that you in
375     turn can revoke all the subkeys installed on that machine and
376     install new subkeys.  [H /OL]
377
378 <Q> Which email-client can I use with GnuPG?
379
380     Using GnuPG to encrypt email is one of the most popular
381     uses. Several mail clients or mail user-agents (MUA) support GnuPG
382     at varying degrees. Simplifying a bit, there are two ways a mail can
383     be encrypted with GnuPG: the "old style" ASCII armor, i.e. plain
384     text encryption, and RFC2015 style (previously PGP/MIME, now
385     OpenPGP). The latter has full MIME support. Some MUAs support only
386     one of them, so whichever you actually use depends on your needs as
387     well as the capabilities of your addressee.
388
389     The following list is probably not exhaustive:
390
391     OpenPGP: Mutt (Unix), Emacs/Mew, Becky2 (Windows, with plugin),
392              TkRat (Unix). There is effort for a Mozilla plugin and
393              Emacs/GNUS has support in the current CVS.
394     
395     ASCII:   Emacs/{VM,GNUS}/MailCrypt, Mutt(Unix), Pine(Unix), and
396              probably many more.
397
398     Good overviews of OpenPGP-support can be found at 
399     [H a href=http://cryptorights.org/pgp-users/pgp-mail-clients.html]http://cryptorights.org/pgp-users/pgp-mail-clients.html[H /a]. 
400     and [H a href=http://www.geocities.com/openpgp/courrier_en.html]http://www.geocities.com/openpgp/courrier_en.html[H /a].
401
402
403 <Q> Can't we have a gpg library?
404
405     This has been frequently requested. However, the current viewpoint
406     of the GnuPG maintainers is that this would lead to several security
407     issues and will therefore not be implemented in the foreseeable
408     future. However, for some areas of areas of application gpgme could
409     do the trick. You'll find it at 
410     [H a href=ftp://ftp.guug.de/pub/gcrypt/alpha/gpgme]ftp://ftp.guug.de/pub/gcrypt/alpha/gpgme[H /a]
411
412
413 <Q> I have successfully generated a revocation certificate, but I don't
414     understand how to send it to the key servers.
415
416     Most keyservers don't accept a 'bare' revocation certificate. You
417     have to import the certificate into gpg first:
418     [H pre]
419     gpg --import my-revocation.asc
420     [H /pre]
421     then send the revoked key to the keyservers:
422     [H pre]
423     gpg --keyserver certserver.pgp.com --send-keys mykeyid
424     [H /pre]
425     (or use a keyserver web interface for this).
426
427
428 <Q> How do I put my keyring in a different directory?
429
430     GnuPG keeps several files in a special homedir directory.  These
431     include the options file, pubring.gpg, secring.gpg, the trustdb, and
432     others. Gnupg will always create and use these files.  On unices,
433     the homedir is usually ~/.gnupg; on Windows "C:\gnupg\".
434
435     If you want to put your keyrings somewhere else, use 
436     [H pre]--homedir /my/path/[H /pre] to make gnupg create all its
437     files in that directory. Your keyring will be
438     "/my/path/pubring.gpg". This way you can store your secrets on a
439     floppy disk. Don't use "--keyring" as its purpose is to specify
440     additional keyring files.
441
442
443 <S> COMPATIBILITY ISSUES 
444
445 <Dcompat>
446
447 <Q> How can I encrypt a message with GnuPG so that PGP is able to decrypt it?
448
449     It depends on the PGP version.[H UL]
450
451     [H LI] PGP 2.x 
452
453     You can't do that because PGP 2.x normally uses IDEA which is not
454     supported by GnuPG as it is patented (see <Ridea>), but if you
455     have a modified version of PGP you can try this:
456
457     [H pre] gpg --rfc1991 --cipher-algo 3des ...  [H/pre]
458
459     Please don't pipe the data to encrypt to gpg but provide it using a
460     filename; otherwise, PGP 2 will not be able to handle it.
461
462     As for conventional encryption, you can't do this for PGP 2.  
463
464     
465     [H LI] PGP 5.x and higher
466
467     You need to provide two additional options: 
468     [H pre]--compress-algo 1 --cipher-algo cast5 [H/pre] 
469
470     You may also use "3des" instead of "cast5", "blowfish" does not
471     work with all versions of pgp5.  You may also want to put [H pre]
472     compress-algo 1 [H/pre] into your ~/.gnupg/options file - this does
473     not affect normal gnupg operation.
474
475     This applies to conventional encryption as well.
476     [H /UL]
477
478 <Q> How do I migrate from PGP 2.x to GnuPG?
479
480     PGP 2 uses the RSA and IDEA encryption algorithms. Whereas the RSA
481     patent has expired and RSA is included as of GnuPG 1.0.3, the IDEA
482     algorithm is still patented until 2007. Under certain conditions you
483     may use IDEA even today. In that case, you may refer to Question
484     <Ridea> about how to add IDEA support to GnuPG and read
485     [H a href=http://www.gnupg.org/gph/en/pgp2x.html]http://www.gnupg.org/gph/en/pgp2x.html[H /a]
486     to perform the migration. 
487     
488
489 <Q> (removed)
490
491     (empty)
492
493 <Q> Why is PGP 5.x not able to encrypt messages with some keys?
494
495     PGP Inc refuses to accept ElGamal keys of type 20 even for
496     encryption.  They only support type 16 (which is identical at least
497     for decryption).  To be more inter-operable, GnuPG (starting with
498     version 0.3.3) now also uses type 16 for the ElGamal subkey which is
499     created if the default key algorithm is chosen.  You may add an type
500     16 ElGamal key to your public key which is easy as your key
501     signatures are still valid.
502
503 <Q> Why is PGP 5.x not able to verify my messages?
504
505     PGP 5.x does not accept V4 signatures for data material but OpenPGP
506     requests generation of V4 signatures for all kind of data, that's why 
507     GnuPG defaults to them.  Use the option "--force-v3-sigs" to generate 
508     V3 signatures for data.
509
510 <Q> How do I transfer owner trust values from PGP to GnuPG?
511
512     There is a script in the tools directory to help you: After you have
513     imported the PGP keyring you can give this command: 
514
515     [H pre] 
516     $ lspgpot pgpkeyring | gpg --import-ownertrust 
517     [H /pre] 
518
519     where pgpkeyring is the original keyring and not the GnuPG one you
520     might have created in the first step.
521
522 <Q> PGP does not like my secret key.
523
524     Older PGPs probably bail out on some private comment packets used by
525     GnuPG.  These packets are fully in compliance with OpenPGP; however
526     PGP is not really OpenPGP aware.  A workaround is to export the
527     secret keys with this command: 
528     [H pre] $ gpg --export-secret-keys --no-comment -a your-key-id [H /pre]
529
530     Another possibility is this: by default, GnuPG encrypts your secret
531     key using the Blowfish symmetric algorithm. Older PGPs will only
532     understand 3DES, CAST5, or IDEA symmetric algorithms. Using the
533     following method you can re-encrypt your secret gpg key with a
534     different algo:
535
536     [H pre]
537      $ gpg --s2k-cipher-algo=CAST5 --s2k-digest-algo=SHA1 \
538           --compress-algo=1  --edit-key <username>
539     [H /pre]
540
541     Then use passwd to change the password (just change it to the same
542     thing, but it will encrypt the key with CAST5 this time).
543
544     Now you can export it and PGP should be able to handle it.
545
546     For PGP 6.x the following options work to export a key:
547     [H pre]
548      $ gpg --s2k-cipher-algo 3des --compress-algo 1 --rfc1991 \
549            --export-secret-keys <Key-ID>
550     [H /pre]
551
552 <S> PROBLEMS and ERROR MESSAGES
553
554 <Q> Why do I get "gpg: Warning: using insecure memory!"
555
556     On many systems this program should be installed as
557     setuid(root). This is necessary to lock memory pages.  Locking
558     memory pages prevents the operating system from writing them
559     to disk and thereby keeping your secret keys really secret. If you
560     get no warning message about insecure memory your operating system
561     supports locking without being root. The program drops root
562     privileges as soon as locked memory is allocated.
563
564     On UnixWare 2.x and 7.x you should install GnuPG with the
565     'plock' privilege to get the same effect:
566     [H pre]
567         filepriv -f plock /path/to/gpg
568     [H /pre]
569
570     If you can't or don't want to install GnuPG setuid(root), you can
571     use the option "--no-secmem-warning" or put [H pre]
572     no-secmem-warning [H /pre] in your ~/.gnupg/options file (this
573     disables the warning).
574
575     On some systems (e.g., Windows) GnuPG does not lock memory pages
576     and older GnuPG versions (<=1.0.4) issue the warning
577     [H pre]
578     gpg: Please note that you don't have secure memory
579     [H /pre]
580     This warning can't be switched off by the above option because it
581     was thought to be a too serious issue. However, it confused users
582     too much so the warning was eventually removed.
583
584 <Q> Large File Support doesn't work ..
585
586     LFS is correctly working in post-1.0.4 CVS. If configure doesn't
587     detect it correctly, try a different (i.e., better) compiler. egcs
588     1.1.2 works fine, other gccs sometimes don't. BTW, several
589     compilation problems of GnuPG 1.0.3 and 1.0.4 on HP-UX and Solaris
590     were due to broken LFS support.
591
592 <Q> In the edit menu the trust values is not displayed correctly after
593 signing uids - why?
594
595     This happens because the some informations are stored immediately in
596     the trustdb, but the actual trust calculation can be done after the
597     save command.  This is a not easy to fix design bug which will be
598     addressed in some future release.
599
600 <Q> What does "skipping pubkey 1: already loaded" mean?
601
602     As of GnuPG 1.0.3, the RSA algorithm is included. If you still have
603     a "load-extension rsa" in your .options files, the above message
604     occurs. Just remove the load command from the .options file.
605
606 <Q> GnuPG 1.0.4 doesn't create ~/.gnupg ...
607
608     That's a known bug, already fixed in newer versions.
609
610 <Q> An ElGamal signature does not verify anymore since version 1.0.2 ...
611
612     Use the option --emulate-md-encode-bug.
613
614 <Q> Old versions of GnuPG can't verify ElGamal signatures
615
616     Update to GnuPG 1.0.2 or newer.
617
618
619 <Q> When I use --clearsign, the plain text has sometimes extra dashes 
620 in it - why?
621
622     This is called dash-escaped text and required by OpenPGP.
623     It always happens when a line starts with a dash ("-") and is needed
624     to make the lines that structure signature and text
625     (i.e., "-----BEGIN PGP SIGNATURE-----") to be the only lines that
626     start with two dashes.
627     
628     If you use GnuPG to process those messages, the extra dashes are removed.
629     Good mail clients remove those extra dashes when displaying such a 
630     message.      
631
632 <Q> What is the thing with "can't handle multiple signatures"?
633
634     Due to different message formats GnuPG is not always able to split a
635     file with multiple signatures unambiguously into its parts.  This
636     error message informs you that there is something wrong with the input.
637
638     The only way to have multiple signatures in a file is by using the 
639     OpenPGP format with one-pass-signature packets (which is GnuPG's
640     default) or the cleartext signed format.
641
642 <Q> If I submit a key to a keyserver, nothing happens ...
643
644     You are most likely using GnuPG on Windows 1.0.2 or older. That's
645     feature isn't yet implemented, but it's a bug not to say it. Newer
646     versions issue a warning. Upgrade to 1.0.4 or newer.
647
648 <Q> I get "gpg: waiting for lock ..."
649
650     A previous gpg has most likely exited abnormally and left a lock
651     file. Go to ~/.gnupg and look for .*.lock files and remove them.
652
653 <Q> Older gpg's (e.g., 1.0) have problems with keys from newer gpgs ...
654
655     As of 1.0.3, keys generated with gpg are created with preferences to
656     TWOFISH (and AES since 1.0.4) and that also means that they have the
657     capability to use the new MDC encryption method.  This will go into
658     OpenPGP soon and is also suppoted by PGP 7.  This new method avoids
659     a (not so new) attack on all email encryption systems.
660     
661     This in turn means that pre-1.0.3 gpg's have problems with newer
662     key. Because of security fixes, you should keep your gpg
663     installation in a recent state anyway. As a workaround, you can
664     force gpg to use a previous default cipher algo by putting 
665     [H pre]cipher-algo cast5[H /pre] into your options file.
666
667 <Q> With 1.0.4, I get "this cipher algorithm is deprecated ..."
668
669     If you just generated a new key and get this message while
670     encrypting, you've witnessed a bug in 1.0.4. It uses the new AES
671     cipher Rijndael that is incorrectly being referred as
672     "deprecated". Ignore this warning, more recent versions of gpg are
673     corrected.
674
675 <Q> Some dates are displayed as ????-??-??, why?
676
677     Due to constraints in most libc implementations, dates beyond
678     2038-01-19 can't be displayed correctly. 64 bit OSes are not
679     affected by this problem.  To avoid printing wrong dates, GnuPG
680     instead prints some question marks.  To see the correct value, you
681     can use the options --with-colons and --fixed-list-mode.
682
683 <Q> I still have a problem. How do I report a bug?
684
685     Are you sure that it's not been mentioned somewhere on the mailing
686     lists? Did you have a look at the bug list (You'll find a link to
687     the list of reported bugs on the documentation page). If you're not
688     sure about it being a bug, you can send mail to the gnupg-devel
689     list. Otherwise, use the GUUG bug tracking system 
690     [H a href=http://bugs.guug.de/Reporting.html]
691     http://bugs.guug.de/Reporting.html[H /a].   
692
693 <Q> Why doesn't GnuPG support X509 certificates?
694
695     GnuPG, first and foremost, is an implementation of the OpenPGP
696     standard (RFC 2440), which is a competing infrastructure, different
697     from X509.
698
699     They are both public-key cryptosystems, but how the public keys are
700     actually handled is different.
701
702
703 <Q> Why do national characters in my user ID look funny?
704
705     According to OpenPGP, GnuPG encodes user id strings (and other
706     things) using UTF-8.  In this encoding of Unicode, most national
707     characters get encoded as two- or three-byte sequences.  For
708     example, &aring; (0xE5 in ISO-8859-1) becomes &Atilde;&yen; (0xC3,
709     0xA5). This might also be the reason why keyservers can't find
710     your key.
711
712 <Q> I get 'sed' errors when running ./configure on Mac OS X ...
713
714     This will be fixed after GnuPG has been upgraded to
715     autoconf-2.50. Until then, find the line setting CDPATH in the
716     configure script and place a [H pre]unset CDPATH[H /pre] statement
717     below it. 
718
719 <Q> Why does GnuPG 1.0.6 bail out on keyrings used with 1.0.7?
720
721     There is a small bug in 1.0.6 which didn't parse trust packets
722     currectly.  You may want to apply this patch if you can't upgrade:
723        http://www.gnupg.org/developer/gpg-woody-fix.txt 
724
725
726
727 <S> ADVANCED TOPICS
728
729 <Q> How does this whole thing work?
730
731     To generate a secret/public keypair, run [H pre] gpg --gen-key
732     [H/pre] and choose the default values.
733
734     Data that is encrypted with a public key can only be decrypted by
735     the matching secret key.  The secret key is protected by a password,
736     the public key is not.
737
738     So to send your friend a message, you would encrypt your message
739     with his public key, and he would only be able to decrypt it by
740     having the secret key and putting in the password to use his secret
741     key.
742
743     GnuPG is also useful for signing things.  Things that are encrypted
744     with the secret key can be decrypted with the public key. To sign
745     something, a hash is taken of the data, and then the hash is in some
746     form encoded with the secret key. If someone has your public key, they
747     can verify that it is from you and that it hasn't changed by checking
748     the encoded form of the hash with the public key.
749   
750     A keyring is just a large file that stores keys. You have a public
751     keyring where you store yours and your friend's public keys.  You have
752     a secret keyring that you keep your secret key on, and be very careful
753     with this secret keyring: Never ever give anyone else access to it and
754     use a *good* passphrase to protect the data in it.
755   
756     You can 'conventionally' encrypt something by using the option 'gpg
757     -c'.  It is encrypted using a passphrase, and does not use public and
758     secret keys.  If the person you send the data to knows that
759     passphrase, they can decrypt it. This is usually most useful for
760     encrypting things to yourself, although you can encrypt things to your
761     own public key in the same way.  It should be used for communication
762     with partners you know and where it is easy to exchange the
763     passphrases (e.g. with your boy friend or your wife).  The advantage
764     is that you can change the passphrase from time to time and decrease
765     the risk, that many old messages may be decrypted by people who
766     accidently got your passphrase.
767   
768     You can add and copy keys to and from your keyring with the 'gpg
769     --import' and 'gpg --export' option. 'gpg --export-secret-keys' will
770     export secret keys. This is normally not useful, but you can generate
771     the key on one machine then move it to another machine.
772   
773     Keys can be signed under the 'gpg --edit-key' option.  When you sign a
774     key, you are saying that you are certain that the key belongs to the
775     person it says it comes from.  You should be very sure that is really
776     that person: You should verify the key fingerprint
777     [H pre]
778         gpg --fingerprint user-id
779     [H/pre]
780     over phone (if you really know the voice of the other person) or at a
781     key signing party (which are often held at computer conferences) or at
782     a meeting of your local GNU/Linux User Group.
783   
784     Hmm, what else.  You may use the option "-o filename" to force output
785     to this filename (use "-" to force output to stdout). "-r" just lets
786     you specify the recipient (which public key you encrypt with) on the
787     command line instead of typing it interactively.
788   
789     Oh yeah, this is important. By default all data is encrypted in some
790     weird binary format.  If you want to have things appear in ASCII text
791     that is readable, just add the '-a' option.  But the preferred method
792     is to use a MIME aware mail reader (Mutt, Pine and many more).
793   
794     There is a small security glitch in the OpenPGP (and therefore GnuPG)
795     system; to avoid this you should always sign and encrypt a message
796     instead of only encrypting it.
797
798
799 <Q> Why are some signatures with an ELG-E key valid?
800
801     These are ElGamal Key generated by GnuPG in v3 (rfc1991) packets.
802     The OpenPGP draft later changed the algorithm identifier for ElGamal
803     keys which are usable for signatures and encryption from 16 to 20.
804     GnuPG now uses 20 when it generates new ElGamal keys but still
805     accept 16 (which is according to OpenPGP "encryption only") if this
806     key is in a v3 packet.  GnuPG is the only program which had used
807     these v3 ElGamal keys - so this assumption is quite safe.
808
809
810 <Q> How does the whole trust thing work?
811
812     It works more or less like PGP.  The difference is that the trust is
813     computed at the time it is needed. This is one of the reasons for
814     the trustdb which holds a list of valid key signatures.  If you are
815     not running in batch mode you will be asked to assign a trust
816     parameter (ownertrust) to a key.
817
818
819
820     You can see the validity (calculated trust value) using this
821     command.
822     [H pre] gpg --list-keys --with-colons [H/pre] 
823
824     If the first field is "pub" or "uid", the second field shows you the
825     trust: 
826
827     [H pre] 
828      o = Unknown (this key is new to the system) 
829      e = The key has expired 
830      q = Undefined (no value assigned) 
831      n = Don't trust    this key at all
832      m = There is marginal trust in this key 
833      f = The key    is full trusted 
834      u = The key is ultimately trusted; this is only used
835          for keys for which the secret key is also available.  
836      r = The key    has been revoked 
837      d = The key has been disabled 
838     [H/pre] 
839
840     The value in the "pub" record is the best one of all "uid" records.
841   
842     You can get a list of the assigned trust values (how much you trust
843     the owner to correctly sign another person's key)
844   
845     [H pre] gpg --list-ownertrust [H/pre] The first field is the
846     fingerprint of the primary key, the second field is the assigned
847     value: 
848
849     [H pre] 
850      - = No Ownertrust value yet assigned.  
851      n = Never trust this keyholder to correctly verify others signatures.  
852      m = Have marginal trust in the keyholders capability to sign other
853          keys.  
854      f = Assume that the key holder really knows how to sign keys.  
855      u = No need to trust ourself because we have the secret key.  
856     [H/pre] 
857
858     Keep these values confidential because they express your opinions
859     about others.  PGP stores this information with the keyring thus it
860     is not a good idea to publish a PGP keyring instead of exporting the
861     keyring.  gnupg stores the trust in the trust-DB so it is okay to
862     give a gpg keyring away (but we have a --export command too).
863
864 <Q> What kind of output is this: "key C26EE891.298, uid 09FB: ...."?
865
866     This is the internal representation of a user id in the trustdb.
867     "C26EE891" is the keyid, "298" is the local id (a record number in
868     the trustdb) and "09FB" is the last two bytes of a ripe-md-160 hash
869     of the user id for this key.
870
871 <Q> How do I interpret some of the informational outputs?
872
873     While checking the validity of a key, GnuPG sometimes prints some
874     information which is prefixed with information about the checked
875     item.  [H pre] "key 12345678.3456" [H/pre] This is about the key
876     with key ID 12345678 and the internal number 3456, which is the
877     record number of the so called directory record in the trustdb.  
878     [H pre] "uid 12345678.3456/ACDE" [H/pre] This is about the user ID for
879     the same key.  To identify the user ID the last two bytes of a
880     ripe-md-160 over the user ID ring is printed.  [H pre] "sig
881     12345678.3456/ACDE/9A8B7C6D" [H/pre] This is about the signature
882     with key ID 9A8B7C6D for the above key and user ID, if it is a
883     signature which is direct on a key, the user ID part is empty
884     (..//..).
885
886 <Q> Are the header lines of a cleartext signature part of the signed
887 material?
888
889     No.  For example you can add or remove "Comment:" lines.  They have
890     a purpose like the mail header lines.  However a "Hash:" line is
891     needed for OpenPGP signatures to tell the parser which hash
892     algorithm to use.
893
894
895 <Q> What is the list of preferred algorithms?
896
897     The list of preferred algorithms is a list of cipher, hash and
898     compression algorithms stored in the self-signature of a key during
899     key generation. When you encrypt a document, GnuPG uses this list
900     (which is then part of a public key) to determine which algorithms
901     to use. Basically it tells other people what algorithms the
902     recipient is able to handle and provides an order of preference.
903
904 <Q> How do I change the list of preferred algorithms?
905
906     Use the edit menu and set the new list of preference using the
907     command "setpref"; the format of this command resembles the output
908     of the command "pref".  The preference are not changes immediately
909     but the set preference will be used when a new user ID is
910     created.  If you want to update the preferences for existing user
911     IDs, select those user IDs (or select none to update all) and
912     enter the command "updpref".  Note that the timestamp of the
913     self-signatures is increaded by one second when running this
914     command.
915
916
917 <S> ACKNOWLEDGEMENTS
918
919     Many thanks to Nils Ellmenreich for maintaining this FAQ file for
920     a long time and to all posters to gnupg-users and gnupg-devel. They
921     all provided most of the answers.
922
923     Also thanks to Casper Dik for providing me with a script to generate
924     this FAQ (he uses it for the excellent Solaris2 FAQ).
925
926 [H HR]
927
928 Copyright (C) 2000, 2002 Free Software Foundation, Inc. , 
929 59 Temple Place - Suite 330, Boston, MA 02111, USA 
930
931 Verbatim copying and distribution of this entire article is permitted in
932 any medium, provided this notice is preserved.