Juan Lang : crypt32: Implement CryptMsgEncodeAndSignCTL on top of CryptMsgSignCTL.

Alexandre Julliard julliard at winehq.org
Tue Jan 6 08:22:56 CST 2009


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Mon Jan  5 13:34:35 2009 -0800

crypt32: Implement CryptMsgEncodeAndSignCTL on top of CryptMsgSignCTL.

---

 dlls/crypt32/msg.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c
index cbbbffe..14140c2 100644
--- a/dlls/crypt32/msg.c
+++ b/dlls/crypt32/msg.c
@@ -2901,9 +2901,26 @@ BOOL WINAPI CryptMsgEncodeAndSignCTL(DWORD dwMsgEncodingType,
  PCTL_INFO pCtlInfo, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags,
  BYTE *pbEncoded, DWORD *pcbEncoded)
 {
-    FIXME("(%08x, %p, %p, %08x, %p, %p): stub\n", dwMsgEncodingType, pCtlInfo,
+    BOOL ret;
+    BYTE *pbCtlContent;
+    DWORD cbCtlContent;
+
+    TRACE("(%08x, %p, %p, %08x, %p, %p)\n", dwMsgEncodingType, pCtlInfo,
      pSignInfo, dwFlags, pbEncoded, pcbEncoded);
-    return FALSE;
+
+    if (dwFlags)
+    {
+        FIXME("unimplemented for flags %08x\n", dwFlags);
+        return FALSE;
+    }
+    if ((ret = CryptEncodeObjectEx(dwMsgEncodingType, PKCS_CTL, pCtlInfo,
+     CRYPT_ENCODE_ALLOC_FLAG, NULL, &pbCtlContent, &cbCtlContent)))
+    {
+        ret = CryptMsgSignCTL(dwMsgEncodingType, pbCtlContent, cbCtlContent,
+         pSignInfo, dwFlags, pbEncoded, pcbEncoded);
+        LocalFree(pbCtlContent);
+    }
+    return ret;
 }
 
 BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent,




More information about the wine-cvs mailing list