2010-07-23 14:30:34 +02:00
|
|
|
2010-07-23 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-blob.c (_keybox_create_x509_blob): Fix reallocation bug.
|
|
|
|
|
2010-04-20 03:11:35 +02:00
|
|
|
2010-04-20 Marcus Brinkmann <marcus@g10code.de>
|
|
|
|
|
|
|
|
* keybox-update.c [!HAVE_DOSISH_SYSTEM]: Include
|
|
|
|
../common/sysutils.h even then to silence gcc warning about
|
|
|
|
missing declaration of gnupg_remove.
|
|
|
|
|
2010-04-21 18:26:17 +02:00
|
|
|
2010-04-15 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-blob.c: Include gettime.h
|
|
|
|
(make_timestamp): Remove.
|
|
|
|
|
2010-03-24 13:15:30 +01:00
|
|
|
2010-03-23 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (extra_libs): New.
|
|
|
|
(kbxutil_LDADD): Use it.
|
|
|
|
|
|
|
|
* keybox-update.c: [HAVE_DOSISH_SYSTEM]: Include sysutils.h.
|
|
|
|
(keybox_compress): Replace rewind by fseek+clearerr.
|
|
|
|
(rename_tmp_file, keybox_compress): s/remove/gnupg_remove/.
|
|
|
|
|
2010-03-10 13:24:58 +01:00
|
|
|
2010-03-10 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD, $(PROGRAMS)): Remove libjnlib.a.
|
|
|
|
|
|
|
|
* keybox-search.c, keybox-init.c, keybox-defs.h, kbxutil.c:
|
|
|
|
Replace "jnlib" include file part by "common".
|
|
|
|
|
2010-03-08 18:05:37 +01:00
|
|
|
2010-03-08 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
Use macros for iobuf_ioctl commands.
|
|
|
|
|
2009-12-08 17:30:33 +01:00
|
|
|
2009-12-08 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-search-desc.h (keydb_search_desc): Use u32 type for
|
|
|
|
KID. Extend the skip function ptr.
|
|
|
|
(gpg_pkt_user_id_t): New.
|
|
|
|
* keybox-search.c (has_short_kid, has_long_kid): Change to use u32
|
|
|
|
args for KID.
|
|
|
|
|
2008-12-09 09:58:02 +01:00
|
|
|
2008-12-09 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* kbxutil.c (main): Call i18n_init before init_common_subsystems.
|
|
|
|
|
2008-11-20 17:26:40 +01:00
|
|
|
2008-11-20 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-update.c (create_tmp_file) [USE_ONLY_8DOT3]: Use other
|
|
|
|
suffixes to avoid conflicts with gpg uses filenames.
|
|
|
|
|
2008-11-11 12:45:17 +01:00
|
|
|
2008-11-11 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD): Change order of libs.
|
|
|
|
($(PROGRAMS)): Ditto for documentation.
|
|
|
|
|
2008-10-20 15:53:23 +02:00
|
|
|
2008-10-20 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-update.c (blob_filecopy): Remove unused arg n_packets.
|
|
|
|
(keybox_insert_cert): Adjust for that.
|
|
|
|
(keybox_update_cert): Mark unused args.
|
|
|
|
(keybox_set_flags): Ditto.
|
|
|
|
* keybox-blob.c (create_blob_trailer): Ditto.
|
|
|
|
* keybox-search.c (keybox_get_flags): Ditto.
|
|
|
|
* keybox-dump.c (_keybox_dump_find_dups): Ditto.
|
|
|
|
* kbxutil.c (my_gcry_logger): Ditto.
|
|
|
|
|
2008-05-06 16:03:36 +02:00
|
|
|
2008-05-06 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-file.c (_keybox_read_blob2): Return GPG_ERR_TOO_SHORT if
|
|
|
|
we get an EOF for 2nd to 5th byte as a better error message.
|
|
|
|
|
|
|
|
Always use gpg_error_from_syserror and gpg_err_code_from_syserror.
|
|
|
|
This is to avoid cases where we expect an error but due to an
|
|
|
|
errno set to 0 we get back a success status.
|
|
|
|
|
2008-04-01 17:08:57 +02:00
|
|
|
2008-04-01 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-init.c (keybox_new, keybox_release): Track used handles.
|
|
|
|
(_keybox_close_file): New.
|
2011-02-04 12:57:53 +01:00
|
|
|
* keybox-update.c (keybox_insert_cert, keybox_set_flags)
|
2008-04-01 17:08:57 +02:00
|
|
|
(keybox_delete, keybox_compress): Use the new close function.
|
|
|
|
|
2008-03-13 09:46:08 +01:00
|
|
|
2008-03-13 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-blob.c (x509_email_kludge): Use the same code as in
|
|
|
|
..sm/keylist.c so that email parts are not only detected at the
|
|
|
|
start of the DN. Reported by Yoshiaki Kasahara.
|
|
|
|
|
2007-08-24 11:34:39 +02:00
|
|
|
2007-08-24 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-init.c (keybox_register_file): Use same_file_p.
|
|
|
|
|
2007-08-23 19:41:22 +02:00
|
|
|
2007-08-23 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* kbxutil.c: New commands --find-dups and --cut. New options
|
|
|
|
--from an --to.
|
|
|
|
* keybox-dump.c (hash_blob_rawdata): New.
|
|
|
|
(_keybox_dump_find_dups): New.
|
|
|
|
(open_file): Factor some code out to this.
|
|
|
|
(_keybox_dump_cut_records): New.
|
|
|
|
|
2007-06-26 15:48:44 +02:00
|
|
|
2007-06-26 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* kbxutil.c: Include init.h
|
|
|
|
|
2007-06-15 16:27:31 +02:00
|
|
|
2007-06-15 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD): Add W32SOCKLIBS.
|
|
|
|
|
2007-06-14 19:05:07 +02:00
|
|
|
2007-06-12 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* kbxutil.c (main): Replace some calls by init_common_subsystems.
|
|
|
|
|
2007-06-06 20:12:30 +02:00
|
|
|
2007-06-06 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* kbxutil.c (i18n_init): Remove.
|
|
|
|
|
2007-03-20 17:57:40 +01:00
|
|
|
2007-03-20 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox.h (KEYBOX_FLAG_BLOB_SECRET, KEYBOX_FLAG_BLOB_EPHEMERAL):
|
|
|
|
New.
|
|
|
|
* keybox-update.c (keybox_compress): Use it here instead of a
|
|
|
|
magic constant.
|
|
|
|
|
2007-01-31 15:24:41 +01:00
|
|
|
2007-01-31 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD): Use GPG_ERROR_LIBS instead of -l.
|
|
|
|
Reordered args.
|
|
|
|
|
2007-01-30 21:16:28 +01:00
|
|
|
2007-01-25 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD): Added LIBICONV. Noted by Billy
|
|
|
|
Halsey.
|
|
|
|
|
2006-11-20 17:49:41 +01:00
|
|
|
2006-11-15 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* kbxutil.c (dump_openpgp_key): Cast printf argument.
|
|
|
|
|
2006-10-20 13:38:48 +02:00
|
|
|
2006-10-20 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_x509_has_grip, has_keygrip): New.
|
|
|
|
(keybox_search): Implement new search mode.
|
|
|
|
* keybox-search-desc.h (KEYDB_SEARCH_MODE_KEYGRIP): New.
|
|
|
|
(keydb_search_desc): New member GRIP.
|
|
|
|
|
2006-09-20 13:01:49 +02:00
|
|
|
2006-09-20 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am ($(PROGRAMS): New.
|
|
|
|
|
2006-09-14 18:50:33 +02:00
|
|
|
2006-09-14 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
Replaced all call gpg_error_from_errno(errno) by
|
|
|
|
gpg_error_from_syserror().
|
|
|
|
|
2005-10-08 02:13:27 +02:00
|
|
|
2005-10-08 Marcus Brinkmann <marcus@g10code.de>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD): Add ../gl/libgnu.a after
|
|
|
|
../jnlib/libjnlib.a.
|
|
|
|
|
2005-06-16 10:12:03 +02:00
|
|
|
2005-06-15 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-file.c (_keybox_read_blob2): Make IMAGE unsigned.
|
2011-02-04 12:57:53 +01:00
|
|
|
(_keybox_write_blob):
|
2005-06-16 10:12:03 +02:00
|
|
|
|
|
|
|
* keybox-blob.c (create_blob_finish, _keybox_create_x509_blob):
|
|
|
|
Fixed warnings about signed/unsigned pointer mismatches.
|
|
|
|
(x509_email_kludge): Ditto.
|
|
|
|
(_keybox_new_blob): Changed arg IMAGE to unsigned char *.
|
|
|
|
(_keybox_get_blob_image): Changed return type to unsigned char*.
|
|
|
|
|
* configure.ac (gl_INIT): Add gnulib stuff.
(fseeko, ftello, ttyname, isascii): Replaced the AC_REPLACE_FUNCS
by a simple check.
(putc_unlocked): Removed check. Not used.
(strsep, mkdtemp, asprintf): Replaced checks by gnulib checks.
(xsize): Added will probably come handy soon.
(CFLAGS): Use -Wformat-security instead of
-Wformat-nonliteral. Add --Wno-format-y2k.
* gl/, gl/m4/: New.
* gpg-agent.c: Include setenv.h.
* Makefile.am (AM_CPPFLAGS): Added.
* util.h: Add some includes for gnulib.
(ttyname, isascii): Define them inline.
* fseeko.c, ftello.c: Removed.
* strsep.c, mkdtemp.c: Removed.
* ttyname.c, isascii.c: Removed.
* mkdtemp.c: Removed.
* exec.c: Include mkdtemp.h
* keybox-file.c (ftello) [!HAVE_FSEEKO]: New replacement
function. Copied from ../common/ftello.c.
* keybox-update.c (fseeko) [!HAVE_FSEEKO]: New replacement
function. Copied from ../common/iobuf.c.
* scdaemon.c: Include mkdtemp.h.
* misc.c: Include setenv.h.
* symcryptrun.c: Include mkdtemp.h.
2005-06-01 17:46:01 +02:00
|
|
|
2005-06-01 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-file.c (ftello) [!HAVE_FSEEKO]: New replacement
|
|
|
|
function. Copied from ../common/ftello.c.
|
|
|
|
* keybox-update.c (fseeko) [!HAVE_FSEEKO]: New replacement
|
|
|
|
function. Copied from ../common/iobuf.c.
|
|
|
|
|
2004-12-18 11:22:10 +01:00
|
|
|
2004-12-18 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-defs.h (map_assuan_err): Define in terms of
|
|
|
|
map_assuan_err_with_source.
|
|
|
|
|
2004-12-07 19:07:30 +01:00
|
|
|
2004-12-07 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* keybox-init.c (keybox_release): Close the file pointer.
|
|
|
|
|
2004-12-02 08:48:09 +01:00
|
|
|
2004-11-26 Werner Koch <wk@g10code.com>
|
|
|
|
|
|
|
|
* Makefile.am (kbxutil_LDADD): Add ../common/libcommon.a
|
|
|
|
|
|
|
|
* keybox-defs.h: Include stringhelp.h.
|
|
|
|
|
2004-09-30 16:34:34 +02:00
|
|
|
2004-09-30 Werner Koch <wk@g10code.com>
|
|
|
|
|
2004-09-30 23:37:11 +02:00
|
|
|
* kbxutil.c (i18n_init): Always use LC_ALL.
|
|
|
|
|
|
|
|
* Makefile.am: Adjusted for gettext 0.14.
|
2004-09-30 16:34:34 +02:00
|
|
|
|
2004-08-24 21:55:47 +02:00
|
|
|
2004-08-24 Werner Koch <wk@g10code.de>
|
|
|
|
|
|
|
|
* kbxutil.c: New command --import-openpgp.
|
|
|
|
(main): Updated libgcrypt initialization stuff.
|
|
|
|
(my_gcry_logger): New.
|
|
|
|
(read_file): New. Taken from ../agent/protect-tool.
|
|
|
|
(dump_fpr, dump_openpgp_key, import_openpgp): New.
|
|
|
|
|
|
|
|
* keybox-openpgp.c: New.
|
|
|
|
|
2004-06-18 11:53:56 +02:00
|
|
|
2004-06-18 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-dump.c (_keybox_dump_file): New arg STATS_ONLY.
|
|
|
|
(update_stats): New.
|
|
|
|
* kbxutil.c (main): New command --stats.
|
|
|
|
|
2004-04-26 10:09:25 +02:00
|
|
|
2004-04-23 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-blob.c (_keybox_update_header_blob): New.
|
|
|
|
* keybox-update.c (blob_filecopy): Handle header blob.
|
|
|
|
* keybox-file.c (_keybox_read_blob2): New. Moved code from
|
2011-02-04 12:57:53 +01:00
|
|
|
_keybox_read_blob to there.
|
2004-04-26 10:09:25 +02:00
|
|
|
* keybox-dump.c (dump_header_blob): Print header info.
|
|
|
|
|
|
|
|
2004-04-21 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (_keybox_get_flag_location): Add flag
|
|
|
|
KEYBOX_FLAG_CREATED_AT.
|
|
|
|
* keybox-update.c (keybox_compress): New.
|
|
|
|
|
2011-02-04 12:57:53 +01:00
|
|
|
* keybox-search.c (get32, get16, blob_get_type)
|
|
|
|
(blob_get_blob_flags, has_short_kid, has_long_kid)
|
|
|
|
(has_fingerprint, has_issuer, has_issuer_sn, has_sn, has_subject)
|
2004-04-26 10:09:25 +02:00
|
|
|
(has_subject_or_alt, has_mail): inline them.
|
2011-02-04 12:57:53 +01:00
|
|
|
|
2004-04-26 10:09:25 +02:00
|
|
|
* keybox-update.c (blob_filecopy): Fixed an error/eof check
|
|
|
|
(s/if(fread)/if(nread)/).
|
|
|
|
|
|
|
|
* keybox-dump.c (_keybox_dump_blob): Really print the timestamps.
|
|
|
|
|
2004-04-20 16:16:55 +02:00
|
|
|
2004-04-20 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-defs.h: Include jnlib/types.h and remove our own
|
|
|
|
definitions for byte.u16 and u32.
|
|
|
|
|
2004-02-02 18:09:35 +01:00
|
|
|
2004-02-02 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox.h (keybox_flag_t): New.
|
|
|
|
* keybox-search.c (get_flag_from_image, keybox_get_flags): New.
|
|
|
|
(_keybox_get_flag_location): New.
|
|
|
|
|
2003-11-12 16:17:44 +01:00
|
|
|
2003-11-12 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
Adjusted for API changes in Libksba.
|
|
|
|
|
|
|
|
* keybox-blob.c: Include time.h
|
|
|
|
|
2003-06-05 09:14:21 +02:00
|
|
|
2003-06-03 Werner Koch <wk@gnupg.org>
|
2011-02-04 12:57:53 +01:00
|
|
|
|
2003-06-05 09:14:21 +02:00
|
|
|
Changed all error codes in all files to the new libgpg-error scheme.
|
|
|
|
|
|
|
|
* keybox-defs.h: Include gpg-error.h .
|
2011-02-04 12:57:53 +01:00
|
|
|
(KeyboxError): Removed.
|
2003-06-05 09:14:21 +02:00
|
|
|
* Makefile.am: Removed keybox-error.c stuff.
|
|
|
|
|
|
|
|
2002-11-14 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_cmp_name) <compare all names>: Fixed
|
2011-02-04 12:57:53 +01:00
|
|
|
length compare; there is no 0 stored since nearly a year.
|
2003-06-05 09:14:21 +02:00
|
|
|
|
|
|
|
2002-10-31 Neal H. Walfield <neal@g10code.de>
|
|
|
|
|
|
|
|
* Makefile.am (AM_CPPFLAGS): Fix ytpo.
|
|
|
|
|
|
|
|
2002-08-10 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_cmp_fpr_part): New.
|
|
|
|
(has_short_kid, has_long_kid): Implemented.
|
|
|
|
|
|
|
|
2002-07-22 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-defs.h: New BLOBTYPTE_EMPTY.
|
|
|
|
* keybox-dump.c (_keybox_dump_blob): Handle new type.
|
|
|
|
* keybox-file.c (_keybox_read_blob): Skip over empty blobs. Store
|
|
|
|
the file offset.
|
|
|
|
* keybox-blob.c (_keybox_new_blob): Add new arg OFF.
|
|
|
|
(_keybox_get_blob_fileoffset): New.
|
|
|
|
* keybox-update.c (keybox_delete): Implemented.
|
|
|
|
|
|
|
|
2002-06-19 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-init.c (keybox_set_ephemeral): New.
|
|
|
|
* keybox-blob.c (create_blob_header): Store ephemeral flag.
|
|
|
|
(_keybox_create_x509_blob): Pass epheermal flag on.
|
|
|
|
* keybox-update.c (keybox_insert_cert): Ditto.
|
|
|
|
* keybox-search.c (blob_get_blob_flags): New.
|
|
|
|
(keybox_search): Ignore ephemeral blobs when not in ephemeral mode.
|
|
|
|
|
|
|
|
* keybox-dump.c (_keybox_dump_blob): Print blob flags as strings.
|
|
|
|
|
|
|
|
2002-02-25 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_cmp_mail): Use case-insensitive compare
|
|
|
|
because mail addresses are in general case insensitive (well
|
|
|
|
RFC2822 allows for case sensitive mailbox parts, but this is in
|
|
|
|
general considired a Bad Thing). Add additional substr parameter
|
|
|
|
to allow for substring matches within the mail address. Change
|
|
|
|
all callers to pass this along.
|
|
|
|
(blob_cmp_name): Likewise but do the case-insensitive search only
|
|
|
|
in sub string mode.
|
|
|
|
(keybox_search): Implement MAILSUB and SUBSTR mode.
|
|
|
|
|
|
|
|
2002-01-21 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (keybox_search): Allow KEYDB_SEARCH_MODE_FPR20.
|
|
|
|
|
|
|
|
2002-01-15 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_cmp_fpr): New.
|
|
|
|
(has_fingerprint): Implemented;
|
|
|
|
|
|
|
|
2001-12-20 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-blob.c (_keybox_create_x509_blob): Skip the leading
|
|
|
|
parenthesis of the serial number's S-exp.
|
|
|
|
(_keybox_create_x509_blob): And fixed length calculation.
|
|
|
|
(create_blob_header): Don't add an offset when writing the serial.
|
|
|
|
|
|
|
|
2001-12-18 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* Makefile.am (AM_CPPFLAGS): Add flags for libksba
|
|
|
|
|
|
|
|
* keybox-blob.c (_keybox_create_x509_blob): Use
|
|
|
|
gcry_sexp_canon_len to get the length of the serial number.
|
|
|
|
(_keybox_release_blob): Need to use a new serialbuf to free the memory.
|
|
|
|
|
|
|
|
2001-12-17 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c: Changed the way the serial number is
|
|
|
|
represented.
|
|
|
|
|
|
|
|
2001-12-15 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_cmp_name): There is no terminating 0 stored
|
|
|
|
for the uid; fixed length compare.
|
|
|
|
|
|
|
|
2001-12-14 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-blob.c (x509_email_kludge): New.
|
|
|
|
(_keybox_create_x509_blob): Insert an extra email address if the
|
|
|
|
subject's DN has an email part.
|
|
|
|
* keybox-defs.h: Added the xtoi_2 and digitp macros.
|
|
|
|
|
|
|
|
2001-12-13 Werner Koch <wk@gnupg.org>
|
|
|
|
|
|
|
|
* keybox-search.c (blob_cmp_name): Kludge to allow searching for
|
|
|
|
more than one name.
|
|
|
|
(has_subject_or_alt): New.
|
|
|
|
(blob_cmp_mail): New.
|
|
|
|
(has_mail): New.
|
|
|
|
(keybox_search): Implemented exact search and exact mail search.
|
|
|
|
|
|
|
|
* kbx/keybox-blob.c (_keybox_create_x509_blob): Insert alternate
|
|
|
|
names.
|
|
|
|
|
|
|
|
|
2008-04-01 17:08:57 +02:00
|
|
|
Copyright 2001, 2002, 2003, 2004, 2005, 2006,
|
|
|
|
2007, 2008 Free Software Foundation, Inc.
|
2003-06-05 09:14:21 +02:00
|
|
|
|
|
|
|
This file is free software; as a special exception the author gives
|
|
|
|
unlimited permission to copy and/or distribute it, with or without
|
|
|
|
modifications, as long as this notice is preserved.
|
|
|
|
|
|
|
|
This file is distributed in the hope that it will be useful, but
|
|
|
|
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|