aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2012-02-01 02:30:05 +0000
committerDavid Shaw <[email protected]>2012-02-01 02:41:03 +0000
commit258192d4d453e27c4c54dbeefaae901ef94b5f4b (patch)
treeaeb99ab6bac8586777e4c1da64b5b67d196e606f
parentUpdate copyright year. (diff)
downloadgnupg-258192d4d453e27c4c54dbeefaae901ef94b5f4b.tar.gz
gnupg-258192d4d453e27c4c54dbeefaae901ef94b5f4b.zip
Honor --cert-digest-algo when recreating a cert.
* g10/sign.c (update_keysig_packet): Honor --cert-digest-algo when recreating a cert. This is used by various things in --edit-key like setpref, primary, etc. Suggested by Christian Aistleitner.
-rw-r--r--g10/sign.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/g10/sign.c b/g10/sign.c
index 94e107cf2..8d280ed85 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -1,6 +1,6 @@
/* sign.c - sign data
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- * 2007 Free Software Foundation, Inc.
+ * 2007, 2010, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -1504,7 +1504,7 @@ update_keysig_packet( PKT_signature **ret_sig,
void *opaque )
{
PKT_signature *sig;
- int rc=0;
+ int rc=0, digest_algo;
gcry_md_hd_t md;
if ((!orig_sig || !pk || !sk)
@@ -1512,6 +1512,11 @@ update_keysig_packet( PKT_signature **ret_sig,
|| (orig_sig->sig_class == 0x18 && !subpk))
return G10ERR_GENERAL;
+ if ( opt.cert_digest_algo )
+ digest_algo = opt.cert_digest_algo;
+ else
+ digest_algo = orig_sig->digest_algo;
+
if ( gcry_md_open (&md, orig_sig->digest_algo, 0 ) )
BUG ();