diff options
| author | beck <> | 2001-06-22 00:03:44 +0000 |
|---|---|---|
| committer | beck <> | 2001-06-22 00:03:44 +0000 |
| commit | 38b6ff9e5294811c57541ad47940f8f8f41dc114 (patch) | |
| tree | 402699541cee3cf3f2943b0384dbda7de534de70 /src/lib/libcrypto/rand | |
| parent | afae624d63e4e717c5bae8c7842a4712309f728f (diff) | |
| download | openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.tar.gz openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.tar.bz2 openbsd-38b6ff9e5294811c57541ad47940f8f8f41dc114.zip | |
openssl-engine-0.9.6a merge
Diffstat (limited to 'src/lib/libcrypto/rand')
| -rw-r--r-- | src/lib/libcrypto/rand/Makefile.ssl | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/rand/md_rand.c | 4 | ||||
| -rw-r--r-- | src/lib/libcrypto/rand/rand.h | 4 | ||||
| -rw-r--r-- | src/lib/libcrypto/rand/rand_egd.c | 7 | ||||
| -rw-r--r-- | src/lib/libcrypto/rand/rand_win.c | 8 | ||||
| -rw-r--r-- | src/lib/libcrypto/rand/randfile.c | 10 |
6 files changed, 27 insertions, 9 deletions
diff --git a/src/lib/libcrypto/rand/Makefile.ssl b/src/lib/libcrypto/rand/Makefile.ssl index 5f6199a35f..707eaac678 100644 --- a/src/lib/libcrypto/rand/Makefile.ssl +++ b/src/lib/libcrypto/rand/Makefile.ssl | |||
| @@ -39,7 +39,8 @@ all: lib | |||
| 39 | 39 | ||
| 40 | lib: $(LIBOBJ) | 40 | lib: $(LIBOBJ) |
| 41 | $(AR) $(LIB) $(LIBOBJ) | 41 | $(AR) $(LIB) $(LIBOBJ) |
| 42 | $(RANLIB) $(LIB) | 42 | @echo You may get an error following this line. Please ignore. |
| 43 | - $(RANLIB) $(LIB) | ||
| 43 | @touch lib | 44 | @touch lib |
| 44 | 45 | ||
| 45 | files: | 46 | files: |
diff --git a/src/lib/libcrypto/rand/md_rand.c b/src/lib/libcrypto/rand/md_rand.c index d167dea77d..567838f6c3 100644 --- a/src/lib/libcrypto/rand/md_rand.c +++ b/src/lib/libcrypto/rand/md_rand.c | |||
| @@ -482,12 +482,12 @@ static int ssleay_rand_bytes(unsigned char *buf, int num) | |||
| 482 | unpredictable */ | 482 | unpredictable */ |
| 483 | static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num) | 483 | static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num) |
| 484 | { | 484 | { |
| 485 | int ret, err; | 485 | int ret; |
| 486 | 486 | ||
| 487 | ret = RAND_bytes(buf, num); | 487 | ret = RAND_bytes(buf, num); |
| 488 | if (ret == 0) | 488 | if (ret == 0) |
| 489 | { | 489 | { |
| 490 | err = ERR_peek_error(); | 490 | long err = ERR_peek_error(); |
| 491 | if (ERR_GET_LIB(err) == ERR_LIB_RAND && | 491 | if (ERR_GET_LIB(err) == ERR_LIB_RAND && |
| 492 | ERR_GET_REASON(err) == RAND_R_PRNG_NOT_SEEDED) | 492 | ERR_GET_REASON(err) == RAND_R_PRNG_NOT_SEEDED) |
| 493 | (void)ERR_get_error(); | 493 | (void)ERR_get_error(); |
diff --git a/src/lib/libcrypto/rand/rand.h b/src/lib/libcrypto/rand/rand.h index eb9c8c034d..9c6052733e 100644 --- a/src/lib/libcrypto/rand/rand.h +++ b/src/lib/libcrypto/rand/rand.h | |||
| @@ -59,6 +59,8 @@ | |||
| 59 | #ifndef HEADER_RAND_H | 59 | #ifndef HEADER_RAND_H |
| 60 | #define HEADER_RAND_H | 60 | #define HEADER_RAND_H |
| 61 | 61 | ||
| 62 | #include <stdlib.h> | ||
| 63 | |||
| 62 | #ifdef __cplusplus | 64 | #ifdef __cplusplus |
| 63 | extern "C" { | 65 | extern "C" { |
| 64 | #endif | 66 | #endif |
| @@ -89,7 +91,7 @@ void RAND_seed(const void *buf,int num); | |||
| 89 | void RAND_add(const void *buf,int num,double entropy); | 91 | void RAND_add(const void *buf,int num,double entropy); |
| 90 | int RAND_load_file(const char *file,long max_bytes); | 92 | int RAND_load_file(const char *file,long max_bytes); |
| 91 | int RAND_write_file(const char *file); | 93 | int RAND_write_file(const char *file); |
| 92 | const char *RAND_file_name(char *file,int num); | 94 | const char *RAND_file_name(char *file,size_t num); |
| 93 | int RAND_status(void); | 95 | int RAND_status(void); |
| 94 | int RAND_egd(const char *path); | 96 | int RAND_egd(const char *path); |
| 95 | int RAND_egd_bytes(const char *path,int bytes); | 97 | int RAND_egd_bytes(const char *path,int bytes); |
diff --git a/src/lib/libcrypto/rand/rand_egd.c b/src/lib/libcrypto/rand/rand_egd.c index 02a0d86fa3..79b5e6fa57 100644 --- a/src/lib/libcrypto/rand/rand_egd.c +++ b/src/lib/libcrypto/rand/rand_egd.c | |||
| @@ -74,7 +74,14 @@ int RAND_egd_bytes(const char *path,int bytes) | |||
| 74 | #include OPENSSL_UNISTD | 74 | #include OPENSSL_UNISTD |
| 75 | #include <sys/types.h> | 75 | #include <sys/types.h> |
| 76 | #include <sys/socket.h> | 76 | #include <sys/socket.h> |
| 77 | #ifndef NO_SYS_UN_H | ||
| 77 | #include <sys/un.h> | 78 | #include <sys/un.h> |
| 79 | #else | ||
| 80 | struct sockaddr_un { | ||
| 81 | short sun_family; /* AF_UNIX */ | ||
| 82 | char sun_path[108]; /* path name (gag) */ | ||
| 83 | }; | ||
| 84 | #endif /* NO_SYS_UN_H */ | ||
| 78 | #include <string.h> | 85 | #include <string.h> |
| 79 | 86 | ||
| 80 | #ifndef offsetof | 87 | #ifndef offsetof |
diff --git a/src/lib/libcrypto/rand/rand_win.c b/src/lib/libcrypto/rand/rand_win.c index 9f2dcff9a9..3d137badd0 100644 --- a/src/lib/libcrypto/rand/rand_win.c +++ b/src/lib/libcrypto/rand/rand_win.c | |||
| @@ -570,14 +570,15 @@ static void readtimer(void) | |||
| 570 | DWORD w; | 570 | DWORD w; |
| 571 | LARGE_INTEGER l; | 571 | LARGE_INTEGER l; |
| 572 | static int have_perfc = 1; | 572 | static int have_perfc = 1; |
| 573 | #ifndef __GNUC__ | 573 | #ifdef _MSC_VER |
| 574 | static int have_tsc = 1; | 574 | static int have_tsc = 1; |
| 575 | DWORD cyclecount; | 575 | DWORD cyclecount; |
| 576 | 576 | ||
| 577 | if (have_tsc) { | 577 | if (have_tsc) { |
| 578 | __try { | 578 | __try { |
| 579 | __asm { | 579 | __asm { |
| 580 | rdtsc | 580 | _emit 0x0f |
| 581 | _emit 0x31 | ||
| 581 | mov cyclecount, eax | 582 | mov cyclecount, eax |
| 582 | } | 583 | } |
| 583 | RAND_add(&cyclecount, sizeof(cyclecount), 1); | 584 | RAND_add(&cyclecount, sizeof(cyclecount), 1); |
| @@ -725,8 +726,9 @@ int RAND_poll(void) | |||
| 725 | 726 | ||
| 726 | #ifdef DEVRANDOM | 727 | #ifdef DEVRANDOM |
| 727 | return 1; | 728 | return 1; |
| 728 | #endif | 729 | #else |
| 729 | return 0; | 730 | return 0; |
| 731 | #endif | ||
| 730 | } | 732 | } |
| 731 | 733 | ||
| 732 | #endif | 734 | #endif |
diff --git a/src/lib/libcrypto/rand/randfile.c b/src/lib/libcrypto/rand/randfile.c index 663a36cb70..f4376cf8cc 100644 --- a/src/lib/libcrypto/rand/randfile.c +++ b/src/lib/libcrypto/rand/randfile.c | |||
| @@ -73,7 +73,7 @@ | |||
| 73 | # include <sys/stat.h> | 73 | # include <sys/stat.h> |
| 74 | #endif | 74 | #endif |
| 75 | 75 | ||
| 76 | #include <openssl/e_os.h> | 76 | #include "openssl/e_os.h" |
| 77 | #include <openssl/crypto.h> | 77 | #include <openssl/crypto.h> |
| 78 | #include <openssl/rand.h> | 78 | #include <openssl/rand.h> |
| 79 | 79 | ||
| @@ -83,6 +83,9 @@ | |||
| 83 | 83 | ||
| 84 | /* #define RFILE ".rnd" - defined in ../../e_os.h */ | 84 | /* #define RFILE ".rnd" - defined in ../../e_os.h */ |
| 85 | 85 | ||
| 86 | /* Note that these functions are intended for seed files only. | ||
| 87 | * Entropy devices and EGD sockets are handled in rand_unix.c */ | ||
| 88 | |||
| 86 | int RAND_load_file(const char *file, long bytes) | 89 | int RAND_load_file(const char *file, long bytes) |
| 87 | { | 90 | { |
| 88 | /* If bytes >= 0, read up to 'bytes' bytes. | 91 | /* If bytes >= 0, read up to 'bytes' bytes. |
| @@ -213,7 +216,7 @@ err: | |||
| 213 | return (rand_err ? -1 : ret); | 216 | return (rand_err ? -1 : ret); |
| 214 | } | 217 | } |
| 215 | 218 | ||
| 216 | const char *RAND_file_name(char *buf, int size) | 219 | const char *RAND_file_name(char *buf, size_t size) |
| 217 | { | 220 | { |
| 218 | char *s = NULL; | 221 | char *s = NULL; |
| 219 | char *ret=NULL; | 222 | char *ret=NULL; |
| @@ -239,6 +242,8 @@ const char *RAND_file_name(char *buf, int size) | |||
| 239 | strlcat(buf,RFILE,size); | 242 | strlcat(buf,RFILE,size); |
| 240 | ret=buf; | 243 | ret=buf; |
| 241 | } | 244 | } |
| 245 | else | ||
| 246 | buf[0] = '\0'; /* no file name */ | ||
| 242 | } | 247 | } |
| 243 | 248 | ||
| 244 | #ifdef DEVRANDOM | 249 | #ifdef DEVRANDOM |
| @@ -257,3 +262,4 @@ const char *RAND_file_name(char *buf, int size) | |||
| 257 | #endif | 262 | #endif |
| 258 | return(ret); | 263 | return(ret); |
| 259 | } | 264 | } |
| 265 | |||
