aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* g10: Improve handling of no corresponding public key.NIIBE Yutaka2015-05-191-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
* Switch to a hash and CERT record based PKA system.Werner Koch2015-02-261-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)
* Use inline functions to convert buffer data to scalars.Werner Koch2015-02-231-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]>
* gpg: Distinguish between missing and cleared key flags.Werner Koch2013-10-041-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
* Allow use of a standard space separated fingerprint.Werner Koch2012-01-101-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.
* Add pubkey letters e and E for ECC.Werner Koch2011-07-011-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.
* Fix for bug#1034.Werner Koch2009-05-061-11/+1
|
* Ignore gpg2 introduced keywords for --auto-key-locate.Werner Koch2008-04-301-0/+6
| | | | | Minor W32 installer fix.
* * getkey.c (merge_selfsigs_subkey): If there are multiple 0x19David Shaw2008-04-131-27/+73
| | | | | backsigs, take the most recent one.
* Updated ZH po file.Werner Koch2007-12-121-2/+5
| | | | | | Allow de/encryption using legacy type 20 keys. Updated config.{sub,guess}
* Switched to GPLv3.Werner Koch2007-10-231-4/+2
| | | | | Updated gettext.
* * keyedit.c (keyedit_menu): If we modify the keyblock (viaDavid Shaw2007-03-061-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.
* * parse-packet.c (parse_signature): It's hex.David Shaw2007-02-141-0/+3
| | | | | | * getkey.c (merge_selfsigs_subkey): Avoid listing the contents of a backsig when list mode is on. Noted by Timo Schulz.
* * parse-packet.c (dump_sig_subpkt, parse_signature), build-packet.cDavid Shaw2006-05-231-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".
* * getkey.c (get_pubkey_byname), import.c (import_one): Fix key selectionDavid Shaw2006-05-221-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.
* * getkey.c (parse_auto_key_locate): Fix dupe-removal code.David Shaw2006-04-091-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.
* See ChangeLogWerner Koch2006-04-081-4/+17
|
* * getkey.c (get_pubkey_byname): Fix missing auto_key_retrieve unlock.David Shaw2006-04-011-5/+6
| | | | | Fix strings to not start with a capital letter as per convention.
* * getkey.c (parse_auto_key_locate): Silently strip out duplicates ratherDavid Shaw2006-03-221-5/+10
| | | | | than causing an error.
* * keyserver.c (keyserver_import_cert): Handle the IPGP CERT type forDavid Shaw2006-03-171-12/+11
| | | | | | | both the fingerprint alone, and fingerprint+URL cases. * getkey.c (get_pubkey_byname): Minor cleanup.
* * keyserver-internal.h, keyserver.c (keyserver_import_pka): Use theDavid Shaw2006-03-141-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.
* * keyserver-internal.h, keyserver.c (keyserver_spawn, keyserver_work,David Shaw2006-03-141-4/+4
| | | | | | keyserver_import_cert, keyserver_import_name, keyserver_import_ldap): Pass fingerprint info through.
* * getkey.c (parse_auto_key_locate): Error if the user selects "cert" orDavid Shaw2006-03-011-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.
* * keydb.h, getkey.c (release_akl), gpg.c (main): AddDavid Shaw2006-02-241-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.
* * options.h, keyserver-internal.h, keyserver.c (keyserver_import_name),David Shaw2006-02-221-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.
* * options.h, keydb.h, g10.c (main), getkey.c (parse_auto_key_locate):David Shaw2006-02-221-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.
* * getkey.c (get_pubkey_byname): Fix minor security problem with PKA whenDavid Shaw2006-02-211-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.
* * keyserver.c (keyserver_import_pka): New. Moved fromDavid Shaw2005-12-231-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.
* * gpgv.c: Stub.David Shaw2005-12-231-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.
* Finished PKA featureWerner Koch2005-12-201-0/+1
|
* * getkey.c (merge_selfsigs_main): All primary keys can certify.David Shaw2005-12-191-1/+3
|
* * packet.h: Move some flags to a bitfield. Change all callers.David Shaw2005-11-101-5/+5
|
* * keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix problem withDavid Shaw2005-10-271-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.
* * keyedit.c (keyedit_menu, menu_backsign): New "backsign" command toDavid Shaw2005-10-141-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.
* * options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main), sig-check.cDavid Shaw2005-10-121-7/+0
| | | | | | (signature_check2): Add --require-backsigs and --no-require-backsigs. Currently defaults to --no-require-backsigs.
* * getkey.c (merge_selfsigs_subkey), sig-check.c (signature_check2),David Shaw2005-10-111-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.
* * misc.c (openpgp_pk_algo_usage): Default to allowing CERT for signingDavid Shaw2005-08-271-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.
* * options.skel: Remove the surfnet LDAP keyserver from the list ofDavid Shaw2005-08-191-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.
* auto retrieve keys from PKA. Thsi allows to specify an email addressWerner Koch2005-08-051-12/+48
| | | | | | so that gpg can get the key from DNS. This helps with opportunistic encryption. No integration with the trust modell yet.
* Converted all m_free to xfree etc.Werner Koch2005-07-271-33/+33
|
* * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey): Make sureDavid Shaw2005-06-121-7/+12
| | | | | | that even after keys may be merged together, we only have one chosen selfsig.
* * getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both expiredDavid Shaw2005-06-081-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.
* Updated FSF street address and preparations for a release candidate.Werner Koch2005-05-311-1/+2
|
* * getkey.c (get_seckey_byname2): If no explicit default key is set, don'tDavid Shaw2005-03-171-4/+10
| | | | | pick a disabled default. Noted by David Crick.
* * getkey.c (merge_selfsigs_subkey): Merged away definition from theDavid Shaw2005-02-051-0/+1
| | | | | backsigs code.
* * gpgv.c (tty_fprintf): New stub.Werner Koch2005-01-201-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.
* * packet.h, getkey.c (merge_selfsigs_main, sig_to_revoke_info), keyid.cDavid Shaw2004-12-301-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.
* * keyedit.c (keyedit_menu): Invisible alias "passwd" as "password".David Shaw2004-12-201-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".
* * getkey.c (parse_key_usage): New function to parse out key usage flags.David Shaw2004-11-291-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.
* * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always setDavid Shaw2004-09-241-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.