RetroArch
Classes | Macros | Typedefs | Enumerations | Functions
md.h File Reference

Generic message digest wrapper. More...

#include <stddef.h>
Include dependency graph for md.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mbedtls_md_context_t
 

Macros

#define MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE   -0x5080
 
#define MBEDTLS_ERR_MD_BAD_INPUT_DATA   -0x5100
 
#define MBEDTLS_ERR_MD_ALLOC_FAILED   -0x5180
 
#define MBEDTLS_ERR_MD_FILE_IO_ERROR   -0x5200
 
#define MBEDTLS_MD_MAX_SIZE   32 /* longest known is SHA256 or less */
 
#define MBEDTLS_DEPRECATED
 

Typedefs

typedef struct mbedtls_md_info_t mbedtls_md_info_t
 

Enumerations

enum  mbedtls_md_type_t {
  MBEDTLS_MD_NONE =0, MBEDTLS_MD_MD2, MBEDTLS_MD_MD4, MBEDTLS_MD_MD5,
  MBEDTLS_MD_SHA1, MBEDTLS_MD_SHA224, MBEDTLS_MD_SHA256, MBEDTLS_MD_SHA384,
  MBEDTLS_MD_SHA512, MBEDTLS_MD_RIPEMD160
}
 

Functions

const int * mbedtls_md_list (void)
 Returns the list of digests supported by the generic digest module. More...
 
const mbedtls_md_info_tmbedtls_md_info_from_string (const char *md_name)
 Returns the message digest information associated with the given digest name. More...
 
const mbedtls_md_info_tmbedtls_md_info_from_type (mbedtls_md_type_t md_type)
 Returns the message digest information associated with the given digest type. More...
 
void mbedtls_md_init (mbedtls_md_context_t *ctx)
 Initialize a md_context (as NONE) This should always be called first. Prepares the context for mbedtls_md_setup() or mbedtls_md_free(). More...
 
void mbedtls_md_free (mbedtls_md_context_t *ctx)
 Free and clear the internal structures of ctx. Can be called at any time after mbedtls_md_init(). Mandatory once mbedtls_md_setup() has been called. More...
 
int mbedtls_md_init_ctx (mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info) MBEDTLS_DEPRECATED
 Select MD to use and allocate internal structures. Should be called after mbedtls_md_init() or mbedtls_md_free(). Makes it necessary to call mbedtls_md_free() later. More...
 
int mbedtls_md_setup (mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac)
 Select MD to use and allocate internal structures. Should be called after mbedtls_md_init() or mbedtls_md_free(). Makes it necessary to call mbedtls_md_free() later. More...
 
int mbedtls_md_clone (mbedtls_md_context_t *dst, const mbedtls_md_context_t *src)
 Clone the state of an MD context. More...
 
unsigned char mbedtls_md_get_size (const mbedtls_md_info_t *md_info)
 Returns the size of the message digest output. More...
 
mbedtls_md_type_t mbedtls_md_get_type (const mbedtls_md_info_t *md_info)
 Returns the type of the message digest output. More...
 
const char * mbedtls_md_get_name (const mbedtls_md_info_t *md_info)
 Returns the name of the message digest output. More...
 
int mbedtls_md_starts (mbedtls_md_context_t *ctx)
 Prepare the context to digest a new message. Generally called after mbedtls_md_setup() or mbedtls_md_finish(). Followed by mbedtls_md_update(). More...
 
int mbedtls_md_update (mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen)
 Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish(). May be called repeatedly. More...
 
int mbedtls_md_finish (mbedtls_md_context_t *ctx, unsigned char *output)
 Generic message digest final digest Called after mbedtls_md_update(). Usually followed by mbedtls_md_free() or mbedtls_md_starts(). More...
 
int mbedtls_md (const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen, unsigned char *output)
 Output = message_digest( input buffer ) More...
 
int mbedtls_md_hmac_starts (mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen)
 Set HMAC key and prepare to authenticate a new message. Usually called after mbedtls_md_setup() or mbedtls_md_hmac_finish(). More...
 
int mbedtls_md_hmac_update (mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen)
 Generic HMAC process buffer. Called between mbedtls_md_hmac_starts() or mbedtls_md_hmac_reset() and mbedtls_md_hmac_finish(). May be called repeatedly. More...
 
int mbedtls_md_hmac_finish (mbedtls_md_context_t *ctx, unsigned char *output)
 Output HMAC. Called after mbedtls_md_hmac_update(). Usually followed by mbedtls_md_hmac_reset(), mbedtls_md_hmac_starts(), or mbedtls_md_free(). More...
 
int mbedtls_md_hmac_reset (mbedtls_md_context_t *ctx)
 Prepare to authenticate a new message with the same key. Called after mbedtls_md_hmac_finish() and before mbedtls_md_hmac_update(). More...
 
