summaryrefslogtreecommitdiffstats
path: root/g10/pubkey-enc.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2011-02-03 16:31:42 +0100
committerWerner Koch <wk@gnupg.org>2011-02-03 16:35:33 +0100
commit0b5bcb40cf17a0e1032c113af6024c08b47d7a5c (patch)
tree6196c497d9734a6a022dd713df373416d2f9f067 /g10/pubkey-enc.c
parentCompute the fingerprint for ECDH only on demand. (diff)
downloadgnupg2-0b5bcb40cf17a0e1032c113af6024c08b47d7a5c.tar.xz
gnupg2-0b5bcb40cf17a0e1032c113af6024c08b47d7a5c.zip
Finished ECC integration.
Wrote the ChangeLog 2011-01-13 entry for Andrey's orginal work modulo the cleanups I did in the last week. Adjusted my own ChangeLog entries to be consistent with that entry. Nuked quite some trailing spaces; again sorry for that, I will better take care of not saving them in the future. "git diff -b" is useful to read the actual changes ;-). The ECC-INTEGRATION-2-1 branch can be closed now.
Diffstat (limited to 'g10/pubkey-enc.c')
-rw-r--r--g10/pubkey-enc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index d45b4a217..1b94af54f 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -160,7 +160,7 @@ get_it (PKT_pubkey_enc *enc, DEK *dek, PKT_public_key *sk, u32 *keyid)
if (!enc->data[0] || !enc->data[1])
err = gpg_error (GPG_ERR_BAD_MPI);
else
- err = gcry_sexp_build (&s_data, NULL, "(enc-val(elg(a%m)(b%m)))",
+ err = gcry_sexp_build (&s_data, NULL, "(enc-val(elg(a%m)(b%m)))",
enc->data[0], enc->data[1]);
}
else if (pkalgo == GCRY_PK_RSA || pkalgo == GCRY_PK_RSA_E)
@@ -185,9 +185,11 @@ get_it (PKT_pubkey_enc *enc, DEK *dek, PKT_public_key *sk, u32 *keyid)
if (err)
goto leave;
- /* fixme: only needed for ECDH. Don't compute always. */
- fingerprint_from_pk (sk, fp, &fpn);
- assert (fpn == 20);
+ if (sk->pubkey_algo == PUBKEY_ALGO_ECDH)
+ {
+ fingerprint_from_pk (sk, fp, &fpn);
+ assert (fpn == 20);
+ }
/* Decrypt. */
desc = gpg_format_keydesc (sk, 0, 1);