aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyring.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-02-23gpg: Prevent an invalid memory read using a garbled keyring.Werner Koch1-3/+21
* g10/keyring.c (keyring_get_keyblock): Whitelist allowed packet types. -- The keyring DB code did not reject packets which don't belong into a keyring. If for example the keyblock contains a literal data packet it is expected that the processing code stops at the data packet and reads from the input stream which is referenced from the data packets. Obviously the keyring processing code does not and cannot do that. However, when exporting this messes up the IOBUF and leads to an invalid read of sizeof (int). We now skip all packets which are not allowed in a keyring. Reported-by: Hanno Böck <[email protected]> (back ported from commit f0f71a721ccd7ab9e40b8b6b028b59632c0cc648) [dkg: rebased to STABLE-BRANCH-1-4] Signed-off-by: Daniel Kahn Gillmor <[email protected]>
2012-01-10Replace file locking by the new portable dotlock code.Werner Koch1-106/+106
* include/dotlock.h: New. From current gnupg master. * util/dotlock.c: Ditto. Include util.h. The major changes done in master are: Factor Unix and W32 specific code out into specific functions. Define HAVE_POSIX_SYSTEM. Rearrange some functions. (disable_dotlock): Rename to dotlock_disable. (create_dotlock): Rename to dotlock_create and add a dummy arg. (destroy_dotlock): Rename to dotlock_destroy. (make_dotlock): Rename to dotlock_take. (release_dotlock): Rename to dotlock_release. (remove_lockfiles): Rename to dotlock_remove_lockfiles.
2010-10-10VMS fixesWerner Koch1-4/+4
2009-07-17Repalce an assert by a proper error message.Werner Koch1-1/+14
2009-05-06Fix for bug#1034.Werner Koch1-23/+28
2009-03-20* keyring.c (rename_tmp_file): Force a fsync (via iobuf_ioctl) onDavid Shaw1-12/+22
secret keyring files to be extra safe on filesystems that may not sync data and metadata together (ext4). Also check return code from the cache invalidation to make sure we're safe over NFS and similar.
2007-10-23Switched to GPLv3.Werner Koch1-4/+2
Updated gettext.
2007-08-24Improved detection of ketrings specified several times.Werner Koch1-1/+1
2005-07-27Converted all m_free to xfree etc.Werner Koch1-32/+32
2005-05-31Updated FSF street address and preparations for a release candidate.Werner Koch1-1/+2
2004-10-28* keyring.c: Make some strings translatable.David Shaw1-16/+20
* exec.c, sign.c: Change "can't open file" to "can't open" and "can't create file" to "can't create" to be consistent with other strings so we don't have to translate both.
2004-10-14* misc.c (is_secured_filename): New.Werner Koch1-5/+16
* keydb.c (maybe_create_keyring) * tdbio.c (tdbio_set_dbname) * plaintext.c (handle_plaintext) * openfile.c (copy_options_file, open_outfile) * exec.c (exec_write) * keygen.c (do_generate_keypair, gen_card_key_with_backup) * sign.c (sign_file, clearsign_file) * keyring.c (create_tmp_file, do_copy): Check for secured files before creating them. * keygen.c (print_status_key_created): s/unsigned char/byte/ due to a strange typedef for RISC OS. Noted by Stefan.
2004-10-13Added SELInux hacks and did some cleanups.Werner Koch1-2/+21
2004-01-20* g10.c (main), keydb.h, keydb.c (keydb_rebuild_caches), keyring.h,David Shaw1-6/+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.
2004-01-19* sig-check.c (check_key_signature2): Comments.David Shaw1-9/+17
* keyring.c (keyring_rebuild_cache): Clear sig cache for any signatures that we can no longer process (say, if the user removed support for a necessary pubkey or digest algorithm).
2003-09-23* keydb.h, keyring.c (keyring_search), trustdb.c (search_skipfnc): ExpandDavid Shaw1-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.
2003-08-21* gpgv.c: Remove extra semicolon (typo).David Shaw1-0/+7
* options.skel: Note that keyserver.pgp.com isn't synchronized, and explain the roundrobin a bit better. * sig-check.c (check_key_signature2), import.c (import_one, import_revoke_cert, chk_self_sigs, delete_inv_parts, collapse_uids, merge_blocks): Make much quieter during import of slightly munged, but recoverable, keys. Use log_error for unrecoverable import failures. * keyring.c (keyring_rebuild_cache): Comment. * sign.c (mk_notation_and_policy): Making a v3 signature with notations or policy urls is an error, not an info (i.e. increment the errorcount). Don't print the notation or policy url to stdout since it can be mixed into the output stream when piping and munge the stream.
2003-03-04* trustdb.c (validate_keys): Mask the ownertrust when building the list ofDavid Shaw1-0/+5
fully valid keys so that disabled keys are still counted in the web of trust. (get_ownertrust_with_min): Do the same for the minimum ownertrust calculation. * parse-packet.c (dump_sig_subpkt): Show the notation names for not-human-readable notations. Fix cosmetic off-by-one length counter. * options.skel: Add explantion and commented-out "no-mangle-dos-filenames". * mainproc.c (proc_encrypted): Make string translatable. * keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit characters in the uid strings sent to the keyserver helper. * keyring.c (keyring_rebuild_cache): Lock the keyring while rebuilding the signature caches to prevent another gpg from tampering with the temporary copy. * keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in default prefs. * keyedit.c (show_prefs): Make strings translatable. * keydb.c: Double the maximum number of keyrings to 40. * gpgv.c (main): Fix bug #113 - gpgv should accept the --ignore-time-conflict option. * g10.c (main): --openpgp disables --pgpX. Double the amount of secure memory to 32k (keys are getting bigger these days). * Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using capabilities.
2003-02-12* keydb.h, getkey.c (classify_user_id, classify_user_id2): Make 'exact' aDavid Shaw1-3/+8
per-desc item. Merge into one function since 'force_exact' is no longer needed. (key_byname): Use new classify_user_id function, and new exact flag in KEYDB_SEARCH_DESC. * keyring.h, keyring.c (keyring_search): Return an optional index to show which KEYDB_SEARCH_DESC was the matching one. * keydb.h, keydb.c (keydb_search): Rename to keydb_search2, and pass the optional index to keyring_search. Add a macro version of keydb_search that calls this new function. * export.c (do_export_stream): If the keyid! syntax is used, export only that specified key. If the key in question is a subkey, export the primary plus that subkey only.
2003-01-03* import.c (import_one): Only do the work to create the status display forDavid Shaw1-1/+1
interactive import if status is enabled. * keyring.c (keyring_search): skipfnc didn't work properly with non-keyid searches. Noted by Stefan Bellon. * getkey.c (merge_selfsigs_main): Remove some unused code and make sure that the pk selfsigversion member accounts for 1F direct sigs.
2002-11-08* keyring.h, keyring.c (keyring_register_filename): Return the pointer ifDavid Shaw1-12/+17
a given keyring is registered twice. * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a default keyring. (keydb_locate_writable): Prefer the default keyring if possible. * g10.c (main): Add --default-keyring option.
2002-09-24* import.c (import_keys_stream): Fix compiler type warning.David Shaw1-1/+1
* keyring.c (keyring_rebuild_cache), sig-check.c (check_key_signature2), import.c (import, chk_self_sigs): Minor language cleanups.
2002-08-09* options.skel: Some language tweaks, and remove the load-extensionDavid Shaw1-17/+25
section for random gatherers. * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files with user-only permissions, but restore the original permissions if the user has something special set. * openfile.c (copy_options_file): Create new options file (gpg.conf) with user-only permissions. * keydb.c (keydb_add_resource): Create new keyrings with user-only permissions.
2002-06-29Update head to match stable 1.0David Shaw1-0/+1550