gpgsm: Allow decryption with a card returning a PKCS#1 stripped key.
authorWerner Koch <wk@gnupg.org>
Tue, 29 Nov 2016 18:19:45 +0000 (19:19 +0100)
committerWerner Koch <wk@gnupg.org>
Tue, 29 Nov 2016 18:19:55 +0000 (19:19 +0100)
* sm/decrypt.c (prepare_decryption): Handle a 16 byte session key.
--

GnuPG-bug-id: 2230
Signed-off-by: Werner Koch <wk@gnupg.org>
sm/decrypt.c

index 11c1cf8..a2907f6 100644 (file)
@@ -74,10 +74,12 @@ prepare_decryption (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
     log_printhex ("pkcs1 encoded session key:", seskey, seskeylen);
 
   n=0;
-  if (seskeylen == 24)
+  if (seskeylen == 24 || seskeylen == 16)
     {
-      /* Smells like a 3-des key.  This might happen because a SC has
-         already done the unpacking. */
+      /* Smells like a 3-DES or AES-128 key.  This might happen
+       * because a SC has already done the unpacking.  A better
+       * solution would be to test for this only after we triggered
+       * the GPG_ERR_INV_SESSION_KEY. */
     }
   else
     {