Lines Matching +full:can +full:- +full:primary

1 .\" -*- mode: troff; coding: utf-8 -*-
58 .TH EVP_RAND 7ossl 2025-09-30 3.5.4 OpenSSL
64 EVP_RAND \- the random bit generator
74 non-deterministic inputs to other cryptographic algorithms.
81 A DRBG is a certain type of cryptographically-secure pseudo-random
83 [NIST SP 800\-90A Rev. 1].
101 Refer to \fBprovider\-rand\fR\|(7) for the implementation details to support adding
108 An EVP_RAND instance can be used as the entropy source of another
122 the <primary>, <public>, and <private> DRBG.
123 While the <primary> DRBG is a single global instance, the <public> and <private>
124 DRBG are created per thread and accessed through thread-local storage.
127 the thread-local <public> and <private> DRBG instance, respectively.
128 .SS "The <primary> DRBG instance"
129 .IX Subsection "The <primary> DRBG instance"
130 The <primary> DRBG is not used directly by the application, only for reseeding
142 The <primary> DRBG is intended to be accessed concurrently for reseeding
144 It is \fInot\fR thread-safe to access the <primary> DRBG directly via the
146 The <public> and <private> DRBG are thread-local, i.e. there is an
147 instance of each per thread. So they can safely be accessed without
150 Pointers to these DRBG instances can be obtained using
152 Note that it is not allowed to store a pointer to one of the thread-local
160 thread. Using the <primary> DRBG as entropy source for multiple DRBG
161 instances on different threads is thread-safe, because the DRBG instance
162 will lock the <primary> DRBG automatically for obtaining random input.
169 \& +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
171 \& +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
173 \& v +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
174 \& RAND_add() ==> <primary> <\-| shared DRBG (with locking) |
175 \& / \e +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
176 \& / \e +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\
177 \& <public> <private> <\- | per\-thread DRBG instances |
178 \& | | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
183 \& +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
186 \& +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
197 its entropy source. The entropy source can be either a trusted operating
202 time using the \-\-with\-rand\-seed option. The following sections explain
209 \&\- the DRBG was not instantiated (=seeded) yet or has been uninstantiated.
211 \&\- the number of generate requests since the last reseeding exceeds a
213 This behaviour can be disabled by setting the \fIreseed_interval\fR to 0.
215 \&\- the time elapsed since the last reseeding exceeds a certain time
217 This can be disabled by setting the \fIreseed_time_interval\fR to 0.
219 \&\- the DRBG is in an error state.
227 In addition to automatic reseeding, the caller can request an immediate
232 The document [NIST SP 800\-90C] describes prediction resistance requests
235 A request for prediction resistance can only be satisfied by pulling fresh
236 entropy from a live entropy source (section 5.5.2 of [NIST SP 800\-90C]).
243 (or \fBRAND_seed\fR\|(3)), then this will immediately reseed the <primary> DRBG.
245 call and reseed, pulling randomness from <primary>.
253 which can optionally be added by the user and is considered untrusted.
259 for automatically seeding and reseeding its <primary> DRBG. The
260 default seed source can be configured when OpenSSL is compiled by
261 setting \fB\-DOPENSSL_DEFAULT_SEED_SRC=SEED\-SRC\fR. If not set then
262 "SEED-SRC" is used. One can specify a third-party provider seed-source,
263 or \fB\-DOPENSSL_DEFAULT_SEED_SRC=JITTER\fR if available.
266 seed source used by "SEED-SRC" during configuration, using the
267 \&\-\-with\-rand\-seed option. For more information, see the INSTALL
271 The following two sections describe the reseeding process of the primary
273 .SS "Reseeding the primary DRBG with automatic seeding enabled"
274 .IX Subsection "Reseeding the primary DRBG with automatic seeding enabled"
279 \&\fBRAND_add()\fR can be used to add both kinds of random input, depending on the
299 [NIST SP\-800\-90Ar1] mandates that entropy *shall not* be provided by
304 .SS "Reseeding the primary DRBG with automatic seeding disabled"
305 .IX Subsection "Reseeding the primary DRBG with automatic seeding disabled"
310 the (re\-)seeding of the DRBG will fail. This corresponds to one and a half
324 Copyright 2017\-2024 The OpenSSL Project Authors. All Rights Reserved.
327 this file except in compliance with the License. You can obtain a copy