aboutsummaryrefslogtreecommitdiffstats
path: root/g10/sig-check.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-03-17 16:54:36 +0000
committerWerner Koch <[email protected]>2014-03-17 17:14:23 +0000
commitf90cfe6b66269de0154d810c5cee1fe9a5af475c (patch)
tree8029968d62c1aa04655c4e942cb5d0b08972a5bb /g10/sig-check.c
parentgpg: Make --auto-key-locate work again with keyservers. (diff)
downloadgnupg-f90cfe6b66269de0154d810c5cee1fe9a5af475c.tar.gz
gnupg-f90cfe6b66269de0154d810c5cee1fe9a5af475c.zip
gpg: Reject signatures made with MD5.
* 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/defs.inc: Add allow_weak_digest_algos to gpg.conf.
Diffstat (limited to 'g10/sig-check.c')
-rw-r--r--g10/sig-check.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/g10/sig-check.c b/g10/sig-check.c
index a3075337c..0cbb7f2cc 100644
--- a/g10/sig-check.c
+++ b/g10/sig-check.c
@@ -266,6 +266,22 @@ do_check( PKT_public_key *pk, PKT_signature *sig, gcry_md_hd_t digest,
if( (rc=do_check_messages(pk,sig,r_expired,r_revoked)) )
return rc;
+ if (sig->digest_algo == GCRY_MD_MD5
+ && !opt.flags.allow_weak_digest_algos)
+ {
+ static int shown;
+
+ if (!shown)
+ {
+ log_info
+ (_("Note: signatures using the %s algorithm are rejected\n"),
+ "MD5");
+ shown = 1;
+ }
+
+ return GPG_ERR_DIGEST_ALGO;
+ }
+
/* Make sure the digest algo is enabled (in case of a detached
signature). */
gcry_md_enable (digest, sig->digest_algo);