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.
This commit is contained in:
David Shaw 2012-01-31 21:30:05 -05:00
parent bdde44ae8d
commit 2b3cb2ee94
1 changed files with 7 additions and 2 deletions

View File

@ -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.
*
@ -1576,7 +1576,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 || !pksk)
@ -1584,6 +1584,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 ();