1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

1264 Commits

Author SHA1 Message Date
David Shaw
3f95e31e5d * gpg.c (main): --pgp6 includes --disable-mdc. 2009-07-31 14:34:55 +00:00
Werner Koch
930e910ad7 Update key generation menu to match gnupg 2.0.
Changes default preferences and key algorithms.
2009-07-29 10:06:56 +00:00
David Shaw
91df5cb2e3 * keyserver.c (keyserver_import_ldap): Try a DNS-SD lookup to find a
domain-specific LDAP server before resorting to keys.{domain}.
2009-07-23 19:50:25 +00:00
Werner Koch
6d755a83b4 Parse EXTCAP lines from the card.
Change messages for a corrupt trustdb.
2009-07-23 08:00:39 +00:00
Werner Koch
3459c6b015 First set of changes to backport the new card code from 2.0.
For compatibility reasons a few new files had to be added.
Also added estream-printf as this is now used in app-openpgp.c and provides
a better and generic asprintf implementation than the hack we used for the
W32 code in ttyio.c.  Card code is not yet finished.
2009-07-21 14:30:13 +00:00
Werner Koch
b478389753 Repalce an assert by a proper error message. 2009-07-17 11:24:51 +00:00
Werner Koch
81d7fbc7cb Fix bug#1087. 2009-07-16 07:40:16 +00:00
Werner Koch
64f24da283 Fix a couple of minor bugs. 2009-06-24 14:01:20 +00:00
Werner Koch
275ad3fa26 Fix bug#1040. 2009-06-17 10:36:12 +00:00
David Shaw
4843e6c8f2 Remove Camellia restriction. 2009-06-05 16:54:47 +00:00
Werner Koch
58a0c9ee49 Add stub function. Noted by Daniel Leidert. 2009-06-02 15:26:06 +00:00
Werner Koch
0bbe6eda34 Fixed bug1058. 2009-05-22 15:38:49 +00:00
Werner Koch
d72349bde0 Fix bug#1044. 2009-05-20 10:25:58 +00:00
Werner Koch
4694c1a8eb Fix bug 1045 2009-05-11 10:01:11 +00:00
Werner Koch
bc0202a8c2 Fix bug 1045. 2009-05-11 09:37:25 +00:00
Werner Koch
750990401c Print 'empty file' warning only with --verbose. 2009-05-11 09:20:39 +00:00
Werner Koch
23ad4bd73b Fix for bug#1034. 2009-05-06 09:31:15 +00:00
Werner Koch
418e61a824 Improve dotlocking.
Implement locking for W32.
2009-05-05 15:32:16 +00:00
Werner Koch
631a0de335 Backport of Creation-Date parameter for unattended key generation. 2009-05-05 11:44:56 +00:00
Werner Koch
a4fd67937c Fix bug#931.
Silent a compiler warning.
2009-05-05 09:30:34 +00:00
Werner Koch
9b6deeddaf Better error message for a missing keyring.
Fixes Debian#494040.
2009-04-03 10:41:33 +00:00
David Shaw
79f31e85db * keyring.c (rename_tmp_file): Force a fsync (via iobuf_ioctl) on
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.
2009-03-20 20:55:47 +00:00
David Shaw
a2fc01ae00 * gpgv.c (strusage): Fix name of program in "Syntax" line. 2009-03-15 03:10:04 +00:00
Werner Koch
c092f026fe Fix bug 998. 2009-02-09 11:14:42 +00:00
David Shaw
e532a4e86f * keyserver.c (keyserver_typemap): gpgkeys_hkp handles hkps as well. 2009-02-03 19:49:17 +00:00
David Shaw
3aa63ab224 * gpg.c (main): Properly handle UTF8 usernames with --sign-key and --lsign-key. 2008-12-21 16:57:33 +00:00
Werner Koch
7fd24253c1 Change SIG_ID computation to m 2008-12-11 17:46:16 +00:00
Werner Koch
09176a79b9 Close message digest; fixes memory leak. 2008-12-11 17:00:52 +00:00
Werner Koch
0ad3411b07 Check algo usage. 2008-12-09 10:43:22 +00:00
David Shaw
9d76ee5147 * trustdb.c (validate_one_keyblock): Fix the trust signature
calculations so that we lower the trust depth of signatures to fit
within the current chain, rather than discarding any signature that
does not fit within the trust depth.
2008-11-18 17:15:07 +00:00
David Shaw
0042cda87c * main.h, mainproc.c (check_sig_and_print), keylist.c
(list_keyblock_print), pkclist.c (do_edit_ownertrust), keyedit.c
 (menu_showphoto), photoid.c (generate_photo_id, show_photos), misc.c
 (pct_expando): Add %v and %V expandos so that displaying photo IDs
 can show the attribute validity tag (%v) and string (%V).  Originally
 by Daniel Gillmor.
