summaryrefslogtreecommitdiff
path: root/random.c
diff options
context:
space:
mode:
Diffstat (limited to 'random.c')
-rw-r--r--random.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/random.c b/random.c
index f67b65f2be..8013a51d01 100644
--- a/random.c
+++ b/random.c
@@ -389,6 +389,8 @@ fill_random_seed(unsigned int seed[DEFAULT_SEED_CNT])
#if USE_DEV_URANDOM
int fd;
struct stat statbuf;
+#elif defined(_WIN32)
+ HCRYPTPROV prov;
#endif
memset(seed, 0, DEFAULT_SEED_LEN);
@@ -410,6 +412,11 @@ fill_random_seed(unsigned int seed[DEFAULT_SEED_CNT])
}
close(fd);
}
+#elif defined(_WIN32)
+ if (CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
+ CryptGenRandom(prov, DEFAULT_SEED_LEN, seed);
+ CryptReleaseContext(prov, 0);
+ }
#endif
gettimeofday(&tv, 0);