Support DNS CERT lookups via ADNS
[gnupg.git] / NEWS
1 Noteworthy changes in version 2.0.14
2 -------------------------------------------------
3
4  * The default for --include-cert is now to include all certificates
5    in the chain except for the root certificate.
6
7  * Numerical values may now be used as an alternative to the
8    debug-level keywords.
9
10  * The GPGSM --audit-log feature is now more complete.
11
12  * Support DNS lookups for SRV, PKA and CERT on W32.
13
14
15 Noteworthy changes in version 2.0.13 (2009-09-04)
16 -------------------------------------------------
17
18  * GPG now generates 2048 bit RSA keys by default.  The default hash
19    algorithm preferences has changed to prefer SHA-256 over SHA-1.
20    2048 bit DSA keys are now generated to use a 256 bit hash algorithm
21
22  * The envvars XMODIFIERS, GTK_IM_MODULE and QT_IM_MODULE are now
23    passed to the Pinentry to make SCIM work.
24
25  * The GPGSM command --gen-key features a --batch mode and implements
26    all features of gpgsm-gencert.sh in standard mode.
27
28  * New option --re-import for GPGSM's IMPORT server command.
29
30  * Enhanced writing of existing keys to OpenPGP v2 cards.
31
32  * Add hack to the internal CCID driver to allow the use of some
33    Omnikey based card readers with 2048 bit keys.
34
35  * GPG now repeatly asks the user to insert the requested OpenPGP
36    card.  This can be disabled with --limit-card-insert-tries=1.
37
38  * Minor bug fixes.
39
40
41 Noteworthy changes in version 2.0.12 (2009-06-17)
42 -------------------------------------------------
43
44  * GPGSM now always lists ephemeral certificates if specified by
45    fingerprint or keygrip.
46
47  * New command "KEYINFO" for GPG_AGENT.  GPGSM now also returns
48    information about smartcards.
49
50  * Made sure not to leak file descriptors if running gpg-agent with a
51    command.  Restore the signal mask to solve a problem in Mono.
52
53  * Changed order of the confirmation questions for root certificates
54    and store negative answers in trustlist.txt.
55
56  * Better synchronization of concurrent smartcard sessions.
57
58  * Support 2048 bit OpenPGP cards.
59
60  * Support Telesec Netkey 3 cards.
61
62  * The gpg-protect-tool now uses gpg-agent via libassuan.  Under
63    Windows the Pinentry will now be put into the foreground.
64
65  * Changed code to avoid a possible Mac OS X system freeze.
66
67
68 Noteworthy changes in version 2.0.11 (2009-03-03)
69 -------------------------------------------------
70
71  * Fixed a problem in SCDAEMON which caused unexpected card resets.
72
73  * SCDAEMON is now aware of the Geldkarte.
74
75  * The SCDAEMON option --allow-admin is now used by default.
76
77  * GPGCONF now restarts SCdaemon if necessary.
78
79  * The default cipher algorithm in GPGSM is now again 3DES.  This is
80    due to interoperability problems with Outlook 2003 which still
81    can't cope with AES.
82
83
84 Noteworthy changes in version 2.0.10 (2009-01-12)
85 -------------------------------------------------
86
87  * [gpg] New keyserver helper gpg2keys_kdns as generic DNS CERT
88    lookup.  Run with --help for a short description.  Requires the
89    ADNS library.
90
91  * [gpg] New mechanisms "local" and "nodefault" for --auto-key-locate.
92    Fixed a few problems with this option.
93
94  * [gpg] New command --locate-keys.
95
96  * [gpg] New options --with-sig-list and --with-sig-check.
97
98  * [gpg] The option "-sat" is no longer an alias for --clearsign.
99
100  * [gpg] The option --fixed-list-mode is now implicitly used and obsolete.
101
102  * [gpg] New control statement %ask-passphrase for the unattended key
103    generation.
104
105  * [gpg] The algorithm to compute the SIG_ID status has been changed.
106
107  * [gpgsm] Now uses AES by default.
108
109  * [gpgsm] Made --output option work with --export-secret-key-p12.
110
111  * [gpg-agent] Terminate process if the own listening socket is not
112    anymore served by ourself.
113
114  * [scdaemon] Made it more robust on W32.
115
116  * [gpg-connect-agent] Accept commands given as command line arguments.
117
118  * [w32] Initialized the socket subsystem for all keyserver helpers.
119
120  * [w32] The sysconf directory has been moved from a subdirectory of
121    the installation directory to %CSIDL_COMMON_APPDATA%/GNU/etc/gnupg.
122
123  * [w32] The gnupg2.nls directory is not anymore used.  The standard
124    locale directory is now used.  
125
126  * [w32] Fixed a race condition between gpg and gpgsm in the use of
127    temporary file names.
128
129  * The gpg-preset-passphrase mechanism works again.  An arbitrary
130    string may now be used for a custom cache ID.
131
132  * Admin PINs are cached again (bug in 2.0.9).
133
134  * Support for version 2 OpenPGP cards.
135
136  * Libgcrypt 1.4 is now required.
137
138
139 Noteworthy changes in version 2.0.9 (2008-03-26)
140 ------------------------------------------------
141
142  * Gpgsm always tries to locate missing certificates from a running
143    Dirmngr's cache.
144
145  * Tweaks for Windows.
146
147  * The Admin PIN for OpenPGP cards may now be entered with the pinpad.
148
149  * Improved certificate chain construction.
150
151  * Extended the PKITS framework.
152
153  * Fixed a bug in the ambigious name detection.
154
155  * Fixed possible memory corruption while importing OpenPGP keys (bug
156    introduced with 2.0.8). [CVE-2008-1530]
157
158  * Minor bug fixes.
159
160
161 Noteworthy changes in version 2.0.8 (2007-12-20)
162 ------------------------------------------------
163
164  * Enhanced gpg-connect-agent with a small scripting language.
165
166  * New option --list-config for gpgconf.
167
168  * Fixed a crash in gpgconf.
169
170  * Gpg-agent now supports the passphrase quality bar of the latest
171    Pinentry.
172
173  * The envvars XAUTHORITY and PINENTRY_USER_DATA are now passed to the
174    Pinentry.
175
176  * Fixed the auto creation of the key stub for smartcards.  
177
178  * Fixed a rare bug in decryption using the OpenPGP card.
179
180  * Creating DSA2 keys is now possible.
181
182  * New option --extra-digest-algo for gpgsm to allow verification of
183    broken signatures.
184
185  * Allow encryption with legacy Elgamal sign+encrypt keys with option
186    --rfc2440.
187
188  * Windows is now a supported platform.
189
190  * Made sure that under Windows the file permissions of the socket are
191    taken into account.  This required a change of our socket emulation
192    code and changed the IPC protocol under Windows.
193
194
195 Noteworthy changes in version 2.0.7 (2007-09-10)
196 ------------------------------------------------
197
198  * Fixed encryption problem if duplicate certificates are in the
199    keybox.
200
201  * Made it work on Windows Vista.  Note that the entire Windows port
202    is still considered Beta.
203
204  * Add new options min-passphrase-nonalpha, check-passphrase-pattern,
205    enforce-passphrase-constraints and max-passphrase-days to
206    gpg-agent.
207
208  * Add command --check-components to gpgconf.  Gpgconf now uses the
209    installed versions of the programs and does not anymore search via
210    PATH for them.
211
212
213 Noteworthy changes in version 2.0.6 (2007-08-16)
214 ------------------------------------------------
215
216  * GPGSM does now grok --default-key.
217
218  * GPGCONF is now aware of --default-key and --encrypt-to. 
219
220  * GPGSM does again correctly print the serial number as well the the
221    various keyids.  This was broken since 2.0.4.
222
223  * New option --validation-model and support for the chain-model.
224
225  * Improved Windows support.
226
227  
228 Noteworthy changes in version 2.0.5 (2007-07-05)
229 ------------------------------------------------
230
231  * Switched license to GPLv3.
232
233  * Basic support for Windows.  Run "./autogen.sh --build-w32" to build
234    it.  As usual the mingw cross compiling toolchain is required.
235
236  * Fixed bug when using the --p12-charset without --armor.
237
238  * The command --gen-key may now be used instead of the
239    gpgsm-gencert.sh script.
240
241  * Changed key generation to reveal less information about the
242    machine.  Bug fixes for gpg2's card key generation.
243
244
245 Noteworthy changes in version 2.0.4 (2007-05-09)
246 ------------------------------------------------
247
248  * The server mode key listing commands are now also working for
249    systems without the funopen/fopencookie API.
250
251  * PKCS#12 import now tries several encodings in case the passphrase
252    was not utf-8 encoded.  New option --p12-charset for gpgsm.
253
254  * Improved the libgcrypt logging support in all modules.
255
256
257 Noteworthy changes in version 2.0.3 (2007-03-08)
258 ------------------------------------------------
259
260  * By default, do not allow processing multiple plaintexts in a single
261    stream.  Many programs that called GnuPG were assuming that GnuPG
262    did not permit this, and were thus not using the plaintext boundary
263    status tags that GnuPG provides.  This change makes GnuPG reject
264    such messages by default which makes those programs safe again.
265    --allow-multiple-messages returns to the old behavior. [CVE-2007-1263].
266
267  * New --verify-option show-primary-uid-only. 
268
269  * gpgconf may now reads a global configuration file to select which
270    options are changeable by a frontend.  The new applygnupgdefaults
271    tool may be used by an admin to set default options for all users.
272
273  * The PIN pad of the Cherry XX44 keyboard is now supported.  The
274    DINSIG and the NKS applications are now also aware of PIN pads.
275
276
277 Noteworthy changes in version 2.0.2 (2007-01-31)
278 ------------------------------------------------
279
280  * Fixed a serious and exploitable bug in processing encrypted
281    packages. [CVE-2006-6235].
282
283  * Added --passphrase-repeat to set the number of times GPG will
284    prompt for a new passphrase to be repeated.  This is useful to help
285    memorize a new passphrase.  The default is 1 repetition.
286
287  * Using a PIN pad does now also work for the signing key.
288
289  * A warning is displayed by gpg-agent if a new passphrase is too
290    short.  New option --min-passphrase-len defaults to 8.
291
292  * The status code BEGIN_SIGNING now shows the used hash algorithms.
293
294
295 Noteworthy changes in version 2.0.1 (2006-11-28)
296 ------------------------------------------------
297
298  * Experimental support for the PIN pads of the SPR 532 and the Kaan
299    Advanced card readers.  Add "disable-keypad" scdaemon.conf if you
300    don't want it.  Does currently only work for the OpenPGP card and
301    its authentication and decrypt keys.
302
303  * Fixed build problems on some some platforms and crashes on amd64.
304
305  * Fixed a buffer overflow in gpg2. [bug#728,CVE-2006-6169]
306
307
308 Noteworthy changes in version 2.0.0 (2006-11-11)
309 ------------------------------------------------
310
311  * First stable version of a GnuPG integrating OpenPGP and S/MIME.
312
313
314 Noteworthy changes in version 1.9.95 (2006-11-06)
315 -------------------------------------------------
316
317  * Minor bug fixes.
318
319
320 Noteworthy changes in version 1.9.94 (2006-10-24)
321 -------------------------------------------------
322
323  * Keys for gpgsm may now be specified using a keygrip.  A keygrip is
324    indicated by a prefixing it with an ampersand.
325
326  * gpgconf now supports switching the CMS cipher algo (e.g. to AES).
327
328  * New command --gpgconf-test for all major tools. This may be used to
329    check whether the configuration file is sane.
330
331
332 Noteworthy changes in version 1.9.93 (2006-10-18)
333 -------------------------------------------------
334
335  * In --with-validation mode gpgsm will now also ask whether a root
336    certificate should be trusted.
337
338  * Link to Pth only if really necessary.
339
340  * Fixed a pubring corruption bug in gpg2 occurring when importing
341    signatures or keys with insane lengths.
342
343  * Fixed v3 keyID calculation bug in gpg2.
344
345  * More tweaks for certificates without extensions.
346
347
348 Noteworthy changes in version 1.9.92 (2006-10-11)
349 -------------------------------------------------
350
351  * Bug fixes.
352
353
354 Noteworthy changes in version 1.9.91 (2006-10-04)
355 -------------------------------------------------
356
357  * New "relax" flag for trustlist.txt to allow root CA certificates
358    without BasicContraints.
359
360  * [gpg2] Removed the -k PGP 2 compatibility hack.  -k is now an
361    alias for --list-keys.
362
363  * [gpg2] Print a warning if "-sat" is used instead of "--clearsign".
364
365
366 Noteworthy changes in version 1.9.90 (2006-09-25)
367 -------------------------------------------------
368
369  * Made readline work for gpg.
370
371  * Cleanups und minor bug fixes.
372
373  * Included translations from gnupg 1.4.5.
374
375
376 Noteworthy changes in version 1.9.23 (2006-09-18)
377 -------------------------------------------------
378
379  * Regular man pages for most tools are now build directly from the
380    Texinfo source.
381
382  * The gpg code from 1.4.5 has been fully merged into this release.
383    The configure option --enable-gpg is still required to build this
384    gpg part.  For production use of OpenPGP the gpg version 1.4.5 is
385    still recommended.  Note, that gpg will be installed under the name
386    gpg2 to allow coexisting with an 1.4.x gpg.
387
388  * API change in gpg-agent's pkdecrypt command.  Thus an older gpgsm
389    may not be used with the current gpg-agent.
390
391  * The scdaemon will now call a script on reader status changes.
392
393  * gpgsm now allows file descriptor passing for "INPUT", "OUTPUT" and
394    "MESSAGE".
395
396  * The gpgsm server may now output a key listing to the output file
397    handle. This needs to be enabled using "OPTION list-to-output=1".
398
399  * The --output option of gpgsm has now an effect on list-keys.
400
401  * New gpgsm commands --dump-chain and list-chain.
402
403  * gpg-connect-agent has new options to utilize descriptor passing.
404
405  * A global trustlist may now be used.  See doc/examples/trustlist.txt.
406
407  * When creating a new pubring.kbx keybox common certificates are
408    imported.
409
410
411 Noteworthy changes in version 1.9.22 (2006-07-27)
412 -------------------------------------------------
413
414  * Enhanced pkcs#12 support to allow import from simple keyBags.
415
416  * Exporting to pkcs#12 now create bag attributes so that Mozilla is
417    able to import the files.
418
419  * Fixed uploading of certain keys to the smart card.
420
421
422 Noteworthy changes in version 1.9.21 (2006-06-20)
423 -------------------------------------------------
424
425  * New command APDU for scdaemon to allow using it for general card
426    access.  Might be used through gpg-connect-agent by using the SCD
427    prefix command.
428
429  * Support for the CardMan 4040 PCMCIA reader (Linux 2.6.15 required).
430
431  * Scdaemon does not anymore reset cards at the end of a connection. 
432
433  * Kludge to allow use of Bundesnetzagentur issued X.509 certificates.
434
435  * Added --hash=xxx option to scdaemon's PKSIGN command.
436
437  * Pkcs#12 files are now created with a MAC.  This is for better
438    interoperability.
439
440  * Collected bug fixes and minor other changes.
441
442
443 Noteworthy changes in version 1.9.20 (2005-12-20)
444 -------------------------------------------------
445
446  * Importing pkcs#12 files created be recent versions of Mozilla works
447    again.
448
449  * Basic support for qualified signatures.
450
451  * New debug tool gpgparsemail. 
452
453
454 Noteworthy changes in version 1.9.19 (2005-09-12)
455 -------------------------------------------------
456
457  * The Belgian eID card is now supported for signatures and ssh.
458    Other pkcs#15 cards should work as well.
459
460  * Fixed bug in --export-secret-key-p12 so that certificates are again
461    included.
462
463
464 Noteworthy changes in version 1.9.18 (2005-08-01)
465 -------------------------------------------------
466
467  * [gpgsm] Now allows for more than one email address as well as URIs
468    and dnsNames in certificate request generation.  A keygrip may be
469    given to create a request from an existing key.
470
471  * A couple of minor bug fixes.
472
473
474 Noteworthy changes in version 1.9.17 (2005-06-20)
475 -------------------------------------------------
476
477  * gpg-connect-agent has now features to handle Assuan INQUIRE
478    commands.
479
480  * Internal changes for OpenPGP cards. New Assuan command WRITEKEY.
481
482  * GNU Pth is now a hard requirement.
483
484  * [scdaemon] Support for OpenSC has been removed.  Instead a new and
485    straightforward pkcs#15 modules has been written.  As of now it
486    does allows only signing using TCOS cards but we are going to
487    enhance it to match all the old capabilities.
488
489  * [gpg-agent] New option --write-env-file and Assuan command
490    UPDATESTARTUPTTY.
491
492  * [gpg-agent] New option --default-cache-ttl-ssh to set the TTL for
493    SSH passphrase caching independent from the other passphrases.
494
495
496 Noteworthy changes in version 1.9.16 (2005-04-21)
497 -------------------------------------------------
498
499  * gpg-agent does now support the ssh-agent protocol and thus allows
500    to use the pinentry as well as the OpenPGP smartcard with ssh.
501
502  * New tool gpg-connect-agent as a general client for the gpg-agent.
503
504  * New tool symcryptrun as a wrapper for certain encryption tools.
505
506  * The gpg tool is not anymore build by default because those gpg
507    versions available in the gnupg 1.4 series are far more matured.
508
509
510 Noteworthy changes in version 1.9.15 (2005-01-13)
511 -------------------------------------------------
512
513  * Fixed passphrase caching bug.
514
515  * Better support for CCID readers; the reader from Cherry RS 6700 USB
516    does now work.
517
518
519 Noteworthy changes in version 1.9.14 (2004-12-22)
520 -------------------------------------------------
521
522  * [gpg-agent] New option --use-standard-socket to allow the use of a
523    fixed socket.  gpgsm falls back to this socket if GPG_AGENT_INFO
524    has not been set.
525
526  * Ported to MS Windows with some functional limitations.
527
528  * New tool gpg-preset-passphrase.
529
530
531 Noteworthy changes in version 1.9.13 (2004-12-03)
532 -------------------------------------------------
533
534  * [gpgsm] New option --prefer-system-dirmngr.
535
536  * Minor cleanups and debugging aids.
537
538
539 Noteworthy changes in version 1.9.12 (2004-10-22)
540 -------------------------------------------------
541
542  * [scdaemon] Partly rewrote the PC/SC code.
543
544  * Removed the sc-investigate tool.  It is now in a separate package
545    available at ftp://ftp.g10code.com/g10code/gscutils/ .
546
547  * [gpg-agent] Fixed logging problem.
548
549
550 Noteworthy changes in version 1.9.11 (2004-10-01)
551 -------------------------------------------------
552
553  * When using --import along with --with-validation, the imported
554    certificates are validated and only imported if they are fully
555    valid.
556
557  * [gpg-agent] New option --max-cache-ttl.
558
559  * [gpg-agent] When used without --daemon or --server, gpg-agent now
560    check whether a agent is already running and usable.
561
562  * Fixed some i18n problems.
563
564
565 Noteworthy changes in version 1.9.10 (2004-07-22)
566 -------------------------------------------------
567
568  * Fixed a serious bug in the checking of trusted root certificates.
569
570  * New configure option --enable-agent-pnly allows to build and
571    install just the agent.
572
573  * Fixed a problem with the log file handling.
574
575
576 Noteworthy changes in version 1.9.9 (2004-06-08)
577 ------------------------------------------------
578
579  * [gpg-agent] The new option --allow-mark-trusted is now required to
580    allow gpg-agent to add a key to the trustlist.txt after user
581    confirmation.
582
583  * Creating PKCS#10 requests does now honor the key usage.
584
585
586 Noteworthy changes in version 1.9.8 (2004-04-29)
587 ------------------------------------------------
588
589  * [scdaemon] Overhauled the internal CCID driver.
590
591  * [scdaemon] Status files named ~/.gnupg/reader_<n>.status are now
592    written when using the internal CCID driver.
593
594  * [gpgsm] New commands --dump-{,secret,external}-keys to show a very
595    detailed view of the certificates.
596
597  * The keybox gets now compressed after 3 hours and ephemeral
598    stored certificates are deleted after about a day.
599
600  * [gpg] Usability fixes for --card-edit.  Note, that this has already
601    been ported back to gnupg-1.3
602
603
604 Noteworthy changes in version 1.9.7 (2004-04-06)
605 ------------------------------------------------
606
607  * Instrumented the modules for gpgconf.
608
609  * Added support for DINSIG card applications.
610
611  * Include the smimeCapabilities attribute with signed messages.
612
613  * Now uses the gettext domain "gnupg2" to avoid conflicts with gnupg
614    versions < 1.9.
615
616
617 Noteworthy changes in version 1.9.6 (2004-03-06)
618 ------------------------------------------------
619
620  * Code cleanups and bug fixes.
621
622
623 Noteworthy changes in version 1.9.5 (2004-02-21)
624 ------------------------------------------------
625
626  * gpg-protect-tool gets now installed into libexec as it ought to be.
627    Cleaned up the build system to better comply with the coding
628    standards.
629
630  * [gpgsm] The --import command is now able to autodetect pkcs#12
631    files and import secret and private keys from this file format.
632    A new command --export-secret-key-p12 is provided to allow
633    exporting of secret keys in PKCS\#12 format.
634
635  * [gpgsm] The pinentry will now present a description of the key for
636    whom the passphrase is requested.
637
638  * [gpgsm] New option --with-validation to check the validity of key
639    while listing it.
640
641  * New option --debug-level={none,basic,advanced,expert,guru} to map
642    the debug flags to sensitive levels on a per program base.
643
644
645 Noteworthy changes in version 1.9.4 (2004-01-30)
646 ------------------------------------------------
647
648  * Added support for the Telesec NKS 2.0 card application.
649
650  * Added simple tool addgnupghome to create .gnupg directories from
651    /etc/skel/.gnupg.
652
653  * Various minor bug fixes and cleanups; mainly gpgsm and gpg-agent
654    related.
655
656
657 Noteworthy changes in version 1.9.3 (2003-12-23)
658 ------------------------------------------------
659
660  * New gpgsm options --{enable,disable}-ocsp to validate keys using
661    OCSP. This option requires a not yet released DirMngr version.
662    Default is disabled.
663
664  * The --log-file option may now be used to print logs to a socket.
665    Prefix the socket name with "socket://" to enable this.  This does
666    not work on all systems and falls back to stderr if there is a
667    problem with the socket.
668
669  * The options --encrypt-to and --no-encrypt-to now work the same in
670    gpgsm as in gpg.  Note, they are also used in server mode.
671
672  * Duplicated recipients are now silently removed in gpgsm.
673
674
675 Noteworthy changes in version 1.9.2 (2003-11-17)
676 ------------------------------------------------
677
678  * On card key generation is no longer done using the --gen-key
679    command but from the menu provided by the new --card-edit command.
680
681  * PINs are now properly cached and there are only 2 PINs visible.
682    The 3rd PIN (CHV2) is internally syncronized with the regular PIN.
683
684  * All kind of other internal stuff.
685
686
687 Noteworthy changes in version 1.9.1 (2003-09-06)
688 ------------------------------------------------
689
690  * Support for OpenSC is back. scdaemon supports a --disable-opensc to
691    disable OpenSC use at runtime, so that PC/SC or ct-API can still be
692    used directly.
693
694  * Rudimentary support for the SCR335 smartcard reader using an
695    internal driver.  Requires current libusb from CVS.
696
697  * Bug fixes.
698
699
700 Noteworthy changes in version 1.9.0 (2003-08-05)
701 ------------------------------------------------
702
703       ====== PLEASE SEE README-alpha =======
704
705  * gpg has been renamed to gpg2 and gpgv to gpgv2.  This is a
706    temporary change to allow co-existing with stable gpg versions.
707
708  * ~/.gnupg/gpg.conf-1.9.0 is fist tried as config file before the
709    usual gpg.conf.
710
711  * Removed the -k, -kv and -kvv commands.  -k is now an alias to
712    --list-keys.  New command -K as alias for --list-secret-keys.
713
714  * Removed --run-as-shm-coprocess feature.
715
716  * gpg does now also use libgcrypt, libgpg-error is required.
717
718  * New gpgsm commands --call-dirmngr and --call-protect-tool.
719
720  * Changing a passphrase is now possible using "gpgsm --passwd"
721
722  * The content-type attribute is now recognized and created.
723
724  * The agent does now reread certain options on receiving a HUP.
725
726  * The pinentry is now forked for each request so that clients with
727    different environments are supported.  When running in daemon mode
728    and --keep-display is not used the DISPLAY variable is ignored.
729
730  * Merged stuff from the newpg branch and started this new
731    development branch.
732
733
734  Copyright 2002, 2003, 2004, 2005, 2006, 2007,
735            2008, 2009  Free Software Foundation, Inc.
736
737  This file is free software; as a special exception the author gives
738  unlimited permission to copy and/or distribute it, with or without
739  modifications, as long as this notice is preserved.
740
741  This file is distributed in the hope that it will be useful, but
742  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
743  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.