2008-10-03 19:54:30 +00:00
David Shaw
85a3b11cb0 * keyedit.c (keyedit_menu): Fix bug where a modified keyring loses its
modified status after a "clean" or "minimize" that doesn't need to do
anything.
2008-09-25 04:00:36 +00:00
David Shaw
d6c59f314a * pkclist.c (select_algo_from_prefs): Redo function to rank prefs and
pick a consensus winner across all keys.
2008-09-23 21:10:10 +00:00
David Shaw
9855a6b18a * keyserver.c (keyserver_import_cert): Allow keyserver URLs in
addition to full URLs in CERT records.
2008-09-04 16:47:34 +00:00
Werner Koch
64a47d54c4 Fix bug #947 (expire time overflow) 2008-08-11 08:19:48 +00:00
Werner Koch
99fb609e0a Fix !EROFS bug 2008-08-01 10:48:36 +00:00
Werner Koch
d9527051eb Revert that last stupid setuid detection fix. 2008-07-17 19:47:19 +00:00
Werner Koch
e850b7fc22 Ignore gpg2 introduced keywords for --auto-key-locate.
Minor W32 installer fix.
2008-04-30 11:46:35 +00:00
David Shaw
18f6e7e5d8 Add Camellia-192. 2008-04-17 17:40:30 +00:00
David Shaw
9fbb6f402c * getkey.c (merge_selfsigs_subkey): If there are multiple 0x19
backsigs, take the most recent one.
2008-04-13 01:56:01 +00:00
Werner Koch
d5d895a7ae Fixed URL. 2008-03-25 14:47:48 +00:00
Werner Koch
2c045c4fca Powerpc64 fix. 2008-03-25 10:45:59 +00:00
Werner Koch
3886468f75 Change default keyserver. 2008-03-25 08:34:02 +00:00
David Shaw
766cc26305 * import.c (collapse_uids): Fix bug 894: possible memory corruption
around deduplication of user IDs.
2008-03-24 02:28:40 +00:00
David Shaw
a614eabba9 * parse-packet.c (parse_key): Parse a secret key encrypted with
Camellia.
2008-03-17 18:20:39 +00:00
Marcus Brinkmann
36ffb72bb9 2008-02-09 Marcus Brinkmann <marcus@g10code.de>
* gpg.c (main): New variable default_configname.  Use it if
	save_configname is NULL (can happen if default configfile does
	not exist).  Move default configname determination to ...
	(get_default_configname): ... this new function.
2008-02-09 00:49:36 +00:00
Werner Koch
80039354e8 Add card vendor 004. 2008-01-26 13:12:00 +00:00
Werner Koch
6e8bb4de07 Fixed a regression in gpg_dermor. 2007-12-14 11:30:01 +00:00
Werner Koch
81685cc799 Updated ZH po file.
Allow de/encryption using legacy type 20 keys.
Updated config.{sub,guess}
2007-12-12 18:26:25 +00:00
David Shaw
2e7eadbc1e * trustdb.c (sanitize_regexp): New. Protect against dangerous regexps
(malloc bombs) by force-commenting any characters aside from the ones
we explicitly want.  (check_regexp): Use it here before passing the
regexp to regcomp().
2007-12-12 16:38:23 +00:00
Werner Koch
7d67e4a497 Allow decryption using type 20 Elgamal keys. 2007-12-11 13:21:30 +00:00
Werner Koch
0e927e3941 Fixed auto generation of the key stub.
Fixed bug 851.
Allow decryption using type 20 Elgamal keys.
2007-12-10 15:34:20 +00:00
Werner Koch
aa9aec7068 Comment typ fixes.
Workaround for bad translations of the capability menu.
2007-12-03 14:41:38 +00:00
David Shaw
a92fa61c48 * sig-check.c (do_check): Code to try both the incorrect and correct
SHA-224 DER prefixes when verifying a signature.  See the change
itself for more discussion.

* main.h, seskey.c (do_encode_md): Rename to pkcs1_encode_md and make
non-static.
2007-11-28 23:08:35 +00:00
David Shaw
c756a493c9 * gpg.c (print_algo_names): New. (list_config): Use it here for the
"ciphername" and "digestname" config items so we can get a
script-parseable list of the names.
2007-11-28 15:09:52 +00:00
Werner Koch
e60684e3d8 Grammar fix 2007-11-19 10:10:02 +00:00
Werner Koch
14296f338f * status.c (do_get_from_fd, do_shm_get): s/bool/getbool/ to
overcome problems with Mac OS 10.5 which seems to include
   stdbool.h silently.
2007-11-12 15:52:01 +00:00
David Shaw
a426c89ae3 * parse-packet.c (parse_onepass_sig): Sigclass is hex, so include the
0x.
2007-10-27 20:00:20 +00:00
David Shaw
05c32b91a7 * keyserver.c (keyserver_spawn): Cosmetic, but looks cleaner. 2007-10-27 19:40:13 +00:00
Werner Koch
9a2a818887 Switched to GPLv3.
Updated gettext.
2007-10-23 10:48:09 +00:00
David Shaw
960ac80048 * gpg.c (main): Add --require-cross-certification to
--openpgp/--rfc4880 mode.
2007-10-23 03:00:21 +00:00
David Shaw
b550330067 * gpg.c (main): Disable --rfc2440-text and --force-v3-sigs by default.
Enable --require-cross-certification by default.  --openpgp
(--rfc4880) is the same as --rfc2440 except with "--enable-dsa2
--no-rfc2440-text --escape-from-lines".
2007-10-23 00:36:59 +00:00
David Shaw
f3abec2002 * misc.c (compliance_option_string, compliance_failure): Minor
cleanup.

* armor.c (is_armor_header): Comment about 4880.
2007-10-21 16:07:13 +00:00
David Shaw
1ce132213e * options.h, gpg.c (main), misc.c (compliance_option_string): Add
--rfc4880, and make --openpgp an alias to it.  --rfc2440 now stands
alone.  For now, use the old 2440 defaults for 4880.

