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