16 lines
405 B
C
16 lines
405 B
C
#ifndef RANDOM_H_
|
|
#define RANDOM_H_
|
|
|
|
static inline void get_random_bytes(void* rand_ptr, unsigned int rand_size) {
|
|
char failed = 0;
|
|
static HCRYPTPROV prov = 0;
|
|
if (prov == 0) {
|
|
if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, 0))
|
|
failed = 1;
|
|
}
|
|
if (!failed && !CryptGenRandom(prov, rand_size, (unsigned char*)rand_ptr))
|
|
printf("get_random_bytes failed\n");
|
|
}
|
|
|
|
|
|
#endif /* RANDOM_H_ */
|