[CRYPTNET]
authorAmine Khaldi <amine.khaldi@reactos.org>
Tue, 22 Apr 2014 15:25:04 +0000 (15:25 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Tue, 22 Apr 2014 15:25:04 +0000 (15:25 +0000)
* Sync with Wine 1.7.17.
CORE-8080

svn path=/trunk/; revision=62885

reactos/dll/win32/cryptnet/cryptnet_main.c
reactos/media/doc/README.WINE

index 43454e8..e7d0bd8 100644 (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)
-{
-    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;
 }
 
 /***********************************************************************
@@ -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.@)
index ad06b52..d2d1335 100644 (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