* keyedit.c (keyedit_menu): Use compliance_option_string() instead of
printing the compliance modes here.
2007-10-17 16:37:09 +00:00
David Shaw
8bc8b9d932 * import.c (collapse_uids): Significant speedup for de-duping user
IDs.
2007-09-02 14:09:24 +00:00
Werner Koch
d1a13319bb Improved detection of ketrings specified several times. 2007-08-24 09:51:58 +00:00
David Shaw
3b9eca640b * gpg.c (main): Fix typo. Noted by John Clizbe. 2007-07-19 12:46:08 +00:00
David Shaw
14d6d2c90c * armor.c (parse_header_line): Improve test so that the header test
only allows "Hash" in the signed data section.
2007-07-19 12:29:22 +00:00
David Shaw
d26739aa5a * armor.c (is_armor_tag): New. Detect if an armor header matches
2440bis-21.  (parse_header_line): Call it here, as bis-21 requires
warning the user (but continuing to process the message) when seeing
an unknown header.
2007-07-18 17:08:47 +00:00
Werner Koch
66c5c46b95 Add an extra warning for Camellia.
Minor W32 fix
Address change.
2007-07-09 17:26:51 +00:00
David Shaw
de50a5a1e7 * encode.c (encode_crypt): Missed one call to setup_plaintext_name().
This is bug#809.
2007-07-06 23:36:33 +00:00
David Shaw
15e9a73988 * sign.c (mk_notation_policy_etc): expect all sigs that this is called
for are >=v4.  (write_signature_packets, make_keysig_packet): Only
call it for >=v4 sigs.  This allows --force-v3-sigs and
--force-v4-certs to enable or disable notations, policies, and
keyserver URLs.  This is bug#800.
2007-06-12 20:19:31 +00:00
David Shaw
2e81dd1b98 * packet.h, mainproc.c (reset_literals_seen): New function to reset
the literals count.

* verify.c (verify_one_file), decrypt.c (decrypt_messages): Call it
here so we allow multiple literals in --multifile mode (in different
files - not concatenated together).
2007-04-17 04:00:38 +00:00
David Shaw
ebdcac8089 * gpg.c, pkclist.c: #include <strings.h> for strcasecmp if it is
present.  Note that autoconf protects us against a strings.h that
cannot be used together with string.h.
2007-04-16 21:55:53 +00:00
David Shaw
28c7223d13 * parse-packet.c (parse_marker): New. Enforce that the marker
contains 'P', 'G', 'P', and nothing but.  (parse): Call it here.
(skip_packet): No longer need to handle marker packets here.
2007-04-04 04:00:20 +00:00
David Shaw
994ab24b4b * keyserver.c: Windows Vista doesn't grok X_OK and so fails access()
tests.  Previous versions interpreted X_OK as F_OK anyway, so we'll
just use F_OK directly.
2007-03-14 13:15:50 +00:00
Werner Koch
7b3e35a24c Add extra fflush (stdout) 2007-03-08 12:13:15 +00:00
David Shaw
57591eb76f * keyedit.c (keyedit_menu): If we modify the keyblock (via
fix_keyblock() or collapse_uids()) make sure we reprocess the keyblock
so the flags are correct.  Noted by Robin H. Johnson.

* getkey.c (fixup_uidnode): Properly clear flags that don't apply to
us (revoked, expired) so that we can reprocess a uid.
2007-03-06 06:39:38 +00:00
Werner Koch
7cb81bb3ef Preparing 1.4.7 2007-03-05 10:22:56 +00:00
David Shaw
6b086c1fe3 * parse-packet.c (parse_signature): It's hex.
* getkey.c (merge_selfsigs_subkey): Avoid listing the contents of a
backsig when list mode is on.  Noted by Timo Schulz.
2007-02-14 03:41:24 +00:00
Werner Koch
b4f553c1ca Fix for Debian bug 402592 2007-02-04 17:20:24 +00:00
David Shaw
e0dbc52cfc Missed one caller. 2007-02-01 20:51:15 +00:00
David Shaw
ef8f2e2f6f * main.h, keygen.c (ask_expire_interval, parse_expire_string): Pass in
the time to use to calculate the expiration offset, rather than
querying it internally.  Change all callers.
2007-02-01 19:32:16 +00:00
David Shaw
ef9e1b5fbc * keygen.c (do_generate_keypair, proc_parameter_file,
generate_keypair, generate_subkeypair): Pass a timestamp through to
all the gen_xxx functions.
2007-01-31 21:39:26 +00:00
David Shaw
9f3af9e24d * keyedit.c (sign_uids): Another multiple to single timestamp
operation.
2007-01-31 20:44:48 +00:00
David Shaw
5b34e0264e * sign.c (write_plaintext_packet): Take timestamp from outside.
Change all callers.  (sign_file, clearsign_file,
sign_symencrypt_file): Calculate one timestamp for the whole
transaction.  Different timestamps for each step can leak performance
information.
2007-01-31 20:23:45 +00:00
David Shaw
efef00aed3 * main.h, keygen.c (ask_expiredate), keyedit.c (menu_expire): Remove
the need for ask_expiredate().
2007-01-31 19:42:48 +00:00
David Shaw
e2fdff56fc * keygen.c (make_backsig, write_direct_sig, write_selfsigs)
(write_keybinding): Have the various selfsigs created during key
generation use the timestamp of their parent key.  This helps avoid
leaking information about the performance of the machine where the
keys were generated.  Noted by Christian Danner.
2007-01-30 21:19:45 +00:00
Werner Koch
9e4a5071a6 * parse-packet.c (read_protected_v3_mpi): Make sure to stop
reading even for corrupted packets.
	* keygen.c (generate_user_id): Need to allocate one byte more.
	Reported by Felix von Leitner.
