Blame doc/man3/RAND_add.pod

Packit Service 084de1
=pod
Packit Service 084de1
Packit Service 084de1
=head1 NAME
Packit Service 084de1
Packit Service 084de1
RAND_add, RAND_poll, RAND_seed, RAND_status, RAND_event, RAND_screen,
Packit Service 084de1
RAND_keep_random_devices_open
Packit Service 084de1
- add randomness to the PRNG or get its status
Packit Service 084de1
Packit Service 084de1
=head1 SYNOPSIS
Packit Service 084de1
Packit Service 084de1
 #include <openssl/rand.h>
Packit Service 084de1
Packit Service 084de1
 int RAND_status(void);
Packit Service 084de1
 int RAND_poll();
Packit Service 084de1
Packit Service 084de1
 void RAND_add(const void *buf, int num, double randomness);
Packit Service 084de1
 void RAND_seed(const void *buf, int num);
Packit Service 084de1
Packit Service 084de1
 void RAND_keep_random_devices_open(int keep);
Packit Service 084de1
Packit Service 084de1
Deprecated:
Packit Service 084de1
Packit Service 084de1
 #if OPENSSL_API_COMPAT < 0x10100000L
Packit Service 084de1
 int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam);
Packit Service 084de1
 void RAND_screen(void);
Packit Service 084de1
 #endif
Packit Service 084de1
Packit Service 084de1
=head1 DESCRIPTION
Packit Service 084de1
Packit Service 084de1
These functions can be used to seed the random generator and to check its
Packit Service 084de1
seeded state.
Packit Service 084de1
In general, manual (re-)seeding of the default OpenSSL random generator
Packit Service 084de1
(L<RAND_OpenSSL(3)>) is not necessary (but allowed), since it does (re-)seed
Packit Service 084de1
itself automatically using trusted system entropy sources.
Packit Service 084de1
This holds unless the default RAND_METHOD has been replaced or OpenSSL was
Packit Service 084de1
built with automatic reseeding disabled, see L<RAND(7)> for more details.
Packit Service 084de1
Packit Service 084de1
RAND_status() indicates whether or not the random generator has been sufficiently
Packit Service 084de1
seeded. If not, functions such as L<RAND_bytes(3)> will fail.
Packit Service 084de1
Packit Service 084de1
RAND_poll() uses the system's capabilities to seed the random generator using
Packit Service 084de1
random input obtained from polling various trusted entropy sources.
Packit Service 084de1
The default choice of the entropy source can be modified at build time,
Packit Service 084de1
see L<RAND(7)> for more details.
Packit Service 084de1
Packit Service 084de1
RAND_add() mixes the B<num> bytes at B<buf> into the internal state
Packit Service 084de1
of the random generator.
Packit Service 084de1
This function will not normally be needed, as mentioned above.
Packit Service 084de1
The B<randomness> argument is an estimate of how much randomness is
Packit Service 084de1
contained in
Packit Service 084de1
B<buf>, in bytes, and should be a number between zero and B<num>.
Packit Service 084de1
Details about sources of randomness and how to estimate their randomness
Packit Service 084de1
can be found in the literature; for example [NIST SP 800-90B].
Packit Service 084de1
The content of B<buf> cannot be recovered from subsequent random generator output.
Packit Service 084de1
Applications that intend to save and restore random state in an external file
Packit Service 084de1
should consider using L<RAND_load_file(3)> instead.
Packit Service 084de1
Packit Service 084de1
RAND_seed() is equivalent to RAND_add() with B<randomness> set to B<num>.
Packit Service 084de1
Packit Service 084de1
RAND_keep_random_devices_open() is used to control file descriptor
Packit Service 084de1
usage by the random seed sources. Some seed sources maintain open file
Packit Service 084de1
descriptors by default, which allows such sources to operate in a
Packit Service 084de1
chroot(2) jail without the associated device nodes being available. When
Packit Service 084de1
the B<keep> argument is zero, this call disables the retention of file
Packit Service 084de1
descriptors. Conversely, a non-zero argument enables the retention of
Packit Service 084de1
file descriptors. This function is usually called during initialization
Packit Service 084de1
and it takes effect immediately.
Packit Service 084de1
Packit Service 084de1
RAND_event() and RAND_screen() are equivalent to RAND_poll() and exist
Packit Service 084de1
for compatibility reasons only. See HISTORY section below.
Packit Service 084de1
Packit Service 084de1
=head1 RETURN VALUES
Packit Service 084de1
Packit Service 084de1
RAND_status() returns 1 if the random generator has been seeded
Packit Service 084de1
with enough data, 0 otherwise.
Packit Service 084de1
Packit Service 084de1
RAND_poll() returns 1 if it generated seed data, 0 otherwise.
Packit Service 084de1
Packit Service 084de1
RAND_event() returns RAND_status().
Packit Service 084de1
Packit Service 084de1
The other functions do not return values.
Packit Service 084de1
Packit Service 084de1
=head1 SEE ALSO
Packit Service 084de1
Packit Service 084de1
L<RAND_bytes(3)>,
Packit Service 084de1
L<RAND_egd(3)>,
Packit Service 084de1
L<RAND_load_file(3)>,
Packit Service 084de1
L<RAND(7)>
Packit Service 084de1
Packit Service 084de1
=head1 HISTORY
Packit Service 084de1
Packit Service 084de1
RAND_event() and RAND_screen() were deprecated in OpenSSL 1.1.0 and should
Packit Service 084de1
not be used.
Packit Service 084de1
Packit Service 084de1
=head1 COPYRIGHT
Packit Service 084de1
Packit Service 084de1
Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
Packit Service 084de1
Licensed under the OpenSSL license (the "License").  You may not use
Packit Service 084de1
this file except in compliance with the License.  You can obtain a copy
Packit Service 084de1
in the file LICENSE in the source distribution or at
Packit Service 084de1
L<https://www.openssl.org/source/license.html>.
Packit Service 084de1
Packit Service 084de1
=cut