crypt32: Add a partial implementation of CertCreateContext.

Hans Leidekker hans at codeweavers.com
Tue Jun 23 02:36:26 CDT 2009


diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c
index 2b43d3e..1c0c74e 100644
--- a/dlls/crypt32/cert.c
+++ b/dlls/crypt32/cert.c
@@ -2951,3 +2951,35 @@ BOOL WINAPI CertVerifyCTLUsage(DWORD dwEncodingType, DWORD dwSubjectType,
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return FALSE;
 }
+
+const void * WINAPI CertCreateContext(DWORD dwContextType, DWORD dwEncodingType,
+                                      const BYTE *pbEncoded, DWORD cbEncoded,
+                                      DWORD dwFlags, PCERT_CREATE_CONTEXT_PARA pCreatePara)
+{
+    TRACE("(0x%x, 0x%x, %p, %d, 0x%08x, %p)\n", dwContextType, dwEncodingType,
+          pbEncoded, cbEncoded, dwFlags, pCreatePara);
+
+    if (dwFlags)
+    {
+        FIXME("dwFlags 0x%08x not handled\n", dwFlags);
+        return NULL;
+    }
+    if (pCreatePara)
+    {
+        FIXME("pCreatePara not handled\n");
+        return NULL;
+    }
+
+    switch (dwContextType)
+    {
+    case CERT_STORE_CERTIFICATE_CONTEXT:
+        return CertCreateCertificateContext(dwEncodingType, pbEncoded, cbEncoded);
+    case CERT_STORE_CRL_CONTEXT:
+        return CertCreateCRLContext(dwEncodingType, pbEncoded, cbEncoded);
+    case CERT_STORE_CTL_CONTEXT:
+        return CertCreateCTLContext(dwEncodingType, pbEncoded, cbEncoded);
+    default:
+        WARN("unknown context type: 0x%x\n", dwContextType);
+        return NULL;
+    }
+}
diff --git a/dlls/crypt32/crypt32.spec b/dlls/crypt32/crypt32.spec
index 3591d17..f271b62 100644
--- a/dlls/crypt32/crypt32.spec
+++ b/dlls/crypt32/crypt32.spec
@@ -20,6 +20,7 @@
 @ stdcall CertCreateCTLContext(long ptr long)
 @ stdcall CertCreateCertificateChainEngine(ptr ptr)
 @ stdcall CertCreateCertificateContext(long ptr long)
+@ stdcall CertCreateContext(long long ptr long long ptr)
 @ stdcall CertCreateSelfSignCertificate(long ptr long ptr ptr ptr ptr ptr)
 @ stdcall CertDeleteCRLFromStore(ptr)
 @ stdcall CertDeleteCTLFromStore(ptr)



More information about the wine-patches mailing list