Added a bunch of stubs.

diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c
index 0274467..a2221a0 100644
--- a/dlls/crypt32/cert.c
+++ b/dlls/crypt32/cert.c
@@ -103,6 +103,21 @@
     return TRUE;
 }
 
+PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType,
+ const BYTE *pbCertEncoded, DWORD cbCertEncoded)
+{
+    FIXME("(%08lx, %p, %ld): stub\n", dwCertEncodingType, pbCertEncoded,
+     cbCertEncoded);
+    return NULL;
+}
+
+PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(
+ PCCERT_CONTEXT pCertContext)
+{
+    FIXME("(%p): stub\n", pCertContext);
+    return NULL;
+}
+
 PCCRL_CONTEXT WINAPI CertCreateCRLContext( DWORD dwCertEncodingType,
   const BYTE* pbCrlEncoded, DWORD cbCrlEncoded)
 {
@@ -111,6 +126,7 @@
 
     TRACE("%08lx %p %08lx\n", dwCertEncodingType, pbCrlEncoded, cbCrlEncoded);
 
+    /* FIXME: semi-stub, need to use CryptDecodeObjectEx to decode the CRL. */
     pcrl = HeapAlloc( GetProcessHeap(), 0, sizeof (CRL_CONTEXT) );
     if( !pcrl )
         return NULL;
@@ -131,6 +147,41 @@
     return pcrl;
 }
 
+BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore,
+ DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded,
+ DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
+{
+    FIXME("(%p, %08lx, %p, %ld, %08lx, %p): stub\n", hCertStore,
+     dwCertEncodingType, pbCertEncoded, cbCertEncoded, dwAddDisposition,
+     ppCertContext);
+    return FALSE;
+}
+
+BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore,
+ PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition,
+ PCCERT_CONTEXT *ppStoreContext)
+{
+    FIXME("(%p, %p, %08lx, %p): stub\n", hCertStore, pCertContext,
+     dwAddDisposition, ppStoreContext);
+    return FALSE;
+}
+
+BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
+{
+    FIXME("(%p): stub\n", pCertContext);
+    return FALSE;
+}
+
+BOOL WINAPI CertAddEncodedCRLToStore(HCERTSTORE hCertStore,
+ DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded,
+ DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext)
+{
+    FIXME("(%p, %08lx, %p, %ld, %08lx, %p): stub\n", hCertStore,
+     dwCertEncodingType, pbCrlEncoded, cbCrlEncoded, dwAddDisposition,
+     ppCrlContext);
+    return FALSE;
+}
+
 BOOL WINAPI CertAddCRLContextToStore( HCERTSTORE hCertStore,
              PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition,
              PCCRL_CONTEXT* ppStoreContext )
@@ -147,6 +198,66 @@
     return TRUE;
 }
 
+BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
+{
+    FIXME("(%p): stub\n", pCrlContext);
+    return TRUE;
+}
+
+PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore,
+ PCCRL_CONTEXT pPrev)
+{
+    FIXME("(%p, %p): stub\n", hCertStore, pPrev);
+    return NULL;
+}
+
+PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwCertEncodingType,
+  const BYTE* pbCtlEncoded, DWORD cbCtlEncoded)
+{
+    FIXME("(%08lx, %p, %08lx): stub\n", dwCertEncodingType, pbCtlEncoded,
+     cbCtlEncoded);
+    return NULL;
+}
+
+BOOL WINAPI CertAddEncodedCTLToStore(HCERTSTORE hCertStore,
+ DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded,
+ DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext)
+{
+    FIXME("(%p, %08lx, %p, %ld, %08lx, %p): stub\n", hCertStore,
+     dwMsgAndCertEncodingType, pbCtlEncoded, cbCtlEncoded, dwAddDisposition,
+     ppCtlContext);
+    return FALSE;
+}
+
+BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore,
+ PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition,
+ PCCTL_CONTEXT* ppStoreContext)
+{
+    FIXME("(%p, %p, %08lx, %p): stub\n", hCertStore, pCtlContext,
+     dwAddDisposition, ppStoreContext);
+    return TRUE;
+}
+
+BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCtlContext)
+{
+    FIXME("(%p): stub\n", pCtlContext );
+    return TRUE;
+}
+
+BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
+{
+    FIXME("(%p): stub\n", pCtlContext);
+    return TRUE;
+}
+
+PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore,
+ PCCTL_CONTEXT pPrev)
+{
+    FIXME("(%p, %p): stub\n", hCertStore, pPrev);
+    return NULL;
+}
+
+
 BOOL WINAPI CertCloseStore( HCERTSTORE hCertStore, DWORD dwFlags )
 {
     WINECRYPT_CERTSTORE *hcs = (WINECRYPT_CERTSTORE *) hCertStore;
@@ -164,6 +275,100 @@
     return TRUE;
 }
 
