Allow decryption using type 20 Elgamal keys.
authorWerner Koch <wk@gnupg.org>
Tue, 11 Dec 2007 13:21:30 +0000 (13:21 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 11 Dec 2007 13:21:30 +0000 (13:21 +0000)
g10/ChangeLog
g10/mainproc.c

index 1af8160..a4a772a 100644 (file)
@@ -1,3 +1,8 @@
+2007-12-11  Werner Koch  <wk@g10code.com>
+
+       * mainproc.c (proc_pubkey_enc): Allow type 20 Elgamal key for
+       decryption.
+
 2007-12-10  Werner Koch  <wk@g10code.com>
 
        * cardglue.h (gpg_error_from_syserror): New.
index 03182b6..56494cb 100644 (file)
@@ -402,9 +402,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