summaryrefslogtreecommitdiffstats
path: root/g10/mainproc.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2007-12-11 14:19:38 +0100
committerWerner Koch <wk@gnupg.org>2007-12-11 14:19:38 +0100
commitc8b76e56214ff466b2eb8b7dee5c3944a01c3c1f (patch)
treeb1f290b76a1a3d4c138e63a3d4775d4639213855 /g10/mainproc.c
parent2007-12-10 Marcus Brinkmann <marcus@g10code.de> (diff)
downloadgnupg2-c8b76e56214ff466b2eb8b7dee5c3944a01c3c1f.tar.xz
gnupg2-c8b76e56214ff466b2eb8b7dee5c3944a01c3c1f.zip
Allow decryption using type 20 Elgamal keys.
Diffstat (limited to '')
-rw-r--r--g10/mainproc.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 1d5c03f00..10d665b80 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -377,10 +377,16 @@ proc_pubkey_enc( CTX c, PACKET *pkt )
}
}
else if( is_ELGAMAL(enc->pubkey_algo)
- || enc->pubkey_algo == PUBKEY_ALGO_DSA
- || is_RSA(enc->pubkey_algo) ) {
- /* FIXME: strore this all in a list and process it later */
-
+ || enc->pubkey_algo == PUBKEY_ALGO_DSA
+ || is_RSA(enc->pubkey_algo)
+ || enc->pubkey_algo == PUBKEY_ALGO_ELGAMAL) {
+ /* Note that we also allow type 20 Elgamal keys for decryption.
+ There are still a couple of those keys in active use as a
+ subkey. */
+
+ /* FIXME: Store this all in a list and process it later so that
+ we can prioritize what key to use. This gives a better user
+ experience if wildcard keyids are used. */
if ( !c->dek && ((!enc->keyid[0] && !enc->keyid[1])
|| opt.try_all_secrets
|| !seckey_available( enc->keyid )) ) {