Rtos API example
entropy.h File Reference
Entropy accumulator implementation. More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_entropy_source_state |
Entropy source state. More... | |
struct | mbedtls_entropy_context |
Entropy context structure. More... | |
Typedefs | |
typedef int(* | mbedtls_entropy_f_source_ptr )(void *data, unsigned char *output, size_t len, size_t *olen) |
Entropy poll callback pointer. | |
Functions | |
void | mbedtls_entropy_init (mbedtls_entropy_context *ctx) |
Initialize the context. | |
void | mbedtls_entropy_free (mbedtls_entropy_context *ctx) |
Free the data in the context. | |
int | mbedtls_entropy_add_source (mbedtls_entropy_context *ctx, mbedtls_entropy_f_source_ptr f_source, void *p_source, size_t threshold, int strong) |
Adds an entropy source to poll (Thread-safe if MBEDTLS_THREADING_C is enabled) | |
int | mbedtls_entropy_gather (mbedtls_entropy_context *ctx) |
Trigger an extra gather poll for the accumulator (Thread-safe if MBEDTLS_THREADING_C is enabled) | |
int | mbedtls_entropy_func (void *data, unsigned char *output, size_t len) |
Retrieve entropy from the accumulator (Maximum length: MBEDTLS_ENTROPY_BLOCK_SIZE) (Thread-safe if MBEDTLS_THREADING_C is enabled) | |
int | mbedtls_entropy_update_manual (mbedtls_entropy_context *ctx, const unsigned char *data, size_t len) |
Add data to the accumulator manually (Thread-safe if MBEDTLS_THREADING_C is enabled) | |
int | mbedtls_entropy_update_nv_seed (mbedtls_entropy_context *ctx) |
Trigger an update of the seed file in NV by using the current entropy pool. | |
int | mbedtls_entropy_write_seed_file (mbedtls_entropy_context *ctx, const char *path) |
Write a seed file. | |
int | mbedtls_entropy_update_seed_file (mbedtls_entropy_context *ctx, const char *path) |
Read and update a seed file. | |
int | mbedtls_entropy_self_test (int verbose) |
Checkup routine. | |
int | mbedtls_entropy_source_self_test (int verbose) |
Checkup routine. |
Detailed Description
Entropy accumulator implementation.
Copyright (C) 2006-2016, 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 entropy.h.
Typedef Documentation
typedef int(* mbedtls_entropy_f_source_ptr)(void *data, unsigned char *output, size_t len, size_t *olen) |
Entropy poll callback pointer.
- Parameters:
-
data Callback-specific data pointer output Data to fill len Maximum size to provide olen The actual amount of bytes put into the buffer (Can be 0)
- Returns:
- 0 if no critical failures occurred, MBEDTLS_ERR_ENTROPY_SOURCE_FAILED otherwise
Function Documentation
int mbedtls_entropy_add_source | ( | mbedtls_entropy_context * | ctx, |
mbedtls_entropy_f_source_ptr | f_source, | ||
void * | p_source, | ||
size_t | threshold, | ||
int | strong | ||
) |
Adds an entropy source to poll (Thread-safe if MBEDTLS_THREADING_C is enabled)
- Parameters:
-
ctx Entropy context f_source Entropy function p_source Function data threshold Minimum required from source before entropy is released ( with mbedtls_entropy_func() ) (in bytes) strong MBEDTLS_ENTROPY_SOURCE_STRONG or MBEDTSL_ENTROPY_SOURCE_WEAK. At least one strong source needs to be added. Weaker sources (such as the cycle counter) can be used as a complement.
- Returns:
- 0 if successful or MBEDTLS_ERR_ENTROPY_MAX_SOURCES
void mbedtls_entropy_free | ( | mbedtls_entropy_context * | ctx ) |
int mbedtls_entropy_func | ( | void * | data, |
unsigned char * | output, | ||
size_t | len | ||
) |
Retrieve entropy from the accumulator (Maximum length: MBEDTLS_ENTROPY_BLOCK_SIZE) (Thread-safe if MBEDTLS_THREADING_C is enabled)
- Parameters:
-
data Entropy context output Buffer to fill len Number of bytes desired, must be at most MBEDTLS_ENTROPY_BLOCK_SIZE
- Returns:
- 0 if successful, or MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
int mbedtls_entropy_gather | ( | mbedtls_entropy_context * | ctx ) |
void mbedtls_entropy_init | ( | mbedtls_entropy_context * | ctx ) |
int mbedtls_entropy_self_test | ( | int | verbose ) |
Checkup routine.
This module self-test also calls the entropy self-test, mbedtls_entropy_source_self_test();
- Returns:
- 0 if successful, or 1 if a test failed
int mbedtls_entropy_source_self_test | ( | int | verbose ) |
Checkup routine.
Verifies the integrity of the hardware entropy source provided by the function 'mbedtls_hardware_poll()'.
Note this is the only hardware entropy source that is known at link time, and other entropy sources configured dynamically at runtime by the function mbedtls_entropy_add_source() will not be tested.
- Returns:
- 0 if successful, or 1 if a test failed
int mbedtls_entropy_update_manual | ( | mbedtls_entropy_context * | ctx, |
const unsigned char * | data, | ||
size_t | len | ||
) |
int mbedtls_entropy_update_nv_seed | ( | mbedtls_entropy_context * | ctx ) |
int mbedtls_entropy_update_seed_file | ( | mbedtls_entropy_context * | ctx, |
const char * | path | ||
) |
Read and update a seed file.
Seed is added to this instance. No more than MBEDTLS_ENTROPY_MAX_SEED_SIZE bytes are read from the seed file. The rest is ignored.
- Parameters:
-
ctx Entropy context path Name of the file
- Returns:
- 0 if successful, MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR on file error, MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
int mbedtls_entropy_write_seed_file | ( | mbedtls_entropy_context * | ctx, |
const char * | path | ||
) |
Generated on Sun Jul 17 2022 08:25:34 by 1.7.2