int mbedtls_md_hmac (const mbedtls_md_info_t *md_info, const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output)
 Output = Generic_HMAC( hmac key, input buffer ) More...
 
int mbedtls_md_process (mbedtls_md_context_t *ctx, const unsigned char *data)
 

Detailed Description

Generic message digest wrapper.

Author
Adriaan de Jong dejon.nosp@m.g@fo.nosp@m.x-it..nosp@m.com

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)

Macro Definition Documentation

◆ MBEDTLS_DEPRECATED

#define MBEDTLS_DEPRECATED

◆ MBEDTLS_ERR_MD_ALLOC_FAILED

#define MBEDTLS_ERR_MD_ALLOC_FAILED   -0x5180

Failed to allocate memory.

◆ MBEDTLS_ERR_MD_BAD_INPUT_DATA

#define MBEDTLS_ERR_MD_BAD_INPUT_DATA   -0x5100

Bad input parameters to function.

◆ MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE

#define MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE   -0x5080

The selected feature is not available.

◆ MBEDTLS_ERR_MD_FILE_IO_ERROR

#define MBEDTLS_ERR_MD_FILE_IO_ERROR   -0x5200

Opening or reading of file failed.

◆ MBEDTLS_MD_MAX_SIZE

#define MBEDTLS_MD_MAX_SIZE   32 /* longest known is SHA256 or less */

Typedef Documentation

◆ mbedtls_md_info_t

Opaque struct defined in md_internal.h

Enumeration Type Documentation

◆ mbedtls_md_type_t

Enumerator
MBEDTLS_MD_NONE 
MBEDTLS_MD_MD2 
MBEDTLS_MD_MD4 
MBEDTLS_MD_MD5 
MBEDTLS_MD_SHA1 
MBEDTLS_MD_SHA224 
MBEDTLS_MD_SHA256 
MBEDTLS_MD_SHA384 
MBEDTLS_MD_SHA512 
MBEDTLS_MD_RIPEMD160 

Function Documentation

◆ mbedtls_md()

int mbedtls_md ( const mbedtls_md_info_t md_info,
const unsigned char *  input,
size_t  ilen,
unsigned char *  output 
)

Output = message_digest( input buffer )

Parameters
md_infomessage digest info
inputbuffer holding the data
ilenlength of the input data
outputGeneric message digest checksum result
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function:

◆ mbedtls_md_clone()

int mbedtls_md_clone ( mbedtls_md_context_t dst,
const mbedtls_md_context_t src 
)

Clone the state of an MD context.

Note
The two contexts must have been setup to the same type (cloning from SHA-256 to SHA-512 make no sense).
Warning
Only clones the MD state, not the HMAC state! (for now)
Parameters
dstThe destination context
srcThe context to be cloned
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA on parameter failure.

◆ mbedtls_md_finish()

int mbedtls_md_finish ( mbedtls_md_context_t ctx,
unsigned char *  output 
)

Generic message digest final digest Called after mbedtls_md_update(). Usually followed by mbedtls_md_free() or mbedtls_md_starts().

Parameters
ctxGeneric message digest context
outputGeneric message digest checksum result
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function:

◆ mbedtls_md_free()

void mbedtls_md_free ( mbedtls_md_context_t ctx)

Free and clear the internal structures of ctx. Can be called at any time after mbedtls_md_init(). Mandatory once mbedtls_md_setup() has been called.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_md_get_name()

const char* mbedtls_md_get_name ( const mbedtls_md_info_t md_info)

Returns the name of the message digest output.

Parameters
md_infomessage digest info
Returns
name of the message digest output.
Here is the caller graph for this function:

◆ mbedtls_md_get_size()

unsigned char mbedtls_md_get_size ( const mbedtls_md_info_t md_info)

Returns the size of the message digest output.

Parameters
md_infomessage digest info
Returns
size of the message digest output in bytes.
Here is the caller graph for this function:

◆ mbedtls_md_get_type()

mbedtls_md_type_t mbedtls_md_get_type ( const mbedtls_md_info_t md_info)

Returns the type of the message digest output.

Parameters
md_infomessage digest info
Returns
type of the message digest output.

◆ mbedtls_md_hmac()

int mbedtls_md_hmac ( const mbedtls_md_info_t md_info,
const unsigned char *  key,
size_t  keylen,
const unsigned char *  input,
size_t  ilen,
unsigned char *  output 
)

Output = Generic_HMAC( hmac key, input buffer )

Parameters
md_infomessage digest info
keyHMAC secret key
keylenlength of the HMAC key in bytes
inputbuffer holding the data
ilenlength of the input data
outputGeneric HMAC-result
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the call graph for this function:

◆ mbedtls_md_hmac_finish()

