Merge pull request #103 from libtom/fix/103
Serious bug in rng_get_bytes @ MS Windows
This commit is contained in:
commit
498538f6ef
@ -55,7 +55,7 @@ static unsigned long rng_nix(unsigned char *buf, unsigned long len,
|
||||
#endif /* LTC_DEVRANDOM */
|
||||
|
||||
/* on ANSI C platforms with 100 < CLOCKS_PER_SEC < 10000 */
|
||||
#if defined(CLOCKS_PER_SEC) && !defined(WINCE)
|
||||
#if defined(CLOCKS_PER_SEC) && !defined(_WIN32_WCE)
|
||||
|
||||
#define ANSI_RNG
|
||||
|
||||
@ -92,11 +92,11 @@ static unsigned long rng_ansic(unsigned char *buf, unsigned long len,
|
||||
#endif
|
||||
|
||||
/* Try the Microsoft CSP */
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(WINCE)
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE)
|
||||
#ifndef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x0400
|
||||
#endif
|
||||
#ifdef WINCE
|
||||
#ifdef _WIN32_WCE
|
||||
#define UNDER_CE
|
||||
#define ARM
|
||||
#endif
|
||||
@ -141,11 +141,10 @@ unsigned long rng_get_bytes(unsigned char *out, unsigned long outlen,
|
||||
|
||||
LTC_ARGCHK(out != NULL);
|
||||
|
||||
#if defined(LTC_DEVRANDOM)
|
||||
x = rng_nix(out, outlen, callback); if (x != 0) { return x; }
|
||||
#endif
|
||||
#if defined(WIN32) || defined(_WIN32) || defined(WINCE)
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE)
|
||||
x = rng_win32(out, outlen, callback); if (x != 0) { return x; }
|
||||
#elif defined(LTC_DEVRANDOM)
|
||||
x = rng_nix(out, outlen, callback); if (x != 0) { return x; }
|
||||
#endif
|
||||
#ifdef ANSI_RNG
|
||||
x = rng_ansic(out, outlen, callback); if (x != 0) { return x; }
|
||||
|
Loading…
Reference in New Issue
Block a user