+BOOL WINAPI CertControlStore(HCERTSTORE hCertStore, DWORD dwFlags,
+ DWORD dwCtrlType, void const *pvCtrlPara)
+{
+    FIXME("(%p, %08lx, %ld, %p): stub\n", hCertStore, dwFlags, dwCtrlType,
+     pvCtrlPara);
+    return TRUE;
+}
+
+DWORD WINAPI CertEnumCertificateContextProperties(PCCERT_CONTEXT pCertContext,
+ DWORD dwPropId)
+{
+    FIXME("(%p, %ld): stub\n", pCertContext, dwPropId);
+    return 0;
+}
+
+BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext,
+ DWORD dwPropId, void *pvData, DWORD *pcbData)
+{
+    FIXME("(%p, %ld, %p, %p): stub\n", pCertContext, dwPropId, pvData, pcbData);
+    return FALSE;
+}
+
+BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext,
+ DWORD dwPropId, DWORD dwFlags, const void *pvData)
+{
+    FIXME("(%p, %ld, %08lx, %p): stub\n", pCertContext, dwPropId, dwFlags,
+     pvData);
+    return FALSE;
+}
+
+BOOL WINAPI CertGetCRLContextProperty(PCCRL_CONTEXT pCRLContext,
+ DWORD dwPropId, void *pvData, DWORD *pcbData)
+{
+    FIXME("(%p, %ld, %p, %p): stub\n", pCRLContext, dwPropId, pvData, pcbData);
+    return FALSE;
+}
+
+BOOL WINAPI CertSetCRLContextProperty(PCCRL_CONTEXT pCRLContext,
+ DWORD dwPropId, DWORD dwFlags, const void *pvData)
+{
+    FIXME("(%p, %ld, %08lx, %p): stub\n", pCRLContext, dwPropId, dwFlags,
+     pvData);
+    return FALSE;
+}
+
+BOOL WINAPI CertSerializeCRLStoreElement(PCCRL_CONTEXT pCrlContext,
+ DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
+{
+    FIXME("(%p, %08lx, %p, %p): stub\n", pCrlContext, dwFlags, pbElement,
+     pcbElement);
+    return FALSE;
+}
+
+BOOL WINAPI CertGetCTLContextProperty(PCCTL_CONTEXT pCTLContext,
+ DWORD dwPropId, void *pvData, DWORD *pcbData)
+{
+    FIXME("(%p, %ld, %p, %p): stub\n", pCTLContext, dwPropId, pvData, pcbData);
+    return FALSE;
+}
+
+BOOL WINAPI CertSetCTLContextProperty(PCCTL_CONTEXT pCTLContext,
+ DWORD dwPropId, DWORD dwFlags, const void *pvData)
+{
+    FIXME("(%p, %ld, %08lx, %p): stub\n", pCTLContext, dwPropId, dwFlags,
+     pvData);
+    return FALSE;
+}
+
+BOOL WINAPI CertSerializeCTLStoreElement(PCCTL_CONTEXT pCtlContext,
+ DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
+{
+    FIXME("(%p, %08lx, %p, %p): stub\n", pCtlContext, dwFlags, pbElement,
+     pcbElement);
+    return FALSE;
+}
+
+BOOL WINAPI CertSerializeCertificateStoreElement(PCCERT_CONTEXT pCertContext,
+ DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
+{
+    FIXME("(%p, %08lx, %p, %p): stub\n", pCertContext, dwFlags, pbElement,
+     pcbElement);
+    return FALSE;
+}
+
+BOOL WINAPI CertAddSerializedElementToStore(HCERTSTORE hCertStore,
+ const BYTE *pbElement, DWORD cbElement, DWORD dwAddDisposition, DWORD dwFlags,
+ DWORD dwContextTypeFlags, DWORD *pdwContentType, const void **ppvContext)
+{
+    FIXME("(%p, %p, %ld, %08lx, %08lx, %08lx, %p, %p): stub\n", hCertStore,
+     pbElement, cbElement, dwAddDisposition, dwFlags, dwContextTypeFlags,
+     pdwContentType, ppvContext);
+    return FALSE;
+}
+
 BOOL WINAPI CertFreeCertificateContext( PCCERT_CONTEXT pCertContext )
 {
     FIXME("%p stub\n", pCertContext);
@@ -180,6 +385,20 @@
     return NULL;
 }
 
+BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore,
+ HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
+{
+    FIXME("(%p, %p, %08lx, %ld): stub\n", hCollectionStore, hSiblingStore,
+     dwUpdateFlags, dwPriority);
+    return TRUE;
+}
+
+void WINAPI CertRemoveStoreFromCollection(HCERTSTORE hCollectionStore,
+ HCERTSTORE hSiblingStore)
+{
+    FIXME("(%p, %p): stub\n", hCollectionStore, hSiblingStore);
+}
+
 PCRYPT_ATTRIBUTE WINAPI CertFindAttribute(LPCSTR pszObjId, DWORD cAttr,
  CRYPT_ATTRIBUTE rgAttr[])
 {
diff --git a/dlls/crypt32/crypt32.spec b/dlls/crypt32/crypt32.spec
index 20b3e78..6ab9a5d 100644
--- a/dlls/crypt32/crypt32.spec
+++ b/dlls/crypt32/crypt32.spec
@@ -1,36 +1,37 @@
 @ stdcall CertAddCRLContextToStore(long ptr long ptr)
-@ stub CertAddCTLContextToStore
-@ stub CertAddCertificateContextToStore
-@ stub CertAddEncodedCRLToStore
-@ stub CertAddEncodedCTLToStore
-@ stub CertAddEncodedCertificateToStore
+@ stdcall CertAddCTLContextToStore(long ptr long ptr)
+@ stdcall CertAddCertificateContextToStore(long ptr long ptr)
+@ stdcall CertAddEncodedCRLToStore(long long ptr long long ptr)
+@ stdcall CertAddEncodedCTLToStore(long long ptr long long ptr)
+@ stdcall CertAddEncodedCertificateToStore(long long ptr long long ptr)
 @ stub CertAddEncodedCertificateToSystemStoreA
 @ stub CertAddEncodedCertificateToSystemStoreW
 @ stub CertAddEnhancedKeyUsageIdentifier
-@ stub CertAddSerializedElementToStore
-@ stub CertAddStoreToCollection
+@ stdcall CertAddSerializedElementToStore(ptr ptr long long long long ptr ptr)
+@ stdcall CertAddStoreToCollection(ptr ptr long long)
 @ stdcall CertAlgIdToOID(long)
 @ stdcall CertCloseStore(ptr long)
 @ stub CertCompareCertificate
 @ stub CertCompareCertificateName
 @ stub CertCompareIntegerBlob
 @ stub CertComparePublicKeyInfo
-@ stub CertControlStore
+@ stdcall CertControlStore(long long long ptr)
 @ stdcall CertCreateCRLContext(long ptr long)
-@ stub CertCreateCTLContext
+@ stdcall CertCreateCTLContext(long ptr long)
 @ stub CertCreateCertificateChainEngine
-@ stub CertCreateCertificateContext
-@ stub CertDeleteCRLFromStore
-@ stub CertDeleteCTLFromStore
-@ stub CertDeleteCertificateFromStore
+@ stdcall CertCreateCertificateContext(long ptr long)
+@ stdcall CertDeleteCRLFromStore(ptr)
+@ stdcall CertDeleteCTLFromStore(ptr)
+@ stdcall CertDeleteCertificateFromStore(ptr)
 @ stub CertDuplicateCRLContext
 @ stub CertDuplicateCTLContext
-@ stub CertDuplicateCertificateContext
+@ stdcall CertDuplicateCertificateContext(ptr)
 @ stub CertDuplicateStore
 @ stub CertEnumCRLContextProperties
+@ stdcall CertEnumCRLsInStore(ptr ptr)
 @ stub CertEnumCTLContextProperties
-@ stub CertEnumCTLsInStore
-@ stub CertEnumCertificateContextProperties
+@ stdcall CertEnumCTLsInStore(ptr ptr)
+@ stdcall CertEnumCertificateContextProperties(ptr long)
 @ stdcall CertEnumCertificatesInStore(long ptr)
 @ stdcall CertFindAttribute(str long ptr)
 @ stub CertFindCTLInStore
@@ -39,15 +40,15 @@
 @ stdcall CertFindRDNAttr(str ptr)
 @ stub CertFindSubjectInCTL
 @ stdcall CertFreeCRLContext(ptr)
-@ stub CertFreeCTLContext
+@ stdcall CertFreeCTLContext(ptr)
 @ stub CertFreeCertificateChain
 @ stub CertFreeCertificateChainEngine
 @ stdcall CertFreeCertificateContext(ptr)
-@ stub CertGetCRLContextProperty
+@ stdcall CertGetCRLContextProperty(ptr long ptr ptr)
 @ stub CertGetCRLFromStore
-@ stub CertGetCTLContextProperty
+@ stdcall CertGetCTLContextProperty(ptr long ptr ptr)
 @ stub CertGetCertificateChain
-@ stub CertGetCertificateContextProperty
+@ stdcall CertGetCertificateContextProperty(ptr long ptr ptr)
 @ stub CertGetEnhancedKeyUsage
 @ stub CertGetIntendedKeyUsage
 @ stub CertGetIssuerCertificateFromStore
@@ -63,13 +64,14 @@
 @ stub CertRDNValueToStrA
 @ stub CertRDNValueToStrW
 @ stub CertRemoveEnhancedKeyUsageIdentifier
+@ stdcall CertRemoveStoreFromCollection(long long)
 @ stdcall CertSaveStore(long long long long ptr long)
-@ stub CertSerializeCRLStoreElement
-@ stub CertSerializeCTLStoreElement
-@ stub CertSerializeCertificateStoreElement
-@ stub CertSetCRLContextProperty
-@ stub CertSetCTLContextProperty
-@ stub CertSetCertificateContextProperty
+@ stdcall CertSerializeCRLStoreElement(ptr long ptr ptr)
+@ stdcall CertSerializeCTLStoreElement(ptr long ptr ptr)
+@ stdcall CertSerializeCertificateStoreElement(ptr long ptr ptr)
+@ stdcall CertSetCRLContextProperty(ptr long long ptr)
+@ stdcall CertSetCTLContextProperty(ptr long long ptr)
+@ stdcall CertSetCertificateContextProperty(ptr long long ptr)
 @ stub CertSetEnhancedKeyUsage
 @ stub CertStrToNameA
 @ stub CertStrToNameW