last local commit
[gnupg.git] / NEWS
1 Noteworthy changes in version 0.4.2
2 -----------------------------------
3     * Fixed this huge memory leak.
4
5     * Redesigned the trust database:  You should run "gpgm --check-trustdb".
6       New command --update-trustdb, which adds new key from the public
7       keyring into your trustdb
8
9     * Fixed a bug in the armor code, leading to invalid packet errors.
10       (a workaround for this was to use --no-armor).
11
12     * comment packets are not anymore generated. "--export" filters
13       them out.  One Exception:  The comment packets in a secret keyring
14       are still used because they carry the factorization of the public
15       prime product.
16
17     * --import now only looks for KEYBLOCK headers, so you can now simply
18       remove the "- " in front of such a header if someone accdently signed
19       such a message or the keyblock is part of a cleartext signed message.
20
21     * --with-colons now lists the key expiration time and not anymore
22       the valid period.
23
24
25 Noteworthy changes in version 0.4.1
26 -----------------------------------
27     * A secondary key is used when the primary key is specified but cannot
28       be used for the operation (if it is a sign-only key).
29
30     * GNUPG can now handle concatenated armored messages:  There is still a
31       bug if different kinds of messages are mixed.
32
33     * Iterated+Salted passphrases now work.  If want to be sure that PGP5
34       is able to handle them you may want to use the options
35         "--s2k-mode 3 --s2k-cipher-algo cast5 --s2k-digest-algo sha1"
36       when changing a passphrase.
37
38     * doc/OpenPGP talks about OpenPGP compliance, doc/HACKING gives
39       a few hints about the internal structure.
40
41     * Checked gnupg against the August 1998 draft (07) and I believe
42       it is in compliance with this document (except for one point).
43
44     * Fixed some bugs in the import merging code and rewrote some
45       code for the trustdb.
46
47
48 Noteworthy changes in version 0.4.0
49 -----------------------------------
50     * Triple DES is now supported.  Michael Roth did this piece of
51       needed work.  We have now all the coded needed to be OpenPGP
52       compliant.
53
54     * Added a simple rpm spec file (see INSTALL).
55
56     * detached and armored signatures are now using "PGP SIGNATURE",
57       except when --rfc1991 is used.
58
59     * All times which are not in the yyy-mm-dd format are now printed
60       in local time.
61
62
63 Noteworthy changes in version 0.3.5
64 -----------------------------------
65     * New option --throw-keyid to create anonymous enciphered messages.
66       If gpg detects such a message it tires all available secret keys
67       in turn so decode it.  This is a gnupg extension and not in OpenPGP
68       but it has been discussed there and afaik some products use this
69       scheme too (Suggested by Nimrod Zimmerman).
70
71     * Fixed a bug with 5 byte length headers.
72
73     * --delete-[secret-]key is now also availabe in gpgm.
74
75     * cleartext signatures are not anymore converted to LF only.
76
77     * Fixed a trustdb problem.  Run "gpgm --check-trustdb" to fix old
78       trust dbs.
79
80     * Building in another directory should now work.
81
82     * Weak key detection mechanism (Niklas Hernaeus).
83
84
85 Noteworthy changes in version 0.3.4
86 -----------------------------------
87     * New options --comment and --set-filename; see g10/OPTIONS
88
89     * yes/no, y/n localized.
90
91     * Fixed some bugs.
92
93 Noteworthy changes in version 0.3.3
94 -----------------------------------
95     * IMPORTANT: I found yet another bug in the way the secret keys
96       are encrypted - I did it the way pgp 2.x did it, but OpenPGP
97       and pgp 5.x specifiy another (in some aspects simpler) method.
98       To convert your secret keys you have to do this:
99         1. Build the new release but don't install it and keep
100            a copy of the old program.
101         2. Disable the network, make sure that you are the only
102            user, be sure that there are no trojan horses etc ....
103         3. Use your old gpg (version 0.3.[12]) and set the
104            passphrases of ALL your secret keys to empty!
105            (gpg --change-passphrase your-user-id).
106         4. Save your ownertrusts (see the next point)
107         5. rm ~/.gnupg/trustd.gpg
108         6. install the new version of gpg (0.3.3)
109         7. For every secret key call "gpg --edit-key your-user-id",
110            enter "passwd" at the prompt, follow the instructions and
111            change your passward back, enter "save" to store it.
112         8. Restore the ownertrust (see next point).
113
114     * The format of the trust database has changed; you must delete
115       the old one, so gnupg can create a new one.
116       IMPORTANT: Use version 0.3.[12] to save your assigned ownertrusts
117       ("gpgm --list-ownertrust >saved-trust"); then build this new version
118       and restore the ownertrust with this new version
119       ("gpgm --import-ownertrust saved-trust").  Please note that
120       --list-ownertrust has been renamed to --export-ownertrust in this
121       release and it does now only export defined ownertrusts.
122
123     * The command --edit-key now provides a commandline driven menu
124       which can be used vor vaious tasks.  --sign-key is only an
125       an alias to --edit-key and maybe removed in future: use the
126       command "sign" of this new menu - you can select which user ids
127       you want to sign.
128
129     * Alternate user ids can now be created an signed.
130
131     * Owner trust values can now be changed with --edit-key (trust)
132
133     * GNUPG can now run as a coprocess; this enables sophisticated
134       frontends.  tools/shmtest.c is a simple sample implemenation.
135       This needs some more work: all tty_xxx() are to be replaced
136       by cpr_xxx() and some changes in the display logics is needed.
137
138     * Removed options --gen-prime and --gen-random.
139
140     * Removed option --add-key; use --edit-key instead.
141
142     * Removed option --change-passphrase; use --edit-key instead.
143
144     * Signatures are now checked even if the output file could not
145       be created. Command "--verify" tries to find the detached data.
146
147     * gpg now disables core dumps.
148
149     * compress and symmetric cipher preferences are now used.
150       Because there is no 3DES yet, this is replaced by Blowfish.
151
152     * We have added the Twofish as an experimental cipher algorithm.
153       Many thanks to Matthew Skala for doing this work.
154       Twofish is the AES submission from Schneier et al.; see
155       "www.counterpane.com/twofish.html" for more information.
156
157     * Started with a help system: If you enter a question mark at some
158       prompt; you should get a specific help for this prompt.
159
160     * There is no more backup copy of the secret keyring.
161
162     * A lot of new bugs. I think this release is not as stable as
163       the previous one.
164
165
166 Noteworthy changes in version 0.3.2
167 -----------------------------------
168     * Fixed some bugs when using --textmode (-seat)
169
170     * Now displays the trust status of a positive verified message.
171
172     * Keyrings are now scanned in the sequence they are added with
173       --[secret-]keyring.  Note that the default keyring is implictly
174       added as the very first one unless --no-default-keyring is used.
175
176     * Fixed setuid and dlopen bug.
177
178 Noteworthy changes in version 0.3.1
179 -----------------------------------
180     * Partial headers are now written in the OpenPGP format if
181       a key in a v4 packet is used.
182
183     * Removed some unused options, removed the gnupg.sig stuff.
184
185     * Key lookup by name now returns a key which can be used for
186       the desired action.
187
188     * New options --list-ownertrust (gpgm) to make a backup copy
189       of the ownertrust values you assigned.
190
191     * clear signature headers are now in compliance with OpenPGP.
192
193 Noteworthy changes in version 0.3.0
194 -----------------------------------
195
196     * New option --emulate-checksum-bug.  If your passphrase does not
197       work anymore, use this option and --change-passphrase to rewrite
198       your passphrase.
199
200     * More complete v4 key support: Preferences and expiration time
201       is set into the self signature.
202
203     * Key generation defaults to DSA/ElGamal keys, so that new keys are
204       interoperable with pgp5
205
206     * DSA key generation is faster and key generation does not anymore
207       remove entropy from the random generator (the primes are public
208       parameters, so there is really no need for a cryptographic secure
209       prime number generator which we had used).
210
211     * A complete new structure for representing the key parameters.
212
213     * Removed most public key knowledge into the cipher libray.
214
215     * Support for dynamic loading of new algorithms.
216
217     * Moved tiger to an extension module.
218
219
220 Noteworthy changes in version 0.2.19
221 ------------------------------------
222
223     * Replaced /dev/urandom in checks with new tool mk-tdata.
224
225     * Some assembler file cleanups; some more functions for the Alpha.
226
227     * Tiger has now the OpenPGP assigned number 6.  Because the OID has
228       changed, old signatures using this algorithm can't be verified.
229
230     * gnupg now encrypts the compressed packed and not any longer in the
231       reverse order; anyway it can decrypt both versions. Thanks to Tom
232       for telling me this (not security related) bug.
233
234     * --add-key works and you are now able to generate subkeys.
235
236     * It is now possible to generate ElGamal keys in v4 packets to create
237       valid OpenPGP keys.
238
239     * Some new features for better integration into MUAs.
240
241
242 Noteworthy changes in version 0.2.18
243 ------------------------------------
244
245     * Splitted cipher/random.c, add new option "--disable-dev-random"
246       to configure to support the development of a random source for
247       other systems. Prepared sourcefiles rand-unix.c, rand-w32.c
248       and rand-dummy.c (which is used to allow compilation on systems
249       without a random source).
250
251     * Fixed a small bug in the key generation (it was possible that 48 bits
252       of a key were not taken from the random pool)
253
254     * Add key generation for DSA and v4 signatures.
255
256     * Add a function trap_unaligned(), so that a SIGBUS is issued on
257       Alphas and not the slow emulation code is used. And success: rmd160
258       raised a SIGBUS.
259
260     * Enhanced the formatting facility of argparse and changed the use of
261       \r,\v to @ because gettext does not like it.
262
263     * New option "--compress-algo 1" to allow the creation of compressed
264       messages which are readable by PGP and "--print-md" (gpgm) to make
265       speed measurement easier.
266
267
268 Noteworthy changes in version 0.2.17
269 ------------------------------------
270
271     * Comment packets are now of private type 61.
272
273     * Passphrase code still used a 160 bit blowfish key, added a
274       silly workaround. Please change your passphrase again - sorry.
275
276     * Conventional encryption now uses a type 3 packet to describe the
277       used algorithms.
278
279     * The new algorithm number for Blowfish is 20, 16 is still used for
280       encryption only; for signing it is only used when it is in a v3 packet,
281       so that GNUPG keys are still valid.
282
283
284 Noteworthy changes in version 0.2.16
285 ------------------------------------
286
287     * Add experimental support for the TIGER/192 message diigest algorithm.
288       (But there is only a dummy ASN OID).
289
290     * Standard cipher is now Blowfish with 128 bit key in OpenPGP's CFB
291       mode. I renamed the old cipher to Blowfish160. Because the OpenPGP
292       group refused to assign me a number for Blowfish160, I have to
293       drop support for this in the future. You should use
294       "--change-passphrase" to recode your current passphrase with 128
295       bit Blowfish.
296
297
298 Noteworthy changes in version 0.2.15
299 ------------------------------------
300
301     * Fixed a bug with the old checksum calculation for secret keys.
302       If you run the program without --batch, a warning does inform
303       you if your secret key needs to be converted; simply use
304       --change-passphrase to recalculate the checksum. Please do this
305       soon, as the compatible mode will be removed sometime in the future.
306
307     * CAST5 works (using the PGP's special CFB mode).
308
309     * Again somewhat more PGP 5 compatible.
310
311     * Some new test cases
312
313 Noteworthy changes in version 0.2.14
314 ------------------------------------
315
316     * Changed the internal handling of keyrings.
317
318     * Add support to list PGP 5 keyrings with supkeys
319
320     * Timestamps of signatures are now verified.
321
322     * A expiration time can now be specified during key generation.
323
324     * Some speedups for Blowfish and SHA-1, rewrote SHA-1 transform.
325       Reduced the amount of random bytes needed for key generation in
326       some cases.
327
328
329 Noteworthy changes in version 0.2.13
330 ------------------------------------
331
332     * Verify of DSA signatures works.
333
334     * Re-implemented the slower random number generator.
335
336
337 Noteworthy changes in version 0.2.12
338 ------------------------------------
339
340     * --delete-key checks that there is no secret key. The new
341       option --delete-secret-key maybe used to delete a secret key.
342
343     * "-kv" now works as expected. Options "--list-{keys,sigs]"
344       and "--check-sigs" are now working.
345
346     * New options "--verify" and "--decrypt" to better support integration
347       into MUAs (partly done for Mutt).
348
349     * New option "--with-colons" to make parsing of key lists easier.
350
351 Noteworthy changes in version 0.2.11
352 ------------------------------------
353
354     * GPG now asks for a recipient's name if option "-r" is not used.
355
356     * If there is no good trust path, the program asks whether to use
357       the public keys anyway.
358
359     * "--delete-key" works for public keys. What semantics shall I use
360       when there is a secret key too? Delete the secret key or leave him
361       and auto-regenerate the public key, netxt time the secret key is used?
362
363 Noteworthy changes in version 0.2.10
364 ------------------------------------
365
366     * Code for the alpha is much faster (about 20 times); the data
367       was misaligned and the kernel traps this, so nearly all time
368       was used by system to trap the misalignments and to write
369       syslog messages. Shame on me and thanks to Ralph for
370       pointing me at this while drinking some beer yesterday.
371
372     * Changed some configure options and add an option
373       --disable-m-guard to remove the memory checking code
374       and to compile everthing with optimization on.
375
376     * New environment variable GNUPGHOME, which can be used to set
377       another homedir than ~/.gnupg.  Changed default homedir for
378       Windoze version to c:/gnupg.
379
380     * Fixed detached signatures; detached PGP signatures caused a SEGV.
381
382     * The Windoze version works (as usual w/o a strong RNG).
383
384
385 Noteworthy changes in version 0.2.9
386 -----------------------------------
387
388     * Fixed FreeBSD bug.
389
390     * Added a simple man page.
391
392     * Switched to automake1.2f and a newer gettext.
393
394 Noteworthy changes in version 0.2.8
395 -----------------------------------
396
397     * Changed the name to GNUPG, the binaries are called gpg and gpgm.
398       You must rename rename the directory "~/.g10" to ~/.gnupg/, rename
399       {pub,sec}ring.g10 to {pub,sec}ring.gpg, trustdb.g10 to trustdb.gpg
400       and g10.sig to gnupg.sig.
401
402     * New or changed passphrases are now salted.
403
404
405 Noteworthy changes in version 0.2.7
406 -----------------------------------
407
408     * New command "gen-revoke" to create a key revocation certificate.
409
410     * New option "homedir" to set the homedir (which defaults to "~/.g10").
411       This directory is created if it does not exists (only the last
412       part of the name and not the complete hierarchy)
413
414     * Command "import" works. (Try: "finger gcrypt@ftp.guug.de|g10 --import")
415
416     * New commands "dearmor/enarmor" for g10maint.  These are mainly
417       used for internal test purposes.
418
419     * Option --version now conforming to the GNU standards and lists
420       the available ciphers, message digests and public key algorithms.
421
422     * Assembler code for m68k (not tested).
423
424     * "make check" works.
425
426 Noteworthy changes in version 0.2.6
427 -----------------------------------
428
429     * Option "--export" works.
430
431
432 Noteworthy changes in version 0.2.5
433 -----------------------------------
434
435     * Added zlib for systems which don't have it.
436       Use "./configure --with-zlib" to link with the static version.
437
438     * Generalized some more functions and rewrote the encoding of
439       message digests into MPIs.
440
441     * Enhanced the checkit script
442
443
444 Noteworthy changes in version 0.2.4
445 -----------------------------------
446
447     * nearly doubled the speed of the ElGamal signature verification.
448
449     * backup copies of keyrings are created.
450
451     * assembler stuff for Pentium; gives about 15% better perfomance.
452
453     * fixed a lot of bugs.
454
455
456 Noteworthy changes in version 0.2.3
457 -----------------------------------
458
459     * Found a bug in the calculation of ELG fingerprints. This is now
460       fixed, but all existing fingerprints and keyids for ELG keys
461       are not any more valid.
462
463     * armor should now work; including clear signed text.
464
465     * moved some options to the new program g10maint
466
467     * It's now 64 bit clean and runs fine on an alpha--linux.
468
469     * Key generation is much faster now.  I fixed this by using not
470       so strong random number for the primes (this was a bug because the
471       ElGamal primes are public parameters and it does not make sense
472       to generate them from strong random).  The real secret is the x value
473       which is still generated from strong (okay: /dev/random) random bits.
474
475     * added option "--status-fd": see g10/OPTIONS
476
477     * We have secure memeory on systems which support mlock().
478       It is not complete yet, because we do not have signal handler
479       which does a cleanup in very case.
480       We should also check the ulimit for the user in the case
481       that the admin does not have set a limit on locked pages.
482
483     * started with internationalization support.
484
485     * The logic to handle the web of trust is now implemented. It is
486       has some bugs; but I'm going to change the algorithm anyway.
487       It works by calculating the trustlevel on the fly.  It may ask
488       you to provide trust parameters if the calculated trust probability
489       is too low.  I will write a paper which discusses this new approach.
490
491     * a couple of changes to the configure script.
492
493     * New option "--quick-random" which uses a much quicker random
494       number generator.  Keys generated while this option is in effect
495       are flags with "INSECURE!" in the user-id.  This is a development
496       only option.
497
498     * Read support for new version packets (OpenPGP).
499
500     * Comment packets are now of correct OpenPGP type 16. Old comment
501       packets written by G10 are detected because they always start with
502       a hash which is an invalid version byte.
503
504     * The string "(INSECURE!)" is appended to a new user-id if this
505       is generated on a system without a good random number generator.
506