aboutsummaryrefslogtreecommitdiffstats
path: root/g10/sig-check.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* g10: Fix checking key for signature validation.NIIBE Yutaka2016-08-041-2/+2
| | | | | | | | | | | | * g10/sig-check.c (signature_check2): Not only subkey, but also primary key should have flags.valid=1. -- (backport of master commit 6f284e6ed63f514b15fe610f490ffcefc87a2164) Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg: Add option --weak-digest to gpg and gpgv.Daniel Kahn Gillmor2015-12-191-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g10/options.h: Add weak_digests linked list to opts. * g10/main.h: Declare weakhash linked list struct and additional_weak_digest() function to insert newly-declared weak digests into opts. * g10/misc.c: (additional_weak_digest): New function. (print_digest_algo_note): Check for deprecated digests. * g10/sig-check.c: (do_check): Reject all weak digests. * g10/gpg.c: Add --weak-digest option to gpg. * doc/gpg.texi: Document gpg --weak-digest option. * g10/gpgv.c: Add --weak-digest option to gpgv. * doc/gpgv.texi: Document gpgv --weak-digest option. -- gpg and gpgv treat signatures made over MD5 as unreliable, unless the user supplies --allow-weak-digests to gpg. Signatures over any other digest are considered acceptable. Despite SHA-1 being a mandatory-to-implement digest algorithm in RFC 4880, the collision-resistance of SHA-1 is weaker than anyone would like it to be. Some operators of high-value targets that depend on OpenPGP signatures may wish to require their signers to use a stronger digest algorithm than SHA1, even if the OpenPGP ecosystem at large cannot deprecate SHA1 entirely today. This changeset adds a new "--weak-digest DIGEST" option for both gpg and gpgv, which makes it straightforward for anyone to treat any signature or certification made over the specified digest as unreliable. This option can be supplied multiple times if the operator wishes to deprecate multiple digest algorithms, and will be ignored completely if the operator supplies --allow-weak-digests (as before). MD5 is always considered weak, regardless of any further --weak-digest options supplied. Signed-off-by: Daniel Kahn Gillmor <[email protected]> (this is a rough cherry-pick of applying the following commits to STABLE-BRANCH-1-4: 76afaed65e3b0ddfa4923cb577ada43217dd4b18 b98939812abf6c643c752ce7c325f98039a1a9e2 91015d021b3dcbe21ad0e580a4f34c523abf9e72 )
* gpg: Reject signatures made with MD5.Werner Koch2015-12-191-0/+16
| | | | | | | | | | | | | | * g10/gpg.c: Add option --allow-weak-digest-algos. (main): Set option also in PGP2 mode. * g10/options.h (struct opt): Add flags.allow_weak_digest_algos. * g10/sig-check.c (do_check): Reject MD5 signatures. * tests/openpgp/gpg.conf.tmpl: Add allow_weak_digest_algos. -- (cherry picked from commit f90cfe6b66269de0154d810c5cee1fe9a5af475c) Resolved conflicts: g10/gpg.c - adjust. tests/openpgp/defs.inc - no changes
* doc: Change remaining http links to gnupg.org to httpsWerner Koch2015-02-231-1/+1
| | | | | | | | -- GnuPG-bug-id: 1830 [dkg: rebased to STABLE-BRANCH-1-4] Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* Removed some set but unused vars.Werner Koch2011-08-091-12/+9
|
* Fix bug#1059 (missing status line signature verification done with a Werner Koch2009-12-171-1/+5
| | | | | subkey while on the main key has expired).
* (no commit message)Werner Koch2009-08-031-0/+6
|
* Change SIG_ID computation to mWerner Koch2008-12-111-8/+20
|
* Close message digest; fixes memory leak.Werner Koch2008-12-111-0/+1
|
* * sig-check.c (do_check): Code to try both the incorrect and correctDavid Shaw2007-11-281-2/+28
| | | | | | | | | 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.
* Switched to GPLv3.Werner Koch2007-10-231-4/+2
| | | | | Updated gettext.
* * main.h, seskey.c (encode_md_value): Modify to allow a q size greaterDavid Shaw2006-03-301-2/+1
| | | | | | | | | | | | 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.
* Changed URLsWerner Koch2006-03-221-1/+1
|
* * sig-check.c (signature_check2): Print the backsig warning when thereDavid Shaw2006-03-121-6/+8
| | | | | | | | | 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.
* * options.h, mainproc.c (check_sig_and_print), gpg.c (main):David Shaw2006-03-081-1/+1
| | | | | | | | | 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.
* * options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main), sig-check.cDavid Shaw2005-10-121-4/+11
| | | | | | (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-2/+5
| | | | | | | 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.
* Converted all m_free to xfree etc.Werner Koch2005-07-271-5/+5
|
* Updated FSF street address and preparations for a release candidate.Werner Koch2005-05-311-1/+2
|
* * keyserver.c (keyserver_work): Allow --refresh-keys with a preferredDavid Shaw2004-05-201-48/+43
| | | | | | | | | | | keyserver to happen even if there is no global keyserver set. * sig-check.c (do_check_messages): No need to check for Elgamal signatures any longer. (do_check_messages, do_check, check_key_signature2): --keyid-format conversion. * pkclist.c (show_paths, edit_ownertrust): Remove some unused code.
* * keygen.c (make_backsig): If DO_BACKSIGS is not defined, do not createDavid Shaw2004-04-231-2/+52
| | | | | | | | | | | | | | | | backsigs. * getkey.c (merge_selfsigs_subkey): Find 0x19 backsigs on subkey selfsigs and verify they are valid. If DO_BACKSIGS is not defined, fake this as always valid. * packet.h, parse-packet.c (parse_signature): Make parse_signature non-static so we can parse 0x19s in self-sigs. * main.h, sig-check.c (check_backsig): Check a 0x19 signature. (signature_check2): Give a backsig warning if there is no or a bad 0x19 with signatures from a subkey.
* * delkey.c (do_delete_key): Allow deleting a public key with a secretDavid Shaw2004-02-261-1/+1
| | | | | | | | | | | | | present if --expert is set. * plaintext.c (handle_plaintext): Make bytecount static so it works with multiple literal packets inside a message. * encode.c, helptext.c (keygen.algo, keygen.algo.elg_se), keygen.c (ask_algo), sig-check.c (do_check_messages), skclist.c (build_sk_list): Rename "ElGamal" to "Elgamal" as that is the proper spelling nowadays. Suggested by Jon Callas.
* * sig-check.c (check_key_signature2): Comments.David Shaw2004-01-191-1/+4
| | | | | | | * 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).
* * misc.c (pull_in_libs): Dead code. Removed.David Shaw2003-12-301-7/+9
| | | | | | | | | | | | | | | | | | | | | | | * sig-check.c (check_revocation_keys): Comments. * getkey.c (merge_selfsigs_main): Don't bother to check designated revoker sigs if the key is already revoked. * packet.h, getkey.c (merge_selfsigs_main): New "maybe_revoked" flag on PKs. It is set when there is a revocation signature from a valid revocation key, but the revocation key is not present to verify the signature. * pkclist.c (check_signatures_trust): Use it here to give a warning when showing key trust. * compress-bz2.c: Include stdio.h. Solaris 9 has a very old bzip2 library and we can at least guarantee that it won't fail because of the lack of stdio.h. * tdbio.c: Fixed format string bugs related to the use of DB_NAME. Reported by Florian Weimer.
* * sig-check.c (cmp_help, do_check), sign.c (do_sign): Remove old unusedDavid Shaw2003-12-171-76/+1
| | | | | | | code. * keyid.c (keyid_from_sk): Make sure lowbits is initialized.
* * sig-check.c (do_check): Move the signing algo and hash checks fromDavid Shaw2003-12-131-12/+15
| | | | | | | | | here... (signature_check2): ... to here. (check_key_signature2): ... and here. This is a minor optimization to avoid fetching a key (which can be expensive, especially if it is not self-signed, and there are many key signatures on it which need to be checked for ultimate trust) if the signature would have failed anyway because of algorithm or hash problems.
* * options.h, g10.c (main), main.h, seskey.c (do_encode_md,David Shaw2003-12-041-16/+1
| | | | | | | encode_md_value), sig-check.c (do_check), sign.c (do_sign): Remove --emulate-md-encode-bug as it only applied to Elgamal signatures, which are going away.
* * gpgv.c: Remove extra semicolon (typo).David Shaw2003-08-211-1/+1
| | | | | | | | | | | | | | | | | | * 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.
* * packet.h, sig-check.c (signature_check2, do_check, do_check_messages):David Shaw2003-08-131-17/+27
| | | | | | | | | | | | | | | | | | | Provide a signing-key-is-revoked flag. Change all callers. * status.h, status.c (get_status_string): New REVKEYSIG status tag for a good signature from a revoked key. * mainproc.c (do_check_sig, check_sig_and_print): Use it here. * import.c (import_revoke_cert, merge_blocks, merge_sigs): Compare actual signatures on import rather than using keyid or class matching. This does not change actual behavior with a key, but does mean that all sigs are imported whether they will be used or not. * parse-packet.c (parse_signature): Don't give "signature packet without xxxx" warnings for experimental pk algorithms. An experimental algorithm may not have a notion of (for example) a keyid (i.e. PGP's x.509 stuff).
* * keygen.c (do_add_key_flags): Don't set the certify flag for subkeys.David Shaw2003-07-211-14/+13
| | | | | | | | | | | | | | | | | | (ask_algo): Provide key flags for DSA, Elgamal_e, and Elgamal subkeys. (generate_keypair): Provide key flags for the default DSA/Elgamal keys. * sig-check.c (signature_check, signature_check2, check_key_signature, check_key_signature2): Allow passing NULLs for unused parameters in the x2 form of each function to avoid the need for dummy variables. getkey.c, mainproc.c: Change all callers. * trustdb.h, trustdb.c (read_trust_options): New. Returns items from the trustdb version record. * keylist.c (public_key_list): Use it here for the new "tru" record. * gpgv.c (read_trust_options): Stub.
* * packet.h, main.h, sig-check.c (signature_check2, check_key_signature2,David Shaw2003-07-201-17/+24
| | | | | | | | | | | do_check): If ret_pk is set, fill in the pk used to verify the signature. Change all callers in getkey.c, mainproc.c, and sig-check.c. * keylist.c (list_keyblock_colon): Use the ret_pk from above to put the fingerprint of the signing key in "sig" records during a --with-colons --check-sigs. This requires --no-sig-cache as well since we don't cache fingerprints.
* * keylist.c (list_one): Don't show the keyring filename when inDavid Shaw2003-05-311-2/+3
| | | | | | | | | | | | | | | | | | | | | | --with-colons mode. Actually translate "Keyring" string. * mainproc.c (proc_tree): We can't currently handle multiple signatures of different classes or digests (we'd pretty much have to run a different hash context for each), but if they are all the same, make an exception. This is Debian bug #194292. * sig-check.c (check_key_signature2): Make string translatable. * packet.h, getkey.c (fixup_uidnode): Mark real primary uids differently than assumed primaries. * keyedit.c (no_primary_warning): Use the differently marked primaries here in a new function to warn when an --edit-key command might rearrange the self-sig dates enough to change which uid is primary. (menu_expire, menu_set_preferences): Use no_primary_warning() here. * Makefile.am: Use @DLLIBS@ for -ldl.
* * getkey.c (premerge_public_with_secret): Made "no secret subkey for"David Shaw2003-05-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | warning a verbose item and translatable. (From wk on stable branch) * sig-check.c (check_key_signature2): Made "no subkey for subkey binding packet" a verbose item instead of a !quiet one. There are too many garbled keys out in the wild. (From wk on stable branch) * filter.h: Remove const from WHAT. (From wk on stable branch) * progress.c (handle_progress): Store a copy of NAME. (progress_filter): Release WHAT, make sure not to print a NULL WHAT. (From wk on stable branch) * openfile.c (open_sigfile): Adjust free for new progress semantics. (From wk on stable branch) * plaintext.c (ask_for_detached_datafile): Don't dealloc pfx->WHAT. (From wk on stable branch) * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the cipher algo is IDEA to make it easier to track down the problem. (From twoaday on stable branch)
* * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c, build-packet.c,David Shaw2003-05-241-3/+3
| | | | | | | | | getkey.c, keydb.c, openfile.c, plaintext.c, status.c, gpgv.c, keygen.c, options.h, sig-check.c, tdbio.h, encode.c, mainproc.c, parse-packet.c, signal.c, textfilter.c: Edit all preprocessor instructions to remove whitespace before the '#'. This is not required by C89, but there are some compilers out there that don't like it.
* * g10.c (add_group): Trim whitespace after a group name so it does notDavid Shaw2003-01-161-1/+1
| | | | | | | | | | | | | | | | matter where the user puts the = sign. * options.skel: Comment out the first three lines in case someone manually copies the skel file to their homedir. * sign.c (clearsign_file): Only use pgp2mode with v3 keys and MD5. This matches what we do when decoding such messages and prevents creating a message (v3+RIPEMD/160) that we can't verify. * sig-check.c (signature_check2): Use G10ERR_GENERAL as the error for signature digest conflict. BAD_SIGN implies that a signature was checked and we may try and print out a user ID for a key that doesn't exist.
* * getkey.c (merge_selfsigs_main), main.h, sig-check.cDavid Shaw2002-12-291-9/+14
| | | | | | | | (check_key_signature2): Pass the ultimately trusted pk directly to check_key_signature2 to avoid going through the key selection mechanism. This prevents a deadly embrace when two keys without selfsigs each sign the other.
* * getkey.c (get_pubkey_direct): Don't cache keys retrieved via thisDavid Shaw2002-10-041-3/+1
| | | | | | | | | function as they may not have all their fields filled in. * sig-check.c (signature_check2): Use new is_primary flag to check rather than comparing main_keyid with keyid as this still works in the case of a not fully filled in pk.
* 2002-09-28 David Shaw <[email protected]>David Shaw2002-09-281-2/+5
| | | | | | | | | | | | | | * export.c (do_export_stream): Comment. * sig-check.c (check_key_signature2): Properly handle a non-designated revocation import. 2002-09-26 Werner Koch <[email protected]> * g10.c (set_homedir): New. Changed all direct assignments to use this. * gpgv.c (set_homedir): Ditto.
* * import.c (import_keys_stream): Fix compiler type warning.David Shaw2002-09-241-3/+3
| | | | | | * keyring.c (keyring_rebuild_cache), sig-check.c (check_key_signature2), import.c (import, chk_self_sigs): Minor language cleanups.
* From stable branchDavid Shaw2002-09-171-1/+2
| | | | | | | | | | | | | | * keyedit.c (menu_addrevoker): The direct key signature for revocation keys must be at least v4 to carry the revocation key subpacket. Add a PGP 2.x warning for revocation keys. * g10.c (check_permissions): Rearrange strings to make translating easier (don't incorporate string parts). * keyedit.c (sign_uids): Make strings translatable. * sig-check.c (check_key_signature2): Make string translatable.
* Import from stable branch.David Shaw2002-09-131-5/+76
| | | | | | | | | | | | | | | | | | | | 2002-09-13 David Shaw <[email protected]> * getkey.c (check_revocation_keys): Move.... * main.h, sig-check.c (check_revocation_keys): to here. Also return the signature_check error code rather than 0/1 and cache the sig result. * sig-check.c (check_key_signature2): Divert to check_revocation_keys if a revocation sig is made by someone other than the pk owner. * getkey.c (merge_selfsigs_main): Tidy. 2002-09-13 Werner Koch <[email protected]> * g10.c (main) [__MINGW32__]: Activate oLoadExtension.
* * sig-check.c (do_check_messages, do_check): Show keyid in error messages.David Shaw2002-08-281-9/+11
| | | | | | * keyserver.c (print_keyinfo): More readable key listings for --search-keys responses.
* * sig-check.c (do_check, do_check_messages): Emit the usual sig warningsDavid Shaw2002-08-231-8/+16
| | | | | | | | even for cached sigs. This also serves to protect against missing a sig expiring while cached. * getkey.c (merge_selfsigs_main): Don't check UID self-sigs twice.
* * sig-check.c (signature_check2): Sanity check that the md has a contextDavid Shaw2002-08-071-1/+11
| | | | | | | for the hash that the sig is expecting. This can happen if a onepass sig header does not match the actual sig, and also if the clearsign "Hash:" header is missing or does not match the actual sig.
* * sig-check.c (do_check): Properly validate v4 sigs with no hashed sectionDavid Shaw2002-07-291-2/+7
| | | | | at all.
* * sig-check.c (signature_check2): Signatures made by invalid subkeysDavid Shaw2002-07-231-0/+5
| | | | | | | | (bad/missing binding sig) are also invalid. * keylist.c (print_fingerprint): Show the primary as well as the secondary key fingerprint in modes 1 & 2.
* Update head to match stable 1.0David Shaw2002-06-291-199/+171
|
* See ChangeLog: Mon Sep 18 16:35:45 CEST 2000 Werner KochWerner Koch2000-09-181-5/+10
|
* See ChangeLog: Fri Jul 28 18:19:11 CEST 2000 Werner KochWerner Koch2000-07-281-1/+1
|
* See ChangeLog: Tue Jul 25 17:44:15 CEST 2000 Werner KochWerner Koch2000-07-251-33/+23
|