提交 f7bef277 编写于 作者: D Dr. Matthias St. Pierre

Minor corrections for the RAND_DRBG API documentation

- added some explaining text to a sentence that lost its context.
- removed mention of per-ssl drbg
- fix whitespace errors
Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5804)
上级 708a6a17
...@@ -79,7 +79,7 @@ See NOTES section for more details. ...@@ -79,7 +79,7 @@ See NOTES section for more details.
The B<cleanup_entropy>() callback is called from the B<drbg> to to clear and The B<cleanup_entropy>() callback is called from the B<drbg> to to clear and
free the buffer allocated previously by get_entropy(). free the buffer allocated previously by get_entropy().
The values B<out> and B<outlen> are the random buffer's address and length, The values B<out> and B<outlen> are the random buffer's address and length,
as returned by the get_entropy() callback. as returned by the get_entropy() callback.
The B<get_nonce>() and B<cleanup_nonce>() callbacks are used to obtain a nonce The B<get_nonce>() and B<cleanup_nonce>() callbacks are used to obtain a nonce
......
...@@ -32,8 +32,8 @@ return value of L<RAND_bytes(3)> and don't take randomness for granted. ...@@ -32,8 +32,8 @@ return value of L<RAND_bytes(3)> and don't take randomness for granted.
For long-term secrets, you can use L<RAND_priv_bytes(3)> instead. For long-term secrets, you can use L<RAND_priv_bytes(3)> instead.
This method does not provide 'better' randomness, it uses the same type of CSPRNG. This method does not provide 'better' randomness, it uses the same type of CSPRNG.
The intention behind using a dedicated CSPRNG exclusively for long-term secrets is The intention behind using a dedicated CSPRNG exclusively for long-term secrets is
that none of its output should be visible to an attacker (e.g used as salt value), that none of its output should be visible to an attacker (e.g used as salt value),
in order to reveal as little information as possible about its internal state. in order to reveal as little information as possible about its internal state.
In the rare case where the default implementation does not satisfy your special In the rare case where the default implementation does not satisfy your special
requirements, there are two options: requirements, there are two options:
......
...@@ -37,8 +37,7 @@ Typical examples for such special use cases are the following: ...@@ -37,8 +37,7 @@ Typical examples for such special use cases are the following:
=item * =item *
You want to use your own private DRBG instances, similar to how it You want to use your own private DRBG instances.
is currently done in the ssl library.
Multiple DRBG instances which are accessed only by a single thread provide Multiple DRBG instances which are accessed only by a single thread provide
additional security (because their internal states are independent) and additional security (because their internal states are independent) and
better scalability in multithreaded applications (because they don't need better scalability in multithreaded applications (because they don't need
...@@ -80,8 +79,8 @@ the thread-local <public> and <private> DRBG instance, respectively. ...@@ -80,8 +79,8 @@ the thread-local <public> and <private> DRBG instance, respectively.
=head2 The <master> DRBG instance =head2 The <master> DRBG instance
The <master> DRBG is not used directly by the application, only for reseeding The <master> DRBG is not used directly by the application, only for reseeding
the two other two DRBG instances. It reseeds itself by obtaining randomness the two other two DRBG instances. It reseeds itself by obtaining randomness
either from os entropy sources or by consuming randomness which was added either from os entropy sources or by consuming randomness which was added
previously by L<RAND_add(3)>. previously by L<RAND_add(3)>.
=head2 The <public> DRBG instance =head2 The <public> DRBG instance
...@@ -144,10 +143,12 @@ together and are being used. ...@@ -144,10 +143,12 @@ together and are being used.
+------------------+ +------------------------------------+ +------------------+ +------------------------------------+
The usual way to obtain random bytes is to call RAND_bytes(...) or
The method L<RAND_DRBG_bytes(3)> is a convenience method wrapping the RAND_priv_bytes(...). These calls are roughly equivalent to calling
L<RAND_DRBG_generate(3)> function, which serves the actual request for RAND_DRBG_bytes(<public>, ...) and RAND_DRBG_bytes(<private>, ...),
random data. respectively. The method L<RAND_DRBG_bytes(3)> is a convenience method
wrapping the L<RAND_DRBG_generate(3)> function, which serves the actual
request for random data.
=head1 RESEEDING =head1 RESEEDING
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册