Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of OmniWheels by
ctr_drbg.h File Reference
CTR_DRBG is based on AES-256, as defined in NIST SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators. More...
Go to the source code of this file.
Data Structures | |
| struct | mbedtls_ctr_drbg_context |
| The CTR_DRBG context structure. More... | |
Functions | |
| void | mbedtls_ctr_drbg_init (mbedtls_ctr_drbg_context *ctx) |
| This function initializes the CTR_DRBG context, and prepares it for mbedtls_ctr_drbg_seed() or mbedtls_ctr_drbg_free(). | |
| int | mbedtls_ctr_drbg_seed (mbedtls_ctr_drbg_context *ctx, int(*f_entropy)(void *, unsigned char *, size_t), void *p_entropy, const unsigned char *custom, size_t len) |
| This function seeds and sets up the CTR_DRBG entropy source for future reseeds. | |
| void | mbedtls_ctr_drbg_free (mbedtls_ctr_drbg_context *ctx) |
| This function clears CTR_CRBG context data. | |
| void | mbedtls_ctr_drbg_set_prediction_resistance (mbedtls_ctr_drbg_context *ctx, int resistance) |
| This function turns prediction resistance on or off. | |
| void | mbedtls_ctr_drbg_set_entropy_len (mbedtls_ctr_drbg_context *ctx, size_t len) |
| This function sets the amount of entropy grabbed on each seed or reseed. | |
| void | mbedtls_ctr_drbg_set_reseed_interval (mbedtls_ctr_drbg_context *ctx, int interval) |
| This function sets the reseed interval. | |
| int | mbedtls_ctr_drbg_reseed (mbedtls_ctr_drbg_context *ctx, const unsigned char *additional, size_t len) |
| This function reseeds the CTR_DRBG context, that is extracts data from the entropy source. | |
| void | mbedtls_ctr_drbg_update (mbedtls_ctr_drbg_context *ctx, const unsigned char *additional, size_t add_len) |
| This function updates the state of the CTR_DRBG context. | |
| int | mbedtls_ctr_drbg_random_with_add (void *p_rng, unsigned char *output, size_t output_len, const unsigned char *additional, size_t add_len) |
| This function updates a CTR_DRBG instance with additional data and uses it to generate random data. | |
| int | mbedtls_ctr_drbg_random (void *p_rng, unsigned char *output, size_t output_len) |
| This function uses CTR_DRBG to generate random data. | |
| int | mbedtls_ctr_drbg_write_seed_file (mbedtls_ctr_drbg_context *ctx, const char *path) |
| This function writes a seed file. | |
| int | mbedtls_ctr_drbg_update_seed_file (mbedtls_ctr_drbg_context *ctx, const char *path) |
| This function reads and updates a seed file. | |
| int | mbedtls_ctr_drbg_self_test (int verbose) |
| The CTR_DRBG checkup routine. | |
Detailed Description
CTR_DRBG is based on AES-256, as defined in NIST SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators.
Definition in file ctr_drbg.h.
Function Documentation
| void mbedtls_ctr_drbg_free | ( | mbedtls_ctr_drbg_context * | ctx ) |
This function clears CTR_CRBG context data.
- Parameters:
-
ctx The CTR_DRBG context to clear.
Definition at line 119 of file ctr_drbg.c.
| void mbedtls_ctr_drbg_init | ( | mbedtls_ctr_drbg_context * | ctx ) |
This function initializes the CTR_DRBG context, and prepares it for mbedtls_ctr_drbg_seed() or mbedtls_ctr_drbg_free().
- Parameters:
-
ctx The CTR_DRBG context to initialize.
Definition at line 60 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_random | ( | void * | p_rng, |
| unsigned char * | output, | ||
| size_t | output_len | ||
| ) |
This function uses CTR_DRBG to generate random data.
- Note:
- The function automatically reseeds if the reseed counter is exceeded.
- Parameters:
-
p_rng The CTR_DRBG context. This must be a pointer to a mbedtls_ctr_drbg_context structure. output The buffer to fill. output_len The length of the buffer.
- Returns:
0on success, or MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG on failure.
Definition at line 457 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_random_with_add | ( | void * | p_rng, |
| unsigned char * | output, | ||
| size_t | output_len, | ||
| const unsigned char * | additional, | ||
| size_t | add_len | ||
| ) |
This function updates a CTR_DRBG instance with additional data and uses it to generate random data.
- Note:
- The function automatically reseeds if the reseed counter is exceeded.
- Parameters:
-
p_rng The CTR_DRBG context. This must be a pointer to a mbedtls_ctr_drbg_context structure. output The buffer to fill. output_len The length of the buffer. additional Additional data to update. Can be NULL. add_len The length of the additional data.
- Returns:
0on success, or MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG on failure.
Definition at line 378 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_reseed | ( | mbedtls_ctr_drbg_context * | ctx, |
| const unsigned char * | additional, | ||
| size_t | len | ||
| ) |
This function reseeds the CTR_DRBG context, that is extracts data from the entropy source.
- Parameters:
-
ctx The CTR_DRBG context. additional Additional data to add to the state. Can be NULL. len The length of the additional data.
- Returns:
0on success, or MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
Definition at line 325 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_seed | ( | mbedtls_ctr_drbg_context * | ctx, |
| int(*)(void *, unsigned char *, size_t) | f_entropy, | ||
| void * | p_entropy, | ||
| const unsigned char * | custom, | ||
| size_t | len | ||
| ) |
This function seeds and sets up the CTR_DRBG entropy source for future reseeds.
- Note:
- Personalization data can be provided in addition to the more generic entropy source, to make this instantiation as unique as possible.
- Parameters:
-
ctx The CTR_DRBG context to seed. f_entropy The entropy callback, taking as arguments the p_entropycontext, the buffer to fill, and the length of the buffer.p_entropy The entropy context. custom Personalization data, that is device-specific identifiers. Can be NULL. len The length of the personalization data.
- Returns:
0on success, or MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
Definition at line 109 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_self_test | ( | int | verbose ) |
The CTR_DRBG checkup routine.
- Returns:
0on success, or1on failure.
Definition at line 600 of file ctr_drbg.c.
| void mbedtls_ctr_drbg_set_entropy_len | ( | mbedtls_ctr_drbg_context * | ctx, |
| size_t | len | ||
| ) |
This function sets the amount of entropy grabbed on each seed or reseed.
The default value is MBEDTLS_CTR_DRBG_ENTROPY_LEN.
- Parameters:
-
ctx The CTR_DRBG context. len The amount of entropy to grab.
Definition at line 136 of file ctr_drbg.c.
| void mbedtls_ctr_drbg_set_prediction_resistance | ( | mbedtls_ctr_drbg_context * | ctx, |
| int | resistance | ||
| ) |
This function turns prediction resistance on or off.
The default value is off.
- Note:
- If enabled, entropy is gathered at the beginning of every call to mbedtls_ctr_drbg_random_with_add(). Only use this if your entropy source has sufficient throughput.
- Parameters:
-
ctx The CTR_DRBG context. resistance MBEDTLS_CTR_DRBG_PR_ON or MBEDTLS_CTR_DRBG_PR_OFF.
Definition at line 131 of file ctr_drbg.c.
| void mbedtls_ctr_drbg_set_reseed_interval | ( | mbedtls_ctr_drbg_context * | ctx, |
| int | interval | ||
| ) |
This function sets the reseed interval.
The default value is MBEDTLS_CTR_DRBG_RESEED_INTERVAL.
- Parameters:
-
ctx The CTR_DRBG context. interval The reseed interval.
Definition at line 141 of file ctr_drbg.c.
| void mbedtls_ctr_drbg_update | ( | mbedtls_ctr_drbg_context * | ctx, |
| const unsigned char * | additional, | ||
| size_t | add_len | ||
| ) |
This function updates the state of the CTR_DRBG context.
- Parameters:
-
ctx The CTR_DRBG context. additional The data to update the state with. add_len Length of additionaldata.
- Note:
- If
add_lenis greater than MBEDTLS_CTR_DRBG_MAX_SEED_INPUT, only the first MBEDTLS_CTR_DRBG_MAX_SEED_INPUT Bytes are used. The remaining Bytes are silently discarded.
Definition at line 308 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_update_seed_file | ( | mbedtls_ctr_drbg_context * | ctx, |
| const char * | path | ||
| ) |
This function reads and updates a seed file.
The seed is added to this instance.
- Parameters:
-
ctx The CTR_DRBG context. path The name of the file.
- Returns:
0on success, MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR on file error, MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG on failure.
Definition at line 502 of file ctr_drbg.c.
| int mbedtls_ctr_drbg_write_seed_file | ( | mbedtls_ctr_drbg_context * | ctx, |
| const char * | path | ||
| ) |
This function writes a seed file.
- Parameters:
-
ctx The CTR_DRBG context. path The name of the file.
- Returns:
0on success, MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR on file error, or MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
Definition at line 478 of file ctr_drbg.c.
Generated on Fri Jul 22 2022 04:54:06 by
1.7.2
