1a8e1175bSopenharmony_ci/**
2a8e1175bSopenharmony_ci * \file doc_rng.h
3a8e1175bSopenharmony_ci *
4a8e1175bSopenharmony_ci * \brief Random number generator (RNG) module documentation file.
5a8e1175bSopenharmony_ci */
6a8e1175bSopenharmony_ci/*
7a8e1175bSopenharmony_ci *
8a8e1175bSopenharmony_ci *  Copyright The Mbed TLS Contributors
9a8e1175bSopenharmony_ci *  SPDX-License-Identifier: Apache-2.0
10a8e1175bSopenharmony_ci *
11a8e1175bSopenharmony_ci *  Licensed under the Apache License, Version 2.0 (the "License"); you may
12a8e1175bSopenharmony_ci *  not use this file except in compliance with the License.
13a8e1175bSopenharmony_ci *  You may obtain a copy of the License at
14a8e1175bSopenharmony_ci *
15a8e1175bSopenharmony_ci *  http://www.apache.org/licenses/LICENSE-2.0
16a8e1175bSopenharmony_ci *
17a8e1175bSopenharmony_ci *  Unless required by applicable law or agreed to in writing, software
18a8e1175bSopenharmony_ci *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
19a8e1175bSopenharmony_ci *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20a8e1175bSopenharmony_ci *  See the License for the specific language governing permissions and
21a8e1175bSopenharmony_ci *  limitations under the License.
22a8e1175bSopenharmony_ci */
23a8e1175bSopenharmony_ci
24a8e1175bSopenharmony_ci/**
25a8e1175bSopenharmony_ci * @addtogroup rng_module Random number generator (RNG) module
26a8e1175bSopenharmony_ci *
27a8e1175bSopenharmony_ci * The Random number generator (RNG) module provides random number
28a8e1175bSopenharmony_ci * generation, see \c mbedtls_ctr_drbg_random().
29a8e1175bSopenharmony_ci *
30a8e1175bSopenharmony_ci * The block-cipher counter-mode based deterministic random
31a8e1175bSopenharmony_ci * bit generator (CTR_DBRG) as specified in NIST SP800-90. It needs an external
32a8e1175bSopenharmony_ci * source of entropy. For these purposes \c mbedtls_entropy_func() can be used.
33a8e1175bSopenharmony_ci * This is an implementation based on a simple entropy accumulator design.
34a8e1175bSopenharmony_ci *
35a8e1175bSopenharmony_ci * Meaning that there seems to be no practical algorithm that can guess
36a8e1175bSopenharmony_ci * the next bit with a probability larger than 1/2 in an output sequence.
37a8e1175bSopenharmony_ci *
38a8e1175bSopenharmony_ci * This module can be used to generate random numbers.
39a8e1175bSopenharmony_ci */
40