[CRYPTNET]

* Sync with Wine 1.7.17.
CORE-8080

svn path=/trunk/; revision=62885
This commit is contained in:
Amine Khaldi 2014-04-22 15:25:04 +00:00
parent e0cf48f17f
commit afd0889185
2 changed files with 21 additions and 63 deletions

View file

@ -466,7 +466,6 @@ static BOOL CRYPT_GetObjectFromFile(HANDLE hFile, PCRYPT_BLOB_ARRAY pObject)
blob.pbData = CryptMemAlloc(size.u.LowPart);
if (blob.pbData)
{
blob.cbData = size.u.LowPart;
ret = ReadFile(hFile, blob.pbData, size.u.LowPart, &blob.cbData,
NULL);
if (ret)
@ -1427,61 +1426,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)
static BOOL CRYPT_GetExpiration(const void *object, const char *pszObjectOid, FILETIME *expiration)
{
PCCERT_CONTEXT cert = pvObject;
if (!IS_INTOID(pszObjectOid))
return FALSE;
*expiration = cert->pCertInfo->NotAfter;
return TRUE;
}
static BOOL CRYPT_GetExpirationFromCRL(const void *pvObject, 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))
{
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;
}
/***********************************************************************
@ -1514,22 +1476,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);
}
@ -1814,14 +1772,14 @@ typedef struct _CERT_REVOCATION_PARA_NO_EXTRA_FIELDS {
HCERTSTORE *rgCertStore;
HCERTSTORE hCrlStore;
LPFILETIME pftTimeToUse;
} CERT_REVOCATION_PARA_NO_EXTRA_FIELDS, *PCERT_REVOCATION_PARA_NO_EXTRA_FIELDS;
} CERT_REVOCATION_PARA_NO_EXTRA_FIELDS;
typedef struct _OLD_CERT_REVOCATION_STATUS {
DWORD cbSize;
DWORD dwIndex;
DWORD dwError;
DWORD dwReason;
} OLD_CERT_REVOCATION_STATUS, *POLD_CERT_REVOCATION_STATUS;
} OLD_CERT_REVOCATION_STATUS;
/***********************************************************************
* CertDllVerifyRevocation (CRYPTNET.@)

View file

@ -67,7 +67,7 @@ reactos/dll/win32/credui # Synced to Wine-1.7.1
reactos/dll/win32/crypt32 # Synced to Wine-1.7.17
reactos/dll/win32/cryptdlg # Synced to Wine-1.7.1
reactos/dll/win32/cryptdll # Synced to Wine-1.7.1
reactos/dll/win32/cryptnet # Synced to Wine-1.7.1
reactos/dll/win32/cryptnet # Synced to Wine-1.7.17
reactos/dll/win32/cryptui # Synced to Wine-1.7.1
reactos/dll/win32/dbghelp # Synced to Wine-1.7.1
reactos/dll/win32/dciman32 # Synced to Wine-1.7.1