int mbedtls_md_hmac_finish ( mbedtls_md_context_t ctx,
unsigned char *  output 
)

Output HMAC. Called after mbedtls_md_hmac_update(). Usually followed by mbedtls_md_hmac_reset(), mbedtls_md_hmac_starts(), or mbedtls_md_free().

Parameters
ctxHMAC context
outputGeneric HMAC checksum result
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function:

◆ mbedtls_md_hmac_reset()

int mbedtls_md_hmac_reset ( mbedtls_md_context_t ctx)

Prepare to authenticate a new message with the same key. Called after mbedtls_md_hmac_finish() and before mbedtls_md_hmac_update().

Parameters
ctxHMAC context to be reset
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function:

◆ mbedtls_md_hmac_starts()

int mbedtls_md_hmac_starts ( mbedtls_md_context_t ctx,
const unsigned char *  key,
size_t  keylen 
)

Set HMAC key and prepare to authenticate a new message. Usually called after mbedtls_md_setup() or mbedtls_md_hmac_finish().

Parameters
ctxHMAC context
keyHMAC secret key
keylenlength of the HMAC key in bytes
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_md_hmac_update()

int mbedtls_md_hmac_update ( mbedtls_md_context_t ctx,
const unsigned char *  input,
size_t  ilen 
)

Generic HMAC process buffer. Called between mbedtls_md_hmac_starts() or mbedtls_md_hmac_reset() and mbedtls_md_hmac_finish(). May be called repeatedly.

Parameters
ctxHMAC context
inputbuffer holding the data
ilenlength of the input data
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function:

◆ mbedtls_md_info_from_string()

const mbedtls_md_info_t* mbedtls_md_info_from_string ( const char *  md_name)

Returns the message digest information associated with the given digest name.

Parameters
md_nameName of the digest to search for.
Returns
The message digest information associated with md_name or NULL if not found.
Here is the call graph for this function:

◆ mbedtls_md_info_from_type()

const mbedtls_md_info_t* mbedtls_md_info_from_type ( mbedtls_md_type_t  md_type)

Returns the message digest information associated with the given digest type.

Parameters
md_typetype of digest to search for.
Returns
The message digest information associated with md_type or NULL if not found.
Here is the caller graph for this function:

◆ mbedtls_md_init()

void mbedtls_md_init ( mbedtls_md_context_t ctx)

Initialize a md_context (as NONE) This should always be called first. Prepares the context for mbedtls_md_setup() or mbedtls_md_free().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_md_init_ctx()

int mbedtls_md_init_ctx ( mbedtls_md_context_t ctx,
const mbedtls_md_info_t md_info 
)

Select MD to use and allocate internal structures. Should be called after mbedtls_md_init() or mbedtls_md_free(). Makes it necessary to call mbedtls_md_free() later.

Deprecated:
Superseded by mbedtls_md_setup() in 2.0.0
Parameters
ctxContext to set up.
md_infoMessage digest to use.
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA on parameter failure, MBEDTLS_ERR_MD_ALLOC_FAILED memory allocation failure.
Here is the call graph for this function:

◆ mbedtls_md_list()

const int* mbedtls_md_list ( void  )

Returns the list of digests supported by the generic digest module.

Returns
a statically allocated array of digests, the last entry is 0.

◆ mbedtls_md_process()

int mbedtls_md_process ( mbedtls_md_context_t ctx,
const unsigned char *  data 
)
Here is the caller graph for this function:

◆ mbedtls_md_setup()

int mbedtls_md_setup ( mbedtls_md_context_t ctx,
const mbedtls_md_info_t md_info,
int  hmac 
)

Select MD to use and allocate internal structures. Should be called after mbedtls_md_init() or mbedtls_md_free(). Makes it necessary to call mbedtls_md_free() later.

Parameters
ctxContext to set up.
md_infoMessage digest to use.
hmac0 to save some memory if HMAC will not be used, non-zero is HMAC is going to be used with this context.
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA on parameter failure, MBEDTLS_ERR_MD_ALLOC_FAILED memory allocation failure.
Here is the caller graph for this function:

◆ mbedtls_md_starts()

int mbedtls_md_starts ( mbedtls_md_context_t ctx)

Prepare the context to digest a new message. Generally called after mbedtls_md_setup() or mbedtls_md_finish(). Followed by mbedtls_md_update().

Parameters
ctxgeneric message digest context.
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function:

◆ mbedtls_md_update()

int mbedtls_md_update ( mbedtls_md_context_t ctx,
const unsigned char *  input,
size_t  ilen 
)

Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish(). May be called repeatedly.

Parameters
ctxGeneric message digest context
inputbuffer holding the datal
ilenlength of the input data
Returns
0 on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA if parameter verification fails.
Here is the caller graph for this function: