aboutsummaryrefslogtreecommitdiffstats
path: root/g10/elg.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1998-01-28 16:09:43 +0000
committerWerner Koch <[email protected]>1998-01-28 16:09:43 +0000
commit9bf8ce27bcd3a58d522262f23c2ca36bfe0a52b7 (patch)
treeefa4f8e1ccbc5e989942cde55c36220dca2d8fbd /g10/elg.c
parentmoved stuff to aclocal.m4 (diff)
downloadgnupg-9bf8ce27bcd3a58d522262f23c2ca36bfe0a52b7.tar.gz
gnupg-9bf8ce27bcd3a58d522262f23c2ca36bfe0a52b7.zip
version 0.2.1
Diffstat (limited to 'g10/elg.c')
-rw-r--r--g10/elg.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/g10/elg.c b/g10/elg.c
index 492049a30..f3a8923fa 100644
--- a/g10/elg.c
+++ b/g10/elg.c
@@ -66,18 +66,20 @@ g10_elg_encrypt( PKT_public_cert *pkc, PKT_pubkey_enc *enc, DEK *dek )
void
-g10_elg_sign( PKT_secret_cert *skc, PKT_signature *sig, MD_HANDLE md )
+g10_elg_sign( PKT_secret_cert *skc, PKT_signature *sig,
+ MD_HANDLE md, int digest_algo )
{
ELG_secret_key skey;
MPI frame;
byte *dp;
assert( sig->pubkey_algo == PUBKEY_ALGO_ELGAMAL );
+ if( !digest_algo )
+ digest_algo = md_get_algo(md);
- md_final( md );
- dp = md_read( md, 0 );
+ dp = md_read( md, digest_algo );
keyid_from_skc( skc, sig->keyid );
- sig->d.elg.digest_algo = md_get_algo(md);
+ sig->d.elg.digest_algo = digest_algo;
sig->d.elg.digest_start[0] = dp[0];
sig->d.elg.digest_start[1] = dp[1];
sig->d.elg.a = mpi_alloc( mpi_get_nlimbs(skc->d.elg.p) );