[runtime] Avoid indirection when building MonoContext on darwin
[mono.git] / mono / utils / mono-rand-windows-internals.h
1 /**
2  * \file
3  */
4
5 #ifndef _MONO_UTILS_RAND_WINDOWS_H_
6 #define _MONO_UTILS_RAND_WINDOWS_H_
7
8 #include <config.h>
9 #include <glib.h>
10
11 #ifdef HOST_WIN32
12
13 #if G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT)
14 #include <wincrypt.h>
15 #define MONO_WIN32_CRYPT_PROVIDER_HANDLE HCRYPTPROV
16
17 #else
18
19 #include <bcrypt.h>
20 #define MONO_WIN32_CRYPT_PROVIDER_HANDLE BCRYPT_ALG_HANDLE
21 #endif
22
23 MONO_WIN32_CRYPT_PROVIDER_HANDLE
24 mono_rand_win_open_provider (void);
25
26 gboolean
27 mono_rand_win_gen (MONO_WIN32_CRYPT_PROVIDER_HANDLE provider, guchar *buffer, size_t buffer_size);
28
29 gboolean
30 mono_rand_win_seed (MONO_WIN32_CRYPT_PROVIDER_HANDLE provider, guchar *seed, size_t seed_size);
31
32 void
33 mono_rand_win_close_provider (MONO_WIN32_CRYPT_PROVIDER_HANDLE provider);
34
35 #endif /* HOST_WIN32 */
36 #endif /* _MONO_UTILS_RAND_WINDOWS_H_ */
37