From 32a8591985cbe633b6808c1e06b29fa8fa15a3e5 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 24 Sep 2013 14:20:52 -0700 Subject: [PATCH] Fix randombytes_salsa20_random.c for MSVC --- .../salsa20/randombytes_salsa20_random.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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