rand/randfile.c: permit non-regular files in RAND_load_file.
[openssl.git] / doc / man3 / RAND_load_file.pod
index 8b5867ff89c17ac69e55d9020ac75019ba41ba49..489ff2d7f112387f6e017edce849b7fb496ebea1 100644 (file)
@@ -20,8 +20,15 @@ RAND_load_file() reads a number of bytes from file B<filename> and
 adds them to the PRNG. If B<max_bytes> is non-negative,
 up to B<max_bytes> are read;
 if B<max_bytes> is -1, the complete file is read.
-
-RAND_write_file() writes a number of random bytes (currently 256) to
+Do not load the same file multiple times unless its contents have
+been updated by RAND_write_file() between reads.
+Also, note that B<filename> should be adequately protected so that an
+attacker cannot replace or examine the contents.
+If B<filename> is not a regular file, then user is considered to be
+responsible for any side effects, e.g. non-anticipated blocking or
+capture of controlling terminal.
+
+RAND_write_file() writes a number of random bytes (currently 128) to
 file B<filename> which can be used to initialize the PRNG by calling
 RAND_load_file() in a later session.
 
@@ -54,28 +61,21 @@ B<num> is too small for the path name, an error occurs.
 
 =head1 RETURN VALUES
 
-RAND_load_file() returns the number of bytes read.
+RAND_load_file() returns the number of bytes read or -1 on error.
 
-RAND_write_file() returns the number of bytes written, and -1 if the
-bytes written were generated without appropriate seed.
+RAND_write_file() returns the number of bytes written, or -1 if the
+bytes written were generated without appropriate seeding.
 
 RAND_file_name() returns a pointer to B<buf> on success, and NULL on
 error.
 
 =head1 SEE ALSO
 
-L<RAND_bytes(3)>, L<RAND_add(3)>, L<RAND_cleanup(3)>
-
-=head1 HISTORY
-
-A comment in the source since at least OpenSSL version 1.0.2 said that
-RAND_load_file() and RAND_write_file() were only intended for regular files,
-and not really device special files such as C</dev/random>.  This was
-poorly enforced before OpenSSL version 1.1.1.
+L<RAND_bytes(3)>, L<RAND_add(3)>
 
 =head1 COPYRIGHT
 
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
 
 Licensed under the OpenSSL license (the "License").  You may not use
 this file except in compliance with the License.  You can obtain a copy