Fix return value of w32crypto_bytes() and use correct data types
This commit is contained in:
		| @@ -48,25 +48,25 @@ volatile static HCRYPTPROV g_cryptprovider = 0; | |||||||
| static HCRYPTPROV | static HCRYPTPROV | ||||||
| _hc_CryptProvider(void) | _hc_CryptProvider(void) | ||||||
| { | { | ||||||
|     BOOL res; |     BOOL rv; | ||||||
|     HCRYPTPROV cryptprovider = 0; |     HCRYPTPROV cryptprovider = 0; | ||||||
|  |  | ||||||
|     if (g_cryptprovider != 0) |     if (g_cryptprovider != 0) | ||||||
| 	return g_cryptprovider; | 	return g_cryptprovider; | ||||||
|  |  | ||||||
|     res = CryptAcquireContext(&cryptprovider, NULL, |     rv = CryptAcquireContext(&cryptprovider, NULL, | ||||||
| 			      MS_ENHANCED_PROV, PROV_RSA_FULL, | 			      MS_ENHANCED_PROV, PROV_RSA_FULL, | ||||||
| 			      0); | 			      0); | ||||||
|  |  | ||||||
|     if (GetLastError() == NTE_BAD_KEYSET) { |     if (GetLastError() == NTE_BAD_KEYSET) { | ||||||
|         if(!res) |         if(!rv) | ||||||
|             res = CryptAcquireContext(&cryptprovider, NULL, |             rv = CryptAcquireContext(&cryptprovider, NULL, | ||||||
|                                       MS_ENHANCED_PROV, PROV_RSA_FULL, |                                       MS_ENHANCED_PROV, PROV_RSA_FULL, | ||||||
|                                       CRYPT_NEWKEYSET); |                                       CRYPT_NEWKEYSET); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (res && |     if (rv && | ||||||
|         InterlockedCompareExchange(&g_cryptprovider, cryptprovider, 0) != 0) { |         InterlockedCompareExchangePointer(&g_cryptprovider, cryptprovider, 0) != 0) { | ||||||
|  |  | ||||||
|         CryptReleaseContext(cryptprovider, 0); |         CryptReleaseContext(cryptprovider, 0); | ||||||
|         cryptprovider = g_cryptprovider; |         cryptprovider = g_cryptprovider; | ||||||
| @@ -90,8 +90,8 @@ static int | |||||||
| w32crypto_bytes(unsigned char *outdata, int size) | w32crypto_bytes(unsigned char *outdata, int size) | ||||||
| { | { | ||||||
|     if (CryptGenRandom(_hc_CryptProvider(), size, outdata)) |     if (CryptGenRandom(_hc_CryptProvider(), size, outdata)) | ||||||
| 	return 0; |  | ||||||
| 	return 1; | 	return 1; | ||||||
|  |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| static void | static void | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Asanka Herath
					Asanka Herath