From 509fe4ce5d50089776b072c33c199798d3defe8c Mon Sep 17 00:00:00 2001 From: David Shaw Date: Tue, 31 Jan 2012 21:30:05 -0500 Subject: 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. --- g10/sign.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/g10/sign.c b/g10/sign.c index 5003e9e05..462392df3 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, 2010 Free Software Foundation, Inc. + * 2007, 2010, 2012 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -1489,7 +1489,7 @@ update_keysig_packet( PKT_signature **ret_sig, void *opaque ) { PKT_signature *sig; - int rc=0; + int rc=0, digest_algo; MD_HANDLE md; if ((!orig_sig || !pk || !sk) @@ -1497,7 +1497,12 @@ update_keysig_packet( PKT_signature **ret_sig, || (orig_sig->sig_class == 0x18 && !subpk)) return G10ERR_GENERAL; - md = md_open( orig_sig->digest_algo, 0 ); + if ( opt.cert_digest_algo ) + digest_algo = opt.cert_digest_algo; + else + digest_algo = orig_sig->digest_algo; + + md = md_open( digest_algo, 0 ); /* hash the public key certificate and the user id */ hash_public_key( md, pk ); -- cgit v1.2.3