mbedtls ported to mbed-classic
Fork of mbedtls by
hmac_drbg.h File Reference
HMAC_DRBG (NIST SP 800-90A) More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_hmac_drbg_context |
HMAC_DRBG context. More... | |
Functions | |
void | mbedtls_hmac_drbg_init (mbedtls_hmac_drbg_context *ctx) |
HMAC_DRBG context initialization Makes the context ready for mbedtls_hmac_drbg_seed(), mbedtls_hmac_drbg_seed_buf() or mbedtls_hmac_drbg_free(). | |
int | mbedtls_hmac_drbg_seed (mbedtls_hmac_drbg_context *ctx, const mbedtls_md_info_t *md_info, int(*f_entropy)(void *, unsigned char *, size_t), void *p_entropy, const unsigned char *custom, size_t len) |
HMAC_DRBG initial seeding Seed and setup entropy source for future reseeds. | |
int | mbedtls_hmac_drbg_seed_buf (mbedtls_hmac_drbg_context *ctx, const mbedtls_md_info_t *md_info, const unsigned char *data, size_t data_len) |
Initilisation of simpified HMAC_DRBG (never reseeds). | |
void | mbedtls_hmac_drbg_set_prediction_resistance (mbedtls_hmac_drbg_context *ctx, int resistance) |
Enable / disable prediction resistance (Default: Off) | |
void | mbedtls_hmac_drbg_set_entropy_len (mbedtls_hmac_drbg_context *ctx, size_t len) |
Set the amount of entropy grabbed on each reseed (Default: given by the security strength, which depends on the hash used, see mbedtls_hmac_drbg_init() ) | |
void | mbedtls_hmac_drbg_set_reseed_interval (mbedtls_hmac_drbg_context *ctx, int interval) |
Set the reseed interval (Default: MBEDTLS_HMAC_DRBG_RESEED_INTERVAL) | |
void | mbedtls_hmac_drbg_update (mbedtls_hmac_drbg_context *ctx, const unsigned char *additional, size_t add_len) |
HMAC_DRBG update state. | |
int | mbedtls_hmac_drbg_reseed (mbedtls_hmac_drbg_context *ctx, const unsigned char *additional, size_t len) |
HMAC_DRBG reseeding (extracts data from entropy source) | |
int | mbedtls_hmac_drbg_random_with_add (void *p_rng, unsigned char *output, size_t output_len, const unsigned char *additional, size_t add_len) |
HMAC_DRBG generate random with additional update input. | |
int | mbedtls_hmac_drbg_random (void *p_rng, unsigned char *output, size_t out_len) |
HMAC_DRBG generate random. | |
void | mbedtls_hmac_drbg_free (mbedtls_hmac_drbg_context *ctx) |
Free an HMAC_DRBG context. | |
int | mbedtls_hmac_drbg_write_seed_file (mbedtls_hmac_drbg_context *ctx, const char *path) |
Write a seed file. | |
int | mbedtls_hmac_drbg_update_seed_file (mbedtls_hmac_drbg_context *ctx, const char *path) |
Read and update a seed file. | |
int | mbedtls_hmac_drbg_self_test (int verbose) |
Checkup routine. |
Detailed Description
HMAC_DRBG (NIST SP 800-90A)
Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file hmac_drbg.h.
Function Documentation
void mbedtls_hmac_drbg_free | ( | mbedtls_hmac_drbg_context * | ctx ) |
Free an HMAC_DRBG context.
- Parameters:
-
ctx HMAC_DRBG context to free.
Definition at line 332 of file hmac_drbg.c.
void mbedtls_hmac_drbg_init | ( | mbedtls_hmac_drbg_context * | ctx ) |
HMAC_DRBG context initialization Makes the context ready for mbedtls_hmac_drbg_seed(), mbedtls_hmac_drbg_seed_buf() or mbedtls_hmac_drbg_free().
- Parameters:
-
ctx HMAC_DRBG context to be initialized
Definition at line 61 of file hmac_drbg.c.
int mbedtls_hmac_drbg_random | ( | void * | p_rng, |
unsigned char * | output, | ||
size_t | out_len | ||
) |
HMAC_DRBG generate random.
Note: Automatically reseeds if reseed_counter is reached or PR is enabled.
- Parameters:
-
p_rng HMAC_DRBG context output Buffer to fill out_len Length of the buffer
- Returns:
- 0 if successful, or MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED, or MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG
Definition at line 309 of file hmac_drbg.c.
int mbedtls_hmac_drbg_random_with_add | ( | void * | p_rng, |
unsigned char * | output, | ||
size_t | output_len, | ||
const unsigned char * | additional, | ||
size_t | add_len | ||
) |
HMAC_DRBG generate random with additional update input.
Note: Automatically reseeds if reseed_counter is reached or PR is enabled.
- Parameters:
-
p_rng HMAC_DRBG context output Buffer to fill output_len Length of the buffer additional Additional data to update with (can be NULL) add_len Length of additional data (can be 0)
- Returns:
- 0 if successful, or MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED, or MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG, or MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG.
Definition at line 249 of file hmac_drbg.c.
int mbedtls_hmac_drbg_reseed | ( | mbedtls_hmac_drbg_context * | ctx, |
const unsigned char * | additional, | ||
size_t | len | ||
) |
HMAC_DRBG reseeding (extracts data from entropy source)
- Parameters:
-
ctx HMAC_DRBG context additional Additional data to add to state (Can be NULL) len Length of additional data
- Returns:
- 0 if successful, or MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
Definition at line 126 of file hmac_drbg.c.
int mbedtls_hmac_drbg_seed | ( | mbedtls_hmac_drbg_context * | ctx, |
const mbedtls_md_info_t * | md_info, | ||
int(*)(void *, unsigned char *, size_t) | f_entropy, | ||
void * | p_entropy, | ||
const unsigned char * | custom, | ||
size_t | len | ||
) |
HMAC_DRBG initial seeding Seed and setup entropy source for future reseeds.
- Parameters:
-
ctx HMAC_DRBG context to be seeded md_info MD algorithm to use for HMAC_DRBG f_entropy Entropy callback (p_entropy, buffer to fill, buffer length) p_entropy Entropy context custom Personalization data (Device specific identifiers) (Can be NULL) len Length of personalization data
- Note:
- The "security strength" as defined by NIST is set to: 128 bits if md_alg is SHA-1, 192 bits if md_alg is SHA-224, 256 bits if md_alg is SHA-256 or higher. Note that SHA-256 is just as efficient as SHA-224.
- Returns:
- 0 if successful, or MBEDTLS_ERR_MD_BAD_INPUT_DATA, or MBEDTLS_ERR_MD_ALLOC_FAILED, or MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED.
Definition at line 167 of file hmac_drbg.c.
int mbedtls_hmac_drbg_seed_buf | ( | mbedtls_hmac_drbg_context * | ctx, |
const mbedtls_md_info_t * | md_info, | ||
const unsigned char * | data, | ||
size_t | data_len | ||
) |
Initilisation of simpified HMAC_DRBG (never reseeds).
(For use with deterministic ECDSA.)
- Parameters:
-
ctx HMAC_DRBG context to be initialised md_info MD algorithm to use for HMAC_DRBG data Concatenation of entropy string and additional data data_len Length of data in bytes
- Returns:
- 0 if successful, or MBEDTLS_ERR_MD_BAD_INPUT_DATA, or MBEDTLS_ERR_MD_ALLOC_FAILED.
Definition at line 101 of file hmac_drbg.c.
int mbedtls_hmac_drbg_self_test | ( | int | verbose ) |
Checkup routine.
- Returns:
- 0 if successful, or 1 if the test failed
Definition at line 469 of file hmac_drbg.c.
void mbedtls_hmac_drbg_set_entropy_len | ( | mbedtls_hmac_drbg_context * | ctx, |
size_t | len | ||
) |
Set the amount of entropy grabbed on each reseed (Default: given by the security strength, which depends on the hash used, see mbedtls_hmac_drbg_init()
)
- Parameters:
-
ctx HMAC_DRBG context len Amount of entropy to grab, in bytes
Definition at line 232 of file hmac_drbg.c.
void mbedtls_hmac_drbg_set_prediction_resistance | ( | mbedtls_hmac_drbg_context * | ctx, |
int | resistance | ||
) |
Enable / disable prediction resistance (Default: Off)
Note: If enabled, entropy is used for ctx->entropy_len before each call! Only use this if you have ample supply of good entropy!
- Parameters:
-
ctx HMAC_DRBG context resistance MBEDTLS_HMAC_DRBG_PR_ON or MBEDTLS_HMAC_DRBG_PR_OFF
Definition at line 223 of file hmac_drbg.c.
void mbedtls_hmac_drbg_set_reseed_interval | ( | mbedtls_hmac_drbg_context * | ctx, |
int | interval | ||
) |
Set the reseed interval (Default: MBEDTLS_HMAC_DRBG_RESEED_INTERVAL)
- Parameters:
-
ctx HMAC_DRBG context interval Reseed interval
Definition at line 240 of file hmac_drbg.c.
void mbedtls_hmac_drbg_update | ( | mbedtls_hmac_drbg_context * | ctx, |
const unsigned char * | additional, | ||
size_t | add_len | ||
) |
HMAC_DRBG update state.
- Parameters:
-
ctx HMAC_DRBG context additional Additional data to update state with, or NULL add_len Length of additional data, or 0
- Note:
- Additional data is optional, pass NULL and 0 as second third argument if no additional data is being used.
Definition at line 73 of file hmac_drbg.c.
int mbedtls_hmac_drbg_update_seed_file | ( | mbedtls_hmac_drbg_context * | ctx, |
const char * | path | ||
) |
Read and update a seed file.
Seed is added to this instance
- Parameters:
-
ctx HMAC_DRBG context path Name of the file
- Returns:
- 0 if successful, 1 on file error, MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED or MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG
Definition at line 370 of file hmac_drbg.c.
int mbedtls_hmac_drbg_write_seed_file | ( | mbedtls_hmac_drbg_context * | ctx, |
const char * | path | ||
) |
Write a seed file.
- Parameters:
-
ctx HMAC_DRBG context path Name of the file
- Returns:
- 0 if successful, 1 on file error, or MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
Definition at line 345 of file hmac_drbg.c.
Generated on Tue Jul 12 2022 12:52:52 by 1.7.2