From 39e551985d74d6ee9a87bde1c32ecdd1433c00cf Mon Sep 17 00:00:00 2001 From: David Shaw Date: Tue, 2 Dec 2003 05:22:42 +0000 Subject: [PATCH] * g10.c (strusage, main): Show development version warning in --version output. * trustdb.c (mark_usable_uid_certs): Disallow signatures to and from an Elgamal signing key in the trustdb. --- g10/ChangeLog | 8 ++++++++ g10/g10.c | 29 ++++++++++++++++++++++++----- g10/trustdb.c | 20 ++++++++++++++++++-- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/g10/ChangeLog b/g10/ChangeLog index ddb50192d..7350871c4 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,11 @@ +2003-12-02 David Shaw + + * g10.c (strusage, main): Show development version warning in + --version output. + + * trustdb.c (mark_usable_uid_certs): Disallow signatures to and + from an Elgamal signing key in the trustdb. + 2003-11-29 David Shaw * keygen.c (ask_algo): Remove ability to generate Elgamal diff --git a/g10/g10.c b/g10/g10.c index 1553cdddb..54083a09f 100644 --- a/g10/g10.c +++ b/g10/g10.c @@ -645,6 +645,19 @@ strusage( int level ) case 19: p = _("Please report bugs to .\n"); break; + +#ifdef IS_DEVELOPMENT_VERSION + case 20: + p="NOTE: THIS IS A DEVELOPMENT VERSION!"; + break; + case 21: + p="It is only intended for test purposes and should NOT be"; + break; + case 22: + p="used in a production environment or with production keys!"; + break; +#endif + case 1: case 40: p = _("Usage: gpg [options] [files] (-h for help)"); @@ -1754,11 +1767,17 @@ main( int argc, char **argv ) fprintf(stderr, "%s\n", strusage(15) ); } #ifdef IS_DEVELOPMENT_VERSION - if( !opt.batch ) { - log_info("NOTE: THIS IS A DEVELOPMENT VERSION!\n"); - log_info("It is only intended for test purposes and should NOT be\n"); - log_info("used in a production environment or with production keys!\n"); - } + if( !opt.batch ) + { + const char *s; + + if((s=strusage(20))) + log_info("%s\n",s); + if((s=strusage(21))) + log_info("%s\n",s); + if((s=strusage(22))) + log_info("%s\n",s); + } #endif if (opt.verbose > 2) diff --git a/g10/trustdb.c b/g10/trustdb.c index 39a21aa26..04ae07171 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -1,6 +1,6 @@ /* trustdb.c - * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 - * Free Software Foundation, Inc. + * Copyright (C) 1998, 1999, 2000, 2001, 2002, + * 2003 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -1194,6 +1194,22 @@ mark_usable_uid_certs (KBNODE keyblock, KBNODE uidnode, continue; /* we only look at these signature classes */ if (!is_in_klist (klist, sig)) continue; /* no need to check it then */ + if(sig->pubkey_algo==PUBKEY_ALGO_ELGAMAL) + { + if(opt.verbose) + log_info(_("signature from Elgamal signing key %08lX " + "to %08lX skipped\n"), + (ulong)sig->keyid[1],(ulong)main_kid[1]); + continue; + } + if(keyblock->pkt->pkt.public_key->pubkey_algo==PUBKEY_ALGO_ELGAMAL) + { + if(opt.verbose) + log_info(_("signature from %08lX to Elgamal signing key " + "%08lX skipped\n"), + (ulong)sig->keyid[1],(ulong)main_kid[1]); + continue; + } if (check_key_signature (keyblock, node, NULL)) continue; /* ignore invalid signatures */ node->flag |= 1<<9;