summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rand/randfile.c
diff options
context:
space:
mode:
authorbeck <>2002-05-15 02:29:21 +0000
committerbeck <>2002-05-15 02:29:21 +0000
commitb64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9 (patch)
treefa27cf82a1250b64ed3bf5f4a18c7354d470bbcc /src/lib/libcrypto/rand/randfile.c
parente471e1ea98d673597b182ea85f29e30c97cd08b5 (diff)
downloadopenbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.gz
openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.bz2
openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.zip
OpenSSL 0.9.7 stable 2002 05 08 merge
Diffstat (limited to 'src/lib/libcrypto/rand/randfile.c')
-rw-r--r--src/lib/libcrypto/rand/randfile.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/lib/libcrypto/rand/randfile.c b/src/lib/libcrypto/rand/randfile.c
index c4eb79ac5f..4b221e08f5 100644
--- a/src/lib/libcrypto/rand/randfile.c
+++ b/src/lib/libcrypto/rand/randfile.c
@@ -61,7 +61,11 @@
61#include <stdlib.h> 61#include <stdlib.h>
62#include <string.h> 62#include <string.h>
63 63
64#ifdef VMS 64#include "e_os.h"
65#include <openssl/crypto.h>
66#include <openssl/rand.h>
67
68#ifdef OPENSSL_SYS_VMS
65#include <unixio.h> 69#include <unixio.h>
66#endif 70#endif
67#ifndef NO_SYS_TYPES_H 71#ifndef NO_SYS_TYPES_H
@@ -73,10 +77,6 @@
73# include <sys/stat.h> 77# include <sys/stat.h>
74#endif 78#endif
75 79
76#include "openssl/e_os.h"
77#include <openssl/crypto.h>
78#include <openssl/rand.h>
79
80#undef BUFSIZE 80#undef BUFSIZE
81#define BUFSIZE 1024 81#define BUFSIZE 1024
82#define RAND_DATA 1024 82#define RAND_DATA 1024
@@ -158,7 +158,7 @@ int RAND_write_file(const char *file)
158 } 158 }
159 } 159 }
160 160
161#if defined(O_CREAT) && !defined(WIN32) 161#if defined(O_CREAT) && !defined(OPENSSL_SYS_WIN32)
162 /* For some reason Win32 can't write to files created this way */ 162 /* For some reason Win32 can't write to files created this way */
163 163
164 /* chmod(..., 0600) is too late to protect the file, 164 /* chmod(..., 0600) is too late to protect the file,
@@ -190,7 +190,7 @@ int RAND_write_file(const char *file)
190 ret+=i; 190 ret+=i;
191 if (n <= 0) break; 191 if (n <= 0) break;
192 } 192 }
193#ifdef VMS 193#ifdef OPENSSL_SYS_VMS
194 /* Try to delete older versions of the file, until there aren't 194 /* Try to delete older versions of the file, until there aren't
195 any */ 195 any */
196 { 196 {
@@ -208,7 +208,7 @@ int RAND_write_file(const char *file)
208 some point... */ 208 some point... */
209 } 209 }
210 } 210 }
211#endif /* VMS */ 211#endif /* OPENSSL_SYS_VMS */
212 212
213 fclose(out); 213 fclose(out);
214 memset(buf,0,BUFSIZE); 214 memset(buf,0,BUFSIZE);
@@ -242,7 +242,7 @@ const char *RAND_file_name(char *buf, size_t size)
242 if (s && *s && strlen(s)+strlen(RFILE)+2 < size) 242 if (s && *s && strlen(s)+strlen(RFILE)+2 < size)
243 { 243 {
244 strlcpy(buf,s,size); 244 strlcpy(buf,s,size);
245#ifndef VMS 245#ifndef OPENSSL_SYS_VMS
246 strcat(buf,"/"); 246 strcat(buf,"/");
247#endif 247#endif
248 strlcat(buf,RFILE,size); 248 strlcat(buf,RFILE,size);
@@ -252,20 +252,20 @@ const char *RAND_file_name(char *buf, size_t size)
252 buf[0] = '\0'; /* no file name */ 252 buf[0] = '\0'; /* no file name */
253 } 253 }
254 254
255#ifdef DEVRANDOM 255#ifdef __OpenBSD__
256 /* given that all random loads just fail if the file can't be 256 /* given that all random loads just fail if the file can't be
257 * seen on a stat, we stat the file we're returning, if it 257 * seen on a stat, we stat the file we're returning, if it
258 * fails, use DEVRANDOM instead. this allows the user to 258 * fails, use /dev/arandom instead. this allows the user to
259 * use their own source for good random data, but defaults 259 * use their own source for good random data, but defaults
260 * to something hopefully decent if that isn't available. 260 * to something hopefully decent if that isn't available.
261 */ 261 */
262 262
263 if (!ok) 263 if (!ok)
264 if (strlcpy(buf,DEVRANDOM,size) >= size) { 264 if (strlcpy(buf,"/dev/arandom",size) >= size) {
265 return(NULL); 265 return(NULL);
266 } 266 }
267 if (stat(buf,&sb) == -1) 267 if (stat(buf,&sb) == -1)
268 if (strlcpy(buf,DEVRANDOM,size) >= size) { 268 if (strlcpy(buf,"/dev/arandom",size) >= size) {
269 return(NULL); 269 return(NULL);
270 } 270 }
271 271