2007-01-15 19:30:33 +00:00
David Shaw
68ea16cbfc * options.skel: Tweak some examples to match reality and update the
RFC for CERT now that it is out of draft.
2006-12-15 04:37:47 +00:00
David Shaw
ea5397943a * Makefile.am: Install options.skel via dist_pkgdata_DATA so that
"make uninstall" works properly.
2006-12-13 21:41:37 +00:00
Werner Koch
e810efc76f Removed references to removed g10defs.h file. 2006-12-13 12:09:44 +00:00
Werner Koch
9f433cccca Removed the use of g10defs.h.
This required some code cleanups and the introduction of
a few accessor ducntions in mpi.
2006-12-11 19:54:53 +00:00
Werner Koch
abfdbea116 /
* configure.ac: Remove GNUPG_DATADIR for non-W32 systems.
g10/
	* Makefile.am (AM_CPPFLAGS): Define GNUPG_DATADIR.
	* openfile.c (copy_options_file): Use log_info and not log_error
	to avoid error returns in case of a missing skeleton file.
2006-12-07 11:33:24 +00:00
Werner Koch
d8ff6704c8 Preparing a release 2006-12-06 09:52:40 +00:00
David Shaw
cfa0b50dc0 * keyedit.c (menu_clean): Show "already minimized" rather than
"already clean" when a minimized key is minimized again.  From Dirk
Traulsen.
2006-12-03 06:26:12 +00:00
David Shaw
e0cd2d31a1 * options.h, gpg.c (main), passphrase.c (passphrase_to_dek): Add
--passphrase-repeat option to control how many times gpg will
re-prompt for a passphrase to ensure the user has typed it correctly.
Defaults to 1.
2006-12-03 04:38:53 +00:00
Werner Koch
e1829a3d52 * openfile.c (ask_outfile_name): Fixed buffer overflow occurring
if make_printable_string returns a longer string.  Fixes bug 728.
2006-11-27 16:40:14 +00:00
David Shaw
55df654ea8 Missing changelog entry 2006-11-06 04:07:33 +00:00
Werner Koch
31cf39791e New command --gpgconf-test. 2006-10-23 14:21:41 +00:00
David Shaw
4e07a84cb9 * parse-packet.c (parse_symkeyenc): Show the unpacked as well as the
packed s2k iteration count.
	
* main.h, options.h, gpg.c (encode_s2k_iterations, main), passphrase.c
(hash_passphrase): Add --s2k-count option to specify the number of s2k
hash iterations.
2006-10-13 03:44:34 +00:00
David Shaw
6174275c39 * keyserver.c (keyserver_spawn): Write the 16-digit keyid rather than
whatever key selector the user used on the command line.
2006-10-06 05:46:07 +00:00
Werner Koch
7925e747d0 fix for bug 537 and documentation fixes. 2006-10-02 13:22:27 +00:00
Werner Koch
29f68725d0 Allow to build w/o curl. 2006-09-26 14:15:17 +00:00
Werner Koch
ab1d0ca711 Preparing 1.4.5 2006-08-01 11:20:18 +00:00
Werner Koch
fede32ebd7 Fix bug 655 2006-07-31 11:40:14 +00:00
Werner Koch
064a4a6240 Fixed bug 479. Not a real good fix but a reliable one which limits possible
breakage of other partys of the code.
2006-07-31 10:16:33 +00:00
Werner Koch
f19e8892a2 Preparing a release candidate 2006-07-28 09:52:11 +00:00
Werner Koch
ccd5fc4758 Fixed memory allocation bug and typos. 2006-07-26 11:25:36 +00:00
David Shaw
975da08004 * configure.ac: Fix resolver autoconf code so it works (fails)
properly with uClibc.
2006-07-08 23:29:25 +00:00
Werner Koch
d91c7a06ff i18n fix 2006-06-28 19:33:14 +00:00
David Shaw
cb117d7457 * keydb.h, pkclist.c (select_algo_from_prefs, algo_available): Pass a
union for preference hints rather than doing void * games.

