aboutsummaryrefslogtreecommitdiffstats
path: root/g10/trustdb.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* * options.h, gpg.c (main, parse_trust_model), pkclist.cDavid Shaw2006-03-071-6/+1
| | | | | | | (check_signatures_trust), mainproc.c (check_sig_and_print, pka_uri_from_sig), trustdb.c (init_trustdb): Some tweaks to PKA so that it is a verify-option now.
* Finished PKA featureWerner Koch2005-12-201-2/+8
|
* Some cleanup so we don't build files that are completely ifdeffed out. David Shaw2005-12-061-1/+1
| | | | | | This causes a warning on Sun's cc. Do the internal regex code as well for consistency.
* * keyedit.c (keyedit_menu, menu_clean): Simplify clean options to justDavid Shaw2005-11-181-26/+20
| | | | | | | | | | | | | | "clean", and add "minimize". * import.c (parse_import_options): Make help text match the export versions of the options. * options.h, export.c (parse_export_options, do_export_stream): Reduce clean options to two: clean and minimize. * trustdb.h, trustdb.c (clean_one_uid): New function that joins uid and sig cleaning into one for a simple API outside trustdb.
* * trustdb.h, trustdb.c (clean_key): New function to handle keyDavid Shaw2005-11-121-8/+40
| | | | | | | | | | | cleaning from one convenient place. * options.h, import.c (parse_import_options, clean_sigs_from_all_uids, import_one): Reduce clean options to two: clean and minimize. * parse-packet.c (setup_user_id): Remove. (parse_user_id, parse_attribute): Just use xmalloc_clear instead.
* * trustdb.c (clean_uid_from_key, clean_uids_from_key): SignificantlyDavid Shaw2005-11-121-66/+49
| | | | | simpler implementation.
* * keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add "minimize"David Shaw2005-11-101-2/+0
| | | | | command.
* * packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.cDavid Shaw2005-11-101-9/+6
| | | | | | (clean_uids_from_key): Fix display bug where sigs cleaned for other reasons caused a uid to appear as if it had been compacted.
* * trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove allDavid Shaw2005-11-101-3/+9
| | | | | | | | non-selfsigs from key during cleaning. Change all callers. * export.c (do_export_stream): Use it here so we don't need additional minimize code in the export path.
* * trustdb.c (clean_sigs_from_uid): Include sigs from unavailable keys inDavid Shaw2005-11-021-5/+11
| | | | | the sigs that are cleaned. Suggested by Dirk Traulsen and many others.
* * import.c (import_one): Do collapse_uids() before we do any cleaningDavid Shaw2005-11-021-2/+7
| | | | | | | | | | | | | | | so keyserver mangled keys with doubled user IDs can be properly cleaned - possibly sigs on the different user IDs cancel each other out. * import.c (parse_import_options), export.c (parse_export_options): List "xxx-clean" before the longer options so we don't end up with a partial match on the longer options. * trustdb.c (clean_uids_from_key): Return proper number of cleaned user IDs. Don't count user IDs as cleaned unless we actually delete something.
* Converted all m_free to xfree etc.Werner Koch2005-07-271-20/+20
|
* * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig aroundDavid Shaw2005-07-091-8/+4
| | | | | | | | | | | | | when compacting a uid. There is no reason to make an attacker's job easier - this way they only have a revocation which is useless in bringing the uid back. * keydb.h, kbnode.c (undelete_kbnode): Removed. No longer needed. * import.c (chk_self_sigs): Allow a uid revocation to be enough to allow importing a particular uid (no self sig needed). This allows importing compacted uids.
* * keygen.c (save_unprotected_key_to_card): Fix gcc4 warning.David Shaw2005-06-141-2/+6
| | | | | | | | | | * options.h, import.c (parse_import_options, import_one): Add import-clean-uids option to automatically compact unusable uids when importing. Like import-clean-sigs, this may nodify the local keyring. * trustdb.c (clean_uids_from_key): Only allow selfsigs to be a candidate for re-inclusion.
* * options.h, export.c (do_export_stream), keyedit.c (keyedit_menu,David Shaw2005-06-101-60/+0
| | | | | | | | | menu_clean_subkeys_from_key), trustdb.h, trustdb.c (clean_subkeys_from_key): Remove subkey cleaning function. It is of very limited usefulness since it cannot be used on any subkey that can sign, and can only affect multiple selfsigs on encryption-only subkeys.
* * keydb.h, kbnode.c (undelete_kbnode): New function to undelete aDavid Shaw2005-06-101-7/+34
| | | | | | | | kbnode. * trustdb.c (clean_uids_from_key): Further tweak the algorithm so that the last good selfsig is kept when the chosen selfsig is a revocation.
* * trustdb.c (clean_uids_from_key), keyedit.cDavid Shaw2005-06-091-15/+9
| | | | | | (menu_clean_uids_from_key): Tweak algorithm to preserve the last selfsig which helps prevent uid resurrections.
* * keyedit.c (menu_clean_uids_from_key, menu_clean_subkeys_from_key),David Shaw2005-05-311-2/+2
| | | | | | trustdb.c (clean_uids_from_key, clean_subkeys_from_key): Fix mingw32 build warnings. Noted by Joe Vender.
* Updated FSF street address and preparations for a release candidate.Werner Koch2005-05-311-1/+2
|
* * trustdb.h, trustdb.c (clean_subkeys_from_key): New. Walk throughDavid Shaw2005-05-311-8/+68
| | | | | | | | | | | | | the subkeys on a key, and mark any that aren't usable for deletion. Note that a signing subkey is never marked for deletion since these keys are still useful after expiration or revocation. * keyedit.c (menu_clean_subkeys_from_key): New function to call clean_subkeys_from_key() on a key. Note that the strings here are not marked for translation yet. The UI is still in flux, and there is no point in annoying the translators twice. (keyedit_menu): Call it here as part of the "clean" command.
* * trustdb.h, trustdb.c (clean_uids_from_key): New. Walk through theDavid Shaw2005-05-301-1/+74
| | | | | | | | | user IDs on a key, and mark any that aren't valid for deletion. * keyedit.c (menu_clean_uids_from_key): New function to call clean_uids_from_key() on a key. (keyedit_menu): Call it from here as part of the "clean" command.
* * trustdb.h, trustdb.c (mark_usable_uid_certs): Add flags for theDavid Shaw2005-04-241-16/+94
| | | | | | | | | | no-pubkey and chosen revocation cases. (clean_uid): New function to clean a user ID of unusable (as defined by mark_usable_uid_certs) certs. * keyedit.c (keyedit_menu, menu_clean_uids): Call it here for new "clean" command that removes unusable sigs from a key.
* * trustdb.h, trustdb.c (trustdb_check_or_update): New. If the trustdbDavid Shaw2005-02-061-0/+14
| | | | | | | | | | | | | | is dirty and --interactive is set, do an --update-trustdb. If not interactive, do a --check_trustdb unless --no-auto-check-trustdb is set. * import.c (import_keys_internal): Moved from here. * keyserver.c (keyserver_refresh): Call it here after all refreshing has happened so that we don't rebuild after each preferred keyserver set of imports, but do one big rebuild at the end. This is Debian bug #293816, noted by Kurt Roeckx.
* * apdu.c (apdu_send_le, apdu_send_direct), keylist.cDavid Shaw2004-12-151-2/+2
| | | | | | | | | | (status_one_subpacket, print_one_subpacket): Fix some compiler warnings. * g10.c (main): Fix --compression-algo to take a string argument like --compress-algo. * trustdb.c (uid_trust_string_fixed): For safety, check for a pk.
* * trustdb.c (uid_trust_string_fixed): Show uids as revoked if the key isDavid Shaw2004-12-141-3/+4
| | | | | | | | | | | | | revoked. * keyedit.c (show_key_with_all_names): Don't show validity for secret key UIDs. * keyedit.c (parse_sign_type): New. Figure out the flags (local, nonrevoke, trust) for a signature. (keyedit_menu): Call it here so we can mix and match flags, and don't need "nrltsign", "ltsign", "tnrsign", etc, etc, etc.
* * options.h, g10.c (main), textfilter.c (standard): Use --rfc2440 orDavid Shaw2004-12-111-0/+1
| | | | | | | | --openpgp directly to determine the end of line hashing rule. * trustdb.c (uid_trust_string_fixed): Show uids as expired if the key is expired.
* * trustdb.c (uid_trust_string_fixed): Use a string that can be atoi-ed,David Shaw2004-11-251-3/+4
| | | | | but also has a comment for the translator.
* * trustdb.h, trustdb.c (uid_trust_string_fixed): New. Return a fixed-sizeDavid Shaw2004-11-241-0/+28
| | | | | | | | | | | translatable string similar to trust_value_to_string. This allows for easier lining up of displays. * keyedit.c (show_key_with_all_names), keylist.c (list_keyblock_print): Use it here to print validity strings. * gpgv.c: Stub.
* * pkclist.c (do_edit_ownertrust): Different prompt when we're using directDavid Shaw2004-10-131-0/+9
| | | | | | | | | | | | | | trust since the meaning is different. * keyedit.c (trustsig_prompt): Change the strings to match the ones in pkclist.c:do_edit_ownertrust to make translation easier. * trustdb.c (trust_model_string, get_validity): Add direct trust model which applies to the key as a whole and not per-uid. * options.h, g10.c (parse_trust_model): New. (main): Call it from here to do string-to-trust-model.
* * pkclist.c (do_edit_ownertrust): Use the same translated string forDavid Shaw2004-10-111-4/+4
| | | | | | | | | | | | | | showing the user ID as mainproc.c:print_pkenc_list. * mainproc.c (print_pkenc_list): Allow translating the quotes around the user ID. * card-util.c, g10.c, photoid.c, trustdb.c: The last of the \"%s\" -> `%s' quoting for things that aren't user IDs. * keyserver.c (keyserver_spawn): If there is no keyserver host, print the whole URI since it is self-contained.
* some late minor fixes.V1-3-6Werner Koch2004-05-221-4/+4
|
* * trustdb.c (update_min_ownertrust, validate_keys): Do not use keystrDavid Shaw2004-03-191-4/+5
| | | | | | | | | | | | | | | functions in log_debug. * import.c (import_one): Try and collapse user IDs when importing a key for the first time. * keyedit.c (menu_addrevoker): Allow appointing a subkey as a designated revoker if the user forces it via keyid!, so long as the subkey can certify. Also use the proper date string when prompting for confirmation. * g10.c (main): Maintain ordering of multiple Comment lines. Requested by Peter Hyman.
* * trustdb.c (add_utk, verify_own_keys, update_min_ownertrust,David Shaw2004-03-151-31/+30
| | | | | get_validity, ask_ownertrust, validate_keys): --keyid-format conversion.
* * plaintext.c: Copyright.David Shaw2004-02-241-1/+1
| | | | | | | | | | | | | | * encode.c (encode_simple): Show cipher with --verbose. * options.h, g10.c (main), keyedit.c (sign_keys): Add --ask-cert-level option to enable cert level prompts during sigs. Defaults to on. Simplify --default-cert-check-level to --default-cert-level. If ask-cert-level is off, or batch is on, use the default-cert-level as the cert level. * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs): Simplify --min-cert-check-level to --min-cert-level.
* * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs): AddDavid Shaw2004-02-231-2/+5
| | | | | | --min-cert-check-level option to specify minimum cert check level. Defaults to 2 (so 0x11 sigs are ignored). 0x10 sigs cannot be ignored.
* * trustdb.c (reset_trust_records): New, faster, implementation thatDavid Shaw2004-01-211-86/+27
| | | | | doesn't involve a keyring scan. (clear_validity): Removed.
* * g10.c (main), keydb.h, keydb.c (keydb_rebuild_caches), keyring.h,David Shaw2004-01-201-0/+7
| | | | | | | | | | | keyring.c (keyring_rebuild_cache): Add "noisy" flag so cache rebuilds can remain noisy when called for itself, and quiet when called as part of the trustdb rebuild. * trustdb.c (validate_keys): Rebuild the sig caches before building the trustdb. Note that this is going to require some architectual re-thinking, as it is agonizingly slow.
* * trustdb.c (validate_keys): Reset the trustdb before checking if we haveDavid Shaw2003-11-301-4/+4
| | | | | | | | | | | | | | any ultimately trusted keys. This ensures that if we lose all our ultimately trusted keys, we don't leave behind the old validity calculations. Noted by Peter Palfrader. * revoke.c (gen_desig_revoke): Specify in the comment when a designated revocation is generated. * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey, get_seckey_byname2): Remove Elgamal check since we are removing type 20 keys altogether.
* * options.h, trustdb.c (trust_model_string, init_trustdb): Add support forDavid Shaw2003-11-151-7/+10
| | | | | | | | "external" trust model, where the user can provide a pregenerated trustdb. * keyedit.c (keyedit_menu): Do not allow editing ownertrust with an external trust model trustdb.
* * trustdb.h, trustdb.c (register_trusted_keyid): New. Adds a keyid to theDavid Shaw2003-11-011-9/+17
| | | | | | | | | | | | | | | | | | | | list of ultimately trusted keys. * keygen.c (do_generate_keypair): Use it here so that the ultimate ownertrust happens before the trustdb (might be) rebuilt. Also fix an error where the newly generated pk is thought to be a subkey by the trustdb. * g10.c (main): Fix --export-all do actually do something different than --export. * pkclist.c (build_pk_list): Show all recipients rather than showing each recipient as they are added. * mainproc.c (proc_symkey_enc, proc_encrypted): Keep a count of the number of passphrases that can decrypt a symmetric or mixed symmetric/pk message and include it in the list of keys shown to the user.
* * gpgv.c (check_trustdb_stale): Stub.David Shaw2003-09-301-40/+40
| | | | | | | | | | | | | | * trustdb.c (get_validity): Move the up-to-date check to check_trustdb_stale (new), so that it can be called before validity is checked. * keylist.c (list_keyblock_print): Disable the overall key validity display until it can be thought about more. Use check_trustdb_stale here to avoid putting the check warning in the middle of a listed key. * trustdb.c (init_trustdb): Only verify_own_keys() for those trust models that it applies to (i.e. classic and OpenPGP).
* * sign.c (mk_notation_policy_etc): Capitalize "URL".David Shaw2003-09-241-5/+7
| | | | | | | | | | * trustdb.c (validate_keys): Give a little more information while rebuilding trustdb. * pkclist.c (do_edit_ownertrust): Clarify "don't know". * g10.c (main): Default to --no-mangle-dos-filenames.
* * keydb.h, keyring.c (keyring_search), trustdb.c (search_skipfnc): ExpandDavid Shaw2003-09-231-1/+1
| | | | | | | | the skipfnc to include a pointer to the user ID that matched. * getkey.c (skip_disabled): Rename to skip_unusable, and add checks for expired or revoked user IDs.
* * keygen.c (do_add_key_flags): Don't set the certify flag for subkeys.David Shaw2003-07-211-1/+24
| | | | | | | | | | | | | | | | | | (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.
* * parse-packet.c (parse_signature): No need to reserve 8 bytes for theDavid Shaw2003-07-101-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 * 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.
* * trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): RenameDavid Shaw2003-05-211-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* * tdbio.c (create_version_record): Only create new trustdbs withDavid Shaw2003-05-011-17/+36
| | | | | | | | | | | | | | | | | | | | 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.
* * build-packet.c (build_sig_subpkt): Comments.David Shaw2003-04-301-11/+41
| | | | | | | | | | | | | | | | | | | | | | | | | * 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).
* * g10.c (main): Add --no-textmode.David Shaw2003-04-271-6/+8
| | | | | | | | | | | | | | | | | | | * 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.
* * sign.c (do_sign): Show the hash used when making a signature in verboseDavid Shaw2003-04-261-22/+33
| | | | | | | | | | | | 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.