g10: detects public key encryption packet error properly.
authorNIIBE Yutaka <gniibe@fsij.org>
Tue, 19 May 2015 01:32:07 +0000 (10:32 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Tue, 19 May 2015 01:43:33 +0000 (10:43 +0900)
g10/mainproc.c (proc_pubkey_enc): Only allow relevant algorithms for
encryption.

--

(backport from 2.1 commit c771963140cad7c1c25349bcde27e427effc0058)

g10/mainproc.c

index be4c73d..17d40de 100644 (file)
@@ -387,9 +387,9 @@ proc_pubkey_enc( CTX c, PACKET *pkt )
            xfree(c->dek); c->dek = NULL;
        }
     }
-    else if( is_ELGAMAL(enc->pubkey_algo)
-             || enc->pubkey_algo == PUBKEY_ALGO_DSA
-             || is_RSA(enc->pubkey_algo)
+    else if( enc->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E
+             || enc->pubkey_algo == PUBKEY_ALGO_RSA
+             || enc->pubkey_algo == PUBKEY_ALGO_RSA_E
              || 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