Juan Lang : Revert "crypt32: Correct CryptVerifyMessageSignature' s use of pcbDecoded.".

Alexandre Julliard julliard at winehq.org
Fri Nov 2 15:52:01 CDT 2012


Module: wine
Branch: master
Commit: 1040e4151642a89ef1f5c3025f00933dd812becc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1040e4151642a89ef1f5c3025f00933dd812becc

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Nov  1 20:28:30 2012 -0700

Revert "crypt32: Correct CryptVerifyMessageSignature's use of pcbDecoded.".

This reverts commit 78c901586193d20092e992a460f00f4070c67ae9.
The comments in the tests indicate that the tests are a little funny
anyway, so they clearly weren't enough justification for the change
introduced here.

---

 dlls/crypt32/message.c       |   17 +++--------------
 dlls/crypt32/tests/message.c |    1 +
 2 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/dlls/crypt32/message.c b/dlls/crypt32/message.c
index 8668cb1..7e163de 100644
--- a/dlls/crypt32/message.c
+++ b/dlls/crypt32/message.c
@@ -210,6 +210,9 @@ BOOL WINAPI CryptVerifyMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
     if (msg)
     {
         ret = CryptMsgUpdate(msg, pbSignedBlob, cbSignedBlob, TRUE);
+        if (ret && pcbDecoded)
+            ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbDecoded,
+             pcbDecoded);
         if (ret)
         {
             CERT_INFO *certInfo = CRYPT_GetSignerCertInfoFromMsg(msg,
@@ -241,20 +244,6 @@ BOOL WINAPI CryptVerifyMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
             }
             CryptMemFree(certInfo);
         }
-        if (ret)
-        {
-            /* The caller is expected to pass a valid pointer to pcbDecoded
-             * when the message verifies successfully.
-             */
-            if (pcbDecoded)
-                ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbDecoded,
-                 pcbDecoded);
-            else
-            {
-                SetLastError(CRYPT_E_NOT_FOUND);
-                ret = FALSE;
-            }
-        }
         CryptMsgClose(msg);
     }
     if(!ret && pcbDecoded)
diff --git a/dlls/crypt32/tests/message.c b/dlls/crypt32/tests/message.c
index be3a03b..7e2e8aa 100644
--- a/dlls/crypt32/tests/message.c
+++ b/dlls/crypt32/tests/message.c
@@ -608,6 +608,7 @@ static void test_verify_message_signature(void)
     ret = CryptVerifyMessageSignature(&para, 0,
      signedWithCertWithValidPubKeyContent,
      sizeof(signedWithCertWithValidPubKeyContent), NULL, 0, NULL);
+    todo_wine
     ok(!ret, "Expected failure\n");
     /* Finally, a message signed with a valid public key verifies successfully
      */




More information about the wine-cvs mailing list