diff --git a/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c b/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c index cf617360..4d355a3e 100644 --- a/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c +++ b/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c @@ -1,6 +1,8 @@ #include -#include +#ifndef _WIN32 +# include +#endif #include #include @@ -10,7 +12,9 @@ #include #include #include -#include +#ifndef _MSC_VER +# include +#endif #include "crypto_core_salsa20.h" #include "crypto_auth_hmacsha512256.h" @@ -35,7 +39,9 @@ typedef struct Salsa20Random_ { unsigned char rnd32[SALSA20_RANDOM_BLOCK_SIZE]; uint64_t nonce; size_t rnd32_outleft; +#ifndef _MSC_VER pid_t pid; +#endif #ifdef _WIN32 HCRYPTPROV hcrypt_prov; #endif @@ -188,12 +194,18 @@ randombytes_salsa20_random_stir(void) static void randombytes_salsa20_random_stir_if_needed(void) { +#ifdef _MSC_VER + if (stream.initialized == 0) { + randombytes_salsa20_random_stir(); + } +#else const pid_t pid = getpid(); if (stream.initialized == 0 || stream.pid != pid) { stream.pid = pid; randombytes_salsa20_random_stir(); } +#endif } static uint32_t