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