* sign.c (sign_file): Use it here.
2006-06-28 17:54:35 +00:00
David Shaw
2a31983ef8 * sign.c (sign_file): When signing with multiple DSA keys, one being DSA1
and one being DSA2 and encrypting at the same time, if the recipient
preferences give a hash that can work with the DSA2 key, then allow the
DSA1 key to be promoted rather than giving up and using hash_for().
2006-06-28 17:12:55 +00:00
David Shaw
7c457fac67 * pkclist.c (algo_available): Automatically enable DSA2 mode when handling
a key that clearly isn't DSA1 (i.e. q!=160).
2006-06-28 15:26:05 +00:00
Werner Koch
23380119ee Fixed uploading of keays. 2006-06-28 09:37:42 +00:00
Werner Koch
e0af7eb379 do no use reopen_std under W32. 2006-06-27 08:40:23 +00:00
Werner Koch
a3883eb71d About to do a new release 2006-06-25 12:03:38 +00:00
David Shaw
00db922029 * options.h, gpg.c (main), keygen.c (keygen_upd_std_prefs,
keygen_add_std_prefs, proc_parameter_file): Add --default-keyserver-url to
specify a keyserver URL at key generation time, and "Keyserver:" keyword
for doing the same through a batch file.
2006-06-22 22:56:54 +00:00
David Shaw
059c67ca6d * sign.c (do_sign): Accept a truncated hash even for DSA1 keys (be liberal
in what you accept, etc).
2006-06-22 19:17:21 +00:00
David Shaw
4f7b459a96 * import.c (import_one): Add a flag (from_sk) so we don't check prefs
on an autoconverted public key.  The check should only happen on the
sk size.  Noted by Dirk Traulsen.
2006-06-12 12:05:34 +00:00
David Shaw
7211ee589a * keygen.c (gen_card_key): Add optional argument to return a pointer
(not a copy) of the stub secret key for the secret key we just
generated on the card.  (generate_card_subkeypair): Use it here so
that the signing key on the card can use the card to generate the 0x19
backsig on the primary key.  Noted by Janko Heilgeist and Jonas Oberg.
2006-06-10 04:11:05 +00:00
David Shaw
91dbfce3b7 * parse-packet.c (parse_user_id): Cap the user ID size at 2048 bytes.
This prevents a memory allocation attack with a very large user ID.  A
very large packet length could even cause the allocation (a u32) to wrap
around to a small number.  Noted by Evgeny Legerov on full-disclosure.
2006-06-09 19:45:19 +00:00
David Shaw
49c31957f0 Revert last. It is still wrong. 2006-05-27 02:07:05 +00:00
David Shaw
b9c2f44336 * exec.c (make_tempdir) [_WIN32]: Modified to properly handle
arbitrarily long temporary directory paths.
2006-05-27 01:38:54 +00:00
David Shaw
05a2a2f39a * keygen.c (gen_dsa): Allow generating DSA2 keys (allow specifying sizes >
1024 when --enable-dsa2 is set).  The size of q is set automatically based
on the key size. (ask_keysize, generate_keypair): Ask for DSA size when
--enable-dsa2 is set.
2006-05-25 19:39:03 +00:00
David Shaw
5cef0cac5a * exec.c (make_tempdir): Fix bug with a temporary directory on Win32
that is over 256 bytes long.  Noted by Israel G. Lugo.
2006-05-25 03:02:51 +00:00
David Shaw
782a70e522 * gpg.c (reopen_std): New function to reopen fd 0, 1, or 2 if we are
called with them closed.  This is to protect our keyring/trustdb files
from corruption if they get attached to one of the standard fds.  Print a
warning if possible that this has happened, and fail completely if we
cannot reopen (should never happen). (main): Call it here.
2006-05-23 22:04:09 +00:00
David Shaw
197c7a3e47 * parse-packet.c (dump_sig_subpkt, parse_signature), build-packet.c
(build_sig_subpkt_from_sig), getkey.c (fixup_uidnode,
merge_selfsigs_main, merge_selfsigs_subkey), keygen.c
(keygen_add_key_expire): Fix meaning of key expiration and sig
expiration subpackets - zero means "never expire" according to 2440,
not "expire instantly".
2006-05-23 03:58:53 +00:00
David Shaw
3bee120e15 * import.c (import_one): Fix bug when importing a new key from a file. 2006-05-22 21:38:13 +00:00
David Shaw
7596ae1f6a * getkey.c (get_pubkey_byname), import.c (import_one): Fix key selection
problem when auto-key-locate returns a list of keys, not all of which are
usable (revoked, expired, etc).  Noted by Simon Josefsson.
2006-05-22 16:53:09 +00:00
David Shaw
bc81ce601f (keyserver_import_cert): Show warning if there is a CERT fingerprint,
but no --keyserver set.
2006-04-27 03:38:56 +00:00
David Shaw
034937c6d1 * keyserver.c (path_makes_direct): New. (keyserver_spawn): Used here
to add "_uri" to certain gpgkeys_xxx helpers when the meaning is
different if a path is provided (i.e. ldap).
2006-04-27 03:14:17 +00:00
David Shaw
19c353232e * keyserver.c: Fix build problem with platforms that stick libcurl in
a place not in the regular include search path.
2006-04-22 14:15:50 +00:00
David Shaw
0f1c0a9f28 * options.h, gpg.c (main): Add --enable-dsa2 and --disable-dsa2. Defaults
to disable.

* pkclist.c (algo_available): If --enable-dsa2 is set, we're allowed to
truncate hashes to fit DSA keys.

* sign.c (match_dsa_hash): New.  Return the best match hash for a given q
size. (do_sign, hash_for, sign_file): When signing with a DSA key, if it
has q==160, assume it is an old DSA key and don't allow truncation unless
--enable-dsa2 is also set.  q!=160 always allows truncation since they
must be DSA2 keys. (make_keysig_packet): If the user doesn't specify a
--cert-digest-algo, use match_dsa_hash to pick the best hash for key
signatures.
2006-04-20 21:32:42 +00:00
David Shaw
99b1f3e1da * gpg.c (print_mds), armor.c (armor_filter, parse_hash_header): Add
SHA-224.

* sign.c (write_plaintext_packet), encode.c (encode_simple): Factor
common literal packet setup code from here, to...

* main.h, plaintext.c (setup_plaintext_name): Here. New. Make sure the
literal packet filename field is UTF-8 encoded.

