Jacek Caban : crypt32: Simplified getting context expiration.
Alexandre Julliard
julliard at winehq.org
Fri Mar 7 11:02:58 CST 2014
Module: wine
Branch: master
Commit: e739f040c0b2c9e4e24781528757acd268081977
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e739f040c0b2c9e4e24781528757acd268081977
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Mar 7 16:08:10 2014 +0100
crypt32: Simplified getting context expiration.
---
dlls/cryptnet/cryptnet_main.c | 77 ++++++++++-------------------------------
1 file changed, 18 insertions(+), 59 deletions(-)
diff --git a/dlls/cryptnet/cryptnet_main.c b/dlls/cryptnet/cryptnet_main.c
index 13ca6e2..3986f0f 100644
--- a/dlls/cryptnet/cryptnet_main.c
+++ b/dlls/cryptnet/cryptnet_main.c
@@ -1424,61 +1424,24 @@ static BOOL CRYPT_GetCreateFunction(LPCSTR pszObjectOid,
return ret;
}
-typedef BOOL (*get_object_expiration_func)(const void *pvContext,
- FILETIME *expiration);
-
-static BOOL CRYPT_GetExpirationFromCert(const void *pvObject, FILETIME *expiration)
-{
- PCCERT_CONTEXT cert = pvObject;
-
- *expiration = cert->pCertInfo->NotAfter;
- return TRUE;
-}
-
-static BOOL CRYPT_GetExpirationFromCRL(const void *pvObject, FILETIME *expiration)
+static BOOL CRYPT_GetExpiration(const void *object, const char *pszObjectOid, FILETIME *expiration)
{
- PCCRL_CONTEXT cert = pvObject;
-
- *expiration = cert->pCrlInfo->NextUpdate;
- return TRUE;
-}
-
-static BOOL CRYPT_GetExpirationFromCTL(const void *pvObject, FILETIME *expiration)
-{
- PCCTL_CONTEXT cert = pvObject;
-
- *expiration = cert->pCtlInfo->NextUpdate;
- return TRUE;
-}
-
-static BOOL CRYPT_GetExpirationFunction(LPCSTR pszObjectOid,
- get_object_expiration_func *getExpiration)
-{
- BOOL ret;
+ if (!IS_INTOID(pszObjectOid))
+ return FALSE;
- if (IS_INTOID(pszObjectOid))
- {
- switch (LOWORD(pszObjectOid))
- {
- case LOWORD(CONTEXT_OID_CERTIFICATE):
- *getExpiration = CRYPT_GetExpirationFromCert;
- ret = TRUE;
- break;
- case LOWORD(CONTEXT_OID_CRL):
- *getExpiration = CRYPT_GetExpirationFromCRL;
- ret = TRUE;
- break;
- case LOWORD(CONTEXT_OID_CTL):
- *getExpiration = CRYPT_GetExpirationFromCTL;
- ret = TRUE;
- break;
- default:
- ret = FALSE;
- }
+ switch (LOWORD(pszObjectOid)) {
+ case LOWORD(CONTEXT_OID_CERTIFICATE):
+ *expiration = ((const CERT_CONTEXT*)object)->pCertInfo->NotAfter;
+ return TRUE;
+ case LOWORD(CONTEXT_OID_CRL):
+ *expiration = ((const CRL_CONTEXT*)object)->pCrlInfo->NextUpdate;
+ return TRUE;
+ case LOWORD(CONTEXT_OID_CTL):
+ *expiration = ((const CTL_CONTEXT*)object)->pCtlInfo->NextUpdate;
+ return TRUE;
}
- else
- ret = FALSE;
- return ret;
+
+ return FALSE;
}
/***********************************************************************
@@ -1511,22 +1474,18 @@ BOOL WINAPI CryptRetrieveObjectByUrlW(LPCWSTR pszURL, LPCSTR pszObjectOid,
CRYPT_BLOB_ARRAY object = { 0, NULL };
PFN_FREE_ENCODED_OBJECT_FUNC freeObject;
void *freeContext;
+ FILETIME expires;
ret = retrieve(pszURL, pszObjectOid, dwRetrievalFlags, dwTimeout,
&object, &freeObject, &freeContext, hAsyncRetrieve, pCredentials,
pAuxInfo);
if (ret)
{
- get_object_expiration_func getExpiration;
-
ret = create(pszObjectOid, dwRetrievalFlags, &object, ppvObject);
if (ret && !(dwRetrievalFlags & CRYPT_DONT_CACHE_RESULT) &&
- CRYPT_GetExpirationFunction(pszObjectOid, &getExpiration))
+ CRYPT_GetExpiration(*ppvObject, pszObjectOid, &expires))
{
- FILETIME expires;
-
- if (getExpiration(*ppvObject, &expires))
- CRYPT_CacheURL(pszURL, &object, dwRetrievalFlags, expires);
+ CRYPT_CacheURL(pszURL, &object, dwRetrievalFlags, expires);
}
freeObject(pszObjectOid, &object, freeContext);
}
More information about the wine-cvs
mailing list