diff options
author | simon <simon@FreeBSD.org> | 2008-09-21 14:56:30 +0000 |
---|---|---|
committer | simon <simon@FreeBSD.org> | 2008-09-21 14:56:30 +0000 |
commit | 859b6dcfcc8295a0eac4afbc70e4d42aa512674a (patch) | |
tree | a136b5b2317abe8eb83b021afe5e088230fd67e2 /crypto/rand | |
parent | fe745806aa8bec66ca79fe8f032ad472261ba789 (diff) | |
download | FreeBSD-src-859b6dcfcc8295a0eac4afbc70e4d42aa512674a.zip FreeBSD-src-859b6dcfcc8295a0eac4afbc70e4d42aa512674a.tar.gz |
Vendor import of OpenSSL 0.9.8i.
Diffstat (limited to 'crypto/rand')
-rw-r--r-- | crypto/rand/Makefile | 17 | ||||
-rw-r--r-- | crypto/rand/rand_nw.c | 11 | ||||
-rw-r--r-- | crypto/rand/randfile.c | 8 |
3 files changed, 25 insertions, 11 deletions
diff --git a/crypto/rand/Makefile b/crypto/rand/Makefile index 3c1ab5b..27694aa 100644 --- a/crypto/rand/Makefile +++ b/crypto/rand/Makefile @@ -97,14 +97,19 @@ rand_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h rand_err.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h rand_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h rand_err.o: rand_err.c -rand_lib.o: ../../e_os.h ../../include/openssl/bio.h -rand_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h -rand_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h -rand_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h -rand_lib.o: ../../include/openssl/opensslconf.h +rand_lib.o: ../../e_os.h ../../include/openssl/asn1.h +rand_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h +rand_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h +rand_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h +rand_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h +rand_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h +rand_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h +rand_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h rand_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h -rand_lib.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h +rand_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h +rand_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h rand_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h +rand_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h rand_lib.o: ../cryptlib.h rand_lib.c rand_nw.o: ../../e_os.h ../../include/openssl/asn1.h rand_nw.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h diff --git a/crypto/rand/rand_nw.c b/crypto/rand/rand_nw.c index ba57812..f177ffb 100644 --- a/crypto/rand/rand_nw.c +++ b/crypto/rand/rand_nw.c @@ -117,9 +117,15 @@ #if defined(NETWARE_LIBC) #include <nks/thread.h> +#else +#include <nwthread.h> #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 */ @@ -142,7 +148,8 @@ int RAND_poll(void) 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<ENTROPY_NEEDED; i++) diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index d69bdf8..6c0ec9a 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -102,10 +102,8 @@ int RAND_load_file(const char *file, long bytes) if (file == NULL) return(0); - i=stat(file,&sb); - /* If the state fails, put some crap in anyway */ + if (stat(file,&sb) < 0) return(0); RAND_add(&sb,sizeof(sb),0.0); - if (i < 0) return(0); if (bytes == 0) return(ret); in=fopen(file,"rb"); @@ -128,8 +126,12 @@ int RAND_load_file(const char *file, long bytes) n = BUFSIZE; i=fread(buf,1,n,in); if (i <= 0) break; +#ifdef PURIFY + RAND_add(buf,i,(double)i); +#else /* even if n != i, use the full array */ RAND_add(buf,n,(double)i); +#endif ret+=i; if (bytes > 0) { |