2000-01-21 17:50:27 +00:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2016-05-16 19:30:41 +00:00
|
|
|
RAND_add, RAND_seed, RAND_status, RAND_event, RAND_screen - add
|
2017-06-26 16:02:57 +00:00
|
|
|
randomness to the PRNG
|
2000-01-21 17:50:27 +00:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/rand.h>
|
|
|
|
|
|
|
|
void RAND_seed(const void *buf, int num);
|
|
|
|
|
2017-06-26 16:02:57 +00:00
|
|
|
void RAND_add(const void *buf, int num, double randomness);
|
2000-01-21 17:50:27 +00:00
|
|
|
|
2000-02-24 02:51:47 +00:00
|
|
|
int RAND_status(void);
|
|
|
|
|
2016-05-16 19:46:48 +00:00
|
|
|
#if OPENSSL_API_COMPAT < 0x10100000L
|
2016-05-16 19:30:41 +00:00
|
|
|
int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
void RAND_screen(void);
|
2016-05-16 19:46:48 +00:00
|
|
|
#endif
|
2016-05-16 19:30:41 +00:00
|
|
|
|
2000-01-21 17:50:27 +00:00
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
RAND_add() mixes the B<num> bytes at B<buf> into the PRNG state. Thus,
|
|
|
|
if the data at B<buf> are unpredictable to an adversary, this
|
|
|
|
increases the uncertainty about the state and makes the PRNG output
|
|
|
|
less predictable. Suitable input comes from user interaction (random
|
|
|
|
key presses, mouse movements) and certain hardware events. The
|
2017-06-26 16:02:57 +00:00
|
|
|
B<randomness> argument is an estimate of how much randomness is contained in
|
|
|
|
B<buf>, in bytes, and should be a number between zero and B<num>.
|
|
|
|
Details about sources of randomness and how to estimate their randomness
|
|
|
|
can be found in the literature; for example IETF RFC 4086.
|
2000-01-21 17:50:27 +00:00
|
|
|
|
|
|
|
RAND_add() may be called with sensitive data such as user entered
|
|
|
|
passwords. The seed values cannot be recovered from the PRNG output.
|
|
|
|
|
2017-06-26 16:02:57 +00:00
|
|
|
RAND_seed() is equivalent to RAND_add() with B<randomness> set to B<num>.
|
2000-01-21 17:50:27 +00:00
|
|
|
|
2017-07-07 20:47:39 +00:00
|
|
|
On systems that provide C</dev/urandom> or similar source of randomess,
|
|
|
|
it will be used
|
|
|
|
to seed the PRNG transparently. On older systems, however, it might
|
|
|
|
be necessary to use RAND_add(), L<RAND_egd(3)> or L<RAND_load_file(3)>.
|
|
|
|
|
2016-05-16 19:46:48 +00:00
|
|
|
RAND_event() and RAND_screen() are deprecated and should not be called.
|
|
|
|
|
2000-01-21 17:50:27 +00:00
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
2016-01-13 05:27:27 +00:00
|
|
|
RAND_status() returns 1 if the PRNG has been seeded
|
2000-03-22 15:30:03 +00:00
|
|
|
with enough data, 0 otherwise.
|
2000-02-24 02:51:47 +00:00
|
|
|
|
2016-05-16 19:41:02 +00:00
|
|
|
RAND_event() calls RAND_poll() and returns RAND_status().
|
2016-05-16 19:30:41 +00:00
|
|
|
|
|
|
|
RAND_screen calls RAND_poll().
|
|
|
|
|
2000-02-24 02:51:47 +00:00
|
|
|
The other functions do not return values.
|
2000-01-21 17:50:27 +00:00
|
|
|
|
2016-05-16 19:46:48 +00:00
|
|
|
=head1 HISTORY
|
|
|
|
|
|
|
|
RAND_event() and RAND_screen() are deprecated since OpenSSL
|
2016-05-16 19:51:40 +00:00
|
|
|
1.1.0. Use the functions described above instead.
|
2016-05-16 19:46:48 +00:00
|
|
|
|
2000-01-21 17:50:27 +00:00
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2016-11-11 08:33:09 +00:00
|
|
|
L<RAND_bytes(3)>, L<RAND_egd(3)>,
|
2017-07-07 20:47:39 +00:00
|
|
|
L<RAND_load_file(3)>
|
2000-01-21 17:50:27 +00:00
|
|
|
|
2016-05-18 15:44:05 +00:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
2017-07-07 20:47:39 +00:00
|
|
|
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
2016-05-18 15:44:05 +00:00
|
|
|
|
|
|
|
Licensed under the OpenSSL license (the "License"). You may not use
|
|
|
|
this file except in compliance with the License. You can obtain a copy
|
|
|
|
in the file LICENSE in the source distribution or at
|
|
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
|
|
|
|
=cut
|