Submitted by: "Green, Paul" <Paul.Green@stratus.com>
Approved by: steve@openssl.org

Fixes to --with-zlib-include and --with-zlib-lib and init PRNG for VOS.
This commit is contained in:
Dr. Stephen Henson
2009-04-06 14:31:36 +00:00
parent 69a0034e50
commit 8681c66eec
4 changed files with 55 additions and 4 deletions

View File

@@ -1218,7 +1218,14 @@ if ($zlib)
$cflags = "-DZLIB $cflags"; $cflags = "-DZLIB $cflags";
if (defined($disabled{"zlib-dynamic"})) if (defined($disabled{"zlib-dynamic"}))
{ {
$lflags = "$lflags -lz"; if (defined($withargs{"zlib-lib"}))
{
$lflags = "$lflags -L" . $withargs{"zlib-lib"} . " -lz";
}
else
{
$lflags = "$lflags -lz";
}
} }
else else
{ {

View File

@@ -188,6 +188,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
MAKEDEPPROG='$(MAKEDEPPROG)' \ MAKEDEPPROG='$(MAKEDEPPROG)' \
SHARED_LDFLAGS='$(SHARED_LDFLAGS)' \ SHARED_LDFLAGS='$(SHARED_LDFLAGS)' \
KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \ KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \
ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \
EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \ EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \ SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \ PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \

View File

@@ -5,9 +5,9 @@
DIR= crypto DIR= crypto
TOP= .. TOP= ..
CC= cc CC= cc
INCLUDE= -I. -I$(TOP) -I../include INCLUDE= -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
# INCLUDES targets sudbirs! # INCLUDES targets sudbirs!
INCLUDES= -I.. -I../.. -I../asn1 -I../evp -I../../include INCLUDES= -I.. -I../.. -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
CFLAG= -g CFLAG= -g
MAKEDEPPROG= makedepend MAKEDEPPROG= makedepend
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG) MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)

View File

@@ -133,7 +133,50 @@
# define FD_SETSIZE (8*sizeof(fd_set)) # define FD_SETSIZE (8*sizeof(fd_set))
#endif #endif
#ifdef __OpenBSD__ #ifdef __VOS__
int RAND_poll(void)
{
unsigned char buf[ENTROPY_NEEDED];
pid_t curr_pid;
uid_t curr_uid;
static int first=1;
int i;
long rnd = 0;
struct timespec ts;
unsigned seed;
/* The VOS random() function starts from a static seed so its
initial value is predictable. If random() returns the
initial value, reseed it with dynamic data. The VOS
real-time clock has a granularity of 1 nsec so it should be
reasonably difficult to predict its exact value. Do not
gratuitously reseed the PRNG because other code in this
process or thread may be using it. */
if (first) {
first = 0;
rnd = random ();
if (rnd == 1804289383) {
clock_gettime (CLOCK_REALTIME, &ts);
curr_pid = getpid();
curr_uid = getuid();
seed = ts.tv_sec ^ ts.tv_nsec ^ curr_pid ^ curr_uid;
srandom (seed);
}
}
for (i = 0; i < sizeof(buf); i++) {
if (i % 4 == 0)
rnd = random();
buf[i] = rnd;
rnd >>= 8;
}
RAND_add(buf, sizeof(buf), ENTROPY_NEEDED);
memset(buf, 0, sizeof(buf));
return 1;
}
#elif defined __OpenBSD__
int RAND_poll(void) int RAND_poll(void)
{ {
u_int32_t rnd = 0, i; u_int32_t rnd = 0, i;