aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-05-19g10: Improve handling of no corresponding public key.NIIBE Yutaka1-0/+12
* g10/getkey.c (get_seckey): Return G10ERR_NO_PUBKEY when it's not exact match. -- In the situation of corrupted .gnupg/ where only private subkey is available but no corresponding public key of the subkey, the code returned public primary key which caused mysterious error (for a user). This fix detects an error earlier. GnuPG-bug-id: 1422 Debian-Bug-Id: #638619
2015-02-26Switch to a hash and CERT record based PKA system.Werner Koch1-2/+0
* util/pka.c: Rewrite. (get_pka_info): Add arg fprbuflen. Change callers to pass this. * util/strgutil.c (ascii_strlwr): New. * configure.ac: Remove option --disable-dns-pka. (USE_DNS_PKA): Remove ac_define. * g10/getkey.c (parse_auto_key_locate): Always include PKA. -- Note that although PKA is now always build, it will only work if support for looking up via DNS has not been disabled. The new PKA only works with the IPGP DNS certtype and shall be used only to retrieve the fingerprint and optional the key for the first time. Due to the security problems with DNSSEC the former assumption to validate the key using DNSSEC is not anymore justified. Instead an additional layer (e.g. Trust-On-First-Use) needs to be implemented to track change to the key. Having a solid way of getting a key matching a mail address is however a must have. More work needs to go into a redefinition of the --verify-options pka-lookups and pka-trust-increase. The auto-key-locate mechanism should also be able to continue key fetching with another method once the fingerprint has been retrieved with PKA. Signed-off-by: Werner Koch <[email protected]> This is a backport from master. (backported from commit 2fc27c8696f5cf2ddf3212397ea49bff115d617b)
2015-02-23Use inline functions to convert buffer data to scalars.Werner Koch1-8/+9
* include/host2net.h (buf16_to_ulong, buf16_to_uint): New. (buf16_to_ushort, buf16_to_u16): New. (buf32_to_size_t, buf32_to_ulong, buf32_to_uint, buf32_to_u32): New. -- This fixes sign extension on shift problems. Hanno Böck found a case with an invalid read due to this problem. To fix that almost all uses of "<< 24" and "<< 8" are changed by this patch to use an inline function from host2net.h. (back ported from commit 2183683bd633818dd031b090b5530951de76f392) Signed-off-by: Werner Koch <[email protected]> [dkg: rebased to STABLE-BRANCH-1-4] Signed-off-by: Daniel Kahn Gillmor <[email protected]>
2013-10-04gpg: Distinguish between missing and cleared key flags.Werner Koch1-1/+7
* include/cipher.h (PUBKEY_USAGE_NONE): New. * g10/getkey.c (parse_key_usage): Set new flag. -- We do not want to use the default capabilities (derived from the algorithm) if any key flags are given in a signature. Thus if key flags are used in any way, the default key capabilities are never used. This allows to create a key with key flags set to all zero so it can't be used. This better reflects common sense. (cherry picked from commit 4bde12206c5bf199dc6e12a74af8da4558ba41bf) (cherry picked from commit 0a805ed1604ef3e9b27f3e22a936a2d439300e9f) Resolved conflicts: include/cipher.h
2012-01-10Allow use of a standard space separated fingerprint.Werner Koch1-7/+47
We allow a single or a double space in the middle of the fingerprint to help with c+p fingerprints from an HTML pages which are not being enclosed in a "pre" tag. * g10/getkey.c (classify_user_id): Check for space separated GPG fingerprint. -- This is a backport of commit 957fe72 and 372fb4f.
2011-07-01Add pubkey letters e and E for ECC.Werner Koch1-74/+76
This does not mean we have any kind of ECC support now. It is merely to avoid printing a question mark for the algorithm. Trailing white space changes as usual.
2009-05-06Fix for bug#1034.Werner Koch1-11/+1
2008-04-30Ignore gpg2 introduced keywords for --auto-key-locate.Werner Koch1-0/+6
Minor W32 installer fix.
2008-04-13* getkey.c (merge_selfsigs_subkey): If there are multiple 0x19David Shaw1-27/+73
backsigs, take the most recent one.
2007-12-12Updated ZH po file.Werner Koch1-2/+5
Allow de/encryption using legacy type 20 keys. Updated config.{sub,guess}
2007-10-23Switched to GPLv3.Werner Koch1-4/+2
Updated gettext.
2007-03-06* keyedit.c (keyedit_menu): If we modify the keyblock (viaDavid Shaw1-2/+7
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-02-14* parse-packet.c (parse_signature): It's hex.David Shaw1-0/+3
* getkey.c (merge_selfsigs_subkey): Avoid listing the contents of a backsig when list mode is on. Noted by Timo Schulz.
2006-05-23* parse-packet.c (dump_sig_subpkt, parse_signature), build-packet.cDavid Shaw1-7/+7
(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-22* getkey.c (get_pubkey_byname), import.c (import_one): Fix key selectionDavid Shaw1-1/+1
problem when auto-key-locate returns a list of keys, not all of which are usable (revoked, expired, etc). Noted by Simon Josefsson.
2006-04-09* getkey.c (parse_auto_key_locate): Fix dupe-removal code.David Shaw1-4/+4
* 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-08See ChangeLogWerner Koch1-4/+17
2006-04-01* getkey.c (get_pubkey_byname): Fix missing auto_key_retrieve unlock.David Shaw1-5/+6
Fix strings to not start with a capital letter as per convention.
2006-03-22* getkey.c (parse_auto_key_locate): Silently strip out duplicates ratherDavid Shaw1-5/+10
than causing an error.
2006-03-17* keyserver.c (keyserver_import_cert): Handle the IPGP CERT type forDavid Shaw1-12/+11
both the fingerprint alone, and fingerprint+URL cases. * getkey.c (get_pubkey_byname): Minor cleanup.
2006-03-14* keyserver-internal.h, keyserver.c (keyserver_import_pka): Use theDavid Shaw1-27/+40
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* keyserver-internal.h, keyserver.c (keyserver_spawn, keyserver_work,David Shaw1-4/+4
keyserver_import_cert, keyserver_import_name, keyserver_import_ldap): Pass fingerprint info through.
2006-03-01* getkey.c (parse_auto_key_locate): Error if the user selects "cert" orDavid Shaw1-5/+9
"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-02-24* keydb.h, getkey.c (release_akl), gpg.c (main): AddDavid Shaw1-8/+24
--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-22* options.h, keyserver-internal.h, keyserver.c (keyserver_import_name),David Shaw1-4/+31
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* options.h, keydb.h, g10.c (main), getkey.c (parse_auto_key_locate):David Shaw1-62/+110
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-21* getkey.c (get_pubkey_byname): Fix minor security problem with PKA whenDavid Shaw1-1/+14
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.
2005-12-23* keyserver.c (keyserver_import_pka): New. Moved fromDavid Shaw1-21/+40
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* gpgv.c: Stub.David Shaw1-28/+46
* 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-20Finished PKA featureWerner Koch1-0/+1
2005-12-19* getkey.c (merge_selfsigs_main): All primary keys can certify.David Shaw1-1/+3
2005-11-10* packet.h: Move some flags to a bitfield. Change all callers.David Shaw1-5/+5
2005-10-27* keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix problem withDavid Shaw1-1/+1
adding a cert-only designated revoker. Code was looking for a key with sign ability, and not cert ability. Noted by Timo Schulz.
2005-10-14* keyedit.c (keyedit_menu, menu_backsign): New "backsign" command toDavid Shaw1-1/+4
add 0x19 backsigs to old keys that don't have them. * misc.c (parse_options): Fix build warning. * main.h, keygen.c (make_backsig): Make public.
2005-10-12* options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main), sig-check.cDavid Shaw1-7/+0
(signature_check2): Add --require-backsigs and --no-require-backsigs. Currently defaults to --no-require-backsigs.
2005-10-11* getkey.c (merge_selfsigs_subkey), sig-check.c (signature_check2),David Shaw1-4/+6
keygen.c (make_backsig): Did some backsig interop testing with the PGP folks. All is well, so I'm turning generation of backsigs on for new keys. Checking for backsigs on verification is still off.
2005-08-27* misc.c (openpgp_pk_algo_usage): Default to allowing CERT for signingDavid Shaw1-4/+12
algorithms. * keyedit.c (sign_uids): Don't request a signing key to make a certification. * keygen.c (do_add_key_flags): Force the certify flag on for all primary keys, as the spec requires primary keys must be able to certify (if nothing else, which key is going to issue the user ID signature?) (print_key_flags): Show certify flag. (ask_key_flags, ask_algo): Don't allow setting the C flag for subkeys. * keyid.c (usagestr_from_pk), getkey.c (parse_key_usage): Distinguish between a sign/certify key and a certify-only key.
2005-08-19* options.skel: Remove the surfnet LDAP keyserver from the list ofDavid Shaw1-0/+4
samples since it is being shut down. * getkey.c (classify_user_id): Disable the '.' and '+' search modes since they aren't supported yet.
2005-08-05auto retrieve keys from PKA. Thsi allows to specify an email addressWerner Koch1-12/+48
so that gpg can get the key from DNS. This helps with opportunistic encryption. No integration with the trust modell yet.
2005-07-27Converted all m_free to xfree etc.Werner Koch1-33/+33
2005-06-12* getkey.c (merge_selfsigs_main, merge_selfsigs_subkey): Make sureDavid Shaw1-7/+12
that even after keys may be merged together, we only have one chosen selfsig.
2005-06-08* getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both expiredDavid Shaw1-12/+9
and revoked uids in fixup_uidnode(). No need to special case in merge_selfsigs_main(). This also means that an expired uid will have its selfsig tagged with chosen_selfsig.
2005-05-31Updated FSF street address and preparations for a release candidate.Werner Koch1-1/+2
2005-03-17* getkey.c (get_seckey_byname2): If no explicit default key is set, don'tDavid Shaw1-4/+10
pick a disabled default. Noted by David Crick.
2005-02-05* getkey.c (merge_selfsigs_subkey): Merged away definition from theDavid Shaw1-0/+1
backsigs code.
2005-01-20* gpgv.c (tty_fprintf): New stub.Werner Koch1-2/+30
* card-util.c (card_status): Create asecret key stub on the fly and print more information about a card key. * import.c (pub_to_sec_keyblock, auto_create_card_key_stub): New. * getkey.c (get_seckeyblock_byfprint): New. * keylist.c (print_card_key_info): New.
2004-12-30* packet.h, getkey.c (merge_selfsigs_main, sig_to_revoke_info), keyid.cDavid Shaw1-8/+18
(revokestr_from_pk), keyedit.c (show_key_with_all_names): Show who revoked a key (either the same key or a designated revoker) and when.
2004-12-20* keyedit.c (keyedit_menu): Invisible alias "passwd" as "password".David Shaw1-1/+1
* passphrase.c: Don't check for __CYGWIN__, so it is treated as a unix-like system. * options.h, g10.c (main), textfilter.c (standard): Use new option --rfc2440-text to determine whether to filter "<space>\t\r\n" or just "\r\n" before canonicalizing text line endings. Default to "<space>\t\r\n".
2004-11-29* getkey.c (parse_key_usage): New function to parse out key usage flags.David Shaw1-48/+68
Set PUBKEY_USAGE_UNKNOWN to handle flags that we don't understand. (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey): Call it from here to remove duplicate code.
2004-09-24* main.h: Create S2K_DIGEST_ALGO macro so we do not need to always setDavid Shaw1-2/+2
opt.s2k_digest_algo. This helps fix a problem with PGP 2.x encrypted symmetric messages. Change all callers (encode.c, g10.c, keyedit.c, keygen.c, passphrase.c, sign.c). * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent in some more quoted strings. Always use 'user ID', not 'user id', "quotes" for user IDs, etc.