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

--

(backported from 2.1 commit c771963140cad7c1c25349bcde27e427effc0058)

g10/mainproc.c

index 2cf6dbc..a773fde 100644 (file)
@@ -401,9 +401,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
              || (RFC2440 && 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