* keygen.c (do_add_key_flags): Don't set the certify flag for subkeys.
[gnupg.git] / g10 / ChangeLog
index 4b6ea0c..cb1ece7 100644 (file)
@@ -1,3 +1,574 @@
+2003-07-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (do_add_key_flags): Don't set the certify flag for
+       subkeys.
+       (ask_algo): Provide key flags for DSA, Elgamal_e, and Elgamal
+       subkeys.
+       (generate_keypair): Provide key flags for the default DSA/Elgamal
+       keys.
+
+       * sig-check.c (signature_check, signature_check2,
+       check_key_signature, check_key_signature2): Allow passing NULLs
+       for unused parameters in the x2 form of each function to avoid the
+       need for dummy variables. getkey.c, mainproc.c: Change all
+       callers.
+
+       * trustdb.h, trustdb.c (read_trust_options): New.  Returns items
+       from the trustdb version record.
+
+       * keylist.c (public_key_list): Use it here for the new "tru"
+       record.
+
+       * gpgv.c (read_trust_options): Stub.
+
+2003-07-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Use list-option
+       show-validity in --edit-key interface as well.
+
+2003-07-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
+       verify-options "show-validity" and "show-long-keyid" to show
+       trustdb validity and long keyids during (file) signature
+       verification.
+
+       * packet.h, main.h, sig-check.c (signature_check2,
+       check_key_signature2, do_check): If ret_pk is set, fill in the pk
+       used to verify the signature.  Change all callers in getkey.c,
+       mainproc.c, and sig-check.c.
+
+       * keylist.c (list_keyblock_colon): Use the ret_pk from above to
+       put the fingerprint of the signing key in "sig" records during a
+       --with-colons --check-sigs.  This requires --no-sig-cache as well
+       since we don't cache fingerprints.
+
+2003-07-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * parse-packet.c (parse_signature): No need to reserve 8 bytes for
+       the unhashed signature cache any longer.
+
+       * misc.c (pct_expando): Add two new expandos - signer's
+       fingerprint (%g), and signer's primary fingerprint (%p).
+
+       * Makefile.am: Include W32LIBS where appropriate.
+
+       * g10.c (main): Add --rfc2440 alias for --openpgp since in a few
+       months, they won't be the same thing.
+
+       * keyserver.c (parse_keyserver_uri): Accept "http" as an alias for
+       "hkp", since it is occasionally written that way.
+       (keyserver_spawn): Use ascii_isspace to avoid locale issues.
+
+       * keygen.c (ask_user_id): Make --allow-freeform-uid apply to the
+       email field as well as the name field, and allow mixing fields
+       when it is set.
+
+       * options.skel: Use subkeys.pgp.net as the default keyserver.
+
+       * trustdb.c (validate_one_keyblock): Certifications on revoked or
+       expired uids do not count in the web of trust.
+
+       * signal.c (init_one_signal, pause_on_sigusr, do_block): Only use
+       sigprocmask() if we have sigset_t, and only use sigaction() if we
+       have struct sigaction.  This is for Forte c89 on Solaris which
+       seems to define only the function call half of the two pairs by
+       default.
+       (pause_on_sigusr): Typo.
+       (do_block): If we can't use sigprocmask() and sigset_t, try to get
+       the number of signals from NSIG as well as MAXSIG, and if we
+       can't, fail with an explanation.
+
+       * signal.c, tdbio.c: Comment out the transaction code.  It was not
+       used in this version, and was causing some build problems on
+       quasi-posix platforms (Solaris and Forte c89).
+
+       * keylist.c (list_keyblock_colon): Don't include validity values
+       when listing secret keys since they can be incorrect and/or
+       misleading.  This is a temporary kludge, and will be handled
+       properly in 1.9/2.0.
+
+       * mainproc.c (check_sig_and_print): Only show the "key available
+       from" preferred keyserver line if the key is not currently
+       present.
+
+       * keyedit.c (sign_uids): Do not sign expired uids without --expert
+       (same behavior as revoked uids).  Do not allow signing a user ID
+       without a self-signature.  --expert overrides.  Add additional
+       prompt to the signature level question.
+       (menu_expire): When changing expiration dates, don't replace
+       selfsigs on revoked uids since this would effectively unrevoke
+       them. There is also no point in replacing expired selfsigs.  This
+       is bug #181
+
+2003-07-10  David Shaw  <dshaw@jabberwocky.com> (from Werner on stable branch)
+
+       * g10.c (add_notation_data): Make sure that only ascii is passed
+       to iscntrl.  Noted by Christian Biere.
+       * getkey.c (classify_user_id2): Replaced isspace by spacep
+       * keygen.c (ask_user_id): Ditto.
+       (get_parameter_algo): Ditto.
+       * keyedit.c (keyedit_menu): Ditto.
+       * tdbdump.c (import_ownertrust): Ditto.  s/isxdigit/hexdigitp/.
+       * revoke.c (ask_revocation_reason): 
+       * keyserver.c (keyserver_spawn): Dito.
+
+2003-06-10  Werner Koch  <wk@gnupg.org>
+
+       * parse-packet.c (parse): Disallow old style partial length for
+       all key material packets to avoid possible corruption of keyrings.
+
+2003-06-08  Werner Koch  <wk@gnupg.org>
+
+       * import.c (import_keys_internal): Invalidate the cache so that
+       the file descriptor gets closed.  Fixes bug reported by Juan
+       F. Codagnone.
+
+2003-06-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.skel: Use new hkp://subkeys.pgp.net as sample keyserver
+       since they at least handle subkeys correctly.
+
+       * options.h, g10.c (main), main.h, keylist.c (show_keyserver_url),
+       mainproc.c (check_sig_and_print), parse-packet.c (dump_sig_subpkt,
+       parse_one_sig_subpkt, can_handle_critical): Add read-only support
+       for preferred keyserver subpackets.  They're basically policy URLs
+       with a different name.  Add a verify-option
+       "show-preferred-keyserver" to turn them on and off (on by default,
+       as per stable branch).
+
+       * g10.c (main): Add "--set-notation" as alias to "--notation-data"
+       this is to make things consistent with --set-policy-url meaning
+       both sigs and certs.
+
+2003-06-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
+       "show-validity" and "show-long-keyid" list-options.
+
+       * gpgv.c (get_validity, trust_value_to_string): Stubs.
+
+       * g10.c (main): Use SAFE_VERSION instead of VERSION in the
+       version-specific gpg.conf file so it can be overridden on RISCOS.
+
+2003-06-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main), keylist.c (show_policy_url, show_notation),
+       mainproc.c (check_sig_and_print): Emulate the old policy and
+       notation behavior (display by default).  Send to status-fd whether
+       it is displayed on the screen or not.
+
+       * g10.c (main): Since we now have some options in devel that won't
+       work in a stable branch gpg.conf file, try for a version-specific
+       gpg.conf-VERSION file before falling back to gpg.conf.
+
+       * main.h, options.h: Move various option flags to options.h.
+
+2003-05-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (check_sig_and_print), main.h, keylist.c
+       (show_policy, show_notation): Collapse the old print_notation_data
+       into show_policy() and show_notation() so there is only one
+       function to print notations and policy URLs.
+
+       * options.h, main.h, g10.c (main), keyedit.c
+       (print_and_check_one_sig), keylist.c (list_one,
+       list_keyblock_print), pkclist.c (do_edit_ownertrust), sign.c
+       (mk_notation_and_policy): New "list-options" and "verify-options"
+       commands.  These replace the existing
+       --show-photos/--no-show-photos,
+       --show-notation/--no-show-notation,
+       --show-policy-url/--no-show-policy-url, and --show-keyring
+       options.  The new method is more flexible since a user can specify
+       (for example) showing photos during sig verification, but not in
+       key listings.  The old options are emulated.
+
+       * main.h, misc.c (parse_options): New general option line
+       parser. Fix the bug in the old version that did not handle report
+       syntax errors after a valid entry.
+
+       * import.c (parse_import_options), export.c
+       (parse_export_options): Call it here instead of duplicating the
+       code.
+
+2003-05-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * keylist.c (list_one): Don't show the keyring filename when in
+       --with-colons mode.  Actually translate "Keyring" string.
+
+       * mainproc.c (proc_tree): We can't currently handle multiple
+       signatures of different classes or digests (we'd pretty much have
+       to run a different hash context for each), but if they are all the
+       same, make an exception.  This is Debian bug #194292.
+
+       * sig-check.c (check_key_signature2): Make string translatable.
+
+       * packet.h, getkey.c (fixup_uidnode): Mark real primary uids
+       differently than assumed primaries.
+
+       * keyedit.c (no_primary_warning): Use the differently marked
+       primaries here in a new function to warn when an --edit-key
+       command might rearrange the self-sig dates enough to change which
+       uid is primary.
+       (menu_expire, menu_set_preferences): Use no_primary_warning()
+       here.
+
+       * Makefile.am: Use @DLLIBS@ for -ldl.
+
+2003-05-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (premerge_public_with_secret): Made "no secret subkey
+       for" warning a verbose item and translatable. (From wk on stable
+       branch)
+
+       * sig-check.c (check_key_signature2): Made "no subkey for subkey
+       binding packet" a verbose item instead of a !quiet one.  There are
+       too many garbled keys out in the wild. (From wk on stable branch)
+
+       * filter.h: Remove const from WHAT. (From wk on stable branch)
+
+       * progress.c (handle_progress): Store a copy of
+       NAME. (progress_filter): Release WHAT, make sure not to print a
+       NULL WHAT. (From wk on stable branch)
+
+       * openfile.c (open_sigfile): Adjust free for new progress
+       semantics. (From wk on stable branch)
+
+       * plaintext.c (ask_for_detached_datafile): Don't dealloc
+       pfx->WHAT. (From wk on stable branch)
+
+       * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the
+       cipher algo is IDEA to make it easier to track down the
+       problem. (From twoaday on stable branch)
+       
+2003-05-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c,
+       build-packet.c, getkey.c, keydb.c, openfile.c, plaintext.c,
+       status.c, gpgv.c, keygen.c, options.h, sig-check.c, tdbio.h,
+       encode.c, mainproc.c, parse-packet.c, signal.c, textfilter.c: Edit
+       all preprocessor instructions to remove whitespace before the '#'.
+       This is not required by C89, but there are some compilers out
+       there that don't like it.
+
+2003-05-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename
+       is_disabled to cache_disabled_value, which now takes a pk and not
+       just the keyid. This is for speed since there is no need to
+       re-fetch a key when we already have that key handy.  Cache the
+       result of the check so we don't need to hit the trustdb more than
+       once.
+       
+       * getkey.c (skip_disabled): New function to get a pk and call
+       is_disabled on it. (key_byname): Use it here.
+       
+       * packet.h, getkey.c (skip_disabled), keylist.c
+       (print_capabilities): New "pk_is_disabled" macro to retrieve the
+       cached disabled value if available, and fill it in via
+       cache_disabled_value if not available.
+
+       * trustdb.c (get_validity): Cache the disabled value since we have
+       it handy and it might be useful later.
+
+       * parse-packet.c (parse_key): Clear disabled flag when parsing a
+       new key.  Just in case someone forgets to clear the whole key.
+
+       * getkey.c (merge_selfsigs_main): Add an "if all else fails" path
+       for setting a single user ID primary when there are multiple set
+       primaries all at the same second, or no primaries set and the most
+       recent user IDs are at the same second, or no signed user IDs at
+       all. This is arbitrary, but deterministic.
+
+       * exec.h, photoid.h: Add copyright message.
+
+       * keylist.c (list_keyblock_print): Don't dump attribs for
+       revoked/expired/etc uids for non-colon key listings.  This is for
+       consistency with --show-photos.
+
+       * main.h, keylist.c (dump_attribs), mainproc.c
+       (check_sig_and_print): Dump attribs if --attrib-fd is set when
+       verifying signatures.
+       
+       * g10.c (main): New --gnupg option to disable the various
+       --openpgp, --pgpX, etc. options.  This is the same as --no-XXXX
+       for those options.
+
+       * revoke.c (ask_revocation_reason): Clear old reason if user
+       elects to repeat question.  This is bug 153.
+
+       * keyedit.c (sign_uids): Show keyid of the key making the
+       signature.
+
+2003-05-21  Werner Koch  <wk@gnupg.org>
+
+       * progress.c (handle_progress)
+       * sign.c (write_plaintext_packet)
+       * encode.c (encode_simple,encode_crypt): Make sure that a filename
+       of "-" is considered to be stdin so that iobuf_get_filelength
+       won't get called.  This fixes bug 156 reported by Gregery Barton.
+
+2003-05-02  David Shaw  <dshaw@jabberwocky.com>
+
+       * packet.h, build-packet.c (build_sig_subpkt), export.c
+       (do_export_stream), import.c (remove_bad_stuff, import),
+       parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt): Remove
+       vestigal code for the old sig cache subpacket.  This wasn't
+       completely harmless as it caused subpacket 101 to disappear on
+       import and export.
+
+       * options.h, armor.c, cipher.c, g10.c, keyedit.c, pkclist.c,
+       sign.c, encode.c, getkey.c, revoke.c: The current flags for
+       different levels of PGP-ness are massively complex.  This is step
+       one in simplifying them. No functional change yet, just use a
+       macro to check for compliance level.
+
+       * sign.c (sign_file): Fix bug that causes spurious compression
+       preference warning.
+
+       * sign.c (clearsign_file): Fix bug that prevents proper warning
+       message from appearing when clearsigning in --pgp2 mode with a
+       non-v3 RSA key.
+
+       * main.h, misc.c (compliance_option_string, compliance_string,
+       compliance_failure), pkclist.c (build_pk_list), sign.c (sign_file,
+       clearsign_file), encode.c (encode_crypt,
+       write_pubkey_enc_from_list): New functions to put the "this
+       message may not be usable...." warning in one place.
+
+       * options.h, g10.c (main): Part two of the simplification.  Use a
+       single enum to indicate what we are compliant to (1991, 2440,
+       PGPx, etc.)
+
+       * g10.c (main): Show errors for failure in export, send-keys,
+       recv-keys, and refresh-keys.
+
+       * options.h, g10.c (main): Give algorithm warnings for algorithms
+       chosen against the --pgpX and --openpgp rules.
+
+       * keydb.h, pkclist.c (algo_available): Make TIGER192 invalid in
+       --openpgp mode.
+
+       * sign.c (sign_file), pkclist.c (algo_available): Allow passing a
+       hint of 0.
+
+2003-05-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * tdbio.c (create_version_record): Only create new trustdbs with
+       TM_CLASSIC or TM_PGP.
+
+       * trustdb.h, trustdb.c (trust_string, get_ownertrust_string,
+       get_validity_string, ask_ownertrust, validate_keys), pkclist.c
+       (do_edit_ownertrust): Rename trust_string to trust_value_to_string
+       for naming consistency.
+
+       * trustdb.h, trustdb.c (string_to_trust_value): New function to
+       translate a string to a trust value.
+
+       * g10.c (main): Use string_to_trust_value here for
+       --force-ownertrust.
+       
+       * options.h, g10.c (main), trustdb.c (trust_model_string,
+       init_trustdb, check_trustdb, update_trustdb, get_validity,
+       validate_one_keyblock): An "OpenPGP" trust model is misleading
+       since there is no official OpenPGP trust model.  Use "PGP"
+       instead.
+
+2003-04-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * build-packet.c (build_sig_subpkt): Comments.
+
+       * exec.c (exec_write): Cast NULL to void* to properly terminate
+       varargs list.
+
+       * keyedit.c (show_key_with_all_names): Just for safety, catch an
+       invalid pk algorithm.
+
+       * sign.c (make_keysig_packet): Crucial that the call to mksubpkt
+       comes LAST before the calls to finalize the sig as that makes it
+       possible for the mksubpkt function to get a reliable pointer to
+       the subpacket area.
+
+       * pkclist.c (do_we_trust_pre): If an untrusted key was chosen by a
+       particular user ID, use that ID as the one to ask about when
+       prompting whether to use the key anyway.
+       (build_pk_list): Similar change here when adding keys to the
+       recipient list.
+
+       * trustdb.c (update_validity): Fix bug that prevented more than
+       one validity record per trust record.
+       (get_validity): When retrieving validity for a (user) supplied
+       user ID, return the validity for that user ID only, and do not
+       fall back to the general key validity.
+       (validate_one_keyblock): Some commentary on whether
+       non-self-signed user IDs belong in the web of trust (arguably,
+       they do).
+
+2003-04-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --no-textmode.
+
+       * export.c (do_export_stream), keyedit.c (show_key_with_all_names,
+       menu_addrevoker), mainproc.c (check_sig_and_print), photoid.c
+       (show_photos), sign.c (mk_notation_and_policy), trustdb.c
+       (get_validity, reset_trust_records, validate_keys): Make some
+       strings translatable.
+
+       * mainproc.c (check_sig_and_print): Show digest algorithm and sig
+       class when verifying a sig with --verbose on, and add version, pk
+       and hash algorithms and sig class to VALIDSIG.
+       
+       * parse-packet.c (enum_sig_subpkt): Make a warning message a
+       --verbose warning message since we don't need to warn every time
+       we see an unknown critical (we only need to invalidate the
+       signature).
+
+       * trustdb.c (init_trustdb): Check the trustdb options even with
+       TM_AUTO since the auto may become TM_CLASSIC or TM_OPENPGP.
+
+2003-04-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (do_sign): Show the hash used when making a signature in
+       verbose mode.
+
+       * tdbio.h, tdbio.c (tdbio_read_model): New function to return the
+       trust model used in a given trustdb.
+
+       * options.h, g10.c (main), trustdb.c (init_trustdb, check_trustdb,
+       update_trustdb): Use tdbio_read_model to implement an "auto" trust
+       model which is set via the trustdb.
+
+2003-04-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_revoke_cert): Remove ultimate trust when
+       revoking an ultimately trusted key.
+
+       * keyedit.c (sign_uids): Allow replacing expired signatures.
+       Allow duplicate signatures with --expert.
+
+       * pkclist.c (check_signatures_trust): Don't display a null
+       fingerprint when checking a signature with --always-trust enabled.
+
+       * filter.h (progress_filter_context_t), progress.c
+       (handle_progress), plaintext.c (ask_for_detached_datafile,
+       hash_datafiles): Fix compiler warnings.  Make "what" constant.
+
+       * build-packet.c (do_plaintext): Do not create invalid literal
+       packets with >255-byte names.
+
+2003-04-15  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (AM_CFLAGS): Make use of AM_CFLAGS and AM_LDFLAGS.
+
+       * g10.c, options.h: New option --enable-progress-filter.
+       * progress.c (handle_progress): Make use of it.
+
+2003-04-15  Marcus Brinkmann  <marcus@g10code.de>
+
+       * progress.c: New file.
+       * Makefile.am (common_source): Add progress.c.
+       * filter.h (progress_filter_context_t): New type.
+       (progress_filter, handle_progress): New prototypes.
+       * main.h (open_sigfile): New argument for prototype.
+       * openfile.c (open_sigfile): New argument to install progress
+       filter.
+       * encode.c (encode_simple): New variable PFX.  Register
+       progress filter.  Install text_filter after that.
+       (encode_crypt): Likewise.
+       * sign.c (sign_file): Likewise.
+       (clearsign_file): Likewise.
+       * decrypt.c (decrypt_message): Likewise.
+       (decrypt_messages): Likewise.
+       * verify.c (verify_signatures): Likewise.
+       (verify_one_file): Likewise.
+       * plaintext.c (hash_datafiles): Likewise.
+       (ask_for_detached_datafile): Likewise.
+
+2003-04-10  Werner Koch  <wk@gnupg.org>
+
+       * passphrase.c (read_passphrase_from_fd): Do a dummy read if the
+       agent is to be used.  Noted by Ingo Klöcker.
+       (agent_get_passphrase): Inhibit caching when we have no
+       fingerprint.  This is required for key generation as well as for
+       symmetric only encryption.
+
+       * passphrase .c (agent_get_passphrase): New arg CANCELED.
+       (passphrase_to_dek): Ditto.  Passed to above.  Changed all
+       callers to pass NULL.
+       * seckey-cert.c (do_check): New arg CANCELED.
+       (check_secret_key): Terminate loop when canceled.
+
+       * keyedit.c (change_passphrase): Pass ERRTEXT untranslated to
+       passphrase_to_dek and translate where appropriate.
+       * seckey-cert.c (check_secret_key): Ditto.
+       * keygen.c (ask_passphrase): Ditto.
+       * passphrase.c (agent_get_passphrase): Translate the TRYAGAIN_TEXT.
+       Switch the codeset to utf-8.
+
+2003-04-09  Werner Koch  <wk@gnupg.org>
+
+       * decrypt.c (decrypt_messages): Fixed error handling; the function
+       used to re-loop with same file after an error.  Reported by Joseph
+       Walton.
+
+2003-04-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, g10.c (main), import.c (parse_import_options,
+       fix_pks_corruption): It's really PKS corruption, not HKP
+       corruption.  Keep the old repair-hkp-subkey-bug command as an
+       alias.
+
+       * g10.c (main): Rename --no-version to --no-emit-version for
+       consistency.  Keep --no-version as an alias.
+
+2003-04-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.
+
+       * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove
+       unused code.
+
+2003-04-01  Werner Koch  <wk@gnupg.org>
+
+       * mainproc.c (check_sig_and_print): Add primary key fpr to VALIDSIG
+       status.
+
+2003-03-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h: Err on the side of making an unknown signature a SIG
+       rather than a CERT.
+
+       * import.c (delete_inv_parts): Discard any key signatures that
+       aren't key types (i.e. 0x00, 0x01, etc.)
+
+       * g10.c (main): Add deprecated option warning for
+       --list-ownertrust.  Add --compression-algo alias for
+       --compress-algo.  Change --version output strings to match
+       "showpref" strings, and make translatable.
+
+       * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
+       --command-fd boolean input.
+
+       * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
+
+       * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
+       flag.
+
+2003-03-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
+       keyserver option.  Defaults to on.
+
+       * passphrase.c (agent_get_passphrase): Fix memory leak with
+       symmetric messages.  Fix segfault with symmetric messages.  Fix
+       incorrect prompt with symmetric messages.
+
+2003-03-10  Werner Koch  <wk@gnupg.org>
+
+       * compress.c (init_uncompress): Use a 15 bit window size so that
+       the output of implementations which don't run for PGP 2
+       compatibility won't get garbled.
+
 2003-03-04  David Shaw  <dshaw@jabberwocky.com>
 
        * trustdb.c (validate_keys): Mask the ownertrust when building the