* options.h, gpg.c (main): Make sure --set-filename is UTF-8 encoded
and note when filenames are already UTF-8.
2006-04-20 02:36:05 +00:00
David Shaw
36ce455f15 * keyedit.c (menu_backsign): Give some more verbose errors when we
have no need to backsign.
2006-04-19 04:29:31 +00:00
David Shaw
27bb89d687 * options.skel, photoid.c (get_default_photo_command): Find an image
viewer at runtime.  Seems FC5 doesn't have xloadimage.
2006-04-11 19:20:08 +00:00
David Shaw
51e88a5fdb * getkey.c (parse_auto_key_locate): Fix dupe-removal code.
* keyedit.c (menu_backsign): Allow backsigning even if the secret
subkey doesn't have a binding signature.

* armor.c (radix64_read): Don't report EOF when reading only a pad (=)
character.  The EOF actually starts after the pad.

* gpg.c (main): Make --export, --send-keys, --recv-keys,
--refresh-keys, and --fetch-keys follow their arguments from left to
right.  Suggested by Peter Palfrader.
2006-04-09 03:34:09 +00:00
Werner Koch
4fdc6387c3 Fixed segv 2006-04-08 01:23:23 +00:00
Werner Koch
e5a03c84f7 See ChangeLog 2006-04-08 00:36:51 +00:00
Werner Koch
256f67675f About to release 1.4.3 2006-04-03 10:13:23 +00:00
David Shaw
4afa4eb10e * getkey.c (get_pubkey_byname): Fix missing auto_key_retrieve unlock.
Fix strings to not start with a capital letter as per convention.
2006-04-01 02:47:53 +00:00
David Shaw
66965ccc29 Update copyright 2006-03-30 23:55:45 +00:00
David Shaw
92e1528bf2 * main.h, seskey.c (encode_md_value): Modify to allow a q size greater
than 160 bits as per DSA2.  This will allow us to verify and issue DSA2
signatures for some backwards compatibility once we start generating DSA2
keys.
* sign.c (do_sign), sig-check.c (do_check): Change all callers.

* sign.c (do_sign): Enforce the 160-bit check for new signatures here
since encode_md_value can handle non-160-bit digests now. This will need
to come out once the standard for DSA2 is firmed up.
2006-03-30 19:20:59 +00:00
David Shaw
97b0606a95 * getkey.c (parse_auto_key_locate): Silently strip out duplicates rather
than causing an error.
2006-03-22 23:05:32 +00:00
Werner Koch
ac46433052 Changed URLs 2006-03-22 16:43:59 +00:00
David Shaw
5531da1cfc * mainproc.c (get_pka_address): Fix bug introduced as part of
sig_to_notation conversion.  Noted by Peter Palfradrer.
2006-03-22 14:37:53 +00:00
Werner Koch
7f99c71839 Allow for rmd160 signatures when using gpg-agent. 2006-03-21 13:01:45 +00:00
David Shaw
3cfc77097d * keyserver.c (keyserver_import_cert): Handle the IPGP CERT type for
both the fingerprint alone, and fingerprint+URL cases.

* getkey.c (get_pubkey_byname): Minor cleanup.
2006-03-17 05:20:13 +00:00
David Shaw
e0ad2bda52 * cert.c (get_cert): Handle the fixed IPGP type with fingerprint. 2006-03-16 22:40:04 +00:00
David Shaw
9f524c4a04 * keyserver-internal.h, keyserver.c (keyserver_import_pka): Use the
same API as the other auto-key-locate fetchers.

* getkey.c (get_pubkey_byname): Use the fingerprint of the key that we
actually fetched.  This helps prevent problems where the key that we
fetched doesn't have the same name that we used to fetch it.  In the
case of CERT and PKA, this is an actual security requirement as the
URL might point to a key put in by an attacker.  By forcing the use of
the fingerprint, we won't use the attacker's key here.
2006-03-14 03:16:21 +00:00
David Shaw
b478ce7a79 * keyserver-internal.h, keyserver.c (keyserver_spawn, keyserver_work,
keyserver_import_cert, keyserver_import_name, keyserver_import_ldap):
Pass fingerprint info through.
2006-03-14 02:42:02 +00:00
David Shaw
671ec45001 * main.h, import.c (import_one): Optionally return the fingerprint of
the key being imported.  (import_keys_internal, import_keys_stream,
import): Change all callers.
2006-03-14 02:23:00 +00:00
David Shaw
7e3ba27aef * sig-check.c (signature_check2): Print the backsig warning when there
is no backsig present.  Give a URL for more information.

* keyedit.c (menu_backsign): Small tweak to work properly with keys
originally generated with older GnuPGs that included comments in the
secret keys.
2006-03-12 15:33:57 +00:00
David Shaw
e914311608 * build-packet.c (string_to_notation): Add ability to indicate a notation
to be deleted with a '-' prefix.

