diff options
author | David Shaw <[email protected]> | 2012-02-01 02:30:05 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2012-02-01 02:30:05 +0000 |
commit | 509fe4ce5d50089776b072c33c199798d3defe8c (patch) | |
tree | 0eb4e2334ee4314b0198af4988195ae60940568c | |
parent | Release 1.4.12 (diff) | |
download | gnupg-509fe4ce5d50089776b072c33c199798d3defe8c.tar.gz gnupg-509fe4ce5d50089776b072c33c199798d3defe8c.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.c | 11 |
1 files 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 ); |