Module: wine Branch: master Commit: e739f040c0b2c9e4e24781528757acd268081977 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e739f040c0b2c9e4e247815287...
Author: Jacek Caban jacek@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); }