Juan Lang : crypt32: Implement CryptMsgSignCTL.

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


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

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

crypt32: Implement CryptMsgSignCTL.

---

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

diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c
index 14140c2..874f393 100644
--- a/dlls/crypt32/msg.c
+++ b/dlls/crypt32/msg.c
@@ -2927,7 +2927,29 @@ BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent,
  DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags,
  BYTE *pbEncoded, DWORD *pcbEncoded)
 {
-    FIXME("(%08x, %p, %d, %p, %08x, %p, %p): stub\n", dwMsgEncodingType,
+    static char oid_ctl[] = szOID_CTL;
+    BOOL ret;
+    HCRYPTMSG msg;
+
+    TRACE("(%08x, %p, %d, %p, %08x, %p, %p)\n", dwMsgEncodingType,
      pbCtlContent, cbCtlContent, pSignInfo, dwFlags, pbEncoded, pcbEncoded);
-    return FALSE;
+
+    if (dwFlags)
+    {
+        FIXME("unimplemented for flags %08x\n", dwFlags);
+        return FALSE;
+    }
+    msg = CryptMsgOpenToEncode(dwMsgEncodingType, 0, CMSG_SIGNED, pSignInfo,
+     oid_ctl, NULL);
+    if (msg)
+    {
+        ret = CryptMsgUpdate(msg, pbCtlContent, cbCtlContent, TRUE);
+        if (ret)
+            ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbEncoded,
+             pcbEncoded);
+        CryptMsgClose(msg);
+    }
+    else
+        ret = FALSE;
+    return ret;
 }




More information about the wine-cvs mailing list