aboutsummaryrefslogtreecommitdiffstats
path: root/g10/trustdb.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-03-04gpg: avoid chatter about trustdb when --quietDaniel Kahn Gillmor1-2/+4
* g10/trustdb.c (tdb_check_trustdb_stale): avoid log_info() when opt.quiet -- gpg(1) says: -q, --quiet Try to be as quiet as possible. While the mentions about the stale trustdb information are edifying, they aren't necessary, and shouldn't be emitted when the user requests --quiet. Signed-off-by: Daniel Kahn Gillmor <[email protected]>
2015-02-19gpg: Replace remaining uses of stdio by estream.Werner Koch1-10/+10
* g10/sign.c (sign_file): Use log_printf instead of stderr. * g10/tdbdump.c (export_ownertrust): Use estream fucntions. (import_ownertrust): Ditto. * g10/tdbio.c (tdbio_dump_record): Ditto. Change arg to estream_t. -- Reported-by: Guilhem Moulin <[email protected]> Needed for unattended key edits with --status-fd, because since 2.1 status prompts are preceded by es_fflush (in cpr.c:do_get_from_fd) not fflush(3), so the standard output may not be flushed before each prompt. (Which breaks scripts using select(2) to multiplex between the standard and status outputs.) His patch only affected print_and_check_one_sig_colon() but there are many more places where stdio and estream are mixed. This patch now replaces most of them in g10/. At some places stdio is still used, but that is local to a function and should not have side effects. Signed-off-by: Werner Koch <[email protected]>
2015-01-22gpg: Improve skipping of PGP-2 keys.Werner Koch1-1/+5
* g10/keydb.c (keydb_search_first, keydb_search_next): Skip legacy keys. * g10/keyring.c (keyring_get_keyblock): Handle GPG_ERR_LEGACY_KEY. (prepare_search): Ditto. (keyring_rebuild_cache): Skip legacy keys. * g10/keyserver.c (keyidlist): Ditto. * g10/trustdb.c (validate_key_list): Ditto. -- This is not the most elegant way to handle it but it reduces the chance for unwanted side effects. GnuPG-bug-id: 1816 Signed-off-by: Werner Koch <[email protected]>
2015-01-22gpg: Replace remaining old error code macros by GPG_ERR_.Werner Koch1-14/+14
* g10/gpg.h (g10_errstr): Remove macro and change all occurrences by gpg_strerror. (G10ERR_): Remove all macros and change all occurrences by their GPG_ERR_ counterparts. Signed-off-by: Werner Koch <[email protected]>
2014-03-07w32: Silence warnings about unused vars.Werner Koch1-0/+2
* agent/gpg-agent.c (main) [W32]: Mark unused vars. * sm/gpgsm.c (run_protect_tool) [W32]: Ditto. * g10/trustdb.c (check_regexp) [DISABLE_REGEX]: Ditto. * scd/scdaemon.c (main) [W32]: Ditto. (handle_connections) [W32]: Ditto. (handle_signal) [W32]: Do not build the function at all. * scd/apdu.c (pcsc_send_apdu_direct): Ditto. (connect_pcsc_card): s/long/pcsc_dword_t/. (open_pcsc_reader_direct): Remove var listlen.
2014-03-07gpg: Do not require a trustdb with --always-trust.Werner Koch1-14/+54
* g10/tdbio.c (tdbio_set_dbname): Add arg R_NOFILE. * g10/trustdb.c (trustdb_args): Add field no_trustdb. (init_trustdb): Set that field. (revalidation_mark): Take care of a nonexistent trustdb file. (read_trust_options): Ditto. (tdb_get_ownertrust): Ditto. (tdb_get_min_ownertrust): Ditto. (tdb_update_ownertrust): Ditto. (update_min_ownertrust): Ditto. (tdb_clear_ownertrusts): Ditto. (tdb_cache_disabled_value): Ditto. (tdb_check_trustdb_stale): Ditto. (tdb_get_validity_core): Ditto. * g10/gpg.c (main): Do not create a trustdb with most commands for trust-model always. -- This slightly changes the semantics of most commands in that they won't create a trustdb if --trust-model=always is used. It just does not make sense to create a trustdb if there is no need for it. Signed-off-by: Werner Koch <[email protected]> (cherry picked from commit 1a0eeaacd1bf09fe5125dbc3f56016bc20f3512e) Resolved conflicts: NEWS g10/trustdb.c: Manually apply changes due to changed function names. Note that this also includes the fix for clear_ownertrust, see GnuPG-bug-id: 1622.
2014-02-10gpg: Allow building without any trust model support.Werner Koch1-598/+32
* configure.ac: Add option --disable-trust-models (NO_TRUST_MODELS): New ac_define and am_conditional. * g10/Makefile.am (trust_source): New. (gpg2_SOURCES): Factor some files out to above. Add trust.c. * g10/gpg.c [NO_TRUST_MODELS]: Disable options --export-ownertrust, --import-ownertrust, --update-trustdb, --check-trustdb, --fix-trustdb, --list-trustdb, --trustdb-name, --auto-check-trustdb, --no-auto-check-trustdb, and --force-ownertrust. (parse_trust_model) [NO_TRUST_MODELS]: Do not build. (main) [NO_TRUST_MODELS]: Set trust_model to always and exclude all trustdb related option code. * g10/keyedit.c (cmds) [NO_TRUST_MODELS]: Remove menu items "trust", "enable", and "disable". * g10/keylist.c (public_key_list) [NO_TRUST_MODELS]: Do not print "tru" record. * g10/trust.c: New. * g10/trustdb.c (struct key_item): Move to trustdb.h. (register_trusted_keyid): Rename to tdb_register_trusted_keyid. (register_trusted_key): Rename to tdb_register_trusted_key. (trust_letter, uid_trust_string_fixed, trust_value_to_string) (string_to_trust_value, get_ownertrust_with_min, get_ownertrust_info) (get_ownertrust_string, get_validity_info, get_validity_string) (clean_sigs_from_uid, clean_uid_from_key, clean_key): Move to trust.c. (mark_usable_uid_certs): Move to trust.c and make global. (is_in_klist): Move as inline to trustdb.h. (trustdb_check_or_update): Rename to tdb_check_or_update (revalidation_mark): Rename to tdb_revalidation_mark. (get_ownertrust): Rename to tdb_get_ownertrust. (get_min_ownertrust): Rename to tdb_get_min_ownertrust. (update_ownertrust): Rename to tdb_update_ownertrust. (clear_ownertrusts): Rename to tdb_clear_ownertrusts. (cache_disabled_value): Rename to tdb_cache_disabled_value. (check_trustdb_stale): Rename to tdb_check_trustdb_stale. (get_validity): Rename to tdb_get_validity_core, add arg MAIN_PK and factor some code out to ... * trust.c (get_validity): ...new. (check_or_update_trustdb): New wrapper. (revalidation_mark): New wrapper. (get_ownertrust): New wrapper. (get_ownertrust_with_min): New wrapper. (update_ownertrust): New wrapper. (clear_ownertrusts): New wrapper. (cache_disabled_value): New wrapper. (check_trustdb_stale): New wrapper. * tests/openpgp/defs.inc (opt_always): New. Use in all tests instead of --always-trust.
2013-01-08gpg: Remove a function wrapper.Werner Koch1-2/+3
* g10/keydb.h (keydb_search): Remove macro. * g10/keydb.c (keydb_search2): Rename to keydb_search. Change all callers.
2012-08-24Actually show translators comments in PO filesDavid Prévot1-5/+5
--
2012-06-05Change all quotes in strings and comments to the new GNU standard.Werner Koch1-5/+5
The asymmetric quotes used by GNU in the past (`...') don't render nicely on modern systems. We now use two \x27 characters ('...'). The proper solution would be to use the correct Unicode symmetric quotes here. However this has the disadvantage that the system requires Unicode support. We don't want that today. If Unicode is available a generated po file can be used to output proper quotes. A simple sed script like the one used for en@quote is sufficient to change them. The changes have been done by applying sed -i "s/\`\([^'\`]*\)'/'\1'/g" to most files and fixing obvious problems by hand. The msgid strings in the po files were fixed with a similar command.
2012-01-20Changes to --min-cert-level should cause a trustdb rebuild (issue 1366)David Shaw1-3/+7
* g10/gpgv.c, g10/trustdb.c (read_trust_options): Add min_cert_level * g10/trustdb.c (check_trustdb_stale): Request a rebuild if pending_check_trustdb is true (set when we detect a trustdb parameter has changed). * g10/keylist.c (public_key_list): Use 'l' in the "tru" with-colons listing for min_cert_level not matching. * g10/tdbio.c (tdbio_update_version_record, create_version_record, tdbio_db_matches_options, tdbio_dump_record, tdbio_read_record, tdbio_write_record): Add a byte for min_cert_level in the tdbio version record.
2011-04-29Re-indentation of keydb.c and error code changes.Werner Koch1-2/+2
Returning -1 as an error code is not very clean given that gpg error has more descriptive error codes. Thus we now return GPG_ERR_NOT_FOUND for all search operations and adjusted all callers.
2011-04-25Fix regression in gpg's mail address parsing.Werner Koch1-1/+1
Since 2009-12-08 gpg was not able to find email addresses indicated by a leading '<'. This happened when I merged the user id classification code of gpgsm and gpg.
2011-02-04Nuked almost all trailing white space.post-nuke-of-trailing-wsWerner Koch1-88/+88
We better do this once and for all instead of cluttering all future commits with diffs of trailing white spaces. In the majority of cases blank or single lines are affected and thus this change won't disturb a git blame too much. For future commits the pre-commit scripts checks that this won't happen again.
2010-10-20Make public key data structure easier to read.Werner Koch1-18/+18
Check vor v1 card while signing.
2010-04-21More changes on the way to remove secring.gpg.Werner Koch1-1/+1
2010-03-15Finished the bulk of changes to use estream in most places instead ofWerner Koch1-1/+2
stdio.
2010-01-08Add dummu option --passwd for gpg.Werner Koch1-2/+2
Collected changes.
2009-12-08Unification of the search descriptor usage.Werner Koch1-1/+3
2009-09-28Rename encode.c to encrypt.c.Werner Koch1-6/+12
Rename function in a simlar way. Re-indent encrypt.c
2009-07-22Print verbose instructions in case of a corrupted trustdb.Werner Koch1-0/+21
2008-12-09Flush keyserver search output.Werner Koch1-43/+67
Add trustdb chnages from 1.4. Check algo usage for batch key generation.
2008-10-20Marked all unused args on non-W32 platforms.Werner Koch1-4/+13
2007-12-12Doc fixes.Werner Koch1-11/+88
Add more files to POTFILES. Protect against malloc bombs.
2007-11-19Started to implement the audit log feature.Werner Koch1-1/+1
Pass PINENTRY_USER_DATA and XAUTHORITY to Pinentry. Improved support for the quality bar. Minor internal restructuring. Translation fixes.
2007-08-27Implemented more gpg-agen options to support certain passphrase policies.Werner Koch1-4/+0
New tool gpg-check-pattern.
2007-07-04Changed to GPLv3.Werner Koch1-4/+2
Removed intl/.
2006-04-19Merged with gpg 1.4.3 code. Werner Koch1-221/+431
The gpg part does not yet build.
2006-03-07* options.h, gpg.c (main, parse_trust_model), pkclist.cDavid Shaw1-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.
2005-12-20Finished PKA featureWerner Koch1-2/+8
2005-12-06Some cleanup so we don't build files that are completely ifdeffed out. David Shaw1-1/+1
This causes a warning on Sun's cc. Do the internal regex code as well for consistency.
2005-11-18* keyedit.c (keyedit_menu, menu_clean): Simplify clean options to justDavid Shaw1-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.
2005-11-12* trustdb.h, trustdb.c (clean_key): New function to handle keyDavid Shaw1-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.
2005-11-12* trustdb.c (clean_uid_from_key, clean_uids_from_key): SignificantlyDavid Shaw1-66/+49
simpler implementation.
2005-11-10* keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add "minimize"David Shaw1-2/+0
command.
2005-11-10* packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.cDavid Shaw1-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.
2005-11-10* trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove allDavid Shaw1-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.
2005-11-02* trustdb.c (clean_sigs_from_uid): Include sigs from unavailable keys inDavid Shaw1-5/+11
the sigs that are cleaned. Suggested by Dirk Traulsen and many others.
2005-11-02* import.c (import_one): Do collapse_uids() before we do any cleaningDavid Shaw1-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.
2005-07-27Converted all m_free to xfree etc.Werner Koch1-20/+20
2005-07-09* trustdb.c (clean_uids_from_key): Don't keep a valid selfsig aroundDavid Shaw1-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.
2005-06-14* keygen.c (save_unprotected_key_to_card): Fix gcc4 warning.David Shaw1-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.
2005-06-10* options.h, export.c (do_export_stream), keyedit.c (keyedit_menu,David Shaw1-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.
2005-06-10* keydb.h, kbnode.c (undelete_kbnode): New function to undelete aDavid Shaw1-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.
2005-06-09* trustdb.c (clean_uids_from_key), keyedit.cDavid Shaw1-15/+9
(menu_clean_uids_from_key): Tweak algorithm to preserve the last selfsig which helps prevent uid resurrections.
2005-05-31* keyedit.c (menu_clean_uids_from_key, menu_clean_subkeys_from_key),David Shaw1-2/+2
trustdb.c (clean_uids_from_key, clean_subkeys_from_key): Fix mingw32 build warnings. Noted by Joe Vender.
2005-05-31Updated FSF street address and preparations for a release candidate.Werner Koch1-1/+2
2005-05-31* trustdb.h, trustdb.c (clean_subkeys_from_key): New. Walk throughDavid Shaw1-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.
2005-05-30* trustdb.h, trustdb.c (clean_uids_from_key): New. Walk through theDavid Shaw1-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.
2005-04-24* trustdb.h, trustdb.c (mark_usable_uid_certs): Add flags for theDavid Shaw1-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.