* keyedit.c (menu_set_notation): Use it here to allow deleting a notation
marked with '-'.  This works with either "-notation" or "-notation=value".
2006-03-09 19:43:29 +00:00
Werner Koch
cf10c31a3f Preparing for an RC23 2006-03-09 12:45:02 +00:00
David Shaw
d810409068 * keyedit.c (menu_set_notation): New function to set notations on
self-signatures.  (keyedit_menu): Call it here.
(tty_print_notations): Helper.  (show_prefs): Show notations in
"showpref".
2006-03-09 03:49:39 +00:00
David Shaw
5460153264 * mainproc.c (get_pka_address), keylist.c (show_notation): Remove
duplicate code by using notation functions.
2006-03-09 03:35:26 +00:00
David Shaw
0f7b4371b2 * packet.h, build-packet.c (sig_to_notation), keygen.c
(keygen_add_notations): Provide printable text for non-human-readable
notation values.
2006-03-09 01:15:18 +00:00
David Shaw
889c4afd78 * packet.h, build-packet.c (sig_to_notation), keygen.c
(keygen_add_notations): Tweak to handle non-human-readable notation
values.
2006-03-08 23:42:45 +00:00
David Shaw
4fea8fdbbb * options.h, sign.c (mk_notation_policy_etc), gpg.c (add_notation_data):
Use it here for the various notation commands.

* packet.h, main.h, keygen.c (keygen_add_notations), build-packet.c
(string_to_notation, sig_to_notation) (free_notation): New "one stop
shopping" functions to handle notations and start removing some code
duplication.
2006-03-08 23:30:12 +00:00
David Shaw
90d8377276 * options.h, mainproc.c (check_sig_and_print), gpg.c (main):
pka-lookups, not pka-lookup.

* options.h, gpg.c (main), keyedit.c [cmds], sig-check.c
(signature_check2): Rename "backsign" to "cross-certify" as a more
accurate name.
2006-03-08 02:40:42 +00:00
David Shaw
4f9efb7a79 * options.h, gpg.c (main, parse_trust_model), pkclist.c
(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.
2006-03-07 20:14:20 +00:00
Werner Koch
4aeb4d4b10 More tests added; make distcheck works 2006-03-07 11:05:41 +00:00
David Shaw
764b3f9395 * sign.c (make_keysig_packet): Don't use MD5 for a RSA_S key as that
is not a PGP 2.x algorithm.
2006-03-07 01:16:31 +00:00
David Shaw
5d2060e211 * mainproc.c (proc_compressed): "Uncompressed" is not a valid compression
algorithm.
2006-03-06 23:14:13 +00:00
Werner Koch
3e08d87168 Stricter test of allowed signature packet compositions.
There is still one problem to solve.
2006-03-06 21:28:25 +00:00
Werner Koch
a200f76dcf Fixed problem with PGP2 style signatures and mutilple plaintext data 2006-03-06 12:28:46 +00:00
Werner Koch
09203be1c6 Replaced an assert and fixed batch mode issue in cardglue. 2006-03-05 15:13:18 +00:00
David Shaw
78904c691c * getkey.c (parse_auto_key_locate): Error if the user selects "cert" or
"pka" when those features are disabled.

* misc.c (has_invalid_email_chars): Fix some C syntax that broke the
compilers on SGI IRIX MIPS and Compaq/DEC OSF/1 Alpha.  Noted by Nelson H.
F. Beebe.
2006-03-01 18:16:55 +00:00
David Shaw
4b67ecabcf * options.skel: Document auto-key-locate and give a pointer to Simon
Josefsson's page for CERT.
2006-02-27 19:31:13 +00:00
David Shaw
f4f5ea43e7 * keydb.h, getkey.c (release_akl), gpg.c (main): Add
--no-auto-key-locate.

* options.h, gpg.c (main): Keep track of each keyserver registered so
we can match on them later.

* keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
keyserver_match), gpgv.c: New.  Find a keyserver that matches ours and
return its spec.

* getkey.c (get_pubkey_byname): Use it here to get the per-keyserver
options from an earlier keyserver.
2006-02-24 14:27:22 +00:00
David Shaw
4139587267 * keyserver.c (parse_keyserver_options): Only change max_cert if it is
used.
2006-02-24 03:57:11 +00:00
David Shaw
624f3582ba * options.c, gpg.c (main), keyserver.c (keyserver_spawn): No special
treatment of include-revoked, include-subkeys, and try-dns-srv.  These are
keyserver features, and GPG shouldn't get involved here.
2006-02-23 22:39:40 +00:00
David Shaw
09e3b78ea2 * keyserver.c (parse_keyserver_uri, add_canonical_option): Always append
options to the list, as ordering may be significant to the user.
2006-02-23 20:54:30 +00:00
David Shaw
1736866b5b * gpg.c (add_notation_data): Fix reversed logic for isascii check when
adding notations.  Noted by Christian Biere.
2006-02-23 19:52:20 +00:00
David Shaw
c37453211c * options.h, keyserver.c (add_canonical_option): New.
(parse_keyserver_options): Moved from here. (parse_keyserver_uri): Use it
here so each keyserver can have some private options in addition to the
main keyserver-options (e.g. per-keyserver auth).
2006-02-23 17:00:02 +00:00
David Shaw
1ae024ef81 * options.h, keyserver-internal.h, keyserver.c (keyserver_import_name),
getkey.c (free_akl, parse_auto_key_locate, get_pubkey_byname): The obvious
next step: allow arbitrary keyservers in the auto-key-locate list.
2006-02-22 23:37:23 +00:00
David Shaw
305288b5f5 * options.h, keyserver.c (parse_keyserver_options): Remove
auto-cert-retrieve as it is no longer meaningful.  Add max-cert-size to
allow users to pick a max key size retrieved via CERT.
2006-02-22 20:34:48 +00:00
David Shaw
477defdb1b * options.h, gpg.c (main), mainproc.c (check_sig_and_print), keyserver.c
(keyserver_opts): Rename auto-pka-retrieve to honor-pka-record to be
consistent with honor-keyserver-url.
2006-02-22 20:20:58 +00:00
David Shaw
7eab1846ca * options.h, keydb.h, g10.c (main), getkey.c (parse_auto_key_locate):
Parse a list of key access methods. (get_pubkey_byname): Walk the list
here to try and retrieve keys we don't have locally.
2006-02-22 19:06:23 +00:00
David Shaw
d038b36c8f * getkey.c (get_pubkey_byname): Fix minor security problem with PKA when
importing at -r time.  The URL in the PKA record may point to a key put in
by an attacker.  Fix is to use the fingerprint from the PKA record as the
recipient.  This ensures that the PKA record is followed.

