mbedtls ported to mbed-classic

Fork of mbedtls by Christopher Haster

Embed: (wiki syntax)

« Back to documentation index

entropy.h File Reference

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_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.

Detailed Description

Entropy accumulator implementation.

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 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:
dataCallback-specific data pointer
outputData to fill
lenMaximum size to provide
olenThe actual amount of bytes put into the buffer (Can be 0)
Returns:
0 if no critical failures occurred, MBEDTLS_ERR_ENTROPY_SOURCE_FAILED otherwise

Definition at line 103 of file entropy.h.


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:
ctxEntropy context
f_sourceEntropy function
p_sourceFunction data
thresholdMinimum required from source before entropy is released ( with mbedtls_entropy_func() ) (in bytes)
strongMBEDTLS_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

Definition at line 111 of file entropy.c.

void mbedtls_entropy_free ( mbedtls_entropy_context ctx )

Free the data in the context.

Parameters:
ctxEntropy context to free

Definition at line 100 of file entropy.c.

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:
dataEntropy context
outputBuffer to fill
lenNumber of bytes desired, must be at most MBEDTLS_ENTROPY_BLOCK_SIZE
Returns:
0 if successful, or MBEDTLS_ERR_ENTROPY_SOURCE_FAILED

Definition at line 266 of file entropy.c.

int mbedtls_entropy_gather ( mbedtls_entropy_context ctx )

Trigger an extra gather poll for the accumulator (Thread-safe if MBEDTLS_THREADING_C is enabled)

Parameters:
ctxEntropy context
Returns:
0 if successful, or MBEDTLS_ERR_ENTROPY_SOURCE_FAILED

Definition at line 247 of file entropy.c.

void mbedtls_entropy_init ( mbedtls_entropy_context ctx )

Initialize the context.

Parameters:
ctxEntropy context to initialize

Definition at line 59 of file entropy.c.

int mbedtls_entropy_self_test ( int  verbose )

Checkup routine.

Returns:
0 if successful, or 1 if a test failed

Definition at line 425 of file entropy.c.

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)

Parameters:
ctxEntropy context
dataData to add
lenLength of data
Returns:
0 if successful

Definition at line 181 of file entropy.c.

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:
ctxEntropy context
pathName of the file
Returns:
0 if successful, MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR on file error, MBEDTLS_ERR_ENTROPY_SOURCE_FAILED

Definition at line 375 of file entropy.c.

int mbedtls_entropy_write_seed_file ( mbedtls_entropy_context ctx,
const char *  path 
)

Write a seed file.

Parameters:
ctxEntropy context
pathName of the file
Returns:
0 if successful, MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR on file error, or MBEDTLS_ERR_ENTROPY_SOURCE_FAILED

Definition at line 350 of file entropy.c.