X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=crypto%2Frand%2Frand_nw.c;h=9239a72dae2c26a5edca3713e188feaf31b9d59d;hp=0ff884783e103aec091f747f9c50b3459d28dfee;hb=92c78463720f71e47c251ffa58493e32cd793e13;hpb=4d8743f490a5f96fa26d41985ee12cb6b9815a4c diff --git a/crypto/rand/rand_nw.c b/crypto/rand/rand_nw.c index 0ff884783e..9239a72dae 100644 --- a/crypto/rand/rand_nw.c +++ b/crypto/rand/rand_nw.c @@ -1,4 +1,4 @@ -/* crypto/rand/rand_win.c */ +/* crypto/rand/rand_nw.c */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -116,10 +116,16 @@ #if defined (OPENSSL_SYS_NETWARE) #if defined(NETWARE_LIBC) -#include +#include +#else +#include #endif -extern long RunningProcess; +extern int GetProcessSwitchCount(void); +#if !defined(NETWARE_LIBC) || (CURRENT_NDK_THRESHOLD < 509220000) +extern void *RunningProcess; /* declare here same as found in newer NDKs */ +extern unsigned long GetSuperHighResolutionTimer(void); +#endif /* the FAQ indicates we need to provide at least 20 bytes (160 bits) of seed */ @@ -136,29 +142,29 @@ int RAND_poll(void) * ThreadSwitchWithDelay() will introduce additional variability into * the data returned by rdtsc. * - * Applications can agument the seed material by adding additional + * Applications can argument the seed material by adding additional * stuff with RAND_add() and should probably do so. */ l = GetProcessSwitchCount(); RAND_add(&l,sizeof(l),1); - l=RunningProcess; + /* need to cast the void* to unsigned long here */ + l = (unsigned long)RunningProcess; RAND_add(&l,sizeof(l),1); for( i=2; i=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) + asm volatile("rdtsc":"=a"(tsc)::"edx"); +#endif + RAND_add(&tsc, sizeof(tsc), 1); l = GetSuperHighResolutionTimer(); RAND_add(&l, sizeof(l), 0); # if defined(NETWARE_LIBC) - NXThreadYield(); + NXThreadYield(); # else /* NETWARE_CLIB */ ThreadSwitchWithDelay(); # endif