31c3b12bf48dc21bc3a4fc4dfe6f24df86e90c44
[gnupg.git] / NEWS
1 Noteworthy changes in version 1.4.8 (unreleased)
2 ------------------------------------------------
3     
4     * Changed the license to GPLv3.
5
6     * Improved detection of keyrings specified multiple times.
7
8     * Minor bug fixes.
9
10 Noteworthy changes in version 1.4.7 (2007-03-05)
11 ------------------------------------------------
12
13     * By default, do not allow processing multiple plaintexts in a
14       single stream.  Many programs that called GnuPG were assuming
15       that GnuPG did not permit this, and were thus not using the
16       plaintext boundary status tags that GnuPG provides.  This change
17       makes GnuPG reject such messages by default which makes those
18       programs safe again.  --allow-multiple-messages returns to the
19       old behavior. [CVE-2007-1263].
20
21     * [W32] The environment variable LANGUAGE may be used to override
22       the language given by HKCU\Software\GNU\GnuPG:Lang.  The
23       language files "*.mo" are expected in a directory named
24       "gnupg.nls" below the directory with the gpg.exe binary.
25
26     * New --verify-option show-primary-uid-only. 
27
28
29 Noteworthy changes in version 1.4.6 (2006-12-06)
30 ------------------------------------------------
31
32     * Fixed a serious and exploitable bug in processing encrypted
33       packages. [CVE-2006-6235].
34
35     * Fixed a buffer overflow in gpg. [bug#728, CVE-2006-6169]
36
37     * Fixed a bug while decrypting certain compressed and encrypted
38       messages. [bug#537]
39  
40     * Added --s2k-count to set the number of times passphrase mangling
41       is repeated.  The default is 65536 times.
42
43     * Added --passphrase-repeat to set the number of times GPG will
44       prompt for a new passphrase to be repeated.  This is useful to
45       help memorize a new passphrase.  The default is 1 repetition.
46
47     * Added a GPL license exception to the keyserver helper programs
48       gpgkeys_ldap, gpgkeys_curl, and gpgkeys_hkp, to clarify any
49       potential questions about the ability to distribute binaries
50       that link to the OpenSSL library.  GnuPG does not link directly
51       to OpenSSL, but libcurl (used for HKP, HTTP, and FTP) and
52       OpenLDAP (used for LDAP) may.  Note that this license exception
53       is considered a bug fix and is intended to forgive any
54       violations pertaining to this issue, including those that may
55       have occurred in the past.
56
57     * Man pages are now built from the same source as those of GnuPG-2.
58
59
60 Noteworthy changes in version 1.4.5 (2006-08-01)
61 ------------------------------------------------
62
63     * Reverted check for valid standard handles under Windows.
64
65     * More DSA2 tweaks.
66
67     * Fixed a problem uploading certain keys to the smart card.
68
69     * Fixed 2 more possible memory allocation attacks.
70
71     * Added Norwegian translation.
72
73
74 Noteworthy changes in version 1.4.4 (2006-06-25)
75 ------------------------------------------------
76
77     * User IDs are now capped at 2048 bytes.  This avoids a memory
78       allocation attack (see CVE-2006-3082).
79
80     * Added support for the SHA-224 hash.  Like the SHA-384 hash, it
81       is mainly useful when DSS (the US Digital Signature Standard)
82       compatibility is desired.
83
84     * Added support for the latest update to DSA keys and signatures.
85       This allows for larger keys than 1024 bits and hashes other than
86       SHA-1 and RIPEMD/160.  Note that not all OpenPGP implementations
87       can handle these new keys and signatures yet.  See
88       "--enable-dsa2" in the manual for more information.
89
90
91 Noteworthy changes in version 1.4.3 (2006-04-03)
92 ------------------------------------------------
93
94     * If available, cURL-based keyserver helpers are built that can
95       retrieve keys using HKP or any protocol that cURL supports
96       (HTTP, HTTPS, FTP, FTPS, etc).  If cURL is not available, HKP
97       and HTTP are still supported using a built-in cURL emulator.  To
98       force building the old pre-cURL keyserver helpers, use the
99       configure option --enable-old-keyserver-helpers.  Note that none
100       of this affects finger or LDAP support, which are unchanged.
101       Note also that a future version of GnuPG will remove the old
102       keyserver helpers altogether.
103
104     * Implemented Public Key Association (PKA) signature verification.
105       This uses special DNS records and notation data to associate a
106       mail address with an OpenPGP key to prove that mail coming from
107       that address is legitimate without the need for a full trust
108       path to the signing key.
109
110     * When exporting subkeys, those specified with a key ID or
111       fingerpint and the '!' suffix are now merged into one keyblock.
112
113     * Added "gpg-zip", a program to create encrypted archives that can
114       interoperate with PGP Zip.
115
116     * Added support for signing subkey cross-certification "back
117       signatures".  Requiring cross-certification to be present is
118       currently off by default, but will be changed to on by default
119       in the future, once more keys use it.  A new "cross-certify"
120       command in the --edit-key menu can be used to update signing
121       subkeys to have cross-certification.
122
123     * The key cleaning options for --import-options and
124       --export-options have been further polished.  "import-clean" and
125       "export-clean" replace the older
126       import-clean-sigs/import-clean-uids and
127       export-clean-sigs/export-clean-uids option pairs.
128
129     * New "minimize" command in the --edit-key menu removes everything
130       that can be removed from a key, rendering it as small as
131       possible.  There are corresponding "export-minimal" and
132       "import-minimal" commands for --export-options and
133       --import-options.
134
135     * New --fetch-keys command to retrieve keys by specifying a URI.
136       This allows direct key retrieval from a web page or other
137       location that can be specified in a URI.  Available protocols
138       are HTTP and finger, plus anything that cURL supplies, if built
139       with cURL support.
140
141     * Files containing several signed messages are not allowed any
142       longer as there is no clean way to report the status of such
143       files back to the caller.  To partly revert to the old behaviour
144       the new option --allow-multisig-verification may be used.
145
146     * The keyserver helpers can now handle keys in either ASCII armor
147       or binary format.
148
149     * New auto-key-locate option that takes an ordered list of methods
150       to locate a key if it is not available at encryption time (-r or
151       --recipient).  Possible methods include "cert" (use DNS CERT as
152       per RFC2538bis, "pka" (use DNS PKA), "ldap" (consult the LDAP
153       server for the domain in question), "keyserver" (use the
154       currently defined keyserver), as well as arbitrary keyserver
155       URIs that will be contacted for the key.
156
157     * Able to retrieve keys using DNS CERT records as per RFC-4398.
158
159
160 Noteworthy changes in version 1.4.2 (2005-07-26)
161 ------------------------------------------------
162
163     * New command "verify" in the card-edit menu to display
164       the Private-DO-3.  The Admin command has been enhanced to take
165       the optional arguments "on", "off" and "verify".  The latter may
166       be used to verify the Admin Pin without modifying data; this
167       allows displaying the Private-DO-4 with the "list" command.
168
169     * Rewrote large parts of the card code to optionally make use of a
170       running gpg-agent.  If --use-agent is being used and a gpg-agent
171       with enabled scdaemon is active, gpg will now divert all card
172       operations to that daemon.  This is required because both,
173       scdaemon and gpg require exclusive access to the card reader. By
174       delegating the work to scdaemon, both can peacefully coexist and
175       scdaemon is able to control the use of the reader.  Note that
176       this requires at least gnupg 1.9.17.
177
178     * Fixed a couple of problems with the card reader.
179
180     * Command completion is now available in the --edit-key and
181       --card-edit menus.  Filename completion is available at all
182       filename prompts.  Note that completion is only available if the
183       system provides a readline library.
184
185     * New experimental HKP keyserver helper that uses the cURL
186       library.  It is enabled via the configure option --with-libcurl
187       like the other (also experimental) cURL helpers.
188
189     * New key cleaning options that can be used to remove unusable
190       (expired, revoked) signatures from a key.  This is available via
191       the new "clean" command in --edit-key on a key by key basis, as
192       well as via the import-clean-sigs/import-clean-uids and
193       export-clean-sigs/export-clean-uids options for --import-options
194       and --export-options.  These are currently off by default, and
195       replace the import-unusable-sigs/export-unusable-sigs options
196       from version 1.4.1.
197
198     * New export option export-reset-subkey-passwd.
199
200     * New option --limit-card-insert-tries.
201
202
203 Noteworthy changes in version 1.4.1 (2005-03-15)
204 ------------------------------------------------
205
206     * New --rfc2440-text option which controls how text is handled in
207       signatures.  This is in response to some problems seen with
208       certain PGP/MIME mail clients and GnuPG version 1.4.0.  More
209       details about this are available at
210       <http://lists.gnupg.org/pipermail/gnupg-users/2005-January/024408.html>.
211
212     * New "import-unusable-sigs" and "export-unusable-sigs" tags for
213       --import-options and --export-options.  These are off by default,
214       which causes GnuPG to not import or export key signatures that
215       are not usable (e.g. expired signatures).
216
217     * New experimental HTTP, HTTPS, FTP, and FTPS keyserver helper
218       that uses the cURL library <http://curl.haxx.se> to retrieve
219       keys.  This is disabled by default, but may be enabled with the
220       configure option --with-libcurl.  Without this option, the
221       existing HTTP code is used for HTTP, and HTTPS, FTP, and FTPS
222       are not supported.
223
224     * When running a --card-status or --card-edit and a public key is
225       available, missing secret key stubs will be created on the fly.
226       Details of the key are listed too.
227
228     * The implicit packet dumping in double verbose mode is now sent
229       to stderr and not to stdout.
230
231     * Added countermeasures against the Mister/Zuccherato CFB attack
232       <http://eprint.iacr.org/2005/033>.
233
234     * [W32] The algorithm for the default home directory changed:
235       First we look at the environment variable GNUPGHOME, if this one
236       is not set, we check whether the registry entry
237       {HKCU,HKLM}\Software\GNU\GnuPG:HomeDir has been set. If this
238       fails we use a GnuPG directory below the standard application
239       data directory (APPDATA) of the current user. Only in the case
240       that this directory cannot be determined, the old default of
241       c:\gnupg will be used.  The option --homedir still overrides all
242       of them.
243
244     * [W32] The locale selection under Windows changed. You need to
245       enter the locale in the registry at HKCU\Software\GNU\GnuPG:Lang. 
246       For German you would use "de".  If it is not set, GnuPG falls
247       back to HKLM.  The languages files "*.mo" are expected in a
248       directory named "gnupg.nls" below the installation directory;
249       that directory must be stored in the registry at the same key as
250       above with the name "Install Directory".
251
252     * Add new --edit-key command "bkuptocard" to allow restoring a
253       card key from a backup.
254
255     * The "fetch" command of --card-edit now retrieves the key using
256       the default keyserver if no URL has been stored on the card.
257
258     * New configure option --enable-noexecstack.
259
260
261 Noteworthy changes in version 1.4.0 (2004-12-16)
262 ------------------------------------------------
263
264     * See the file doc/highlights-1.4.txt for an overview of all
265       changes in respect to the 1.2 series.
266
267
268 Noteworthy changes in version 1.3.93 (2004-12-14)
269 -------------------------------------------------
270
271     * Ask the user to repeat a changed PIN.
272
273     * Switched to automake 1.9.  Minor big fixes.
274
275     
276 Noteworthy changes in version 1.3.92 (2004-10-28)
277 -------------------------------------------------
278     
279     * Added Russian man page. Thanks to Pawel I. Shajdo.
280
281     * libiconv is now used to support other character sets other than
282       UTF-8, Latin-1,-2 and KOI8-2.  The W32 version will only work
283       correctly when iconv.dll is installed on the system.  A binary
284       version is available at all GNU mirror sites under libiconv.
285      
286     * gettext for Windows has been simplified.  The MO files are now
287       distributed UTF-8 encoded and gpg translates on the fly.
288
289
290 Noteworthy changes in version 1.3.91 (2004-10-15)
291 -------------------------------------------------
292
293     * A new configure option --enable-selinux-support disallows
294       processing of confidential files used by gpg (e.g. secring.gpg).
295       This helps writing ACLs for the SELinux kernel.
296
297     * Support for fetching keys via finger has been added.  This is
298       useful for setting a preferred keyserver URL like
299       "finger:wk@g10code.com".
300
301     * Timeout support has been added to the keyserver helpers.  This
302       allows users to set an upper limit on how long to wait for the
303       keyserver before giving up.
304
305     * New "direct" trust model where users can set key validity
306       directly if they do not want to participate in the web of trust.
307
308     * Minor bug fixes, code and string cleanups.
309
310
311 Noteworthy changes in version 1.3.90 (2004-10-01)
312 -------------------------------------------------
313
314     * Readline support at all prompts is now available if the system
315       provides a readline library.  The build time option
316       --without-readline may be used to disable this feature.
317
318     * Support for the OpenPGP smartcard is now enabled by default.
319       Use the option --disable-card-support to build without support
320       for smartcards. 
321
322     * New command "addcardkey" in the key edit menu to add subkeys to
323       a smartcard. New command "keytocard" to transfer a key to a smartcard.
324       The serial number of the card is show in secret key listings.
325
326     * -K may now be used as an alias for --list-secret-keys.      
327
328     * HTTP Basic authentication is now supported for all HKP and HTTP
329       keyserver functions, either through a proxy or via direct
330       access.
331
332
333 Noteworthy changes in version 1.3.6 (2004-05-22)
334 ------------------------------------------------
335
336     * New --keyid-format option that selects short (99242560), long
337       (DB698D7199242560), 0xshort (0x99242560), or 0xlong
338       (0xDB698D7199242560) keyid displays.  This lets users tune the
339       display to what they prefer.
340
341     * The --list-options and --verify-options option
342       "show-long-keyids" has been removed since --keyid-format
343       obviates the need for them.
344
345     * Support for the old quasi-1991 partial length encoding has been
346       removed.
347
348     * The --export-all and --export-options include-non-rfc options
349       have been removed as superfluous since nonstandard V3 Elgamal
350       sign+encrypt keys have been removed.
351
352     * Preferred keyserver support has been added.  Users may set a
353       preferred keyserver via the --edit-key command "keyserver".  If
354       the --keyserver-option honor-keyserver-url is set (and it is by
355       default), then the preferred keyserver is used when refreshing
356       that key.
357
358     * The --sig-keyserver-url option can be used to inform signature
359       recipients where the signing key can be downloaded.  When
360       verifying the signature, if the signing key is not present, and
361       the keyserver options honor-keyserver-url and auto-key-retrieve
362       are set, this URL will be used to retrieve the key.
363
364     * Support for fetching keys via HTTP has been added.  This is
365       mainly useful for setting a preferred keyserver URL like
366       "http://www.jabberwocky.com/key.asc".
367
368     * New --ask-cert-level/--no-ask-cert-level option to turn on and
369       off the prompt for signature level when signing a key.  Defaults
370       to off.
371
372     * New --gpgconf-list command for internal use by the gpgconf
373       utility from gnupg 1.9.x.
374
375
376 Noteworthy changes in version 1.3.5 (2004-02-26)
377 ------------------------------------------------
378
379     * New --min-cert-level option to disregard key signatures that are
380       under a specified level.  Defaults to 2 (i.e. discard 0x11
381       signatures).
382
383     * New --max-output option to limit the amount of plaintext output
384       generated by GnuPG.  This option can be used by programs which
385       call GnuPG to process messages that may result in plaintext
386       larger than the calling program is prepared to handle.  This is
387       sometimes called a "Decompression Bomb".
388
389     * New --list-config command for frontends and other programs that
390       call GnuPG.  See doc/DETAILS for the specifics of this.
391
392     * Some performance improvements with large keyrings.  See the
393       build time option --enable-key-cache=SIZE in the README file for
394       details.
395
396     * Some portability fixes for the OpenBSD/i386, HPPA, and AIX
397       platforms.
398
399     * New keyserver-option "http-proxy" to specify which proxy to use
400       in the config file without using environment variables.
401
402     * Added support for storing, retrieving, and searching for keys in
403       LDAP servers.  Note that this is different than the "LDAP
404       keyserver" which was already (and remains) supported.
405
406     * Added support for TLS and LDAPS session encryption for LDAP.
407
408     * --show-session-key/--override-session-key now works with
409       --symmetric messages.
410
411     * The configure options --enable-rsa and --disable-rsa can now be
412       used to enable or disable the RSA algorithm.  This can be useful
413       for embedded use where space is tight.  --enable-minimal
414       includes --disable-rsa.  RSA is enabled by default.
415
416     * The last support for Elgamal sign+encrypt keys has been removed.
417
418
419 Noteworthy changes in version 1.3.4 (2003-11-27)
420 ------------------------------------------------
421
422     * Added support for BZIP2 compression.  This should be considered
423       experimental, and is only available if the libbzip2 library
424       <http://sources.redhat.com/bzip2/> is installed.
425
426     * Added the ability to handle messages that can be decrypted with
427       either a passphrase or a secret key.  These messages may be
428       generated with --symmetric --encrypt or --symmetric --sign
429       --encrypt.
430
431     * The config file search has been enhanced to try for less
432       specific filename matches before giving up.  For example,
433       version 1.3.4 will try for gpg.conf-1.3.4, gpg.conf-1.3, and
434       gpg.conf-1 before falling back to the regular gpg.conf file.
435
436     * Fixed a format string bug in the HKP keyserver handler.
437
438     * Support for Elgamal sign+encrypt keys has been removed.  Old
439       signatures may still be verified, and existing encrypted
440       messages may still be decrypted, but no new signatures may be
441       issued by, and no new messages will be encrypted to, these keys.
442
443
444 Noteworthy changes in version 1.3.3 (2003-10-10)
445 ------------------------------------------------
446
447     * Basic support for the OpenPGP card.  New commands --card-status,
448       --card-edit, --change-pin and the configuration options
449       --reader-port, --ctapi-driver, --pcsc-driver, and --disable-ccid.
450
451     * Full (read/write) support for the SHA-256 hash has been added.
452
453     * Support for the TIGER/192 hash has been dropped.  This should
454       not be interpreted as a statement as to the strength of
455       TIGER/192 - rather, the upcoming revision to the OpenPGP
456       standard removes support for several unused (or mostly unused)
457       hashes.
458
459     * Revoked or expired user IDs are now skipped when selecting keys
460       for encryption.  Specifying a key by the key ID overrides this
461       check and allows the selection of any key.
462
463     * Note that --no-mangle-dos-filenames is now the default.  If you
464       are upgrading from a 1.2.x version of GnuPG, and are running a
465       very old version of Windows that has the 8.3 filename limit, you
466       may need to change this.
467
468     * Multiple "Comment:" lines in armored output are now allowed.
469
470     * New --list-options option.  This option takes a list of
471       arguments that allows the user to customize exactly what key
472       listings (including the --edit-key listing) look like, enabling
473       or disabling things such as photo display, policy URL, preferred
474       keyserver URL, or notation display, long or short keyIDs,
475       calculated validity for each user ID, etc.  See the manual for
476       the complete list of list-options.
477
478     * New --verify-options option.  This option takes a list of
479       arguments that allows the user to customize exactly what happens
480       during signature verification, enabling or disabling things such
481       as photo display, policy URL, preferred keyserver URL, or
482       notation display, long or short keyIDs, calculated validity for
483       each user ID, etc.  See the manual for the complete list of
484       verify-options.
485
486     * New --sig-keyserver-url to embed a "where to get my key"
487       subpacket into a signature.
488
489     * The options --show-photos, --show-policy-url, --show-notation,
490       and --show-keyring are all deprecated in favor of those
491       arguments to --list-options and --verify-options.  The new
492       method is more flexible since a user can specify (for example)
493       showing photos during sig verification, but not in key listings.
494
495     * The complete fingerprint of the key that made a given key
496       certification is now available in the --with-colons output.  For
497       technical reasons, this is only available when running with
498       --no-sig-cache set.  See doc/DETAILS for the specifics of this.
499
500     * IPv6 support for HKP keyserver access.  IPv6 for LDAP keyserver
501       access is also supported, but is dependent on the LDAP library
502       used.
503
504     * To simplify running both the stable (1.2.x) and development
505       (1.3.x) versions of GnuPG, the development version will try to
506       load the options file gpg.conf-VERSION (e.g. gpg.conf-1.3.3 for
507       this release) before falling back to the regular gpg.conf file.
508
509     * Two new %-expandos for use in notation and policy URLs.  "%g"
510       expands to the fingerprint of the key making the signature
511       (which might be a subkey), and "%p" expands to the fingerprint
512       of the primary key that owns the key making the signature.
513  
514     * New "tru" record in --with-colons --list-keys listings.  It
515       shows the status of the trust database that was used to
516       calculate the key validity in the listings.  See doc/DETAILS for
517       the specifics of this.
518  
519     * New REVKEYSIG status tag for --status-fd.  It indicates a valid
520       signature that was issued by a revoked key.  See doc/DETAILS for
521       the specifics of this.
522
523     * A number of portability changes to make building GnuPG on
524       less-common platforms easier.
525
526
527 Noteworthy changes in version 1.3.2 (2003-05-27)
528 ------------------------------------------------
529
530     * New "--gnupg" option (set by default) that disables --openpgp,
531       and the various --pgpX emulation options.  This replaces
532       --no-openpgp, and --no-pgpX, and also means that GnuPG has
533       finally grown a --gnupg option to make GnuPG act like GnuPG.
534
535     * A bug in key validation has been fixed.  This bug only affects
536       keys with more than one user ID (photo IDs do not count here),
537       and results in all user IDs on a given key being treated with
538       the validity of the most-valid user ID on that key.
539
540     * Notation names that do not contain a '@' are no longer allowed
541       unless --expert is set.  This is to help prevent pollution of
542       the (as yet unused) IETF notation namespace.
543
544     * Multiple trust models are now supported via the --trust-model
545       option.  The options are "pgp" (web-of-trust plus trust
546       signatures), "classic" (web-of-trust only), and "always"
547       (identical to the --always-trust option).
548
549     * The --personal-{cipher|digest|compression}-preferences are now
550       consulted to get default algorithms before resorting to the
551       last-ditch defaults of --s2k-cipher-algo, SHA1, and ZIP
552       respectively.  This allows a user to set algorithms to use in a
553       safe manner so they are used when legal to do so, without
554       forcing them on for all messages.
555
556     * New --primary-keyring option to designate the keyring that the
557       user wants new keys imported into.
558
559     * --s2k-digest-algo is now used for all password mangling.
560       Earlier versions used both --s2k-digest-algo and --digest-algo
561       for passphrase mangling.
562
563     * Handling of --hidden-recipient or --throw-keyid messages is now
564       easier - the user only needs to give their passphrase once, and
565       GnuPG will try it against all of the available secret keys.
566
567     * Care is taken to prevent compiler optimization from removing
568       memory wiping code.
569
570     * New option --no-mangle-dos-filenames so that filenames are not
571       truncated in the W32 version.
572
573     * A "convert-from-106" script has been added.  This is a simple
574       script that automates the conversion from a 1.0.6 or earlier
575       version of GnuPG to a 1.0.7 or later version.
576
577     * Disabled keys are now skipped when selecting keys for
578       encryption.  If you are using the --with-colons key listings to
579       detect disabled keys, please see doc/DETAILS for a minor format
580       change in this release.
581
582     * Minor trustdb changes to make the trust calculations match
583       common usage.
584
585     * New command "revuid" in the --edit-key menu to revoke a user ID.
586       This is a simpler interface to the old method (which still
587       works) of revoking the user ID self-signature.
588
589     * Status VALIDSIG does now also print the primary key's
590       fingerprint, as well as the signature version, pubkey algorithm,
591       hash algorithm, and signature class.
592
593     * Add read-only support for the SHA-256 hash, and optional
594       read-only support for the SHA-384 and SHA-512 hashes.
595
596     * New option --enable-progress-filter for use with frontends.
597
598     * DNS SRV records are used in HKP keyserver lookups to allow
599       administrators to load balance and select keyserver ports
600       automatically.  This is as specified in
601       draft-shaw-openpgp-hkp-00.txt.
602
603     * When using the "keyid!" syntax during a key export, only that
604       specified key is exported.  If the key in question is a subkey,
605       the primary key plus only that subkey is exported.
606
607     * configure --disable-xxx options to disable individual algorithms
608       at build time.  This can be used to build a smaller gpg binary
609       for embedded uses where space is tight.  See the README file for
610       the algorithms that can be used with this option, or use
611       --enable-minimal to build the smallest gpg possible (disables
612       all optional algorithms, disables keyserver access, and disables
613       photo IDs).
614
615     * The keyserver no-modify flag on a key can now be displayed and
616       modified.
617
618     * Note that the TIGER/192 digest algorithm is in the process of
619       being dropped from the OpenPGP standard.  While this release of
620       GnuPG still contains it, it is disabled by default.  To ensure
621       you will still be able to use your messages with future versions
622       of GnuPG and other OpenPGP programs, please do not use this
623       algorithm.
624
625
626 Noteworthy changes in version 1.3.1 (2002-11-12)
627 ------------------------------------------------
628
629     * Trust signature support.  This is based on the Maurer trust
630       model where a user can specify the trust level along with the
631       signature with multiple levels so users can delegate
632       certification ability to other users, possibly restricted by a
633       regular expression on the user ID.  Note that full trust
634       signature support requires a regular expression parsing library.
635       The regexp code from glibc 2.3.1 is included for those platforms
636       that don't have working regexp functions available.  The
637       configure option --disable-regex may be used to disable any
638       regular expression code, which will make GnuPG ignore any trust
639       signature with a regular expression included.
640
641     * Two new commands --hidden-recipient (-R) and --hidden-encrypt-to
642       encrypt to a user, but hide the identity of that user.  This is
643       the same functionality as --throw-keyid, but can be used on a
644       per-user basis.
645
646     * Full algorithm names (e.g. "3DES", "SHA1", "ZIP") can now be
647       used interchangeably with the short algorithm names (e.g. "S2",
648       "H2", "Z1") anywhere algorithm names are used in GnuPG.
649
650
651 Noteworthy changes in version 1.3.0 (2002-10-18)
652 ------------------------------------------------
653
654     * The last piece of internal keyserver support has been removed,
655       and now all keyserver access is done via the keyserver plugins.
656       There is also a newer keyserver protocol used between GnuPG and
657       the plugins, so plugins from earlier versions of GnuPG may not
658       work properly.
659
660     * The HKP keyserver plugin supports the new machine-readable key
661       listing format for those keyservers that provide it.
662
663     * When using a HKP keyserver with multiple DNS records (such as
664       wwwkeys.pgp.net which has the addresses of multiple servers
665       around the world), try all records until one succeeds.  Note
666       that it depends on the LDAP library used whether the LDAP
667       keyserver plugin does this as well.
668
669     * The library dependencies for OpenLDAP seem to change fairly
670       frequently, and GnuPG's configure script cannot guess all the
671       combinations.  Use ./configure LDAPLIBS="-L libdir -l libs" to
672       override the script and use the libraries selected.
673
674     * Secret keys generated with --export-secret-subkeys are now
675       indicated in key listings with a '#' after the "sec", and in
676       --with-colons listings by showing no capabilities (no lowercase
677       characters).
678
679     * --trusted-key has been un-obsoleted, as it is useful for adding
680       ultimately trusted keys from the config file.  It is identical
681       to using --edit and "trust" to change a key to ultimately
682       trusted.
683
684     * Translations other than de are no longer distributed with the
685       development branch.  This is due to the frequent text changes
686       during development, which cause the translations to rapidly go
687       out of date.
688
689
690 Noteworthy changes in version 1.1.92 (2002-09-11)
691 -------------------------------------------------
692
693     * [IMPORTANT] The default configuration file is now
694       ~/.gnupg/gpg.conf.  If an old ~/.gnupg/options is found it will
695       still be used.  This change is required to have a more
696       consistent naming scheme with forthcoming tools.
697
698     * The use of MDCs have increased.  A MDC will be used if the
699       recipients directly request it, if the recipients have AES,
700       AES192, AES256, or TWOFISH in their cipher preferences, or if
701       the chosen cipher has a blocksize not equal to 64 bits
702       (currently this is also AES, AES192, AES256, and TWOFISH).
703
704     * GnuPG will no longer automatically disable compression when
705       processing an already-compressed file unless a MDC is being
706       used.  This is to give the message a certain amount of
707       resistance to the chosen-ciphertext attack while communicating
708       with other programs (most commonly PGP earlier than version 7.x)
709       that do not support MDCs.
710
711     * The option --interactive now has the desired effect when
712       importing keys.
713
714     * The file permission and ownership checks on files have been
715       clarified.  Specifically, the homedir (usually ~/.gnupg) is
716       checked to protect everything within it.  If the user specifies
717       keyrings outside this homedir, they are presumed to be shared
718       keyrings and therefore *not* checked.  Configuration files
719       specified with the --options option and the IDEA cipher
720       extension specified with --load-extension are checked, along
721       with their enclosing directories.
722
723     * The configure option --with-static-rnd=auto allows to build gpg
724       with all available entropy gathering modules included.  At
725       runtime the best usable one will be selected from the list
726       linux, egd, unix.  This is also the default for systems lacking
727       a /dev/random device.
728
729     * The default character set is now taken from the current locale;
730       it can still be overridden by the --charset option.  Using the
731       option -vvv shows the used character set.
732
733     * [REMOVED] --emulate-checksum-bug and --emulate-3des-s2k-bug have
734       been removed.
735
736
737 Noteworthy changes in version 1.1.91 (2002-08-04)
738 -------------------------------------------------
739
740     * All modules are now linked statically; the --load-extension
741       option is in general not useful anymore.  The only exception is
742       to specify the deprecated idea cipher.
743
744     * The IDEA plugin has changed.  Previous versions of the IDEA
745       plugin will no longer work with GnuPG.  However, the current
746       version of the plugin will work with earlier GnuPG versions.
747
748     * When using --batch with one of the --delete-key commands, the
749       key must be specified by fingerprint.  See the man page for
750       details.
751
752     * There are now various ways to restrict the ability GnuPG has to
753       exec external programs (for the keyserver helpers or photo ID
754       viewers).  Read the README file for the complete list.
755
756     * New export option to leave off attribute packets (photo IDs)
757       during export.  This is useful when exporting to HKP keyservers
758       which do not understand attribute packets.
759
760     * New import option to repair during import the HKP keyserver
761       mangling multiple subkeys bug.  Note that this cannot completely
762       repair the damaged key as some crucial data is removed by the
763       keyserver, but it does at least give you back one subkey.  This
764       is on by default for keyserver --recv-keys, and off by default
765       for regular --import.
766
767     * The keyserver helper programs now live in
768       /usr/[local/]libexec/gnupg by default.  If you are upgrading
769       from 1.0.7, you might want to delete your old copies in
770       /usr/[local/]bin.  If you use an OS that does not use libexec
771       for whatever reason, use configure --libexecdir=/usr/local/lib
772       to place the keyserver helpers there.
773
774     * The LDAP keyserver handler now works properly with very old
775       (version 1) LDAP keyservers.
776
777
778 Noteworthy changes in version 1.1.90 (2002-07-01)
779 -------------------------------------------------
780
781     * New commands: --personal-cipher-preferences,
782       --personal-digest-preferences, and
783       --personal-compress-preferences allow the user to specify which
784       algorithms are to be preferred.  Note that this does not permit
785       using an algorithm that is not present in the recipient's
786       preferences (which would violate the OpenPGP standard).  This
787       just allows sorting the preferences differently.
788
789     * New "group" command to refer to several keys with one name.
790
791     * A warning is issued if the user forces the use of an algorithm
792       that is not listed in the recipient's preferences.
793
794     * Full revocation key (aka "designated revoker") support.
795
796     * The preferred hash algorithms on a key are consulted when
797       encrypting a signed message to that key.  Note that this is
798       disabled by default by a SHA1 preference in
799       --personal-digest-preferences.
800
801     * --cert-digest-algo allows the user to specify the hash algorithm
802       to use when signing a key rather than the default SHA1 (or MD5
803       for PGP2 keys).  Do not use this feature unless you fully
804       understand the implications of this.
805
806     * --pgp7 mode automatically sets all necessary options to ensure
807       that the resulting message will be usable by a user of PGP 7.x.
808
809     * New --attribute-fd command for frontends and scripts to get the
810       contents of attribute packets (i.e. photos)
811
812     * In expert mode, the user can now re-sign a v3 key with a v4
813       self-signature.  This does not change the v3 key into a v4 key,
814       but it does allow the user to use preferences, primary ID flags,
815       etc.
816
817     * Significantly improved photo ID support on non-unixlike
818       platforms.
819
820     * The version number has jumped ahead to 1.1.90 to skip over the
821       old version 1.1 and to get ready for the upcoming 1.2.
822
823     * ElGamal sign and encrypt is not anymore allowed in the key
824       generation dialog unless in expert mode.  RSA sign and encrypt
825       has been added with the same restrictions.
826
827     * [W32] Keyserver access does work with Windows NT.
828
829
830 Noteworthy changes in version 1.0.7 (2002-04-29)
831 ------------------------------------------------
832
833     * Secret keys are now stored and exported in a new format which
834       uses SHA-1 for integrity checks.  This format renders the
835       Rosa/Klima attack useless.  Other OpenPGP implementations might
836       not yet support this, so the option --simple-sk-checksum creates
837       the old vulnerable format.
838
839     * The default cipher algorithm for encryption is now CAST5,
840       default hash algorithm is SHA-1.  This will give us better
841       interoperability with other OpenPGP implementations.
842
843     * Symmetric encrypted messages now use a fixed file size if
844       possible.  This is a tradeoff: it breaks PGP 5, but fixes PGP 2,
845       6, and 7.  Note this was only an issue with RFC-1991 style
846       symmetric messages.
847
848     * Photographic user ID support.  This uses an external program to
849       view the images.
850
851     * Enhanced keyserver support via keyserver "plugins".  GnuPG comes
852       with plugins for the NAI LDAP keyserver as well as the HKP email
853       keyserver.  It retains internal support for the HKP HTTP
854       keyserver.
855
856     * Nonrevocable signatures are now supported.  If a user signs a
857       key nonrevocably, this signature cannot be taken back so be
858       careful!
859
860     * Multiple signature classes are usable when signing a key to
861       specify how carefully the key information (fingerprint, photo
862       ID, etc) was checked.
863
864     * --pgp2 mode automatically sets all necessary options to ensure
865       that the resulting message will be usable by a user of PGP 2.x.
866
867     * --pgp6 mode automatically sets all necessary options to ensure
868       that the resulting message will be usable by a user of PGP 6.x.
869
870     * Signatures may now be given an expiration date.  When signing a
871       key with an expiration date, the user is prompted whether they
872       want their signature to expire at the same time.
873
874     * Revocation keys (designated revokers) are now supported if
875       present.  There is currently no way to designate new keys as
876       designated revokers.
877
878     * Permissions on the .gnupg directory and its files are checked
879       for safety.
880
881     * --expert mode enables certain silly things such as signing a
882       revoked user id, expired key, or revoked key.
883
884     * Some fixes to build cleanly under Cygwin32.
885
886     * New tool gpgsplit to split OpenPGP data formats into packets.
887
888     * New option --preserve-permissions.
889
890     * Subkeys created in the future are not used for encryption or
891       signing unless the new option --ignore-valid-from is used.
892
893     * Revoked user-IDs are not listed unless signatures are listed too
894       or we are in verbose mode.
895
896     * There is no default comment string with ascii armors anymore
897       except for revocation certificates and --enarmor mode.
898
899     * The command "primary" in the edit menu can be used to change the
900       primary UID, "setpref" and "updpref" can be used to change the
901       preferences.
902
903     * Fixed the preference handling; since 1.0.5 they were erroneously
904       matched against against the latest user ID and not the given one.
905
906     * RSA key generation.
907
908     * Merged Stefan's patches for RISC OS in.  See comments in
909       scripts/build-riscos. 
910
911     * It is now possible to sign and conventional encrypt a message (-cs).
912
913     * The MDC feature flag is supported and can be set by using
914       the "updpref" edit command.
915
916     * The status messages GOODSIG and BADSIG are now returning the primary
917       UID, encoded using %XX escaping (but with spaces left as spaces,
918       so that it should not break too much)
919
920     * Support for GDBM based keyrings has been removed.
921
922     * The entire keyring management has been revamped.
923
924     * The way signature stati are store has changed so that v3
925       signatures can be supported. To increase the speed of many
926       operations for existing keyrings you can use the new
927       --rebuild-keydb-caches command.
928
929     * The entire key validation process (trustdb) has been revamped.
930       See the man page entries for --update-trustdb, --check-trustdb
931       and --no-auto-check-trustdb.
932
933     * --trusted-keys is again obsolete, --edit can be used to set the
934       ownertrust of any key to ultimately trusted.
935
936     * A subkey is never used to sign keys.
937
938     * Read only keyrings are now handled as expected.
939
940
941 Noteworthy changes in version 1.0.6 (2001-05-29)
942 ------------------------------------------------
943
944     * Security fix for a format string bug in the tty code.
945
946     * Fixed format string bugs in all PO files. 
947
948     * Removed Russian translation due to too many bugs.  The FTP
949       server has an unofficial but better translation in the contrib
950       directory.
951
952     * Fixed expire time calculation and keyserver access.
953
954     * The usual set of minor bug fixes and enhancements.
955
956     * non-writable keyrings are now correctly handled.
957
958
959 Noteworthy changes in version 1.0.5 (2001-04-29)
960 ------------------------------------------------
961
962     * WARNING: The semantics of --verify have changed to address a
963       problem with detached signature detection. --verify now ignores
964       signed material given on stdin unless this is requested by using
965       a "-" as the name for the file with the signed material.  Please
966       check all your detached signature handling applications and make
967       sure that they don't pipe the signed material to stdin without
968       using a filename together with "-" on the the command line.
969
970     * WARNING: Corrected hash calculation for input data larger than
971       512M - it was just wrong, so you might notice bad signature in
972       some very big files.  It may be wise to keep an old copy of
973       GnuPG around.
974
975     * Secret keys are no longer imported unless you use the new option
976       --allow-secret-key-import.  This is a kludge and future versions will
977       handle it in another way.
978
979     * New command "showpref" in the --edit-key menu to show an easier
980       to understand preference listing.
981
982     * There is now the notation of a primary user ID.  For example, it
983       is printed with a signature verification as the first user ID;
984       revoked user IDs are not printed there anymore.  In general the
985       primary user ID is the one with the latest self-signature.
986
987     * New --charset=utf-8 to bypass all internal conversions.
988
989     * Large File Support (LFS) is now working.
990
991     * New options: --ignore-crc-error, --no-sig-create-check, 
992       --no-sig-cache, --fixed-list-mode, --no-expensive-trust-checks,
993       --enable-special-filenames and --use-agent.  See man page.
994
995     * New command --pipemode, which can be used to run gpg as a
996       co-process.  Currently only the verification of detached
997       signatures are working.  See doc/DETAILS.
998
999     * Keyserver support for the W32 version.
1000
1001     * Rewritten key selection code so that GnuPG can better cope with
1002       multiple subkeys, expire dates and so.  The drawback is that it
1003       is slower.
1004
1005     * A whole lot of bug fixes.
1006
1007     * The verification status of self-signatures are now cached. To
1008       increase the speed of key list operations for existing keys you
1009       can do the following in your GnuPG homedir (~/.gnupg):
1010          cp pubring.gpg pubring.gpg.save && gpg --export-all >x && \
1011          rm pubring.gpg && gpg --import x
1012       Only v4 keys (i.e not the old RSA keys) benefit from this caching.
1013
1014     * New translations: Estonian, Turkish.
1015
1016
1017 Noteworthy changes in version 1.0.4 (2000-10-17)
1018 ------------------------------------------------
1019
1020     * Fixed a serious bug which could lead to false signature verification
1021       results when more than one signature is fed to gpg.  This is the
1022       primary reason for releasing this version.
1023
1024     * New utility gpgv which is a stripped down version of gpg to
1025       be used to verify signatures against a list of trusted keys.
1026
1027     * Rijndael (AES) is now supported and listed with top preference.
1028
1029     * --with-colons now works with --print-md[s].
1030
1031 Noteworthy changes in version 1.0.3 (2000-09-18)
1032 ------------------------------------------------
1033
1034     * Fixed problems with piping to/from other MS-Windows software
1035
1036     * Expiration time of the primary key can be changed again.
1037
1038     * Revoked user IDs are now marked in the output of --list-key
1039
1040     * New options --show-session-key and --override-session-key
1041       to help the British folks to somewhat minimize the danger
1042       of this Orwellian RIP bill.
1043
1044     * New options --merge-only and --try-all-secrets.
1045
1046     * New configuration option --with-egd-socket.
1047
1048     * The --trusted-key option is back after it left us with 0.9.5
1049      
1050     * RSA is supported. Key generation does not yet work but will come
1051       soon. 
1052     
1053     * CAST5 and SHA-1 are now the default algorithms to protect the key
1054       and for symmetric-only encryption. This should solve a couple
1055       of compatibility problems because the old algorithms are optional
1056       according to RFC2440
1057
1058     * Twofish and MDC enhanced encryption is now used.  PGP 7 supports 
1059       this.  Older versions of GnuPG don't support it, so they should be
1060       upgraded to at least 1.0.2
1061       
1062
1063 Noteworthy changes in version 1.0.2 (2000-07-12)
1064 ----------------------------------------------
1065
1066     * Fixed expiration handling of encryption keys.
1067
1068     * Add an experimental feature to do unattended key generation.
1069
1070     * The user is now asked for the reason of revocation as required
1071       by the new OpenPGP draft.
1072
1073     * There is a ~/.gnupg/random_seed file now which saves the
1074       state of the internal RNG and increases system performance
1075       somewhat.  This way the full entropy source is only used in
1076       cases were it is really required.
1077       Use the option --no-random-seed-file to disable this feature.
1078
1079     * New options --ignore-time-conflict and --lock-never.
1080
1081     * Some fixes for the W32 version.
1082
1083     * The entropy.dll is not anymore used by the W32 version but replaced
1084       by code derived from Cryptlib.
1085
1086     * Encryption is now much faster: About 2 times for 1k bit keys
1087       and 8 times for 4k keys.
1088
1089     * New encryption keys are generated in a way which allows a much
1090       faster decryption.
1091
1092     * New command --export-secret-subkeys which outputs the
1093       the _primary_ key with it's secret parts deleted.  This is
1094       useful for automated decryption/signature creation as it
1095       allows to keep the real secret primary key offline and
1096       thereby protecting the key certificates and allowing to
1097       create revocations for the subkeys.  See the FAQ for a
1098       procedure to install such secret keys.
1099
1100     * Keygeneration now writes to the first writeable keyring or
1101       as default to the one in the homedirectory.  Prior versions
1102       ignored all --keyring options.
1103
1104     * New option --command-fd to take user input from a file descriptor;
1105       to be used with --status-fd by software which uses GnuPG as a backend.
1106
1107     * There is a new status PROGRESS which is used to show progress during
1108       key generation.
1109
1110     * Support for the new MDC encryption packets.  To create them either
1111       --force-mdc must be use or cipher algorithm with a blocksize other
1112       than 64 bits is to be used.  --openpgp currently disables MDC packets
1113       entirely.  This option should not yet be used.
1114
1115     * New option --no-auto-key-retrieve to disable retrieving of
1116       a missing public key from a keyserver, when a keyserver has been set.
1117
1118     * Danish translation
1119
1120 Noteworthy changes in version 1.0.1 (1999-12-16)
1121 -----------------------------------
1122
1123     * New command --verify-files.  New option --fast-list-mode.
1124
1125     * $http_proxy is now used when --honor-http-proxy is set.
1126
1127     * Fixed some minor bugs and the problem with conventional encrypted
1128       packets which did use the gpg v3 partial length headers.
1129
1130     * Add Indonesian and Portugese translations.
1131
1132     * Fixed a bug with symmetric-only encryption using the non-default 3DES.
1133       The option --emulate-3des-s2k-bug may be used to decrypt documents
1134       which have been encrypted this way; this should be done immediately
1135       as this workaround will be remove in 1.1
1136
1137     * Can now handle (but not display) PGP's photo IDs. I don't know the
1138       format of that packet but after stripping a few bytes from the start
1139       it looks like a JPEG (at least my test data).  Handling of this
1140       package is required because otherwise it would mix up the
1141       self signatures and you can't import those keys.
1142
1143     * Passing non-ascii user IDs on the commandline should now work in all
1144       cases.
1145
1146     * New keys are now generated with an additional preference to Blowfish.
1147
1148     * Removed the GNU Privacy Handbook from the distribution as it will go
1149       into a separate one.
1150
1151
1152 Noteworthy changes in version 1.0.0 (1999-09-07)
1153 -----------------------------------
1154
1155     * Add a very preliminary version of the GNU Privacy Handbook to
1156       the distribution (lynx doc/gph/index.html).
1157
1158     * Changed the version number to GnuPG 2001 ;-)
1159
1160
1161 Noteworthy changes in version 0.9.11
1162 ------------------------------------
1163
1164     * UTF-8 strings are now correctly printed (if --charset is set correctly).
1165       Output of --with-colons remains C-style escaped UTF-8.
1166
1167     * Workaround for a problem with PGP 5 detached signature in textmode.
1168
1169     * Fixed a problem when importing new subkeys (duplicated signatures).
1170
1171 Noteworthy changes in version 0.9.10
1172 ------------------------------------
1173
1174     * Some strange new options to help pgpgpg
1175
1176     * Cleaned up the dox a bit.
1177
1178
1179 Noteworthy changes in version 0.9.9
1180 -----------------------------------
1181
1182     * New options --[no-]utf8-strings.
1183
1184     * New edit-menu commands "enable" and "disable" for entire keys.
1185
1186     * You will be asked for a filename if gpg cannot deduce one.
1187
1188     * Changes to support libtool which is needed for the development
1189       of libgcrypt.
1190
1191     * New script tools/lspgpot to help transferring assigned
1192       trustvalues from PGP to GnuPG.
1193
1194     * New commands --lsign-key and made --sign-key a shortcut for --edit
1195       and sign.
1196
1197     * New options (#122--126 ;-) --[no-]default-recipient[-self],
1198       --disable-{cipher,pubkey}-algo. See the man page.
1199
1200     * Enhanced info output in case of multiple recipients and fixed exit code.
1201
1202     * New option --allow-non-selfsigned-uid to work around a problem with
1203       the German IN way of separating signing and encryption keys.
1204
1205
1206 Noteworthy changes in version 0.9.8
1207 -----------------------------------
1208
1209     * New subcommand "delsig" in the edit menu.
1210
1211     * The name of the output file is not anymore the one which is
1212       embedded in the processed message, but the used filename with
1213       the extension stripped.  To revert to the old behaviour you can
1214       use the option --use-embedded-filename.
1215
1216     * Another hack to cope with pgp2 generated detached signatures.
1217
1218     * latin-2 character set works (--charset=iso-8859-2).
1219
1220     * New option --with-key-data to list the public key parameters.
1221       New option -N to insert notations and a --set-policy-url.
1222       A couple of other options to allow reseting of options.
1223
1224     * Better support for HPUX.
1225
1226
1227 Noteworthy changes in version 0.9.7
1228 -----------------------------------
1229
1230     * Add some work arounds for a bugs in pgp 2 which led to bad signatures
1231       when used with canonical texts in some cases.
1232
1233     * Enhanced some status outputs.
1234
1235 Noteworthy changes in version 0.9.6
1236 -----------------------------------
1237
1238     * Twofish is now statically linked by default. The experimental 128 bit
1239       version is now disabled.  Full support will be available as soon as
1240       the OpenPGP WG has decided on an interpretation of rfc2440.
1241
1242     * Dropped support for the ancient Blowfish160 which is not OpenPGP.
1243
1244     * Merged gpgm and gpg into one binary.
1245
1246     * Add "revsig" and "revkey" commands to the edit menu.  It is now
1247       possible to revoke signature and subkeys.
1248
1249
1250 Noteworthy changes in version 0.9.5
1251 -----------------------------------
1252
1253     * New command "lsign" in the keyedit menu to create non-exportable
1254       signatures.  Removed --trusted-keys option.
1255
1256     * A bunch of changes to the key validation code.
1257
1258     * --list-trust-path now has an optional --with-colons format.
1259
1260     * New command --recv-keys to import keys from an keyserver.
1261
1262
1263 Noteworthy changes in version 0.9.4
1264 -----------------------------------
1265
1266     * New configure option --enable-static-rnd=[egd|linux|unix|none]
1267       to select a random gathering module for static linking.
1268
1269     * The original text is now verbatim copied to a cleartext signed message.
1270
1271     * Bugfixes but there are still a couple of bugs.
1272
1273
1274 Noteworthy changes in version 0.9.3
1275 -----------------------------------
1276
1277     * Changed the internal design of getkey which now allows a
1278       efficient lookup of multiple keys and add a word match mode.
1279
1280     * New options --[no-]encrypt-to.
1281
1282     * Some changes to the configure stuff.  Switched to automake 1.4.
1283       Removed intl/ from CVS, autogen.sh now uses gettextize.
1284
1285     * Preferences now include Twofish. Removed preference to Blowfish with
1286       a special hack to suppress the "not listed in preferences" warning;
1287       this is to allow us to switch completely to Twofish in the near future.
1288
1289     * Changed the locking stuff.
1290
1291     * Print all user ids of a good signature.
1292
1293
1294 Noteworthy changes in version 0.9.2
1295 -----------------------------------
1296
1297     * add some additional time warp checks.
1298
1299     * Option --keyserver and command --send-keys to utilize HKP servers.
1300
1301     * Upgraded to zlib 1.1.3 and fixed an inflate bug
1302
1303     * More cleanup on the cleartext signatures.
1304
1305
1306 Noteworthy changes in version 0.9.1
1307 -----------------------------------
1308
1309     * Polish language support.
1310
1311     * When querying the passphrase, the key ID of the primary key is
1312       displayed along with the one of the used secondary key.
1313
1314     * Fixed a bug occurring when decrypting pgp 5 encrypted messages,
1315       fixed an infinite loop bug in the 3DES code and in the code
1316       which looks for trusted signatures.
1317
1318     * Fixed a bug in the mpi library which caused signatures not to
1319       compare okay.
1320
1321     * Rewrote the handling of cleartext signatures; the code is now
1322       better maintainable (I hope so).
1323
1324     * New status output VALIDSIG only for valid signatures together
1325       with the fingerprint of the signer's key.
1326
1327
1328 Noteworthy changes in version 0.9.0
1329 -----------------------------------
1330
1331     * --export does now only exports rfc2440 compatible keys; the
1332       old behaviour is available with --export-all.
1333       Generation of v3 ElGamal (sign and encrypt) keys is not longer
1334       supported.
1335
1336     * Fixed the uncompress bug.
1337
1338     * Rewrote the rndunix module. There are two environment variables
1339       used for debugging now: GNUPG_RNDUNIX_DBG give the file to write
1340       debugging information (use "-" for stdout) and if GNUPG_RNDUNIX_DBGALL
1341       is set, all programs which are only tried are also printed.
1342
1343     * New option --escape-from-lines to "dash-escape" "From " lines to
1344       prevent mailers to change them to ">From ".  This is not enabled by
1345       default because it is not in compliance with rfc2440 - however, you
1346       should turn it on.
1347
1348
1349 Noteworthy changes in version 0.4.5
1350 -----------------------------------
1351
1352     * The keyrings and the trustdb is now locked, so that
1353       other GnuPG processes won't damage these files.  You
1354       may want to put the option --lock-once into your options file.
1355
1356     * The latest self-signatures are now used; this enables --import
1357       to see updated preferences etc.
1358
1359     * Import of subkeys should now work.
1360
1361     * Random gathering modules may now be loaded as extensions. Add
1362       such a module for most Unices but it is very experimental!
1363
1364     * Brazilian language support.
1365
1366
1367 Noteworthy changes in version 0.4.4
1368 -----------------------------------
1369
1370     * Fixed the way the key expiration time is stored. If you have
1371       an expiration time on your key you should fix it with --edit-key
1372       and the command "expire".  I apologize for this inconvenience.
1373
1374     * Add option --charset to support "koi8-r" encoding of user ids.
1375       (Not yet tested).
1376
1377     * Preferences should now work again. You should run
1378       "gpgm --check-trustdb \*" to rebuild all preferences.
1379
1380     * Checking of certificates should now work but this needs a lot
1381       of testing.  Key validation values are now cached in the
1382       trustdb; they should be recalculated as needed, but you may
1383       use --check-trustdb or --update-trustdb to do this.
1384
1385     * Spanish translation by Urko Lusa.
1386
1387     * Patch files are from now on signed.  See the man page
1388       for the new option --not-dash-escaped.
1389
1390     * New syntax: --edit-key <userID> [<commands>]
1391       If you run it without --batch the commands are executed and then
1392       you are put into normal mode unless you use "quit" or "save" as
1393       one of the commands.  When in batch mode, the program quits after
1394       the last command, so you have to use "save" if you did some changes.
1395       It does not yet work completely, but may be used to list so the
1396       keys etc.
1397
1398
1399 Noteworthy changes in version 0.4.3
1400 -----------------------------------
1401
1402     * Fixed the gettext configure bug.
1403
1404     * Kludge for RSA keys: keyid and length of a RSA key are
1405       correctly reported, but you get an error if you try to use
1406       this key (If you do not have the non-US version).
1407
1408     * Experimental support for keyrings stored in a GDBM database.
1409       This is *much* faster than a standard keyring.  You will notice
1410       that the import gets slower with time; the reason is that all
1411       new keys are used to verify signatures of previous inserted
1412       keys.  Use "--keyring gnupg-gdbm:<name-of-gdbm-file>".  This is
1413       not (yet) supported for secret keys.
1414
1415     * A Russian language file in the distribution (alternatives are in
1416       the contrib directory of the FTP servers)
1417
1418     * commandline option processing now works as expected for GNU programs
1419       with the exception that you can't mix options and normal arguments.
1420
1421     * Now --list-key lists all matching keys.  This is needed in some
1422       other places too.
1423
1424
1425 Noteworthy changes in version 0.4.2
1426 -----------------------------------
1427
1428     * This is only a snapshot: There are still a few bugs.
1429
1430     * Fixed this huge memory leak.
1431
1432     * Redesigned the trust database:  You should run "gpgm --check-trustdb".
1433       New command --update-trustdb, which adds new key from the public
1434       keyring into your trustdb
1435
1436     * Fixed a bug in the armor code, leading to invalid packet errors.
1437       (a workaround for this was to use --no-armor).  The shorten line
1438       length (64 instead of 72) fixes a problem with pgp5 and keyservers.
1439
1440     * comment packets are not anymore generated. "--export" filters
1441       them out.  One Exception:  The comment packets in a secret keyring
1442       are still used because they carry the factorization of the public
1443       prime product.
1444
1445     * --import now only looks for KEYBLOCK headers, so you can now simply
1446       remove the "- " in front of such a header if someone accidently signed
1447       such a message or the keyblock is part of a cleartext signed message.
1448
1449     * --with-colons now lists the key expiration time and not anymore
1450       the valid period.
1451
1452     * Some keyblocks created with old releases have a wrong sequence
1453       of packets, so that the keyservers don't accept these keys.
1454       Simply using "--edit-key" fixes the problem.
1455
1456     * New option --force-v3-sigs to generate signed messages which are
1457       compatible to PGP 5.
1458
1459     * Add some code to support DLD (for non ELF systems) - but this is
1460       not tested because my BSD box is currently broken.
1461
1462     * New command "expire" in the edit-key menu.
1463
1464
1465
1466 Noteworthy changes in version 0.4.1
1467 -----------------------------------
1468     * A secondary key is used when the primary key is specified but cannot
1469       be used for the operation (if it is a sign-only key).
1470
1471     * GNUPG can now handle concatenated armored messages:  There is still a
1472       bug if different kinds of messages are mixed.
1473
1474     * Iterated+Salted passphrases now work.  If want to be sure that PGP5
1475       is able to handle them you may want to use the options
1476         "--s2k-mode 3 --s2k-cipher-algo cast5 --s2k-digest-algo sha1"
1477       when changing a passphrase.
1478
1479     * doc/OpenPGP talks about OpenPGP compliance, doc/HACKING gives
1480       a few hints about the internal structure.
1481
1482     * Checked gnupg against the August 1998 draft (07) and I believe
1483       it is in compliance with this document (except for one point).
1484
1485     * Fixed some bugs in the import merging code and rewrote some
1486       code for the trustdb.
1487
1488
1489 Noteworthy changes in version 0.4.0
1490 -----------------------------------
1491     * Triple DES is now supported.  Michael Roth did this piece of
1492       needed work.  We have now all the coded needed to be OpenPGP
1493       compliant.
1494
1495     * Added a simple rpm spec file (see INSTALL).
1496
1497     * detached and armored signatures are now using "PGP SIGNATURE",
1498       except when --rfc1991 is used.
1499
1500     * All times which are not in the yyyy-mm-dd format are now printed
1501       in local time.
1502
1503
1504 Noteworthy changes in version 0.3.5
1505 -----------------------------------
1506     * New option --throw-keyid to create anonymous enciphered messages.
1507       If gpg detects such a message it tires all available secret keys
1508       in turn so decode it.  This is a gnupg extension and not in OpenPGP
1509       but it has been discussed there and afaik some products use this
1510       scheme too (Suggested by Nimrod Zimmerman).
1511
1512     * Fixed a bug with 5 byte length headers.
1513
1514     * --delete-[secret-]key is now also available in gpgm.
1515
1516     * cleartext signatures are not anymore converted to LF only.
1517
1518     * Fixed a trustdb problem.  Run "gpgm --check-trustdb" to fix old
1519       trust dbs.
1520
1521     * Building in another directory should now work.
1522
1523     * Weak key detection mechanism (Niklas Hernaeus).
1524
1525
1526 Noteworthy changes in version 0.3.4
1527 -----------------------------------
1528     * New options --comment and --set-filename; see g10/OPTIONS
1529
1530     * yes/no, y/n localized.
1531
1532     * Fixed some bugs.
1533
1534 Noteworthy changes in version 0.3.3
1535 -----------------------------------
1536     * IMPORTANT: I found yet another bug in the way the secret keys
1537       are encrypted - I did it the way pgp 2.x did it, but OpenPGP
1538       and pgp 5.x specify another (in some aspects simpler) method.
1539       To convert your secret keys you have to do this:
1540         1. Build the new release but don't install it and keep
1541            a copy of the old program.
1542         2. Disable the network, make sure that you are the only
1543            user, be sure that there are no Trojan horses etc ....
1544         3. Use your old gpg (version 0.3.[12]) and set the
1545            passphrases of ALL your secret keys to empty!
1546            (gpg --change-passphrase your-user-id).
1547         4. Save your ownertrusts (see the next point)
1548         5. rm ~/.gnupg/trustdb.gpg
1549         6. install the new version of gpg (0.3.3)
1550         7. For every secret key call "gpg --edit-key your-user-id",
1551            enter "passwd" at the prompt, follow the instructions and
1552            change your password back, enter "save" to store it.
1553         8. Restore the ownertrust (see next point).
1554
1555     * The format of the trust database has changed; you must delete
1556       the old one, so gnupg can create a new one.
1557       IMPORTANT: Use version 0.3.[12] to save your assigned ownertrusts
1558       ("gpgm --list-ownertrust >saved-trust"); then build this new version
1559       and restore the ownertrust with this new version
1560       ("gpgm --import-ownertrust saved-trust").  Please note that
1561       --list-ownertrust has been renamed to --export-ownertrust in this
1562       release and it does now only export defined ownertrusts.
1563
1564     * The command --edit-key now provides a commandline driven menu
1565       which can be used for various tasks.  --sign-key is only an
1566       an alias to --edit-key and maybe removed in future: use the
1567       command "sign" of this new menu - you can select which user ids
1568       you want to sign.
1569
1570     * Alternate user ids can now be created an signed.
1571
1572     * Owner trust values can now be changed with --edit-key (trust)
1573
1574     * GNUPG can now run as a coprocess; this enables sophisticated
1575       frontends.  tools/shmtest.c is a simple sample implementation.
1576       This needs some more work: all tty_xxx() are to be replaced
1577       by cpr_xxx() and some changes in the display logics is needed.
1578
1579     * Removed options --gen-prime and --gen-random.
1580
1581     * Removed option --add-key; use --edit-key instead.
1582
1583     * Removed option --change-passphrase; use --edit-key instead.
1584
1585     * Signatures are now checked even if the output file could not
1586       be created. Command "--verify" tries to find the detached data.
1587
1588     * gpg now disables core dumps.
1589
1590     * compress and symmetric cipher preferences are now used.
1591       Because there is no 3DES yet, this is replaced by Blowfish.
1592
1593     * We have added the Twofish as an experimental cipher algorithm.
1594       Many thanks to Matthew Skala for doing this work.
1595       Twofish is the AES submission from Schneier et al.; see
1596       "www.counterpane.com/twofish.html" for more information.
1597
1598     * Started with a help system: If you enter a question mark at some
1599       prompt; you should get a specific help for this prompt.
1600
1601     * There is no more backup copy of the secret keyring.
1602
1603     * A lot of new bugs. I think this release is not as stable as
1604       the previous one.
1605
1606
1607 Noteworthy changes in version 0.3.2
1608 -----------------------------------
1609     * Fixed some bugs when using --textmode (-seat)
1610
1611     * Now displays the trust status of a positive verified message.
1612
1613     * Keyrings are now scanned in the sequence they are added with
1614       --[secret-]keyring.  Note that the default keyring is implicitly
1615       added as the very first one unless --no-default-keyring is used.
1616
1617     * Fixed setuid and dlopen bug.
1618
1619 Noteworthy changes in version 0.3.1
1620 -----------------------------------
1621     * Partial headers are now written in the OpenPGP format if
1622       a key in a v4 packet is used.
1623
1624     * Removed some unused options, removed the gnupg.sig stuff.
1625
1626     * Key lookup by name now returns a key which can be used for
1627       the desired action.
1628
1629     * New options --list-ownertrust (gpgm) to make a backup copy
1630       of the ownertrust values you assigned.
1631
1632     * clear signature headers are now in compliance with OpenPGP.
1633
1634 Noteworthy changes in version 0.3.0
1635 -----------------------------------
1636
1637     * New option --emulate-checksum-bug.  If your passphrase does not
1638       work anymore, use this option and --change-passphrase to rewrite
1639       your passphrase.
1640
1641     * More complete v4 key support: Preferences and expiration time
1642       is set into the self signature.
1643
1644     * Key generation defaults to DSA/ElGamal keys, so that new keys are
1645       interoperable with pgp5
1646
1647     * DSA key generation is faster and key generation does not anymore
1648       remove entropy from the random generator (the primes are public
1649       parameters, so there is really no need for a cryptographic secure
1650       prime number generator which we had used).
1651
1652     * A complete new structure for representing the key parameters.
1653
1654     * Removed most public key knowledge into the cipher library.
1655
1656     * Support for dynamic loading of new algorithms.
1657
1658     * Moved tiger to an extension module.
1659
1660
1661 Noteworthy changes in version 0.2.19
1662 ------------------------------------
1663
1664     * Replaced /dev/urandom in checks with new tool mk-tdata.
1665
1666     * Some assembler file cleanups; some more functions for the Alpha.
1667
1668     * Tiger has now the OpenPGP assigned number 6.  Because the OID has
1669       changed, old signatures using this algorithm can't be verified.
1670
1671     * gnupg now encrypts the compressed packed and not any longer in the
1672       reverse order; anyway it can decrypt both versions. Thanks to Tom
1673       for telling me this (not security related) bug.
1674
1675     * --add-key works and you are now able to generate subkeys.
1676
1677     * It is now possible to generate ElGamal keys in v4 packets to create
1678       valid OpenPGP keys.
1679
1680     * Some new features for better integration into MUAs.
1681
1682
1683 Noteworthy changes in version 0.2.18
1684 ------------------------------------
1685
1686     * Splitted cipher/random.c, add new option "--disable-dev-random"
1687       to configure to support the development of a random source for
1688       other systems. Prepared sourcefiles rand-unix.c, rand-w32.c
1689       and rand-dummy.c (which is used to allow compilation on systems
1690       without a random source).
1691
1692     * Fixed a small bug in the key generation (it was possible that 48 bits
1693       of a key were not taken from the random pool)
1694
1695     * Add key generation for DSA and v4 signatures.
1696
1697     * Add a function trap_unaligned(), so that a SIGBUS is issued on
1698       Alphas and not the slow emulation code is used. And success: rmd160
1699       raised a SIGBUS.
1700
1701     * Enhanced the formatting facility of argparse and changed the use of
1702       \r,\v to @ because gettext does not like it.
1703
1704     * New option "--compress-algo 1" to allow the creation of compressed
1705       messages which are readable by PGP and "--print-md" (gpgm) to make
1706       speed measurement easier.
1707
1708
1709 Noteworthy changes in version 0.2.17
1710 ------------------------------------
1711
1712     * Comment packets are now of private type 61.
1713
1714     * Passphrase code still used a 160 bit blowfish key, added a
1715       silly workaround. Please change your passphrase again - sorry.
1716
1717     * Conventional encryption now uses a type 3 packet to describe the
1718       used algorithms.
1719
1720     * The new algorithm number for Blowfish is 20, 16 is still used for
1721       encryption only; for signing it is only used when it is in a v3 packet,
1722       so that GNUPG keys are still valid.
1723
1724
1725 Noteworthy changes in version 0.2.16
1726 ------------------------------------
1727
1728     * Add experimental support for the TIGER/192 message digest algorithm.
1729       (But there is only a dummy ASN OID).
1730
1731     * Standard cipher is now Blowfish with 128 bit key in OpenPGP's CFB
1732       mode. I renamed the old cipher to Blowfish160. Because the OpenPGP
1733       group refused to assign me a number for Blowfish160, I have to
1734       drop support for this in the future. You should use
1735       "--change-passphrase" to recode your current passphrase with 128
1736       bit Blowfish.
1737
1738
1739 Noteworthy changes in version 0.2.15
1740 ------------------------------------
1741
1742     * Fixed a bug with the old checksum calculation for secret keys.
1743       If you run the program without --batch, a warning does inform
1744       you if your secret key needs to be converted; simply use
1745       --change-passphrase to recalculate the checksum. Please do this
1746       soon, as the compatible mode will be removed sometime in the future.
1747
1748     * CAST5 works (using the PGP's special CFB mode).
1749
1750     * Again somewhat more PGP 5 compatible.
1751
1752     * Some new test cases
1753
1754 Noteworthy changes in version 0.2.14
1755 ------------------------------------
1756
1757     * Changed the internal handling of keyrings.
1758
1759     * Add support to list PGP 5 keyrings with subkeys
1760
1761     * Timestamps of signatures are now verified.
1762
1763     * A expiration time can now be specified during key generation.
1764
1765     * Some speedups for Blowfish and SHA-1, rewrote SHA-1 transform.
1766       Reduced the amount of random bytes needed for key generation in
1767       some cases.
1768
1769
1770 Noteworthy changes in version 0.2.13
1771 ------------------------------------
1772
1773     * Verify of DSA signatures works.
1774
1775     * Re-implemented the slower random number generator.
1776
1777
1778 Noteworthy changes in version 0.2.12
1779 ------------------------------------
1780
1781     * --delete-key checks that there is no secret key. The new
1782       option --delete-secret-key maybe used to delete a secret key.
1783
1784     * "-kv" now works as expected. Options "--list-{keys,sigs]"
1785       and "--check-sigs" are now working.
1786
1787     * New options "--verify" and "--decrypt" to better support integration
1788       into MUAs (partly done for Mutt).
1789
1790     * New option "--with-colons" to make parsing of key lists easier.
1791
1792 Noteworthy changes in version 0.2.11
1793 ------------------------------------
1794
1795     * GPG now asks for a recipient's name if option "-r" is not used.
1796
1797     * If there is no good trust path, the program asks whether to use
1798       the public keys anyway.
1799
1800     * "--delete-key" works for public keys. What semantics shall I use
1801       when there is a secret key too? Delete the secret key or leave him
1802       and auto-regenerate the public key, next time the secret key is used?
1803
1804 Noteworthy changes in version 0.2.10
1805 ------------------------------------
1806
1807     * Code for the alpha is much faster (about 20 times); the data
1808       was misaligned and the kernel traps this, so nearly all time
1809       was used by system to trap the misalignments and to write
1810       syslog messages. Shame on me and thanks to Ralph for
1811       pointing me at this while drinking some beer yesterday.
1812
1813     * Changed some configure options and add an option
1814       --disable-m-guard to remove the memory checking code
1815       and to compile everything with optimization on.
1816
1817     * New environment variable GNUPGHOME, which can be used to set
1818       another homedir than ~/.gnupg.  Changed default homedir for
1819       Windoze version to c:/gnupg.
1820
1821     * Fixed detached signatures; detached PGP signatures caused a SEGV.
1822
1823     * The Windoze version works (as usual w/o a strong RNG).
1824
1825
1826 Noteworthy changes in version 0.2.9
1827 -----------------------------------
1828
1829     * Fixed FreeBSD bug.
1830
1831     * Added a simple man page.
1832
1833     * Switched to automake1.2f and a newer gettext.
1834
1835 Noteworthy changes in version 0.2.8
1836 -----------------------------------
1837
1838     * Changed the name to GNUPG, the binaries are called gpg and gpgm.
1839       You must rename rename the directory "~/.g10" to ~/.gnupg/, rename
1840       {pub,sec}ring.g10 to {pub,sec}ring.gpg, trustdb.g10 to trustdb.gpg
1841       and g10.sig to gnupg.sig.
1842
1843     * New or changed passphrases are now salted.
1844
1845
1846 Noteworthy changes in version 0.2.7
1847 -----------------------------------
1848
1849     * New command "gen-revoke" to create a key revocation certificate.
1850
1851     * New option "homedir" to set the homedir (which defaults to "~/.g10").
1852       This directory is created if it does not exists (only the last
1853       part of the name and not the complete hierarchy)
1854
1855     * Command "import" works. (Try: "finger gcrypt@ftp.guug.de|g10 --import")
1856
1857     * New commands "dearmor/enarmor" for g10maint.  These are mainly
1858       used for internal test purposes.
1859
1860     * Option --version now conforming to the GNU standards and lists
1861       the available ciphers, message digests and public key algorithms.
1862
1863     * Assembler code for m68k (not tested).
1864
1865     * "make check" works.
1866
1867 Noteworthy changes in version 0.2.6
1868 -----------------------------------
1869
1870     * Option "--export" works.
1871
1872
1873 Noteworthy changes in version 0.2.5
1874 -----------------------------------
1875
1876     * Added zlib for systems which don't have it.
1877       Use "./configure --with-zlib" to link with the static version.
1878
1879     * Generalized some more functions and rewrote the encoding of
1880       message digests into MPIs.
1881
1882     * Enhanced the checkit script
1883
1884
1885 Noteworthy changes in version 0.2.4
1886 -----------------------------------
1887
1888     * nearly doubled the speed of the ElGamal signature verification.
1889
1890     * backup copies of keyrings are created.
1891
1892     * assembler stuff for Pentium; gives about 15% better performance.
1893
1894     * fixed a lot of bugs.
1895
1896
1897 Noteworthy changes in version 0.2.3
1898 -----------------------------------
1899
1900     * Found a bug in the calculation of ELG fingerprints. This is now
1901       fixed, but all existing fingerprints and keyids for ELG keys
1902       are not any more valid.
1903
1904     * armor should now work; including clear signed text.
1905
1906     * moved some options to the new program g10maint
1907
1908     * It's now 64 bit clean and runs fine on an alpha--linux.
1909
1910     * Key generation is much faster now.  I fixed this by using not
1911       so strong random number for the primes (this was a bug because the
1912       ElGamal primes are public parameters and it does not make sense
1913       to generate them from strong random).  The real secret is the x value
1914       which is still generated from strong (okay: /dev/random) random bits.
1915
1916     * added option "--status-fd": see g10/OPTIONS
1917
1918     * We have secure memory on systems which support mlock().
1919       It is not complete yet, because we do not have signal handler
1920       which does a cleanup in very case.
1921       We should also check the ulimit for the user in the case
1922       that the admin does not have set a limit on locked pages.
1923
1924     * started with internationalization support.
1925
1926     * The logic to handle the web of trust is now implemented. It is
1927       has some bugs; but I'm going to change the algorithm anyway.
1928       It works by calculating the trustlevel on the fly.  It may ask
1929       you to provide trust parameters if the calculated trust probability
1930       is too low.  I will write a paper which discusses this new approach.
1931
1932     * a couple of changes to the configure script.
1933
1934     * New option "--quick-random" which uses a much quicker random
1935       number generator.  Keys generated while this option is in effect
1936       are flags with "INSECURE!" in the user-id.  This is a development
1937       only option.
1938
1939     * Read support for new version packets (OpenPGP).
1940
1941     * Comment packets are now of correct OpenPGP type 16. Old comment
1942       packets written by G10 are detected because they always start with
1943       a hash which is an invalid version byte.
1944
1945     * The string "(INSECURE!)" is appended to a new user-id if this
1946       is generated on a system without a good random number generator.
1947
1948
1949 Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004,
1950           2005, 2006 Free Software Foundation, Inc.
1951
1952 This file is free software; as a special exception the author gives
1953 unlimited permission to copy and/or distribute it, with or without
1954 modifications, as long as this notice is preserved.
1955
1956 This file is distributed in the hope that it will be useful, but
1957 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1958 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.