Blame doc/man3/RAND_DRBG_get0_master.pod

Packit c4476c
=pod
Packit c4476c
Packit c4476c
=head1 NAME
Packit c4476c
Packit c4476c
RAND_DRBG_get0_master,
Packit c4476c
RAND_DRBG_get0_public,
Packit c4476c
RAND_DRBG_get0_private
Packit c4476c
- get access to the global RAND_DRBG instances
Packit c4476c
Packit c4476c
=head1 SYNOPSIS
Packit c4476c
Packit c4476c
 #include <openssl/rand_drbg.h>
Packit c4476c
Packit c4476c
 RAND_DRBG *RAND_DRBG_get0_master(void);
Packit c4476c
 RAND_DRBG *RAND_DRBG_get0_public(void);
Packit c4476c
 RAND_DRBG *RAND_DRBG_get0_private(void);
Packit c4476c
Packit c4476c
Packit c4476c
=head1 DESCRIPTION
Packit c4476c
Packit c4476c
The default RAND API implementation (RAND_OpenSSL()) utilizes three
Packit c4476c
shared DRBG instances which are accessed via the RAND API:
Packit c4476c
Packit c4476c
The <public> and <private> DRBG are thread-local instances, which are used
Packit c4476c
by RAND_bytes() and RAND_priv_bytes(), respectively.
Packit c4476c
The <master> DRBG is a global instance, which is not intended to be used
Packit c4476c
directly, but is used internally to reseed the other two instances.
Packit c4476c
Packit c4476c
These functions here provide access to the shared DRBG instances.
Packit c4476c
Packit c4476c
=head1 RETURN VALUES
Packit c4476c
Packit c4476c
RAND_DRBG_get0_master() returns a pointer to the <master> DRBG instance.
Packit c4476c
Packit c4476c
RAND_DRBG_get0_public() returns a pointer to the <public> DRBG instance.
Packit c4476c
Packit c4476c
RAND_DRBG_get0_private() returns a pointer to the <private> DRBG instance.
Packit c4476c
Packit c4476c
Packit c4476c
=head1 NOTES
Packit c4476c
Packit c4476c
It is not thread-safe to access the <master> DRBG instance.
Packit c4476c
The <public> and <private> DRBG instance can be accessed safely, because
Packit c4476c
they are thread-local. Note however, that changes to these two instances
Packit c4476c
apply only to the current thread.
Packit c4476c
Packit c4476c
For that reason it is recommended not to change the settings of these
Packit c4476c
three instances directly.
Packit c4476c
Instead, an application should change the default settings for new DRBG instances
Packit c4476c
at initialization time, before creating additional threads.
Packit c4476c
Packit c4476c
During initialization, it is possible to change the reseed interval
Packit c4476c
and reseed time interval.
Packit c4476c
It is also possible to exchange the reseeding callbacks entirely.
Packit c4476c
Packit c4476c
=head1 SEE ALSO
Packit c4476c
Packit c4476c
L<RAND_DRBG_set_callbacks(3)>,
Packit c4476c
L<RAND_DRBG_set_reseed_defaults(3)>,
Packit c4476c
L<RAND_DRBG_set_reseed_interval(3)>,
Packit c4476c
L<RAND_DRBG_set_reseed_time_interval(3)>,
Packit c4476c
L<RAND_DRBG_set_callbacks(3)>,
Packit c4476c
L<RAND_DRBG_generate(3)>,
Packit c4476c
L<RAND_DRBG(7)>
Packit c4476c
Packit c4476c
=head1 HISTORY
Packit c4476c
Packit c4476c
The RAND_DRBG functions were added in OpenSSL 1.1.1.
Packit c4476c
Packit c4476c
=head1 COPYRIGHT
Packit c4476c
Packit c4476c
Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Packit c4476c
Packit c4476c
Licensed under the OpenSSL license (the "License").  You may not use
Packit c4476c
this file except in compliance with the License.  You can obtain a copy
Packit c4476c
in the file LICENSE in the source distribution or at
Packit c4476c
L<https://www.openssl.org/source/license.html>.
Packit c4476c
Packit c4476c
=cut