mbed TLS library

Dependents:   HTTPClient-SSL WS_SERVER

Embed: (wiki syntax)

« Back to documentation index

md.c File Reference

md.c File Reference

Generic message digest wrapper for mbed TLS. More...

Go to the source code of this file.

Functions

const int * md_list (void)
 Returns the list of digests supported by the generic digest module.
const md_info_tmd_info_from_string (const char *md_name)
 Returns the message digest information associated with the given digest name.
const md_info_tmd_info_from_type (md_type_t md_type)
 Returns the message digest information associated with the given digest type.
void md_init (md_context_t *ctx)
 Initialize a md_context (as NONE)
void md_free (md_context_t *ctx)
 Free and clear the message-specific context of ctx.
int md_init_ctx (md_context_t *ctx, const md_info_t *md_info)
 Initialises and fills the message digest context structure with the appropriate values.
int md_free_ctx (md_context_t *ctx)
 Free the message-specific context of ctx.
int md_starts (md_context_t *ctx)
 Set-up the given context for a new message digest.
int md_update (md_context_t *ctx, const unsigned char *input, size_t ilen)
 Generic message digest process buffer.
int md_finish (md_context_t *ctx, unsigned char *output)
 Generic message digest final digest.
int md (const md_info_t *md_info, const unsigned char *input, size_t ilen, unsigned char *output)
 Output = message_digest( input buffer )
int md_file (const md_info_t *md_info, const char *path, unsigned char *output)
 Output = message_digest( file contents )
int md_hmac_starts (md_context_t *ctx, const unsigned char *key, size_t keylen)
 Generic HMAC context setup.
int md_hmac_update (md_context_t *ctx, const unsigned char *input, size_t ilen)
 Generic HMAC process buffer.
int md_hmac_finish (md_context_t *ctx, unsigned char *output)
 Generic HMAC final digest.
int md_hmac_reset (md_context_t *ctx)
 Generic HMAC context reset.
int md_hmac (const 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 )

Detailed Description

Generic message digest wrapper for mbed TLS.

Author:
Adriaan de Jong <dejong@fox-it.com>

Copyright (C) 2006-2014, ARM Limited, All Rights Reserved

This file is part of mbed TLS (https://tls.mbed.org)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file md.c.


Function Documentation

int md ( const 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, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 245 of file md.c.

int md_file ( const md_info_t md_info,
const char *  path,
unsigned char *  output 
)

Output = message_digest( file contents )

Parameters:
md_infomessage digest info
pathinput file name
outputgeneric message digest checksum result
Returns:
0 if successful, POLARSSL_ERR_MD_FILE_OPEN_FAILED if fopen failed, POLARSSL_ERR_MD_FILE_READ_FAILED if fread failed, POLARSSL_ERR_MD_BAD_INPUT_DATA if md_info was NULL.

Definition at line 256 of file md.c.

int md_finish ( md_context_t ctx,
unsigned char *  output 
)

Generic message digest final digest.

Parameters:
ctxGeneric message digest context
outputGeneric message digest checksum result
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 235 of file md.c.

void md_free ( md_context_t ctx )

Free and clear the message-specific context of ctx.

Freeing ctx itself remains the responsibility of the caller.

Definition at line 178 of file md.c.

int md_free_ctx ( md_context_t ctx )

Free the message-specific context of ctx.

Freeing ctx itself remains the responsibility of the caller.

Parameters:
ctxFree the message-specific context
Returns:
0

Definition at line 207 of file md.c.

int md_hmac ( const 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
inputbuffer holding the data
ilenlength of the input data
outputGeneric HMAC-result
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 319 of file md.c.

int md_hmac_finish ( md_context_t ctx,
unsigned char *  output 
)

Generic HMAC final digest.

Parameters:
ctxHMAC context
outputGeneric HMAC checksum result
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 299 of file md.c.

int md_hmac_reset ( md_context_t ctx )

Generic HMAC context reset.

Parameters:
ctxHMAC context to be reset
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 309 of file md.c.

int md_hmac_starts ( md_context_t ctx,
const unsigned char *  key,
size_t  keylen 
)

Generic HMAC context setup.

Parameters:
ctxHMAC context to be initialized
keyHMAC secret key
keylenlength of the HMAC key
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 279 of file md.c.

int md_hmac_update ( md_context_t ctx,
const unsigned char *  input,
size_t  ilen 
)

Generic HMAC process buffer.

Parameters:
ctxHMAC context
inputbuffer holding the data
ilenlength of the input data
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 289 of file md.c.

const md_info_t* 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.

Definition at line 91 of file md.c.

const md_info_t* md_info_from_type ( 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.

Definition at line 132 of file md.c.

void md_init ( md_context_t ctx )

Initialize a md_context (as NONE)

Definition at line 173 of file md.c.

int md_init_ctx ( md_context_t ctx,
const md_info_t md_info 
)

Initialises and fills the message digest context structure with the appropriate values.

Note:
Currently also clears structure. In future versions you will be required to call md_init() on the structure first.
Parameters:
ctxcontext to initialise. May not be NULL. The digest-specific context (ctx->md_ctx) must be NULL. It will be allocated, and must be freed using md_free_ctx() later.
md_infomessage digest to use.
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA on parameter failure, POLARSSL_ERR_MD_ALLOC_FAILED if allocation of the digest-specific context failed.

Definition at line 189 of file md.c.

const int* 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.

Definition at line 86 of file md.c.

int md_starts ( md_context_t ctx )

Set-up the given context for a new message digest.

Parameters:
ctxgeneric message digest context.
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 215 of file md.c.

int md_update ( md_context_t ctx,
const unsigned char *  input,
size_t  ilen 
)

Generic message digest process buffer.

Parameters:
ctxGeneric message digest context
inputbuffer holding the datal
ilenlength of the input data
Returns:
0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.

Definition at line 225 of file md.c.