* keyserver-internal.h, keyserver.c (keyserver_import_pka): Return the
fingerprint we requested.
2006-02-21 22:23:35 +00:00
David Shaw
0eb4e93bd4 * gpgv.c: Stub keyserver_import_ldap.
* keyserver-internal.h, keyserver.c (keyserver_import_ldap): Import using
the PGP Universal trick of asking ldap://keys.(maildomain) for the key.
2006-02-21 16:09:09 +00:00
David Shaw
8a1bd087fc * keyserver.c (parse_keyserver_uri): Include the scheme in the uri
even when we've assumed "hkp" when there was no scheme.
2006-02-21 05:20:08 +00:00
Werner Koch
b121d029b5 about to release 1.4.3rc1 2006-02-14 16:28:34 +00:00
Werner Koch
966cd80d88 Fixed a wrong return code with gpg --verify 2006-02-14 10:17:57 +00:00
Werner Koch
2410941461 Lock random seed file 2006-02-09 12:54:41 +00:00
Werner Koch
af67c98ee9 Fixed a couple of problems 2006-02-08 17:55:20 +00:00
Werner Koch
4f34366389 Add support fro CardMan 4040 2006-02-06 16:34:20 +00:00
David Shaw
214a3a646e * keyserver.c (parse_keyserver_uri): If there is a path present, set the
direct_uri flag so the right keyserver helper is run.
2006-01-24 21:03:06 +00:00
David Shaw
4ff7d09040 * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
keyserver helpers on systems that use extensions.

* misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing with
drive letter systems.
2006-01-22 21:40:20 +00:00
David Shaw
dbe415ea61 * keydb.h, passphrase.c (next_to_last_passphrase): New. "Touch" a
passphrase as if it was used (move from next_pw to last_pw).

* pubkey-enc.c (get_session_key): Use it here to handle the case where a
passphrase happens to be correct for a secret key, but yet that key isn't
the anonymous recipient (i.e. the secret key could be decrypted, but not
the session key).  This also handles the case where a secret key is
located on a card and a secret key with no passphrase.  Note this does not
fix bug 594 (anonymous recipients on smartcard do not work) - it just
prevents the anonymous search from stopping when the card is encountered.
2006-01-17 20:55:53 +00:00
David Shaw
7b978efef8 * keyserver.c (keyserver_refresh): Fix problem when more than one key
in a refresh batch has a preferred keyserver set.  Noted by Nicolas
Rachinsky.
2006-01-07 21:04:13 +00:00
David Shaw
1315171b07 * mainproc.c (check_sig_and_print), keyserver.c
(keyserver_import_pka), card-util.c (fetch_url): Always require a
scheme:// for keyserver URLs except when used as part of the
--keyserver command for backwards compatibility.
2006-01-01 18:12:57 +00:00
David Shaw
5bce704dd3 * sign.c (write_signature_packets): Lost a digest_algo line. 2006-01-01 17:59:57 +00:00
David Shaw
cbc5c947d5 * sign.c (hash_for): Add code to detect if the sk lives on a smart
card.  If it does, only allow 160-bit hashes, a la DSA.  This involves
passing the *sk in, so change all callers.  This is correct for today,
given the current 160-bit q in DSA, and the current SHA-1/RIPEMD160
support in the openpgp card.  It will almost certainly need changing
down the road.

* app-openpgp.c (do_sign): Give user error if hash algorithm is not
supported by the card.
2006-01-01 17:48:54 +00:00
David Shaw
846eefaa71 * keyserver.c (keyserver_import_pka): New. Moved from
getkey.c:get_pubkey_byname which was getting crowded.

* keyserver.c (keyserver_import_cert): Import a key found in DNS via CERT
records.  Can handle both the PGP (actual key) and IPGP (URL) CERT types.

* getkey.c (get_pubkey_byname): Call them both here.

* options.h, keyserver.c (parse_keyserver_options): Add
"auto-cert-retrieve" option with optional max size argument.
2005-12-23 22:17:11 +00:00
David Shaw
8b9c16ed0a * gpgv.c: Stub.
* keyserver-internal.h, keyserver.c (keyserver_spawn, keyserver_work,
keygerver_getname): New keyserver_getname function to fetch keys by name.

* getkey.c (get_pubkey_byname): Call it here to enable locating keys by
full mailbox from a keyserver a la PKA.  Try PKA first, though, as it is
likely to be faster.
2005-12-23 21:33:32 +00:00
Werner Koch
f1482aab4e Finished PKA feature 2005-12-20 20:19:16 +00:00
David Shaw
64fa7ea37e * getkey.c (merge_selfsigs_main): All primary keys can certify. 2005-12-19 22:10:20 +00:00