- Timestamp:
- Feb 21, 2010, 5:30:47 PM (16 years ago)
- Location:
- trunk/src/advapi32
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/advapi32/crypt.c
r21326 r21353 200 200 201 201 #define CRYPT_GetProvFunc(name) \ 202 if ( !(provider->pFuncs->p##name = ( void*)GetProcAddress(provider->hModule, #name)) ) goto error202 if ( !(provider->pFuncs->p##name = (fn##name *)GetProcAddress(provider->hModule, #name)) ) goto error 203 203 #define CRYPT_GetProvFuncOpt(name) \ 204 provider->pFuncs->p##name = ( void*)GetProcAddress(provider->hModule, #name)204 provider->pFuncs->p##name = (fn##name *)GetProcAddress(provider->hModule, #name) 205 205 static PCRYPTPROV CRYPT_LoadProvider(PCWSTR pImage) 206 206 { … … 208 208 DWORD errorcode = ERROR_NOT_ENOUGH_MEMORY; 209 209 210 if ( !(provider = CRYPT_Alloc(sizeof(CRYPTPROV))) ) goto error;211 if ( !(provider->pFuncs = CRYPT_Alloc(sizeof(PROVFUNCS))) ) goto error;212 if ( !(provider->pVTable = CRYPT_Alloc(sizeof(VTableProvStruc))) ) goto error;210 if ( !(provider = (PCRYPTPROV)CRYPT_Alloc(sizeof(CRYPTPROV))) ) goto error; 211 if ( !(provider->pFuncs = (PPROVFUNCS)CRYPT_Alloc(sizeof(PROVFUNCS))) ) goto error; 212 if ( !(provider->pVTable = (PVTableProvStruc)CRYPT_Alloc(sizeof(VTableProvStruc))) ) goto error; 213 213 if ( !(provider->hModule = LoadLibraryW(pImage)) ) 214 214 { … … 325 325 uuid.Data4[6], uuid.Data4[7] ); 326 326 RegSetValueExW(key, machineGuidW, 0, REG_SZ, 327 ( constBYTE *)buf,327 (BYTE *)buf, 328 328 (lstrlenW(buf)+1)*sizeof(WCHAR)); 329 329 } … … 417 417 goto error; 418 418 } 419 if(!(provname = CRYPT_Alloc(len)))419 if(!(provname = (PWSTR)CRYPT_Alloc(len))) 420 420 { 421 421 RegCloseKey(key); … … 433 433 RegCloseKey(key); 434 434 } else { 435 if ( !(provname = CRYPT_Alloc((strlenW(pszProvider) +1)*sizeof(WCHAR))) )435 if ( !(provname = (PWSTR)CRYPT_Alloc((strlenW(pszProvider) +1)*sizeof(WCHAR))) ) 436 436 { 437 437 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 471 471 goto error; 472 472 } 473 if (!(temp = CRYPT_Alloc(len)))473 if (!(temp = (PWSTR)CRYPT_Alloc(len))) 474 474 { 475 475 RegCloseKey(key); … … 487 487 RegCloseKey(key); 488 488 len = ExpandEnvironmentStringsW(temp, NULL, 0); 489 if ( !(imagepath = CRYPT_Alloc(len*sizeof(WCHAR))) )489 if ( !(imagepath = (PWSTR)CRYPT_Alloc(len*sizeof(WCHAR))) ) 490 490 { 491 491 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 660 660 661 661 pProv->refcount--; 662 if (pProv->refcount <= 0)662 if (pProv->refcount == 0) 663 663 { 664 664 ret = pProv->pFuncs->pCPReleaseContext(pProv->hPrivate, dwFlags); … … 757 757 return FALSE; 758 758 } 759 if ( !(hash = CRYPT_Alloc(sizeof(CRYPTHASH))) )759 if ( !(hash = (PCRYPTHASH)CRYPT_Alloc(sizeof(CRYPTHASH))) ) 760 760 { 761 761 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 851 851 return FALSE; 852 852 } 853 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )853 if ( !(key = (PCRYPTKEY)CRYPT_Alloc(sizeof(CRYPTKEY))) ) 854 854 { 855 855 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 984 984 } 985 985 986 if ( !(newhash = CRYPT_Alloc(sizeof(CRYPTHASH))) )986 if ( !(newhash = (PCRYPTHASH)CRYPT_Alloc(sizeof(CRYPTHASH))) ) 987 987 { 988 988 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1037 1037 } 1038 1038 1039 if ( !(newkey = CRYPT_Alloc(sizeof(CRYPTKEY))) )1039 if ( !(newkey = (PCRYPTKEY)CRYPT_Alloc(sizeof(CRYPTKEY))) ) 1040 1040 { 1041 1041 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1159 1159 NULL, NULL, NULL, NULL, NULL, NULL); 1160 1160 1161 if (!(provNameW = CRYPT_Alloc(*pcbProvName * sizeof(WCHAR))))1161 if (!(provNameW = (WCHAR *)CRYPT_Alloc(*pcbProvName * sizeof(WCHAR)))) 1162 1162 { 1163 1163 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1213 1213 if(!CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &bufsize)) 1214 1214 return FALSE; 1215 if ( pszProvName && !(str = CRYPT_Alloc(bufsize)) )1215 if ( pszProvName && !(str = (PWSTR)CRYPT_Alloc(bufsize)) ) 1216 1216 { 1217 1217 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1296 1296 } 1297 1297 keylen++; 1298 if ( !(keyname = CRYPT_Alloc(keylen*sizeof(WCHAR))) )1298 if ( !(keyname = (PWSTR)CRYPT_Alloc(keylen*sizeof(WCHAR))) ) 1299 1299 { 1300 1300 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1342 1342 if(!CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &bufsize)) 1343 1343 return FALSE; 1344 if ( pszTypeName && !(str = CRYPT_Alloc(bufsize)) )1344 if ( pszTypeName && !(str = (PWSTR)CRYPT_Alloc(bufsize)) ) 1345 1345 { 1346 1346 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1435 1435 return FALSE; 1436 1436 } 1437 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )1437 if ( !(key = (PCRYPTKEY)CRYPT_Alloc(sizeof(CRYPTKEY))) ) 1438 1438 { 1439 1439 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1540 1540 1541 1541 CryptGetDefaultProviderW(dwProvType, pdwReserved, dwFlags, NULL, &bufsize); 1542 if ( pszProvName && !(str = CRYPT_Alloc(bufsize)) )1542 if ( pszProvName && !(str = (PWSTR)CRYPT_Alloc(bufsize)) ) 1543 1543 { 1544 1544 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1703 1703 return FALSE; 1704 1704 } 1705 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )1705 if ( !(key = (PCRYPTKEY)CRYPT_Alloc(sizeof(CRYPTKEY))) ) 1706 1706 { 1707 1707 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 1829 1829 } 1830 1830 1831 if ( !(importkey = CRYPT_Alloc(sizeof(CRYPTKEY))) )1831 if ( !(importkey = (PCRYPTKEY)CRYPT_Alloc(sizeof(CRYPTKEY))) ) 1832 1832 { 1833 1833 SetLastError(ERROR_NOT_ENOUGH_MEMORY); … … 2067 2067 if (dwFlags & CRYPT_DELETE_DEFAULT) 2068 2068 { 2069 RegDeleteValueW(hTypeKey,nameW);2069 RegDeleteValueW(hTypeKey, (WCHAR*)nameW); 2070 2070 } 2071 2071 else … … 2087 2087 CRYPT_Free(keyname); 2088 2088 2089 if (RegSetValueExW(hTypeKey, nameW, 0, REG_SZ, ( constBYTE *)pszProvName,2089 if (RegSetValueExW(hTypeKey, nameW, 0, REG_SZ, (BYTE *)pszProvName, 2090 2090 (strlenW(pszProvName) + 1)*sizeof(WCHAR))) 2091 2091 { -
trunk/src/advapi32/crypt.h
r21326 r21353 28 28 #include "wincrypt.h" 29 29 30 /*RLW - created typedefs for each function to enable pointers 31 to be cast to the appropriate type when loaded using GetProcAddress() 32 */ 33 typedef BOOL (WINAPI fnCPAcquireContext)(HCRYPTPROV *phProv, LPSTR pszContainer, DWORD dwFlags, PVTableProvStruc pVTable); 34 typedef BOOL (WINAPI fnCPCreateHash)(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash); 35 typedef BOOL (WINAPI fnCPDecrypt)(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen); 36 typedef BOOL (WINAPI fnCPDeriveKey)(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData, DWORD dwFlags, HCRYPTKEY *phKey); 37 typedef BOOL (WINAPI fnCPDestroyHash)(HCRYPTPROV hProv, HCRYPTHASH hHash); 38 typedef BOOL (WINAPI fnCPDestroyKey)(HCRYPTPROV hProv, HCRYPTKEY hKey); 39 typedef BOOL (WINAPI fnCPDuplicateHash)(HCRYPTPROV hUID, HCRYPTHASH hHash, DWORD *pdwReserved, DWORD dwFlags, HCRYPTHASH *phHash); 40 typedef BOOL (WINAPI fnCPDuplicateKey)(HCRYPTPROV hUID, HCRYPTKEY hKey, DWORD *pdwReserved, DWORD dwFlags, HCRYPTKEY *phKey); 41 typedef BOOL (WINAPI fnCPEncrypt)(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen); 42 typedef BOOL (WINAPI fnCPExportKey)(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTKEY hPubKey, DWORD dwBlobType, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen); 43 typedef BOOL (WINAPI fnCPGenKey)(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, HCRYPTKEY *phKey); 44 typedef BOOL (WINAPI fnCPGenRandom)(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer); 45 typedef BOOL (WINAPI fnCPGetHashParam)(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags); 46 typedef BOOL (WINAPI fnCPGetKeyParam)(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags); 47 typedef BOOL (WINAPI fnCPGetProvParam)(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags); 48 typedef BOOL (WINAPI fnCPGetUserKey)(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey); 49 typedef BOOL (WINAPI fnCPHashData)(HCRYPTPROV hProv, HCRYPTHASH hHash, CONST BYTE *pbData, DWORD dwDataLen, DWORD dwFlags); 50 typedef BOOL (WINAPI fnCPHashSessionKey)(HCRYPTPROV hProv, HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags); 51 typedef BOOL (WINAPI fnCPImportKey)(HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey); 52 typedef BOOL (WINAPI fnCPReleaseContext)(HCRYPTPROV hProv, DWORD dwFlags); 53 typedef BOOL (WINAPI fnCPSetHashParam)(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, CONST BYTE *pbData, DWORD dwFlags); 54 typedef BOOL (WINAPI fnCPSetKeyParam)(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, CONST BYTE *pbData, DWORD dwFlags); 55 typedef BOOL (WINAPI fnCPSetProvParam)(HCRYPTPROV hProv, DWORD dwParam, CONST BYTE *pbData, DWORD dwFlags); 56 typedef BOOL (WINAPI fnCPSignHash)(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen); 57 typedef BOOL (WINAPI fnCPVerifySignature)(HCRYPTPROV hProv, HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags); 58 30 59 typedef struct tagPROVFUNCS 31 60 { 32 BOOL (*WINAPI pCPAcquireContext)(HCRYPTPROV *phProv, LPSTR pszContainer, DWORD dwFlags, PVTableProvStruc pVTable);33 BOOL (*WINAPI pCPCreateHash)(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash);34 BOOL (*WINAPI pCPDecrypt)(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen);35 BOOL (*WINAPI pCPDeriveKey)(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData, DWORD dwFlags, HCRYPTKEY *phKey);36 BOOL (*WINAPI pCPDestroyHash)(HCRYPTPROV hProv, HCRYPTHASH hHash);37 BOOL (*WINAPI pCPDestroyKey)(HCRYPTPROV hProv, HCRYPTKEY hKey);38 BOOL (*WINAPI pCPDuplicateHash)(HCRYPTPROV hUID, HCRYPTHASH hHash, DWORD *pdwReserved, DWORD dwFlags, HCRYPTHASH *phHash);39 BOOL (*WINAPI pCPDuplicateKey)(HCRYPTPROV hUID, HCRYPTKEY hKey, DWORD *pdwReserved, DWORD dwFlags, HCRYPTKEY *phKey);40 BOOL (*WINAPI pCPEncrypt)(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen);41 BOOL (*WINAPI pCPExportKey)(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTKEY hPubKey, DWORD dwBlobType, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen);42 BOOL (*WINAPI pCPGenKey)(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, HCRYPTKEY *phKey);43 BOOL (*WINAPI pCPGenRandom)(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer);44 BOOL (*WINAPI pCPGetHashParam)(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags);45 BOOL (*WINAPI pCPGetKeyParam)(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags);46 BOOL (*WINAPI pCPGetProvParam)(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags);47 BOOL (*WINAPI pCPGetUserKey)(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey);48 BOOL (*WINAPI pCPHashData)(HCRYPTPROV hProv, HCRYPTHASH hHash, CONST BYTE *pbData, DWORD dwDataLen, DWORD dwFlags);49 BOOL (*WINAPI pCPHashSessionKey)(HCRYPTPROV hProv, HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags);50 BOOL (*WINAPI pCPImportKey)(HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey);51 BOOL (*WINAPI pCPReleaseContext)(HCRYPTPROV hProv, DWORD dwFlags);52 BOOL (*WINAPI pCPSetHashParam)(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, CONST BYTE *pbData, DWORD dwFlags);53 BOOL (*WINAPI pCPSetKeyParam)(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, CONST BYTE *pbData, DWORD dwFlags);54 BOOL (*WINAPI pCPSetProvParam)(HCRYPTPROV hProv, DWORD dwParam, CONST BYTE *pbData, DWORD dwFlags);55 BOOL (*WINAPI pCPSignHash)(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen);56 BOOL (*WINAPI pCPVerifySignature)(HCRYPTPROV hProv, HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags);61 fnCPAcquireContext* pCPAcquireContext; 62 fnCPCreateHash* pCPCreateHash; 63 fnCPDecrypt* pCPDecrypt; 64 fnCPDeriveKey* pCPDeriveKey; 65 fnCPDestroyHash* pCPDestroyHash; 66 fnCPDestroyKey* pCPDestroyKey; 67 fnCPDuplicateHash* pCPDuplicateHash; 68 fnCPDuplicateKey* pCPDuplicateKey; 69 fnCPEncrypt* pCPEncrypt; 70 fnCPExportKey* pCPExportKey; 71 fnCPGenKey* pCPGenKey; 72 fnCPGenRandom* pCPGenRandom; 73 fnCPGetHashParam* pCPGetHashParam; 74 fnCPGetKeyParam* pCPGetKeyParam; 75 fnCPGetProvParam* pCPGetProvParam; 76 fnCPGetUserKey* pCPGetUserKey; 77 fnCPHashData* pCPHashData; 78 fnCPHashSessionKey* pCPHashSessionKey; 79 fnCPImportKey* pCPImportKey; 80 fnCPReleaseContext* pCPReleaseContext; 81 fnCPSetHashParam* pCPSetHashParam; 82 fnCPSetKeyParam* pCPSetKeyParam; 83 fnCPSetProvParam* pCPSetProvParam; 84 fnCPSignHash* pCPSignHash; 85 fnCPVerifySignature* pCPVerifySignature; 57 86 } PROVFUNCS, *PPROVFUNCS; 58 87 -
trunk/src/advapi32/registry.c
r21326 r21353 127 127 } 128 128 129 if (!(ret = InterlockedCompareExchangePointer( (void **)&special_root_keys[idx], hkey, 0 )))129 if (!(ret = (HKEY)InterlockedCompareExchangePointer( (void **)&special_root_keys[idx], hkey, 0 ))) 130 130 ret = hkey; 131 131 else … … 159 159 WCHAR szNameBuf[MAX_PATH], *lpszName = szNameBuf; 160 160 HKEY hSubKey = hKey; 161 BOOL isTrue = TRUE; 161 162 162 163 TRACE("(hkey=%p,%p %s)\n", hKey, lpszSubKey, debugstr_w(lpszSubKey)); … … 188 189 189 190 /* Recursively delete all the subkeys */ 190 while ( TRUE)191 while (isTrue) 191 192 { 192 193 dwSize = dwMaxLen; … … 201 202 ret = RegDeleteKeyW(hKey, lpszSubKey); 202 203 else 203 while ( TRUE)204 while (isTrue) 204 205 { 205 206 dwSize = dwMaxLen; -
trunk/src/advapi32/security.c
r21325 r21353 1092 1092 1093 1093 sz = 14 + pisid->SubAuthorityCount * 11; 1094 str = LocalAlloc( 0, sz*sizeof(WCHAR) );1094 str = (LPWSTR)LocalAlloc( 0, sz*sizeof(WCHAR) ); 1095 1095 sprintfW( str, fmt, pisid->Revision, MAKELONG( 1096 1096 MAKEWORD( pisid->IdentifierAuthority.Value[5], … … 1120 1120 1121 1121 len = WideCharToMultiByte( CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL ); 1122 str = LocalAlloc( 0, len );1122 str = (LPSTR)LocalAlloc( 0, len ); 1123 1123 WideCharToMultiByte( CP_ACP, 0, wstr, -1, str, len, NULL, NULL ); 1124 LocalFree( wstr );1124 LocalFree( (HANDLE)wstr ); 1125 1125 1126 1126 *pstr = str;
Note:
See TracChangeset
for help on using the changeset viewer.